@kb-labs/github-entry 2.119.0-canary.c64d2c41e → 2.119.0-canary.ce846d079
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/handlers/create-branch.js.map +1 -1
- package/dist/handlers/create-pr.js.map +1 -1
- package/dist/handlers/fetch-issue.js.map +1 -1
- package/dist/handlers/post-comment.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/package.json +3 -3
- package/dist/manifest.json +0 -68
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/lib/token.ts","../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/handlers/create-branch.ts"],"names":[],"mappings":"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","file":"create-branch.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { useEnv } from '@kb-labs/sdk'\n\nlet ghCliFallbackToken: string | null | undefined\n\n/**\n * Resolves the GitHub token to use for API calls.\n *\n * Precedence: explicit `token` argument > `GITHUB_WORKFLOW_TOKEN` env var >\n * `gh auth token` (the CLI's own cached auth). The env var is not guaranteed\n * to survive a daemon restart if the process that launched it never\n * exported one — falling back to `gh`'s own token avoids every GitHub step\n * failing with a silent 401 in that case. Cached per-process since `gh auth\n * token` shells out and the result doesn't change within a run.\n */\nexport function resolveGithubToken(token?: string): string | undefined {\n if (token) return token\n\n const envToken = useEnv('GITHUB_WORKFLOW_TOKEN')\n if (envToken) return envToken\n\n if (ghCliFallbackToken === undefined) {\n try {\n ghCliFallbackToken = execSync('gh auth token', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim() || null\n } catch {\n ghCliFallbackToken = null\n }\n }\n\n return ghCliFallbackToken ?? undefined\n}\n","import { defineHandler, rethrowForRest } from '@kb-labs/sdk'\nimport type { CreateBranchInput, CreateBranchOutput } from '@kb-labs/github-contracts'\nimport { resolveGithubToken } from '../lib/token.js'\n\nfunction headers(token?: string): Record<string, string> {\n const h: Record<string, string> = {\n Accept: 'application/vnd.github+json',\n 'Content-Type': 'application/json',\n 'X-GitHub-Api-Version': '2022-11-28',\n }\n const tok = resolveGithubToken(token)\n if (tok) h.Authorization = `Bearer ${tok}`\n return h\n}\n\nexport default defineHandler<unknown, CreateBranchInput, CreateBranchOutput>({\n async execute(ctx, input) {\n try {\n const { owner, repo, branchName, fromBranch = 'main', token } = input\n const hdrs = headers(token)\n\n // Get SHA of the base branch\n const refRes = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/git/ref/heads/${fromBranch}`,\n { headers: hdrs },\n )\n if (!refRes.ok) throw new Error(`GitHub ${refRes.status}: ${await refRes.text()}`)\n\n const ref = await refRes.json() as Record<string, unknown>\n const sha = (ref.object as { sha: string }).sha\n\n // Create the new branch (idempotent — if already exists, use it)\n const createRes = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/git/refs`,\n {\n method: 'POST',\n headers: hdrs,\n body: JSON.stringify({ ref: `refs/heads/${branchName}`, sha }),\n },\n )\n\n if (!createRes.ok) {\n if (createRes.status === 422) {\n // Branch already exists — force-reset it to fromBranch SHA so the\n // new run starts clean without contamination from previous runs.\n const patchRes = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/git/refs/heads/${branchName}`,\n {\n method: 'PATCH',\n headers: hdrs,\n body: JSON.stringify({ sha, force: true }),\n },\n )\n if (!patchRes.ok) throw new Error(`GitHub ${patchRes.status}: ${await patchRes.text()}`)\n return {\n branchName,\n sha,\n url: `https://github.com/${owner}/${repo}/tree/${branchName}`,\n }\n }\n throw new Error(`GitHub ${createRes.status}: ${await createRes.text()}`)\n }\n\n return {\n branchName,\n sha,\n url: `https://github.com/${owner}/${repo}/tree/${branchName}`,\n }\n } catch (err) {\n rethrowForRest(err)\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/lib/token.ts","../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/handlers/create-pr.ts"],"names":[],"mappings":"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","file":"create-pr.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { useEnv } from '@kb-labs/sdk'\n\nlet ghCliFallbackToken: string | null | undefined\n\n/**\n * Resolves the GitHub token to use for API calls.\n *\n * Precedence: explicit `token` argument > `GITHUB_WORKFLOW_TOKEN` env var >\n * `gh auth token` (the CLI's own cached auth). The env var is not guaranteed\n * to survive a daemon restart if the process that launched it never\n * exported one — falling back to `gh`'s own token avoids every GitHub step\n * failing with a silent 401 in that case. Cached per-process since `gh auth\n * token` shells out and the result doesn't change within a run.\n */\nexport function resolveGithubToken(token?: string): string | undefined {\n if (token) return token\n\n const envToken = useEnv('GITHUB_WORKFLOW_TOKEN')\n if (envToken) return envToken\n\n if (ghCliFallbackToken === undefined) {\n try {\n ghCliFallbackToken = execSync('gh auth token', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim() || null\n } catch {\n ghCliFallbackToken = null\n }\n }\n\n return ghCliFallbackToken ?? undefined\n}\n","import { defineHandler, rethrowForRest } from '@kb-labs/sdk'\nimport type { CreatePRInput, CreatePROutput } from '@kb-labs/github-contracts'\nimport { resolveGithubToken } from '../lib/token.js'\n\nfunction headers(token?: string): Record<string, string> {\n const h: Record<string, string> = {\n Accept: 'application/vnd.github+json',\n 'Content-Type': 'application/json',\n 'X-GitHub-Api-Version': '2022-11-28',\n }\n const tok = resolveGithubToken(token)\n if (tok) h.Authorization = `Bearer ${tok}`\n return h\n}\n\nexport default defineHandler<unknown, CreatePRInput, CreatePROutput>({\n async execute(ctx, input) {\n try {\n const { owner, repo, title, body = '', head, base = 'main', issueNumber, labels = [], token } = input\n const hdrs = headers(token)\n\n const prBody = issueNumber ? `${body}\\n\\nCloses #${issueNumber}` : body\n\n const prRes = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/pulls`,\n {\n method: 'POST',\n headers: hdrs,\n body: JSON.stringify({ title, body: prBody, head, base }),\n },\n )\n if (!prRes.ok) throw new Error(`GitHub ${prRes.status}: ${await prRes.text()}`)\n\n const pr = await prRes.json() as Record<string, unknown>\n const prNumber = pr.number as number\n\n // Apply labels (non-critical)\n if (labels.length > 0) {\n await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/issues/${prNumber}/labels`,\n { method: 'POST', headers: hdrs, body: JSON.stringify({ labels }) },\n ).catch(() => undefined)\n }\n\n return {\n prNumber,\n url: pr.html_url as string,\n title: pr.title as string,\n }\n } catch (err) {\n rethrowForRest(err)\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/lib/token.ts","../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/handlers/fetch-issue.ts"],"names":[],"mappings":";;;;AAGA,IAAI,kBAAA;AAYG,SAAS,mBAAmB,KAAA,EAAoC;AACrE,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,MAAM,QAAA,GAAW,OAAO,uBAAuB,CAAA;AAC/C,EAAA,IAAI,UAAU,OAAO,QAAA;AAErB,EAAA,IAAI,uBAAuB,MAAA,EAAW;AACpC,IAAA,IAAI;AACF,MAAA,kBAAA,GAAqB,QAAA,CAAS,eAAA,EAAiB,EAAE,KAAA,EAAO,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAA,EAAG,CAAA,CACnF,QAAA,EAAS,CACT,MAAK,IAAK,IAAA;AAAA,IACf,CAAA,CAAA,MAAQ;AACN,MAAA,kBAAA,GAAqB,IAAA;AAAA,IACvB;AAAA,EACF;AAEA,EAAA,OAAO,kBAAA,IAAsB,MAAA;AAC/B;;;AC5BA,SAAS,QAAQ,KAAA,EAAwC;AACvD,EAAA,MAAM,CAAA,GAA4B;AAAA,IAChC,MAAA,EAAQ,6BAAA;AAAA,IACR,sBAAA,EAAwB;AAAA,GAC1B;AACA,EAAA,MAAM,GAAA,GAAM,mBAAmB,KAAK,CAAA;AACpC,EAAA,IAAI,GAAA,EAAK,CAAA,CAAE,aAAA,GAAgB,CAAA,OAAA,EAAU,GAAG,CAAA,CAAA;AACxC,EAAA,OAAO,CAAA;AACT;AAEA,IAAO,sBAAQ,aAAA,CAA0D;AAAA,EACvE,MAAM,OAAA,CAAQ,GAAA,EAAK,KAAA,EAAO;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,WAAA,EAAa,OAAM,GAAI,KAAA;AAE5C,MAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,OAAA,CAAQ,KAAA;AAAA,QAC5B,CAAA,6BAAA,EAAgC,KAAK,CAAA,CAAA,EAAI,IAAI,WAAW,WAAW,CAAA,CAAA;AAAA,QACnE,EAAE,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA;AAAE,OAC5B;AACA,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,MAAM,IAAI,KAAA,CAAM,CAAA,OAAA,EAAU,GAAA,CAAI,MAAM,CAAA,EAAA,EAAK,MAAM,GAAA,CAAI,IAAA,EAAM,CAAA,CAAE,CAAA;AAExE,MAAA,MAAM,KAAA,GAAQ,MAAM,GAAA,CAAI,IAAA,EAAK;AAC7B,MAAA,OAAO;AAAA,QACL,QAAQ,KAAA,CAAM,MAAA;AAAA,QACd,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,IAAA,EAAO,MAAM,IAAA,IAAQ,IAAA;AAAA,QACrB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,KAAK,KAAA,CAAM,QAAA;AAAA,QACX,MAAA,EAAA,CAAU,MAAM,MAAA,IAAsC,IAAI,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAI,CAAA;AAAA,QAC3E,MAAA,EAAS,KAAA,CAAM,IAAA,EAA4B,KAAA,IAAS;AAAA,OACtD;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,cAAA,CAAe,GAAG,CAAA;AAAA,IACpB;AAAA,EACF;AACF,CAAC","file":"fetch-issue.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { useEnv } from '@kb-labs/sdk'\n\nlet ghCliFallbackToken: string | null | undefined\n\n/**\n * Resolves the GitHub token to use for API calls.\n *\n * Precedence: explicit `token` argument > `GITHUB_WORKFLOW_TOKEN` env var >\n * `gh auth token` (the CLI's own cached auth). The env var is not guaranteed\n * to survive a daemon restart if the process that launched it never\n * exported one — falling back to `gh`'s own token avoids every GitHub step\n * failing with a silent 401 in that case. Cached per-process since `gh auth\n * token` shells out and the result doesn't change within a run.\n */\nexport function resolveGithubToken(token?: string): string | undefined {\n if (token) return token\n\n const envToken = useEnv('GITHUB_WORKFLOW_TOKEN')\n if (envToken) return envToken\n\n if (ghCliFallbackToken === undefined) {\n try {\n ghCliFallbackToken = execSync('gh auth token', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim() || null\n } catch {\n ghCliFallbackToken = null\n }\n }\n\n return ghCliFallbackToken ?? undefined\n}\n","import { defineHandler, rethrowForRest } from '@kb-labs/sdk'\nimport type { FetchIssueInput, FetchIssueOutput } from '@kb-labs/github-contracts'\nimport { resolveGithubToken } from '../lib/token.js'\n\nfunction headers(token?: string): Record<string, string> {\n const h: Record<string, string> = {\n Accept: 'application/vnd.github+json',\n 'X-GitHub-Api-Version': '2022-11-28',\n }\n const tok = resolveGithubToken(token)\n if (tok) h.Authorization = `Bearer ${tok}`\n return h\n}\n\nexport default defineHandler<unknown, FetchIssueInput, FetchIssueOutput>({\n async execute(ctx, input) {\n try {\n const { owner, repo, issueNumber, token } = input\n\n const res = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/issues/${issueNumber}`,\n { headers: headers(token) },\n )\n if (!res.ok) throw new Error(`GitHub ${res.status}: ${await res.text()}`)\n\n const issue = await res.json() as Record<string, unknown>\n return {\n number: issue.number as number,\n title: issue.title as string,\n body: (issue.body ?? null) as string | null,\n state: issue.state as string,\n url: issue.html_url as string,\n labels: ((issue.labels as Array<{ name: string }>) ?? []).map((l) => l.name),\n author: (issue.user as { login: string })?.login ?? '',\n }\n } catch (err) {\n rethrowForRest(err)\n }\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/lib/token.ts","../../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/handlers/post-comment.ts"],"names":[],"mappings":";;;;AAGA,IAAI,kBAAA;AAYG,SAAS,mBAAmB,KAAA,EAAoC;AACrE,EAAA,IAAI,OAAO,OAAO,KAAA;AAElB,EAAA,MAAM,QAAA,GAAW,OAAO,uBAAuB,CAAA;AAC/C,EAAA,IAAI,UAAU,OAAO,QAAA;AAErB,EAAA,IAAI,uBAAuB,MAAA,EAAW;AACpC,IAAA,IAAI;AACF,MAAA,kBAAA,GAAqB,QAAA,CAAS,eAAA,EAAiB,EAAE,KAAA,EAAO,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAA,EAAG,CAAA,CACnF,QAAA,EAAS,CACT,MAAK,IAAK,IAAA;AAAA,IACf,CAAA,CAAA,MAAQ;AACN,MAAA,kBAAA,GAAqB,IAAA;AAAA,IACvB;AAAA,EACF;AAEA,EAAA,OAAO,kBAAA,IAAsB,MAAA;AAC/B;;;AC5BA,SAAS,QAAQ,KAAA,EAAwC;AACvD,EAAA,MAAM,CAAA,GAA4B;AAAA,IAChC,MAAA,EAAQ,6BAAA;AAAA,IACR,cAAA,EAAgB,kBAAA;AAAA,IAChB,sBAAA,EAAwB;AAAA,GAC1B;AACA,EAAA,MAAM,GAAA,GAAM,mBAAmB,KAAK,CAAA;AACpC,EAAA,IAAI,GAAA,EAAK,CAAA,CAAE,aAAA,GAAgB,CAAA,OAAA,EAAU,GAAG,CAAA,CAAA;AACxC,EAAA,OAAO,CAAA;AACT;AAEA,IAAO,uBAAQ,aAAA,CAA4D;AAAA,EACzE,MAAM,OAAA,CAAQ,GAAA,EAAK,KAAA,EAAO;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,OAAM,GAAI,KAAA;AAElD,MAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,OAAA,CAAQ,KAAA;AAAA,QAC5B,CAAA,6BAAA,EAAgC,KAAK,CAAA,CAAA,EAAI,IAAI,WAAW,WAAW,CAAA,SAAA,CAAA;AAAA,QACnE,EAAE,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA,EAAG,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,CAAA;AAAE,OAC5E;AACA,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,MAAM,IAAI,KAAA,CAAM,CAAA,OAAA,EAAU,GAAA,CAAI,MAAM,CAAA,EAAA,EAAK,MAAM,GAAA,CAAI,IAAA,EAAM,CAAA,CAAE,CAAA;AAExE,MAAA,MAAM,OAAA,GAAU,MAAM,GAAA,CAAI,IAAA,EAAK;AAC/B,MAAA,OAAO;AAAA,QACL,WAAW,OAAA,CAAQ,EAAA;AAAA,QACnB,KAAK,OAAA,CAAQ;AAAA,OACf;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,cAAA,CAAe,GAAG,CAAA;AAAA,IACpB;AAAA,EACF;AACF,CAAC","file":"post-comment.js","sourcesContent":["import { execSync } from 'node:child_process'\nimport { useEnv } from '@kb-labs/sdk'\n\nlet ghCliFallbackToken: string | null | undefined\n\n/**\n * Resolves the GitHub token to use for API calls.\n *\n * Precedence: explicit `token` argument > `GITHUB_WORKFLOW_TOKEN` env var >\n * `gh auth token` (the CLI's own cached auth). The env var is not guaranteed\n * to survive a daemon restart if the process that launched it never\n * exported one — falling back to `gh`'s own token avoids every GitHub step\n * failing with a silent 401 in that case. Cached per-process since `gh auth\n * token` shells out and the result doesn't change within a run.\n */\nexport function resolveGithubToken(token?: string): string | undefined {\n if (token) return token\n\n const envToken = useEnv('GITHUB_WORKFLOW_TOKEN')\n if (envToken) return envToken\n\n if (ghCliFallbackToken === undefined) {\n try {\n ghCliFallbackToken = execSync('gh auth token', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim() || null\n } catch {\n ghCliFallbackToken = null\n }\n }\n\n return ghCliFallbackToken ?? undefined\n}\n","import { defineHandler, rethrowForRest } from '@kb-labs/sdk'\nimport type { PostCommentInput, PostCommentOutput } from '@kb-labs/github-contracts'\nimport { resolveGithubToken } from '../lib/token.js'\n\nfunction headers(token?: string): Record<string, string> {\n const h: Record<string, string> = {\n Accept: 'application/vnd.github+json',\n 'Content-Type': 'application/json',\n 'X-GitHub-Api-Version': '2022-11-28',\n }\n const tok = resolveGithubToken(token)\n if (tok) h.Authorization = `Bearer ${tok}`\n return h\n}\n\nexport default defineHandler<unknown, PostCommentInput, PostCommentOutput>({\n async execute(ctx, input) {\n try {\n const { owner, repo, issueNumber, body, token } = input\n\n const res = await ctx.runtime.fetch(\n `https://api.github.com/repos/${owner}/${repo}/issues/${issueNumber}/comments`,\n { method: 'POST', headers: headers(token), body: JSON.stringify({ body }) },\n )\n if (!res.ok) throw new Error(`GitHub ${res.status}: ${await res.text()}`)\n\n const comment = await res.json() as Record<string, unknown>\n return {\n commentId: comment.id as number,\n url: comment.html_url as string,\n }\n } catch (err) {\n rethrowForRest(err)\n }\n },\n})\n"]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/manifest.ts"],"names":[],"mappings":";;;AAEA,IAAM,oBAAoB,kBAAA,EAAmB,CAC1C,IAAA,CAAK,gBAAgB,EACrB,IAAA,CAAK;AAAA,EACJ,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,CAAC,0BAA0B;AAAA,GACpC;AAAA,EACA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAC,uBAAuB;AAAA;AAElC,CAAC,EACA,KAAA,EAAM;AAEF,IAAM,QAAA,GAAW;AAAA,EACtB,MAAA,EAAQ,aAAA;AAAA,EACR,EAAA,EAAI,iBAAA;AAAA,EACJ,OAAA,EAAS,OAAA;AAAA,EAET,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,kDAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,UAAU;AAAA,GAC5C;AAAA,EAEA,UAAU,EAAE,QAAA,EAAU,EAAC,EAAG,QAAA,EAAU,EAAC,EAAE;AAAA,EAEvC,SAAA,EAAW;AAAA,IACT,QAAA,EAAU;AAAA,MACR;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,OAAA,EAAS,wCAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,OAAA,EAAS,yCAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,OAAA,EAAS,0CAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,OAAA,EAAS,sCAAA;AAAA,QACT,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EAEA,WAAA,EAAa;AACf,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"index.js","sourcesContent":["import { combinePermissions, kbPlatformPreset } from '@kb-labs/sdk';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .with({\n network: {\n fetch: ['https://api.github.com/*'],\n },\n env: {\n read: ['GITHUB_WORKFLOW_TOKEN'],\n },\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3' as const,\n id: '@kb-labs/github',\n version: '0.1.0',\n\n display: {\n name: 'GitHub',\n description: 'GitHub integration for issues, PRs, and branches',\n tags: ['github', 'integration', 'workflow'],\n },\n\n platform: { requires: [], optional: [] },\n\n workflows: {\n handlers: [\n {\n id: 'fetch-issue',\n handler: './dist/handlers/fetch-issue.js#default',\n describe: 'Fetch a GitHub issue by number',\n },\n {\n id: 'post-comment',\n handler: './dist/handlers/post-comment.js#default',\n describe: 'Post a comment on a GitHub issue or PR',\n },\n {\n id: 'create-branch',\n handler: './dist/handlers/create-branch.js#default',\n describe: 'Create a new branch from a base branch',\n },\n {\n id: 'create-pr',\n handler: './dist/handlers/create-pr.js#default',\n describe: 'Create a pull request and optionally link it to an issue',\n },\n ],\n },\n\n permissions: pluginPermissions,\n} as const;\n\nexport default manifest;\n"]}
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/github/entry/src/manifest.ts"],"names":[],"mappings":";;;AAEA,IAAM,oBAAoB,kBAAA,EAAmB,CAC1C,IAAA,CAAK,gBAAgB,EACrB,IAAA,CAAK;AAAA,EACJ,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,CAAC,0BAA0B;AAAA,GACpC;AAAA,EACA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAC,uBAAuB;AAAA;AAElC,CAAC,EACA,KAAA,EAAM;AAEF,IAAM,QAAA,GAAW;AAAA,EACtB,MAAA,EAAQ,aAAA;AAAA,EACR,EAAA,EAAI,iBAAA;AAAA,EACJ,OAAA,EAAS,OAAA;AAAA,EAET,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,kDAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,UAAU;AAAA,GAC5C;AAAA,EAEA,UAAU,EAAE,QAAA,EAAU,EAAC,EAAG,QAAA,EAAU,EAAC,EAAE;AAAA,EAEvC,SAAA,EAAW;AAAA,IACT,QAAA,EAAU;AAAA,MACR;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,OAAA,EAAS,wCAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,OAAA,EAAS,yCAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,OAAA,EAAS,0CAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,OAAA,EAAS,sCAAA;AAAA,QACT,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EAEA,WAAA,EAAa;AACf;AAEA,IAAO,gBAAA,GAAQ","file":"manifest.js","sourcesContent":["import { combinePermissions, kbPlatformPreset } from '@kb-labs/sdk';\n\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .with({\n network: {\n fetch: ['https://api.github.com/*'],\n },\n env: {\n read: ['GITHUB_WORKFLOW_TOKEN'],\n },\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3' as const,\n id: '@kb-labs/github',\n version: '0.1.0',\n\n display: {\n name: 'GitHub',\n description: 'GitHub integration for issues, PRs, and branches',\n tags: ['github', 'integration', 'workflow'],\n },\n\n platform: { requires: [], optional: [] },\n\n workflows: {\n handlers: [\n {\n id: 'fetch-issue',\n handler: './dist/handlers/fetch-issue.js#default',\n describe: 'Fetch a GitHub issue by number',\n },\n {\n id: 'post-comment',\n handler: './dist/handlers/post-comment.js#default',\n describe: 'Post a comment on a GitHub issue or PR',\n },\n {\n id: 'create-branch',\n handler: './dist/handlers/create-branch.js#default',\n describe: 'Create a new branch from a base branch',\n },\n {\n id: 'create-pr',\n handler: './dist/handlers/create-pr.js#default',\n describe: 'Create a pull request and optionally link it to an issue',\n },\n ],\n },\n\n permissions: pluginPermissions,\n} as const;\n\nexport default manifest;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/github-entry",
|
|
3
|
-
"version": "2.119.0-canary.
|
|
3
|
+
"version": "2.119.0-canary.ce846d079",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Manifest and workflow handlers for the GitHub plugin",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
],
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@kb-labs/github-contracts": "2.119.0-canary.
|
|
26
|
+
"@kb-labs/github-contracts": "2.119.0-canary.ce846d079",
|
|
27
27
|
"@kb-labs/sdk": "2.115.4"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"tsup": "^8.5.0",
|
|
33
33
|
"typescript": "^5.6.3",
|
|
34
34
|
"vitest": "^3.2.6",
|
|
35
|
-
"@kb-labs/devkit": "2.119.0-canary.
|
|
35
|
+
"@kb-labs/devkit": "2.119.0-canary.ce846d079"
|
|
36
36
|
},
|
|
37
37
|
"engines": {
|
|
38
38
|
"node": ">=22.0.0",
|
package/dist/manifest.json
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema": "kb.plugin/3",
|
|
3
|
-
"id": "@kb-labs/github",
|
|
4
|
-
"version": "0.1.0",
|
|
5
|
-
"display": {
|
|
6
|
-
"name": "GitHub",
|
|
7
|
-
"description": "GitHub integration for issues, PRs, and branches",
|
|
8
|
-
"tags": [
|
|
9
|
-
"github",
|
|
10
|
-
"integration",
|
|
11
|
-
"workflow"
|
|
12
|
-
]
|
|
13
|
-
},
|
|
14
|
-
"platform": {
|
|
15
|
-
"requires": [],
|
|
16
|
-
"optional": []
|
|
17
|
-
},
|
|
18
|
-
"workflows": {
|
|
19
|
-
"handlers": [
|
|
20
|
-
{
|
|
21
|
-
"id": "fetch-issue",
|
|
22
|
-
"handler": "./dist/handlers/fetch-issue.js#default",
|
|
23
|
-
"describe": "Fetch a GitHub issue by number"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"id": "post-comment",
|
|
27
|
-
"handler": "./dist/handlers/post-comment.js#default",
|
|
28
|
-
"describe": "Post a comment on a GitHub issue or PR"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"id": "create-branch",
|
|
32
|
-
"handler": "./dist/handlers/create-branch.js#default",
|
|
33
|
-
"describe": "Create a new branch from a base branch"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"id": "create-pr",
|
|
37
|
-
"handler": "./dist/handlers/create-pr.js#default",
|
|
38
|
-
"describe": "Create a pull request and optionally link it to an issue"
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
"permissions": {
|
|
43
|
-
"fs": {
|
|
44
|
-
"read": [
|
|
45
|
-
".kb/**"
|
|
46
|
-
],
|
|
47
|
-
"write": [
|
|
48
|
-
".kb/**"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"env": {
|
|
52
|
-
"read": [
|
|
53
|
-
"HOME",
|
|
54
|
-
"USER",
|
|
55
|
-
"PATH",
|
|
56
|
-
"TMPDIR",
|
|
57
|
-
"NODE_ENV",
|
|
58
|
-
"KB_*",
|
|
59
|
-
"GITHUB_WORKFLOW_TOKEN"
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
"network": {
|
|
63
|
-
"fetch": [
|
|
64
|
-
"https://api.github.com/*"
|
|
65
|
-
]
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|