@ghx-dev/core 0.2.0 → 0.2.1
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/.claude-plugin/plugin.json +2 -2
- package/README.md +44 -37
- package/dist/cards/issue.assignees.add.yaml +1 -0
- package/dist/cards/issue.assignees.remove.yaml +1 -0
- package/dist/cards/issue.assignees.set.yaml +1 -0
- package/dist/cards/issue.close.yaml +1 -0
- package/dist/cards/issue.comments.create.yaml +1 -0
- package/dist/cards/issue.comments.list.yaml +1 -0
- package/dist/cards/issue.create.yaml +1 -0
- package/dist/cards/issue.delete.yaml +1 -0
- package/dist/cards/issue.labels.add.yaml +1 -0
- package/dist/cards/issue.labels.remove.yaml +1 -0
- package/dist/cards/issue.labels.set.yaml +1 -0
- package/dist/cards/issue.list.yaml +1 -0
- package/dist/cards/issue.milestone.clear.yaml +1 -0
- package/dist/cards/issue.milestone.set.yaml +1 -0
- package/dist/cards/issue.relations.blocked_by.add.yaml +1 -0
- package/dist/cards/issue.relations.blocked_by.remove.yaml +1 -0
- package/dist/cards/issue.relations.parent.remove.yaml +1 -0
- package/dist/cards/issue.relations.parent.set.yaml +1 -0
- package/dist/cards/issue.relations.prs.list.yaml +1 -0
- package/dist/cards/issue.relations.view.yaml +1 -0
- package/dist/cards/issue.reopen.yaml +1 -0
- package/dist/cards/issue.update.yaml +1 -0
- package/dist/cards/issue.view.yaml +1 -0
- package/dist/cards/pr.assignees.add.yaml +6 -2
- package/dist/cards/pr.assignees.remove.yaml +6 -2
- package/dist/cards/pr.branch.update.yaml +6 -2
- package/dist/cards/pr.create.yaml +7 -3
- package/dist/cards/pr.diff.files.yaml +1 -0
- package/dist/cards/pr.list.yaml +1 -0
- package/dist/cards/pr.merge.status.yaml +1 -0
- package/dist/cards/pr.merge.yaml +9 -3
- package/dist/cards/pr.reviews.list.yaml +1 -0
- package/dist/cards/pr.reviews.request.yaml +6 -3
- package/dist/cards/pr.reviews.submit.yaml +1 -0
- package/dist/cards/pr.threads.list.yaml +1 -0
- package/dist/cards/pr.threads.reply.yaml +1 -0
- package/dist/cards/pr.threads.resolve.yaml +1 -0
- package/dist/cards/pr.threads.unresolve.yaml +1 -0
- package/dist/cards/pr.update.yaml +7 -2
- package/dist/cards/pr.view.yaml +1 -0
- package/dist/cards/project_v2.fields.list.yaml +18 -2
- package/dist/cards/project_v2.items.field.update.yaml +8 -5
- package/dist/cards/project_v2.items.issue.add.yaml +9 -5
- package/dist/cards/project_v2.items.issue.remove.yaml +8 -5
- package/dist/cards/project_v2.items.list.yaml +8 -2
- package/dist/cards/project_v2.org.view.yaml +6 -2
- package/dist/cards/project_v2.user.view.yaml +6 -2
- package/dist/cards/release.list.yaml +8 -3
- package/dist/cards/release.view.yaml +8 -4
- package/dist/cards/repo.issue_types.list.yaml +7 -3
- package/dist/cards/repo.labels.list.yaml +7 -2
- package/dist/cards/repo.view.yaml +1 -0
- package/dist/chunk-7HUKYNI2.js +536 -0
- package/dist/chunk-7HUKYNI2.js.map +1 -0
- package/dist/chunk-GQO6BHJV.js +98 -0
- package/dist/chunk-GQO6BHJV.js.map +1 -0
- package/dist/chunk-H7CLZHRO.js +280 -0
- package/dist/chunk-H7CLZHRO.js.map +1 -0
- package/dist/{chunk-3P3KHWFU.js → chunk-M5PJLKL5.js} +1079 -726
- package/dist/chunk-M5PJLKL5.js.map +1 -0
- package/dist/chunk-NQ53ETYV.js +128 -0
- package/dist/chunk-NQ53ETYV.js.map +1 -0
- package/dist/{chunk-BIWBJA2F.js → chunk-OQWLEFAH.js} +220 -12
- package/dist/chunk-OQWLEFAH.js.map +1 -0
- package/dist/{chunk-Q7RCIK2C.js → chunk-Q2NW7DJE.js} +167 -62
- package/dist/chunk-Q2NW7DJE.js.map +1 -0
- package/dist/{pr-queries-UOEOXIJQ.js → chunk-QRHKAMRY.js} +11 -131
- package/dist/chunk-QRHKAMRY.js.map +1 -0
- package/dist/{issue-queries-GRA4MKPD.js → chunk-TGL33GEA.js} +7 -83
- package/dist/chunk-TGL33GEA.js.map +1 -0
- package/dist/chunk-ZGBVX2VG.js +32 -0
- package/dist/chunk-ZGBVX2VG.js.map +1 -0
- package/dist/cli/index.js +79 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/core/registry/cards/issue.assignees.add.yaml +1 -0
- package/dist/core/registry/cards/issue.assignees.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.assignees.set.yaml +1 -0
- package/dist/core/registry/cards/issue.close.yaml +1 -0
- package/dist/core/registry/cards/issue.comments.create.yaml +1 -0
- package/dist/core/registry/cards/issue.comments.list.yaml +1 -0
- package/dist/core/registry/cards/issue.create.yaml +1 -0
- package/dist/core/registry/cards/issue.delete.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.add.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.set.yaml +1 -0
- package/dist/core/registry/cards/issue.list.yaml +1 -0
- package/dist/core/registry/cards/issue.milestone.clear.yaml +1 -0
- package/dist/core/registry/cards/issue.milestone.set.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.blocked_by.add.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.blocked_by.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.parent.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.parent.set.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.prs.list.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.view.yaml +1 -0
- package/dist/core/registry/cards/issue.reopen.yaml +1 -0
- package/dist/core/registry/cards/issue.update.yaml +1 -0
- package/dist/core/registry/cards/issue.view.yaml +1 -0
- package/dist/core/registry/cards/pr.assignees.add.yaml +6 -2
- package/dist/core/registry/cards/pr.assignees.remove.yaml +6 -2
- package/dist/core/registry/cards/pr.branch.update.yaml +6 -2
- package/dist/core/registry/cards/pr.create.yaml +7 -3
- package/dist/core/registry/cards/pr.diff.files.yaml +1 -0
- package/dist/core/registry/cards/pr.list.yaml +1 -0
- package/dist/core/registry/cards/pr.merge.status.yaml +1 -0
- package/dist/core/registry/cards/pr.merge.yaml +9 -3
- package/dist/core/registry/cards/pr.reviews.list.yaml +1 -0
- package/dist/core/registry/cards/pr.reviews.request.yaml +6 -3
- package/dist/core/registry/cards/pr.reviews.submit.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.list.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.reply.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.resolve.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.unresolve.yaml +1 -0
- package/dist/core/registry/cards/pr.update.yaml +7 -2
- package/dist/core/registry/cards/pr.view.yaml +1 -0
- package/dist/core/registry/cards/project_v2.fields.list.yaml +18 -2
- package/dist/core/registry/cards/project_v2.items.field.update.yaml +8 -5
- package/dist/core/registry/cards/project_v2.items.issue.add.yaml +9 -5
- package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +8 -5
- package/dist/core/registry/cards/project_v2.items.list.yaml +8 -2
- package/dist/core/registry/cards/project_v2.org.view.yaml +6 -2
- package/dist/core/registry/cards/project_v2.user.view.yaml +6 -2
- package/dist/core/registry/cards/release.list.yaml +8 -3
- package/dist/core/registry/cards/release.view.yaml +8 -4
- package/dist/core/registry/cards/repo.issue_types.list.yaml +7 -3
- package/dist/core/registry/cards/repo.labels.list.yaml +7 -2
- package/dist/core/registry/cards/repo.view.yaml +1 -0
- package/dist/index.d.ts +297 -0
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/{issue-mutations-FJNZW7L5.js → issue-mutations-OW464JP3.js} +97 -120
- package/dist/issue-mutations-OW464JP3.js.map +1 -0
- package/dist/issue-queries-ORG3VPK4.js +93 -0
- package/dist/issue-queries-ORG3VPK4.js.map +1 -0
- package/dist/{pr-mutations-UG67YOF5.js → pr-mutations-WOTG6FAB.js} +234 -94
- package/dist/pr-mutations-WOTG6FAB.js.map +1 -0
- package/dist/pr-queries-6CJJW7BT.js +143 -0
- package/dist/pr-queries-6CJJW7BT.js.map +1 -0
- package/dist/project-QFSCYDDW.js +429 -0
- package/dist/project-QFSCYDDW.js.map +1 -0
- package/dist/release-33236BBA.js +57 -0
- package/dist/release-33236BBA.js.map +1 -0
- package/dist/repo-M6DKCWBG.js +82 -0
- package/dist/repo-M6DKCWBG.js.map +1 -0
- package/package.json +6 -6
- package/skills/using-ghx/SKILL.md +76 -10
- package/dist/chunk-3P3KHWFU.js.map +0 -1
- package/dist/chunk-BIWBJA2F.js.map +0 -1
- package/dist/chunk-Q7RCIK2C.js.map +0 -1
- package/dist/chunk-TDABI6C7.js +0 -167
- package/dist/chunk-TDABI6C7.js.map +0 -1
- package/dist/issue-mutations-FJNZW7L5.js.map +0 -1
- package/dist/issue-queries-GRA4MKPD.js.map +0 -1
- package/dist/pr-mutations-UG67YOF5.js.map +0 -1
- package/dist/pr-queries-UOEOXIJQ.js.map +0 -1
- package/dist/repo-JDUHFPZF.js +0 -66
- package/dist/repo-JDUHFPZF.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/gql/domains/repo.ts"],"sourcesContent":["import { assertRepoAndPaginationInput, assertRepoInput } from \"../assertions.js\"\nimport type { RepoIssueTypesListQuery } from \"../operations/repo-issue-types-list.generated.js\"\nimport { getSdk as getRepoIssueTypesListSdk } from \"../operations/repo-issue-types-list.generated.js\"\nimport type { RepoLabelsListQuery } from \"../operations/repo-labels-list.generated.js\"\nimport { getSdk as getRepoLabelsListSdk } from \"../operations/repo-labels-list.generated.js\"\nimport type { RepoViewQuery } from \"../operations/repo-view.generated.js\"\nimport { getSdk } from \"../operations/repo-view.generated.js\"\nimport type { GraphqlTransport } from \"../transport.js\"\nimport { createGraphqlRequestClient } from \"../transport.js\"\nimport type {\n RepoIssueTypesListData,\n RepoIssueTypesListInput,\n RepoLabelsListData,\n RepoLabelsListInput,\n RepoViewData,\n RepoViewInput,\n} from \"../types.js\"\n\nexport async function runRepoView(\n transport: GraphqlTransport,\n input: RepoViewInput,\n): Promise<RepoViewData> {\n assertRepoInput(input)\n const sdk = getSdk(createGraphqlRequestClient(transport))\n const result: RepoViewQuery = await sdk.RepoView(input)\n if (!result.repository) {\n throw new Error(\"Repository not found\")\n }\n\n return {\n id: result.repository.id,\n name: result.repository.name,\n nameWithOwner: result.repository.nameWithOwner,\n isPrivate: result.repository.isPrivate,\n stargazerCount: result.repository.stargazerCount,\n forkCount: result.repository.forkCount,\n url: result.repository.url,\n defaultBranch: result.repository.defaultBranchRef?.name ?? null,\n }\n}\n\nexport async function runRepoLabelsList(\n transport: GraphqlTransport,\n input: RepoLabelsListInput,\n): Promise<RepoLabelsListData> {\n assertRepoAndPaginationInput(input)\n const sdk = getRepoLabelsListSdk(createGraphqlRequestClient(transport))\n const result: RepoLabelsListQuery = await sdk.RepoLabelsList(input)\n if (!result.repository) {\n throw new Error(`Repository ${input.owner}/${input.name} not found`)\n }\n const conn = result.repository?.labels\n return {\n items: (conn?.nodes ?? []).map((n) => ({\n id: n?.id ?? null,\n name: n?.name ?? null,\n description: n?.description ?? null,\n color: n?.color ?? null,\n isDefault: n?.isDefault ?? null,\n })),\n pageInfo: {\n hasNextPage: conn?.pageInfo.hasNextPage ?? false,\n endCursor: conn?.pageInfo.endCursor ?? null,\n },\n }\n}\n\nexport async function runRepoIssueTypesList(\n transport: GraphqlTransport,\n input: RepoIssueTypesListInput,\n): Promise<RepoIssueTypesListData> {\n assertRepoAndPaginationInput(input)\n const sdk = getRepoIssueTypesListSdk(createGraphqlRequestClient(transport))\n const result: RepoIssueTypesListQuery = await sdk.RepoIssueTypesList(input)\n if (!result.repository) {\n throw new Error(`Repository ${input.owner}/${input.name} not found`)\n }\n const conn = result.repository?.issueTypes\n return {\n items: (conn?.nodes ?? []).map((n) => ({\n id: n?.id ?? null,\n name: n?.name ?? null,\n color: n?.color != null ? String(n.color) : null,\n isEnabled: n?.isEnabled ?? null,\n })),\n pageInfo: {\n hasNextPage: conn?.pageInfo.hasNextPage ?? false,\n endCursor: conn?.pageInfo.endCursor ?? null,\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,eAAsB,YACpB,WACA,OACuB;AACvB,kBAAgB,KAAK;AACrB,QAAM,MAAMA,QAAO,2BAA2B,SAAS,CAAC;AACxD,QAAM,SAAwB,MAAM,IAAI,SAAS,KAAK;AACtD,MAAI,CAAC,OAAO,YAAY;AACtB,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,SAAO;AAAA,IACL,IAAI,OAAO,WAAW;AAAA,IACtB,MAAM,OAAO,WAAW;AAAA,IACxB,eAAe,OAAO,WAAW;AAAA,IACjC,WAAW,OAAO,WAAW;AAAA,IAC7B,gBAAgB,OAAO,WAAW;AAAA,IAClC,WAAW,OAAO,WAAW;AAAA,IAC7B,KAAK,OAAO,WAAW;AAAA,IACvB,eAAe,OAAO,WAAW,kBAAkB,QAAQ;AAAA,EAC7D;AACF;AAEA,eAAsB,kBACpB,WACA,OAC6B;AAC7B,+BAA6B,KAAK;AAClC,QAAM,MAAMA,QAAqB,2BAA2B,SAAS,CAAC;AACtE,QAAM,SAA8B,MAAM,IAAI,eAAe,KAAK;AAClE,MAAI,CAAC,OAAO,YAAY;AACtB,UAAM,IAAI,MAAM,cAAc,MAAM,KAAK,IAAI,MAAM,IAAI,YAAY;AAAA,EACrE;AACA,QAAM,OAAO,OAAO,YAAY;AAChC,SAAO;AAAA,IACL,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;AAAA,MACrC,IAAI,GAAG,MAAM;AAAA,MACb,MAAM,GAAG,QAAQ;AAAA,MACjB,aAAa,GAAG,eAAe;AAAA,MAC/B,OAAO,GAAG,SAAS;AAAA,MACnB,WAAW,GAAG,aAAa;AAAA,IAC7B,EAAE;AAAA,IACF,UAAU;AAAA,MACR,aAAa,MAAM,SAAS,eAAe;AAAA,MAC3C,WAAW,MAAM,SAAS,aAAa;AAAA,IACzC;AAAA,EACF;AACF;AAEA,eAAsB,sBACpB,WACA,OACiC;AACjC,+BAA6B,KAAK;AAClC,QAAM,MAAM,OAAyB,2BAA2B,SAAS,CAAC;AAC1E,QAAM,SAAkC,MAAM,IAAI,mBAAmB,KAAK;AAC1E,MAAI,CAAC,OAAO,YAAY;AACtB,UAAM,IAAI,MAAM,cAAc,MAAM,KAAK,IAAI,MAAM,IAAI,YAAY;AAAA,EACrE;AACA,QAAM,OAAO,OAAO,YAAY;AAChC,SAAO;AAAA,IACL,QAAQ,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;AAAA,MACrC,IAAI,GAAG,MAAM;AAAA,MACb,MAAM,GAAG,QAAQ;AAAA,MACjB,OAAO,GAAG,SAAS,OAAO,OAAO,EAAE,KAAK,IAAI;AAAA,MAC5C,WAAW,GAAG,aAAa;AAAA,IAC7B,EAAE;AAAA,IACF,UAAU;AAAA,MACR,aAAa,MAAM,SAAS,eAAe;AAAA,MAC3C,WAAW,MAAM,SAAS,aAAa;AAAA,IACzC;AAAA,EACF;AACF;","names":["getSdk"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ghx-dev/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "GitHub execution router for AI agents with deterministic routing and normalized output.",
|
|
5
5
|
"author": "Arye Kogan",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,13 +71,13 @@
|
|
|
71
71
|
"js-yaml": "^4.1.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@graphql-codegen/cli": "^6.1.
|
|
74
|
+
"@graphql-codegen/cli": "^6.1.2",
|
|
75
75
|
"@graphql-codegen/near-operation-file-preset": "^4.0.0",
|
|
76
|
-
"@graphql-codegen/schema-ast": "^
|
|
77
|
-
"@graphql-codegen/typescript": "^5.0.
|
|
76
|
+
"@graphql-codegen/schema-ast": "^5.0.0",
|
|
77
|
+
"@graphql-codegen/typescript": "^5.0.8",
|
|
78
78
|
"@graphql-codegen/typescript-graphql-request": "^6.3.0",
|
|
79
|
-
"@graphql-codegen/typescript-operations": "^5.0.
|
|
80
|
-
"@opencode-ai/sdk": "^1.2.
|
|
79
|
+
"@graphql-codegen/typescript-operations": "^5.0.8",
|
|
80
|
+
"@opencode-ai/sdk": "^1.2.10",
|
|
81
81
|
"@types/js-yaml": "^4.0.9",
|
|
82
82
|
"@types/node": "^25.2.3",
|
|
83
83
|
"@vitest/coverage-v8": "^2.1.8",
|
|
@@ -6,18 +6,84 @@ description: Execute GitHub operations via ghx — deterministic routing, normal
|
|
|
6
6
|
|
|
7
7
|
**CRITICAL:** Use `ghx` for ALL GitHub operations. Do not use `gh api` or any other raw `gh` commands unless no matching ghx capability exists.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Capabilities
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
All available capabilities (`id - description [inputs]`, `?` = optional):
|
|
12
12
|
|
|
13
|
-
```
|
|
14
|
-
|
|
13
|
+
```
|
|
14
|
+
repo.view - Fetch repository metadata. [owner, name]
|
|
15
|
+
repo.labels.list - List repository labels. [owner, name, first?, after?]
|
|
16
|
+
repo.issue_types.list - List repository issue types. [owner, name, first?, after?]
|
|
17
|
+
issue.view - Fetch one issue by number. [owner, name, issueNumber]
|
|
18
|
+
issue.list - List repository issues. [owner, name, state?, first?, after?]
|
|
19
|
+
issue.comments.list - List comments for one issue. [owner, name, issueNumber, first, after?]
|
|
20
|
+
issue.create - Create a new issue. [owner, name, title, body?]
|
|
21
|
+
issue.update - Update issue title and/or body. [owner, name, issueNumber, title?, body?]
|
|
22
|
+
issue.close - Close an issue. [owner, name, issueNumber]
|
|
23
|
+
issue.reopen - Reopen a closed issue. [owner, name, issueNumber]
|
|
24
|
+
issue.delete - Delete an issue. [owner, name, issueNumber]
|
|
25
|
+
issue.labels.set - Replace issue labels. [owner, name, issueNumber, labels]
|
|
26
|
+
issue.labels.add - Add labels to an issue without removing existing labels. [owner, name, issueNumber, labels]
|
|
27
|
+
issue.labels.remove - Remove specific labels from an issue. [owner, name, issueNumber, labels]
|
|
28
|
+
issue.assignees.set - Replace issue assignees. [owner, name, issueNumber, assignees]
|
|
29
|
+
issue.assignees.add - Add assignees to an issue without replacing existing ones. [owner, name, issueNumber, assignees]
|
|
30
|
+
issue.assignees.remove - Remove specific assignees from an issue. [owner, name, issueNumber, assignees]
|
|
31
|
+
issue.milestone.set - Set issue milestone number or clear with null. [owner, name, issueNumber, milestoneNumber]
|
|
32
|
+
issue.milestone.clear - Remove the milestone from an issue. [owner, name, issueNumber]
|
|
33
|
+
issue.comments.create - Create an issue comment. [owner, name, issueNumber, body]
|
|
34
|
+
issue.relations.prs.list - List pull requests linked to an issue. [owner, name, issueNumber]
|
|
35
|
+
issue.relations.view - Get issue parent/children/blocking relations. [owner, name, issueNumber]
|
|
36
|
+
issue.relations.parent.set - Set an issue parent relation. [issueId, parentIssueId]
|
|
37
|
+
issue.relations.parent.remove - Remove an issue parent relation. [issueId]
|
|
38
|
+
issue.relations.blocked_by.add - Add a blocked-by relation for an issue. [issueId, blockedByIssueId]
|
|
39
|
+
issue.relations.blocked_by.remove - Remove a blocked-by relation for an issue. [issueId, blockedByIssueId]
|
|
40
|
+
pr.view - Fetch one pull request by number. [owner, name, prNumber]
|
|
41
|
+
pr.list - List repository pull requests. [owner, name, state?, first?, after?]
|
|
42
|
+
pr.create - Create a pull request. [owner, name, title, head, base, body?, draft?]
|
|
43
|
+
pr.update - Update pull request metadata (title, body, draft status). [owner, name, prNumber, title?, body?, draft?]
|
|
44
|
+
pr.threads.list - List PR review threads. [owner, name, prNumber, first?, after?, unresolvedOnly? (default true), includeOutdated? default false]
|
|
45
|
+
pr.threads.reply - Reply to a PR review thread. [threadId, body]
|
|
46
|
+
pr.threads.resolve - Resolve a PR review thread. [threadId]
|
|
47
|
+
pr.threads.unresolve - Unresolve a PR review thread. [threadId]
|
|
48
|
+
pr.reviews.list - List PR reviews (state, author, body). Review-level only — use pr.threads.list for inline comments. [owner, name, prNumber, first?, after?]
|
|
49
|
+
pr.reviews.request - Request PR reviewers. [owner, name, prNumber, reviewers]
|
|
50
|
+
pr.reviews.submit - Submit a PR review (approve/request-changes/comment). Non-empty body required for COMMENT and REQUEST_CHANGES. [owner, name, prNumber, event, body?, comments?[path, body, line, side?, startLine?, startSide?]]
|
|
51
|
+
pr.diff.files - List changed files in a PR diff. [owner, name, prNumber, first?, after?]
|
|
52
|
+
pr.diff.view - View the unified diff for a PR. [owner, name, prNumber]
|
|
53
|
+
pr.checks.list - List PR check statuses with summary counts. [owner, name, prNumber, state?]
|
|
54
|
+
pr.checks.rerun.failed - Rerun failed PR workflow checks for a selected run. [owner, name, prNumber, runId]
|
|
55
|
+
pr.checks.rerun.all - Rerun all PR workflow checks for a selected run. [owner, name, prNumber, runId]
|
|
56
|
+
pr.merge.status - View PR mergeability and readiness signals. [owner, name, prNumber]
|
|
57
|
+
pr.merge - Execute a PR merge. [owner, name, prNumber, method?, deleteBranch?]
|
|
58
|
+
pr.assignees.add - Add assignees to a PR without replacing existing ones. [owner, name, prNumber, assignees]
|
|
59
|
+
pr.assignees.remove - Remove specific assignees from a PR. [owner, name, prNumber, assignees]
|
|
60
|
+
pr.branch.update - Update PR branch with latest base branch changes. [owner, name, prNumber]
|
|
61
|
+
workflow.list - List repository workflows. [owner, name, first?]
|
|
62
|
+
workflow.view - View one repository workflow. [owner, name, workflowId]
|
|
63
|
+
workflow.dispatch - Trigger a workflow dispatch event. [owner, name, workflowId, ref, inputs?]
|
|
64
|
+
workflow.runs.list - List workflow runs for a repository. [owner, name, first?, branch?, event?, status?]
|
|
65
|
+
workflow.run.view - View a workflow run with its jobs. [owner, name, runId]
|
|
66
|
+
workflow.run.cancel - Cancel a workflow run. [owner, name, runId]
|
|
67
|
+
workflow.run.rerun.all - Rerun all jobs in a workflow run. [owner, name, runId]
|
|
68
|
+
workflow.run.rerun.failed - Rerun failed jobs for a workflow run. [owner, name, runId]
|
|
69
|
+
workflow.run.artifacts.list - List artifacts for a workflow run. [owner, name, runId]
|
|
70
|
+
workflow.job.logs.view - Fetch and analyze workflow job logs. [owner, name, jobId]
|
|
71
|
+
workflow.job.logs.raw - Fetch raw (unprocessed) logs for a workflow job. [owner, name, jobId]
|
|
72
|
+
project_v2.org.view - Get an organization Projects v2 project. [org, projectNumber]
|
|
73
|
+
project_v2.user.view - Get a user Projects v2 project. [user, projectNumber]
|
|
74
|
+
project_v2.fields.list - List fields for a Projects v2 project. [owner, projectNumber, first?, after?]
|
|
75
|
+
project_v2.items.list - List items in a Projects v2 project. [owner, projectNumber, first?, after?]
|
|
76
|
+
project_v2.items.issue.add - Add an issue to a Projects v2 project. [owner, projectNumber, issueUrl]
|
|
77
|
+
project_v2.items.issue.remove - Remove an issue from a Projects v2 project. [owner, projectNumber, itemId]
|
|
78
|
+
project_v2.items.field.update - Update a field on a Projects v2 project item. [projectId, itemId, fieldId, valueText?, valueNumber?, valueDate?, valueSingleSelectOptionId?, valueIterationId?, clear?]
|
|
79
|
+
release.list - List releases for a repository. [owner, name, first?, after?]
|
|
80
|
+
release.view - Get release details by tag name. [owner, name, tagName]
|
|
81
|
+
release.create - Create a draft release. [owner, name, tagName, title?, notes?, targetCommitish?, prerelease?]
|
|
82
|
+
release.update - Update a draft release without publishing it. [owner, name, releaseId, tagName?, title?, notes?, targetCommitish?, prerelease?, draft?]
|
|
83
|
+
release.publish - Publish an existing draft release. [owner, name, releaseId, title?, notes?, prerelease?]
|
|
15
84
|
```
|
|
16
85
|
|
|
17
|
-
|
|
18
|
-
Required inputs shown in brackets (e.g. `[owner, name, prNumber]`).
|
|
19
|
-
|
|
20
|
-
Only if you need the full input/output schema for a specific capability:
|
|
86
|
+
Only if the full input/output schema of a specific capability needed:
|
|
21
87
|
|
|
22
88
|
```bash
|
|
23
89
|
ghx capabilities explain <capability_id>
|
|
@@ -41,7 +107,7 @@ ghx run pr.reviews.submit --input - <<'EOF'
|
|
|
41
107
|
EOF
|
|
42
108
|
```
|
|
43
109
|
|
|
44
|
-
Result
|
|
110
|
+
**Result (compact, default):** `{ ok, data?, pagination? }` on success — `{ ok, error: { code, message } }` on failure.
|
|
45
111
|
|
|
46
112
|
## Chain
|
|
47
113
|
|
|
@@ -56,6 +122,6 @@ ghx chain --steps - <<'EOF'
|
|
|
56
122
|
EOF
|
|
57
123
|
```
|
|
58
124
|
|
|
59
|
-
**Result:** `{ status, results[]
|
|
125
|
+
**Result:** `{ status, results[] }`. Each result: `{ task, ok, data? }` on success — `{ task, ok, error: { code, message } }` on failure.
|
|
60
126
|
|
|
61
127
|
**CRITICAL:** Do not use `gh api` or any other raw `gh` commands unless no matching ghx capability exists. Always try `ghx` first.
|