@ghx-dev/core 0.1.2 → 0.2.0
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 +21 -0
- package/README.md +12 -15
- package/dist/cards/issue.assignees.add.yaml +50 -0
- package/dist/cards/issue.assignees.remove.yaml +50 -0
- package/dist/cards/issue.assignees.set.yaml +47 -0
- package/dist/cards/issue.close.yaml +16 -2
- package/dist/cards/issue.comments.create.yaml +16 -2
- package/dist/cards/issue.create.yaml +11 -0
- package/dist/cards/issue.delete.yaml +16 -2
- package/dist/cards/issue.labels.add.yaml +48 -0
- package/dist/cards/issue.labels.remove.yaml +50 -0
- package/dist/cards/issue.labels.set.yaml +47 -0
- package/dist/cards/issue.milestone.clear.yaml +40 -0
- package/dist/cards/issue.milestone.set.yaml +23 -4
- package/dist/{core/registry/cards/issue.blocked_by.add.yaml → cards/issue.relations.blocked_by.add.yaml} +3 -2
- package/dist/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +1 -1
- package/dist/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +11 -1
- package/dist/{core/registry/cards/issue.parent.set.yaml → cards/issue.relations.parent.set.yaml} +3 -2
- package/dist/{core/registry/cards/issue.linked_prs.list.yaml → cards/issue.relations.prs.list.yaml} +1 -1
- package/dist/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +1 -1
- package/dist/cards/issue.reopen.yaml +16 -2
- package/dist/cards/issue.update.yaml +16 -2
- package/dist/cards/issue.view.yaml +7 -5
- package/dist/cards/{pr.review.submit_approve.yaml → pr.assignees.add.yaml} +12 -9
- package/dist/cards/pr.assignees.remove.yaml +29 -0
- package/dist/{core/registry/cards/pr.status.checks.yaml → cards/pr.checks.list.yaml} +15 -2
- package/dist/{core/registry/cards/pr.checks.rerun_all.yaml → cards/pr.checks.rerun.all.yaml} +2 -4
- package/dist/{core/registry/cards/pr.checks.rerun_failed.yaml → cards/pr.checks.rerun.failed.yaml} +3 -5
- package/dist/cards/pr.create.yaml +30 -0
- package/dist/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +1 -1
- package/dist/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
- package/dist/{core/registry/cards/pr.mergeability.view.yaml → cards/pr.merge.status.yaml} +6 -3
- package/dist/{core/registry/cards/pr.merge.execute.yaml → cards/pr.merge.yaml} +1 -1
- package/dist/cards/pr.reviews.list.yaml +1 -1
- package/dist/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +1 -1
- package/dist/cards/pr.reviews.submit.yaml +67 -0
- package/dist/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +2 -2
- package/dist/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +4 -2
- package/dist/cards/{pr.comment.resolve.yaml → pr.threads.resolve.yaml} +1 -1
- package/dist/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +1 -1
- package/dist/cards/pr.update.yaml +29 -0
- package/dist/cards/pr.view.yaml +7 -5
- package/dist/{core/registry/cards/project_v2.item.field.update.yaml → cards/project_v2.items.field.update.yaml} +1 -1
- package/dist/{core/registry/cards/project_v2.item.add_issue.yaml → cards/project_v2.items.issue.add.yaml} +1 -1
- package/dist/cards/project_v2.items.issue.remove.yaml +23 -0
- package/dist/{core/registry/cards/project_v2.org.get.yaml → cards/project_v2.org.view.yaml} +1 -1
- package/dist/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +1 -1
- package/dist/{core/registry/cards/release.create_draft.yaml → cards/release.create.yaml} +1 -1
- package/dist/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
- package/dist/{core/registry/cards/release.get.yaml → cards/release.view.yaml} +1 -1
- package/dist/cards/repo.view.yaml +2 -4
- package/dist/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
- package/dist/cards/{workflow_job.logs.get.yaml → workflow.job.logs.raw.yaml} +2 -2
- package/dist/{core/registry/cards/workflow_job.logs.analyze.yaml → cards/workflow.job.logs.view.yaml} +1 -1
- package/dist/{core/registry/cards/workflow_run.artifacts.list.yaml → cards/workflow.run.artifacts.list.yaml} +1 -1
- package/dist/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
- package/dist/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
- package/dist/{core/registry/cards/workflow_run.rerun_failed.yaml → cards/workflow.run.rerun.failed.yaml} +3 -3
- package/dist/{core/registry/cards/workflow_run.get.yaml → cards/workflow.run.view.yaml} +19 -4
- package/dist/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
- package/dist/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
- package/dist/chunk-3DU2WHXF.js +15 -0
- package/dist/chunk-3DU2WHXF.js.map +1 -0
- package/dist/chunk-3P3KHWFU.js +5779 -0
- package/dist/chunk-3P3KHWFU.js.map +1 -0
- package/dist/chunk-BIWBJA2F.js +228 -0
- package/dist/chunk-BIWBJA2F.js.map +1 -0
- package/dist/chunk-HEHONZTO.js +121 -0
- package/dist/chunk-HEHONZTO.js.map +1 -0
- package/dist/chunk-Q7RCIK2C.js +773 -0
- package/dist/chunk-Q7RCIK2C.js.map +1 -0
- package/dist/chunk-R3CBGJZX.js +12 -0
- package/dist/chunk-R3CBGJZX.js.map +1 -0
- package/dist/chunk-TDABI6C7.js +167 -0
- package/dist/chunk-TDABI6C7.js.map +1 -0
- package/dist/chunk-TPQYVCAS.js +15 -0
- package/dist/chunk-TPQYVCAS.js.map +1 -0
- package/dist/cli/index.js +202 -21
- package/dist/cli/index.js.map +1 -1
- package/dist/core/registry/cards/issue.assignees.add.yaml +50 -0
- package/dist/core/registry/cards/issue.assignees.remove.yaml +50 -0
- package/dist/core/registry/cards/issue.assignees.set.yaml +47 -0
- package/dist/core/registry/cards/issue.close.yaml +16 -2
- package/dist/core/registry/cards/issue.comments.create.yaml +16 -2
- package/dist/core/registry/cards/issue.create.yaml +11 -0
- package/dist/core/registry/cards/issue.delete.yaml +16 -2
- package/dist/core/registry/cards/issue.labels.add.yaml +48 -0
- package/dist/core/registry/cards/issue.labels.remove.yaml +50 -0
- package/dist/core/registry/cards/issue.labels.set.yaml +47 -0
- package/dist/core/registry/cards/issue.milestone.clear.yaml +40 -0
- package/dist/core/registry/cards/issue.milestone.set.yaml +23 -4
- package/dist/{cards/issue.blocked_by.add.yaml → core/registry/cards/issue.relations.blocked_by.add.yaml} +3 -2
- package/dist/core/registry/cards/{issue.blocked_by.remove.yaml → issue.relations.blocked_by.remove.yaml} +1 -1
- package/dist/core/registry/cards/{issue.parent.remove.yaml → issue.relations.parent.remove.yaml} +11 -1
- package/dist/{cards/issue.parent.set.yaml → core/registry/cards/issue.relations.parent.set.yaml} +3 -2
- package/dist/{cards/issue.linked_prs.list.yaml → core/registry/cards/issue.relations.prs.list.yaml} +1 -1
- package/dist/core/registry/cards/{issue.relations.get.yaml → issue.relations.view.yaml} +1 -1
- package/dist/core/registry/cards/issue.reopen.yaml +16 -2
- package/dist/core/registry/cards/issue.update.yaml +16 -2
- package/dist/core/registry/cards/issue.view.yaml +7 -5
- package/dist/core/registry/cards/pr.assignees.add.yaml +29 -0
- package/dist/core/registry/cards/pr.assignees.remove.yaml +29 -0
- package/dist/{cards/pr.status.checks.yaml → core/registry/cards/pr.checks.list.yaml} +15 -2
- package/dist/{cards/pr.checks.rerun_all.yaml → core/registry/cards/pr.checks.rerun.all.yaml} +2 -4
- package/dist/{cards/pr.checks.rerun_failed.yaml → core/registry/cards/pr.checks.rerun.failed.yaml} +3 -5
- package/dist/core/registry/cards/pr.create.yaml +30 -0
- package/dist/core/registry/cards/{pr.diff.list_files.yaml → pr.diff.files.yaml} +1 -1
- package/dist/core/registry/cards/{pr.ready_for_review.set.yaml → pr.diff.view.yaml} +6 -8
- package/dist/{cards/pr.mergeability.view.yaml → core/registry/cards/pr.merge.status.yaml} +6 -3
- package/dist/{cards/pr.merge.execute.yaml → core/registry/cards/pr.merge.yaml} +1 -1
- package/dist/core/registry/cards/pr.reviews.list.yaml +1 -1
- package/dist/core/registry/cards/{pr.reviewers.request.yaml → pr.reviews.request.yaml} +1 -1
- package/dist/core/registry/cards/pr.reviews.submit.yaml +67 -0
- package/dist/core/registry/cards/{pr.comments.list.yaml → pr.threads.list.yaml} +2 -2
- package/dist/core/registry/cards/{pr.comment.reply.yaml → pr.threads.reply.yaml} +4 -2
- package/dist/core/registry/cards/{pr.comment.resolve.yaml → pr.threads.resolve.yaml} +1 -1
- package/dist/core/registry/cards/{pr.comment.unresolve.yaml → pr.threads.unresolve.yaml} +1 -1
- package/dist/core/registry/cards/pr.update.yaml +29 -0
- package/dist/core/registry/cards/pr.view.yaml +7 -5
- package/dist/{cards/project_v2.item.field.update.yaml → core/registry/cards/project_v2.items.field.update.yaml} +1 -1
- package/dist/{cards/project_v2.item.add_issue.yaml → core/registry/cards/project_v2.items.issue.add.yaml} +1 -1
- package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +23 -0
- package/dist/{cards/project_v2.org.get.yaml → core/registry/cards/project_v2.org.view.yaml} +1 -1
- package/dist/core/registry/cards/{project_v2.user.get.yaml → project_v2.user.view.yaml} +1 -1
- package/dist/{cards/release.create_draft.yaml → core/registry/cards/release.create.yaml} +1 -1
- package/dist/core/registry/cards/{release.publish_draft.yaml → release.publish.yaml} +1 -1
- package/dist/{cards/release.get.yaml → core/registry/cards/release.view.yaml} +1 -1
- package/dist/core/registry/cards/repo.view.yaml +2 -4
- package/dist/core/registry/cards/{workflow_dispatch.run.yaml → workflow.dispatch.yaml} +1 -1
- package/dist/core/registry/cards/{workflow_job.logs.get.yaml → workflow.job.logs.raw.yaml} +2 -2
- package/dist/{cards/workflow_job.logs.analyze.yaml → core/registry/cards/workflow.job.logs.view.yaml} +1 -1
- package/dist/{cards/workflow_run.artifacts.list.yaml → core/registry/cards/workflow.run.artifacts.list.yaml} +1 -1
- package/dist/core/registry/cards/{workflow_run.cancel.yaml → workflow.run.cancel.yaml} +1 -1
- package/dist/core/registry/cards/{workflow_run.rerun_all.yaml → workflow.run.rerun.all.yaml} +3 -3
- package/dist/{cards/workflow_run.rerun_failed.yaml → core/registry/cards/workflow.run.rerun.failed.yaml} +3 -3
- package/dist/{cards/workflow_run.get.yaml → core/registry/cards/workflow.run.view.yaml} +19 -4
- package/dist/core/registry/cards/{workflow_runs.list.yaml → workflow.runs.list.yaml} +1 -1
- package/dist/core/registry/cards/{workflow.get.yaml → workflow.view.yaml} +2 -2
- package/dist/index.d.ts +374 -35
- package/dist/index.js +33 -5
- package/dist/index.js.map +1 -1
- package/dist/issue-mutations-FJNZW7L5.js +668 -0
- package/dist/issue-mutations-FJNZW7L5.js.map +1 -0
- package/dist/issue-queries-GRA4MKPD.js +208 -0
- package/dist/issue-queries-GRA4MKPD.js.map +1 -0
- package/dist/pr-mutations-UG67YOF5.js +344 -0
- package/dist/pr-mutations-UG67YOF5.js.map +1 -0
- package/dist/pr-queries-UOEOXIJQ.js +331 -0
- package/dist/pr-queries-UOEOXIJQ.js.map +1 -0
- package/dist/repo-JDUHFPZF.js +66 -0
- package/dist/repo-JDUHFPZF.js.map +1 -0
- package/package.json +16 -13
- package/skills/using-ghx/SKILL.md +61 -0
- package/dist/agent.d.ts +0 -32
- package/dist/agent.js +0 -36
- package/dist/agent.js.map +0 -1
- package/dist/cards/check_run.annotations.list.yaml +0 -35
- package/dist/cards/issue.assignees.update.yaml +0 -27
- package/dist/cards/issue.labels.update.yaml +0 -27
- package/dist/cards/pr.assignees.update.yaml +0 -38
- package/dist/cards/pr.checks.get_failed.yaml +0 -42
- package/dist/cards/pr.review.submit_comment.yaml +0 -26
- package/dist/cards/pr.review.submit_request_changes.yaml +0 -26
- package/dist/cards/workflow_run.jobs.list.yaml +0 -35
- package/dist/chunk-2FCPR3XZ.js +0 -54
- package/dist/chunk-2FCPR3XZ.js.map +0 -1
- package/dist/chunk-RDUPMVHG.js +0 -4139
- package/dist/chunk-RDUPMVHG.js.map +0 -1
- package/dist/chunk-UN5YHUNK.js +0 -245
- package/dist/chunk-UN5YHUNK.js.map +0 -1
- package/dist/cli/assets/skills/ghx/SKILL.md +0 -57
- package/dist/core/registry/cards/check_run.annotations.list.yaml +0 -35
- package/dist/core/registry/cards/issue.assignees.update.yaml +0 -27
- package/dist/core/registry/cards/issue.labels.update.yaml +0 -27
- package/dist/core/registry/cards/pr.assignees.update.yaml +0 -38
- package/dist/core/registry/cards/pr.checks.get_failed.yaml +0 -42
- package/dist/core/registry/cards/pr.review.submit_approve.yaml +0 -26
- package/dist/core/registry/cards/pr.review.submit_comment.yaml +0 -26
- package/dist/core/registry/cards/pr.review.submit_request_changes.yaml +0 -26
- package/dist/core/registry/cards/workflow_run.jobs.list.yaml +0 -35
- package/dist/envelope-BpF6MNCv.d.ts +0 -55
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ghx",
|
|
3
|
+
"description": "GitHub execution router for AI agents — 66 capabilities with deterministic routing and normalized output",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Arye Kogan"
|
|
7
|
+
},
|
|
8
|
+
"repository": "https://github.com/aryeko/ghx",
|
|
9
|
+
"homepage": "https://github.com/aryeko/ghx",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"github",
|
|
13
|
+
"github-api",
|
|
14
|
+
"ai-agents",
|
|
15
|
+
"agentic",
|
|
16
|
+
"cli",
|
|
17
|
+
"graphql",
|
|
18
|
+
"automation",
|
|
19
|
+
"typescript"
|
|
20
|
+
]
|
|
21
|
+
}
|
package/README.md
CHANGED
|
@@ -119,24 +119,24 @@ npx @ghx-dev/core setup --scope project --verify
|
|
|
119
119
|
|
|
120
120
|
The canonical setup skill content is stored in:
|
|
121
121
|
|
|
122
|
-
- `
|
|
122
|
+
- `skills/using-ghx/SKILL.md` (package root)
|
|
123
123
|
|
|
124
124
|
During build/publish it is copied to:
|
|
125
125
|
|
|
126
|
-
- `dist/
|
|
126
|
+
- `dist/skills/using-ghx/SKILL.md`
|
|
127
127
|
|
|
128
128
|
`ghx setup` writes this content to `.agents/skills/ghx/SKILL.md` in user or project scope.
|
|
129
129
|
|
|
130
|
-
## Agent Tools
|
|
130
|
+
## Agent Tools
|
|
131
131
|
|
|
132
132
|
```ts
|
|
133
133
|
import {
|
|
134
134
|
createExecuteTool,
|
|
135
|
-
|
|
135
|
+
createGithubClientFromToken,
|
|
136
|
+
executeTask,
|
|
136
137
|
explainCapability,
|
|
137
|
-
|
|
138
|
-
} from "@ghx-dev/core
|
|
139
|
-
import { createGithubClientFromToken, executeTask } from "@ghx-dev/core"
|
|
138
|
+
listCapabilities,
|
|
139
|
+
} from "@ghx-dev/core"
|
|
140
140
|
|
|
141
141
|
// Wire the execute tool to the real engine
|
|
142
142
|
const token = process.env.GITHUB_TOKEN!
|
|
@@ -152,23 +152,21 @@ console.log(explainCapability("repo.view"))
|
|
|
152
152
|
const result = await tool.execute("repo.view", { owner: "aryeko", name: "ghx" })
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
## 66 Capabilities
|
|
155
|
+
## 69 Capabilities
|
|
158
156
|
|
|
159
157
|
**Repository** -- `repo.view`, `repo.labels.list`, `repo.issue_types.list`
|
|
160
158
|
|
|
161
159
|
**Issues** -- `issue.view`, `issue.list`, `issue.comments.list`, `issue.create`, `issue.update`, `issue.close`, `issue.reopen`, `issue.delete`, `issue.labels.update`, `issue.assignees.update`, `issue.milestone.set`, `issue.comments.create`, `issue.linked_prs.list`, `issue.relations.get`, `issue.parent.set`, `issue.parent.remove`, `issue.blocked_by.add`, `issue.blocked_by.remove`
|
|
162
160
|
|
|
163
|
-
**Pull Requests (read)** -- `pr.view`, `pr.list`, `pr.
|
|
161
|
+
**Pull Requests (read)** -- `pr.view`, `pr.list`, `pr.threads.list`, `pr.reviews.list`, `pr.diff.files`, `pr.checks.list`, `pr.merge.status`
|
|
164
162
|
|
|
165
|
-
**Pull Requests (execute)** -- `pr.
|
|
163
|
+
**Pull Requests (execute)** -- `pr.threads.reply`, `pr.threads.resolve`, `pr.threads.unresolve`, `pr.update`, `pr.reviews.submit`, `pr.reviews.request`, `pr.merge`, `pr.checks.rerun.failed`, `pr.checks.rerun.all`, `pr.branch.update`, `pr.assignees.add`, `pr.assignees.remove`
|
|
166
164
|
|
|
167
|
-
**CI Diagnostics** -- `
|
|
165
|
+
**CI Diagnostics** -- `workflow.runs.list`, `workflow.job.logs.get`
|
|
168
166
|
|
|
169
167
|
**Releases** -- `release.list`, `release.get`, `release.create_draft`, `release.update`, `release.publish_draft`
|
|
170
168
|
|
|
171
|
-
**Workflow Controls** -- `workflow.list`, `workflow.get`, `workflow_dispatch.run`, `workflow_run.
|
|
169
|
+
**Workflow Controls** -- `workflow.list`, `workflow.get`, `workflow_dispatch.run`, `workflow_run.view`, `workflow_run.rerun_failed`, `workflow_run.rerun_all`, `workflow_run.cancel`, `workflow_run.artifacts.list`
|
|
172
170
|
|
|
173
171
|
**Projects v2** -- `project_v2.org.get`, `project_v2.user.get`, `project_v2.fields.list`, `project_v2.items.list`, `project_v2.item.add_issue`, `project_v2.item.field.update`
|
|
174
172
|
|
|
@@ -233,7 +231,6 @@ Root (`@ghx-dev/core`):
|
|
|
233
231
|
|
|
234
232
|
Subpaths:
|
|
235
233
|
|
|
236
|
-
- `@ghx-dev/core/agent` -- `createExecuteTool`, `listCapabilities`, `explainCapability`, `MAIN_SKILL_TEXT`
|
|
237
234
|
- `@ghx-dev/core/cli` -- CLI entrypoint
|
|
238
235
|
|
|
239
236
|
## Custom GraphQL Transport
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
capability_id: issue.assignees.add
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Add assignees to an issue without replacing existing ones.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, assignees]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
assignees:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
minItems: 1
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
output_schema:
|
|
17
|
+
type: object
|
|
18
|
+
required: [issueNumber, added]
|
|
19
|
+
properties:
|
|
20
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
21
|
+
added:
|
|
22
|
+
type: array
|
|
23
|
+
items: { type: string }
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
routing:
|
|
26
|
+
preferred: graphql
|
|
27
|
+
fallbacks: [cli]
|
|
28
|
+
graphql:
|
|
29
|
+
operationName: IssueAssigneesAdd
|
|
30
|
+
documentPath: src/gql/operations/issue-assignees-add.graphql
|
|
31
|
+
resolution:
|
|
32
|
+
lookup:
|
|
33
|
+
operationName: IssueAssigneesLookupByNumber
|
|
34
|
+
documentPath: src/gql/operations/issue-assignees-lookup-by-number.graphql
|
|
35
|
+
vars:
|
|
36
|
+
owner: owner
|
|
37
|
+
name: name
|
|
38
|
+
issueNumber: issueNumber
|
|
39
|
+
inject:
|
|
40
|
+
- target: assignableId
|
|
41
|
+
source: scalar
|
|
42
|
+
path: repository.issue.id
|
|
43
|
+
- target: assigneeIds
|
|
44
|
+
source: map_array
|
|
45
|
+
from_input: assignees
|
|
46
|
+
nodes_path: repository.assignableUsers.nodes
|
|
47
|
+
match_field: login
|
|
48
|
+
extract_field: id
|
|
49
|
+
cli:
|
|
50
|
+
command: issue edit
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
capability_id: issue.assignees.remove
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Remove specific assignees from an issue.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, assignees]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
assignees:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
minItems: 1
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
output_schema:
|
|
17
|
+
type: object
|
|
18
|
+
required: [issueNumber, removed]
|
|
19
|
+
properties:
|
|
20
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
21
|
+
removed:
|
|
22
|
+
type: array
|
|
23
|
+
items: { type: string, minLength: 1 }
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
routing:
|
|
26
|
+
preferred: graphql
|
|
27
|
+
fallbacks: [cli]
|
|
28
|
+
graphql:
|
|
29
|
+
operationName: IssueAssigneesRemove
|
|
30
|
+
documentPath: src/gql/operations/issue-assignees-remove.graphql
|
|
31
|
+
resolution:
|
|
32
|
+
lookup:
|
|
33
|
+
operationName: IssueAssigneesLookupByNumber
|
|
34
|
+
documentPath: src/gql/operations/issue-assignees-lookup-by-number.graphql
|
|
35
|
+
vars:
|
|
36
|
+
owner: owner
|
|
37
|
+
name: name
|
|
38
|
+
issueNumber: issueNumber
|
|
39
|
+
inject:
|
|
40
|
+
- target: assignableId
|
|
41
|
+
source: scalar
|
|
42
|
+
path: repository.issue.id
|
|
43
|
+
- target: assigneeIds
|
|
44
|
+
source: map_array
|
|
45
|
+
from_input: assignees
|
|
46
|
+
nodes_path: repository.assignableUsers.nodes
|
|
47
|
+
match_field: login
|
|
48
|
+
extract_field: id
|
|
49
|
+
cli:
|
|
50
|
+
command: issue edit
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
capability_id: issue.assignees.set
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Replace issue assignees.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, assignees]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
assignees:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
additionalProperties: false
|
|
15
|
+
output_schema:
|
|
16
|
+
type: object
|
|
17
|
+
required: [id, assignees]
|
|
18
|
+
properties:
|
|
19
|
+
id: { type: string, minLength: 1 }
|
|
20
|
+
assignees:
|
|
21
|
+
type: array
|
|
22
|
+
items: { type: string, minLength: 1 }
|
|
23
|
+
additionalProperties: false
|
|
24
|
+
routing:
|
|
25
|
+
preferred: graphql
|
|
26
|
+
fallbacks: []
|
|
27
|
+
graphql:
|
|
28
|
+
operationName: IssueAssigneesUpdate
|
|
29
|
+
documentPath: src/gql/operations/issue-assignees-update.graphql
|
|
30
|
+
resolution:
|
|
31
|
+
lookup:
|
|
32
|
+
operationName: IssueAssigneesLookupByNumber
|
|
33
|
+
documentPath: src/gql/operations/issue-assignees-lookup-by-number.graphql
|
|
34
|
+
vars:
|
|
35
|
+
owner: owner
|
|
36
|
+
name: name
|
|
37
|
+
issueNumber: issueNumber
|
|
38
|
+
inject:
|
|
39
|
+
- target: assignableId
|
|
40
|
+
source: scalar
|
|
41
|
+
path: repository.issue.id
|
|
42
|
+
- target: assigneeIds
|
|
43
|
+
source: map_array
|
|
44
|
+
from_input: assignees
|
|
45
|
+
nodes_path: repository.assignableUsers.nodes
|
|
46
|
+
match_field: login
|
|
47
|
+
extract_field: id
|
|
@@ -3,9 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
description: Close an issue.
|
|
4
4
|
input_schema:
|
|
5
5
|
type: object
|
|
6
|
-
required: [
|
|
6
|
+
required: [owner, name, issueNumber]
|
|
7
7
|
properties:
|
|
8
|
-
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
9
11
|
additionalProperties: false
|
|
10
12
|
output_schema:
|
|
11
13
|
type: object
|
|
@@ -22,3 +24,15 @@ routing:
|
|
|
22
24
|
graphql:
|
|
23
25
|
operationName: IssueClose
|
|
24
26
|
documentPath: src/gql/operations/issue-close.graphql
|
|
27
|
+
resolution:
|
|
28
|
+
lookup:
|
|
29
|
+
operationName: IssueNodeIdLookup
|
|
30
|
+
documentPath: src/gql/operations/issue-node-id-lookup.graphql
|
|
31
|
+
vars:
|
|
32
|
+
owner: owner
|
|
33
|
+
name: name
|
|
34
|
+
issueNumber: issueNumber
|
|
35
|
+
inject:
|
|
36
|
+
- target: issueId
|
|
37
|
+
source: scalar
|
|
38
|
+
path: repository.issue.id
|
|
@@ -3,9 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
description: Create an issue comment.
|
|
4
4
|
input_schema:
|
|
5
5
|
type: object
|
|
6
|
-
required: [
|
|
6
|
+
required: [owner, name, issueNumber, body]
|
|
7
7
|
properties:
|
|
8
|
-
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
9
11
|
body: { type: string, minLength: 1 }
|
|
10
12
|
additionalProperties: false
|
|
11
13
|
output_schema:
|
|
@@ -22,3 +24,15 @@ routing:
|
|
|
22
24
|
graphql:
|
|
23
25
|
operationName: IssueCommentCreate
|
|
24
26
|
documentPath: src/gql/operations/issue-comment-create.graphql
|
|
27
|
+
resolution:
|
|
28
|
+
lookup:
|
|
29
|
+
operationName: IssueNodeIdLookup
|
|
30
|
+
documentPath: src/gql/operations/issue-node-id-lookup.graphql
|
|
31
|
+
vars:
|
|
32
|
+
owner: owner
|
|
33
|
+
name: name
|
|
34
|
+
issueNumber: issueNumber
|
|
35
|
+
inject:
|
|
36
|
+
- target: issueId
|
|
37
|
+
source: scalar
|
|
38
|
+
path: repository.issue.id
|
|
@@ -26,3 +26,14 @@ routing:
|
|
|
26
26
|
graphql:
|
|
27
27
|
operationName: IssueCreate
|
|
28
28
|
documentPath: src/gql/operations/issue-create.graphql
|
|
29
|
+
resolution:
|
|
30
|
+
lookup:
|
|
31
|
+
operationName: IssueCreateRepositoryId
|
|
32
|
+
documentPath: src/gql/operations/issue-create-repository-id.graphql
|
|
33
|
+
vars:
|
|
34
|
+
owner: owner
|
|
35
|
+
name: name
|
|
36
|
+
inject:
|
|
37
|
+
- target: repositoryId
|
|
38
|
+
source: scalar
|
|
39
|
+
path: repository.id
|
|
@@ -3,9 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
description: Delete an issue.
|
|
4
4
|
input_schema:
|
|
5
5
|
type: object
|
|
6
|
-
required: [
|
|
6
|
+
required: [owner, name, issueNumber]
|
|
7
7
|
properties:
|
|
8
|
-
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
9
11
|
additionalProperties: false
|
|
10
12
|
output_schema:
|
|
11
13
|
type: object
|
|
@@ -21,3 +23,15 @@ routing:
|
|
|
21
23
|
graphql:
|
|
22
24
|
operationName: IssueDelete
|
|
23
25
|
documentPath: src/gql/operations/issue-delete.graphql
|
|
26
|
+
resolution:
|
|
27
|
+
lookup:
|
|
28
|
+
operationName: IssueNodeIdLookup
|
|
29
|
+
documentPath: src/gql/operations/issue-node-id-lookup.graphql
|
|
30
|
+
vars:
|
|
31
|
+
owner: owner
|
|
32
|
+
name: name
|
|
33
|
+
issueNumber: issueNumber
|
|
34
|
+
inject:
|
|
35
|
+
- target: issueId
|
|
36
|
+
source: scalar
|
|
37
|
+
path: repository.issue.id
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
capability_id: issue.labels.add
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Add labels to an issue without removing existing labels.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, labels]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
labels:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
minItems: 1
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
output_schema:
|
|
17
|
+
type: object
|
|
18
|
+
required: [id, labels]
|
|
19
|
+
properties:
|
|
20
|
+
id: { type: string, minLength: 1 }
|
|
21
|
+
labels:
|
|
22
|
+
type: array
|
|
23
|
+
items: { type: string }
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
routing:
|
|
26
|
+
preferred: graphql
|
|
27
|
+
fallbacks: []
|
|
28
|
+
graphql:
|
|
29
|
+
operationName: IssueLabelsAdd
|
|
30
|
+
documentPath: src/gql/operations/issue-labels-add.graphql
|
|
31
|
+
resolution:
|
|
32
|
+
lookup:
|
|
33
|
+
operationName: IssueLabelsLookupByNumber
|
|
34
|
+
documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
|
|
35
|
+
vars:
|
|
36
|
+
owner: owner
|
|
37
|
+
name: name
|
|
38
|
+
issueNumber: issueNumber
|
|
39
|
+
inject:
|
|
40
|
+
- target: labelableId
|
|
41
|
+
source: scalar
|
|
42
|
+
path: repository.issue.id
|
|
43
|
+
- target: labelIds
|
|
44
|
+
source: map_array
|
|
45
|
+
from_input: labels
|
|
46
|
+
nodes_path: repository.labels.nodes
|
|
47
|
+
match_field: name
|
|
48
|
+
extract_field: id
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
capability_id: issue.labels.remove
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Remove specific labels from an issue.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, labels]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
labels:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
minItems: 1
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
output_schema:
|
|
17
|
+
type: object
|
|
18
|
+
required: [issueNumber, removed]
|
|
19
|
+
properties:
|
|
20
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
21
|
+
removed:
|
|
22
|
+
type: array
|
|
23
|
+
items: { type: string }
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
routing:
|
|
26
|
+
preferred: graphql
|
|
27
|
+
fallbacks: [cli]
|
|
28
|
+
graphql:
|
|
29
|
+
operationName: IssueLabelsRemove
|
|
30
|
+
documentPath: src/gql/operations/issue-labels-remove.graphql
|
|
31
|
+
resolution:
|
|
32
|
+
lookup:
|
|
33
|
+
operationName: IssueLabelsLookupByNumber
|
|
34
|
+
documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
|
|
35
|
+
vars:
|
|
36
|
+
owner: owner
|
|
37
|
+
name: name
|
|
38
|
+
issueNumber: issueNumber
|
|
39
|
+
inject:
|
|
40
|
+
- target: labelableId
|
|
41
|
+
source: scalar
|
|
42
|
+
path: repository.issue.id
|
|
43
|
+
- target: labelIds
|
|
44
|
+
source: map_array
|
|
45
|
+
from_input: labels
|
|
46
|
+
nodes_path: repository.labels.nodes
|
|
47
|
+
match_field: name
|
|
48
|
+
extract_field: id
|
|
49
|
+
cli:
|
|
50
|
+
command: issue edit
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
capability_id: issue.labels.set
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Replace issue labels.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber, labels]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
labels:
|
|
12
|
+
type: array
|
|
13
|
+
items: { type: string, minLength: 1 }
|
|
14
|
+
additionalProperties: false
|
|
15
|
+
output_schema:
|
|
16
|
+
type: object
|
|
17
|
+
required: [id, labels]
|
|
18
|
+
properties:
|
|
19
|
+
id: { type: string, minLength: 1 }
|
|
20
|
+
labels:
|
|
21
|
+
type: array
|
|
22
|
+
items: { type: string, minLength: 1 }
|
|
23
|
+
additionalProperties: false
|
|
24
|
+
routing:
|
|
25
|
+
preferred: graphql
|
|
26
|
+
fallbacks: []
|
|
27
|
+
graphql:
|
|
28
|
+
operationName: IssueLabelsUpdate
|
|
29
|
+
documentPath: src/gql/operations/issue-labels-update.graphql
|
|
30
|
+
resolution:
|
|
31
|
+
lookup:
|
|
32
|
+
operationName: IssueLabelsLookupByNumber
|
|
33
|
+
documentPath: src/gql/operations/issue-labels-lookup-by-number.graphql
|
|
34
|
+
vars:
|
|
35
|
+
owner: owner
|
|
36
|
+
name: name
|
|
37
|
+
issueNumber: issueNumber
|
|
38
|
+
inject:
|
|
39
|
+
- target: labelableId
|
|
40
|
+
source: scalar
|
|
41
|
+
path: repository.issue.id
|
|
42
|
+
- target: labelIds
|
|
43
|
+
source: map_array
|
|
44
|
+
from_input: labels
|
|
45
|
+
nodes_path: repository.labels.nodes
|
|
46
|
+
match_field: name
|
|
47
|
+
extract_field: id
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
capability_id: issue.milestone.clear
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Remove the milestone from an issue.
|
|
4
|
+
input_schema:
|
|
5
|
+
type: object
|
|
6
|
+
required: [owner, name, issueNumber]
|
|
7
|
+
properties:
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
additionalProperties: false
|
|
12
|
+
output_schema:
|
|
13
|
+
type: object
|
|
14
|
+
required: [issueNumber, cleared]
|
|
15
|
+
properties:
|
|
16
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
17
|
+
cleared: { type: boolean }
|
|
18
|
+
additionalProperties: false
|
|
19
|
+
routing:
|
|
20
|
+
preferred: graphql
|
|
21
|
+
fallbacks: [cli]
|
|
22
|
+
graphql:
|
|
23
|
+
operationName: IssueMilestoneSet
|
|
24
|
+
documentPath: src/gql/operations/issue-milestone-set.graphql
|
|
25
|
+
resolution:
|
|
26
|
+
lookup:
|
|
27
|
+
operationName: IssueNodeIdLookup
|
|
28
|
+
documentPath: src/gql/operations/issue-node-id-lookup.graphql
|
|
29
|
+
vars:
|
|
30
|
+
owner: owner
|
|
31
|
+
name: name
|
|
32
|
+
issueNumber: issueNumber
|
|
33
|
+
inject:
|
|
34
|
+
- target: issueId
|
|
35
|
+
source: scalar
|
|
36
|
+
path: repository.issue.id
|
|
37
|
+
- target: milestoneId
|
|
38
|
+
source: "null_literal"
|
|
39
|
+
cli:
|
|
40
|
+
command: issue edit
|
|
@@ -3,17 +3,20 @@ version: "1.0.0"
|
|
|
3
3
|
description: Set issue milestone number or clear with null.
|
|
4
4
|
input_schema:
|
|
5
5
|
type: object
|
|
6
|
-
required: [
|
|
6
|
+
required: [owner, name, issueNumber, milestoneNumber]
|
|
7
7
|
properties:
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
owner: { type: string, minLength: 1 }
|
|
9
|
+
name: { type: string, minLength: 1 }
|
|
10
|
+
issueNumber: { type: integer, minimum: 1 }
|
|
11
|
+
milestoneNumber: { type: integer, minimum: 1 }
|
|
10
12
|
additionalProperties: false
|
|
11
13
|
output_schema:
|
|
12
14
|
type: object
|
|
13
|
-
required: [id, milestoneNumber]
|
|
15
|
+
required: [id, milestoneNumber, updated]
|
|
14
16
|
properties:
|
|
15
17
|
id: { type: string, minLength: 1 }
|
|
16
18
|
milestoneNumber: { type: [integer, "null"] }
|
|
19
|
+
updated: { type: boolean }
|
|
17
20
|
additionalProperties: false
|
|
18
21
|
routing:
|
|
19
22
|
preferred: graphql
|
|
@@ -21,3 +24,19 @@ routing:
|
|
|
21
24
|
graphql:
|
|
22
25
|
operationName: IssueMilestoneSet
|
|
23
26
|
documentPath: src/gql/operations/issue-milestone-set.graphql
|
|
27
|
+
resolution:
|
|
28
|
+
lookup:
|
|
29
|
+
operationName: IssueMilestoneLookupByNumber
|
|
30
|
+
documentPath: src/gql/operations/issue-milestone-lookup-by-number.graphql
|
|
31
|
+
vars:
|
|
32
|
+
owner: owner
|
|
33
|
+
name: name
|
|
34
|
+
issueNumber: issueNumber
|
|
35
|
+
milestoneNumber: milestoneNumber
|
|
36
|
+
inject:
|
|
37
|
+
- target: issueId
|
|
38
|
+
source: scalar
|
|
39
|
+
path: repository.issue.id
|
|
40
|
+
- target: milestoneId
|
|
41
|
+
source: scalar
|
|
42
|
+
path: repository.milestone.id
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
capability_id: issue.blocked_by.add
|
|
1
|
+
capability_id: issue.relations.blocked_by.add
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
description: Add a blocked-by relation for an issue.
|
|
4
4
|
input_schema:
|
|
@@ -10,10 +10,11 @@ input_schema:
|
|
|
10
10
|
additionalProperties: false
|
|
11
11
|
output_schema:
|
|
12
12
|
type: object
|
|
13
|
-
required: [issueId, blockedByIssueId]
|
|
13
|
+
required: [issueId, blockedByIssueId, added]
|
|
14
14
|
properties:
|
|
15
15
|
issueId: { type: string, minLength: 1 }
|
|
16
16
|
blockedByIssueId: { type: string, minLength: 1 }
|
|
17
|
+
added: { type: boolean }
|
|
17
18
|
additionalProperties: false
|
|
18
19
|
routing:
|
|
19
20
|
preferred: graphql
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
capability_id: issue.parent.remove
|
|
1
|
+
capability_id: issue.relations.parent.remove
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
description: Remove an issue parent relation.
|
|
4
4
|
input_schema:
|
|
@@ -20,3 +20,13 @@ routing:
|
|
|
20
20
|
graphql:
|
|
21
21
|
operationName: IssueParentRemove
|
|
22
22
|
documentPath: src/gql/operations/issue-parent-remove.graphql
|
|
23
|
+
resolution:
|
|
24
|
+
lookup:
|
|
25
|
+
operationName: IssueParentLookup
|
|
26
|
+
documentPath: src/gql/operations/issue-parent-lookup.graphql
|
|
27
|
+
vars:
|
|
28
|
+
issueId: issueId
|
|
29
|
+
inject:
|
|
30
|
+
- target: parentIssueId
|
|
31
|
+
source: scalar
|
|
32
|
+
path: node.parent.id
|
package/dist/{core/registry/cards/issue.parent.set.yaml → cards/issue.relations.parent.set.yaml}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
capability_id: issue.parent.set
|
|
1
|
+
capability_id: issue.relations.parent.set
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
description: Set an issue parent relation.
|
|
4
4
|
input_schema:
|
|
@@ -10,10 +10,11 @@ input_schema:
|
|
|
10
10
|
additionalProperties: false
|
|
11
11
|
output_schema:
|
|
12
12
|
type: object
|
|
13
|
-
required: [issueId, parentIssueId]
|
|
13
|
+
required: [issueId, parentIssueId, updated]
|
|
14
14
|
properties:
|
|
15
15
|
issueId: { type: string, minLength: 1 }
|
|
16
16
|
parentIssueId: { type: string, minLength: 1 }
|
|
17
|
+
updated: { type: boolean }
|
|
17
18
|
additionalProperties: false
|
|
18
19
|
routing:
|
|
19
20
|
preferred: graphql
|