@chief-clancy/core 0.1.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/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/board/azdo/api/api.d.ts +95 -0
- package/dist/board/azdo/api/api.d.ts.map +1 -0
- package/dist/board/azdo/api/api.js +173 -0
- package/dist/board/azdo/api/api.js.map +1 -0
- package/dist/board/azdo/api/helpers.d.ts +89 -0
- package/dist/board/azdo/api/helpers.d.ts.map +1 -0
- package/dist/board/azdo/api/helpers.js +133 -0
- package/dist/board/azdo/api/helpers.js.map +1 -0
- package/dist/board/azdo/api/index.d.ts +5 -0
- package/dist/board/azdo/api/index.d.ts.map +1 -0
- package/dist/board/azdo/api/index.js +3 -0
- package/dist/board/azdo/api/index.js.map +1 -0
- package/dist/board/azdo/azdo-board.d.ts +12 -0
- package/dist/board/azdo/azdo-board.d.ts.map +1 -0
- package/dist/board/azdo/azdo-board.js +104 -0
- package/dist/board/azdo/azdo-board.js.map +1 -0
- package/dist/board/azdo/index.d.ts +3 -0
- package/dist/board/azdo/index.d.ts.map +1 -0
- package/dist/board/azdo/index.js +3 -0
- package/dist/board/azdo/index.js.map +1 -0
- package/dist/board/azdo/labels/index.d.ts +2 -0
- package/dist/board/azdo/labels/index.d.ts.map +1 -0
- package/dist/board/azdo/labels/index.js +2 -0
- package/dist/board/azdo/labels/index.js.map +1 -0
- package/dist/board/azdo/labels/labels.d.ts +27 -0
- package/dist/board/azdo/labels/labels.d.ts.map +1 -0
- package/dist/board/azdo/labels/labels.js +64 -0
- package/dist/board/azdo/labels/labels.js.map +1 -0
- package/dist/board/azdo/relations/index.d.ts +2 -0
- package/dist/board/azdo/relations/index.d.ts.map +1 -0
- package/dist/board/azdo/relations/index.js +2 -0
- package/dist/board/azdo/relations/index.js.map +1 -0
- package/dist/board/azdo/relations/relations.d.ts +37 -0
- package/dist/board/azdo/relations/relations.d.ts.map +1 -0
- package/dist/board/azdo/relations/relations.js +109 -0
- package/dist/board/azdo/relations/relations.js.map +1 -0
- package/dist/board/detect-board.d.ts +28 -0
- package/dist/board/detect-board.d.ts.map +1 -0
- package/dist/board/detect-board.js +80 -0
- package/dist/board/detect-board.js.map +1 -0
- package/dist/board/factory/factory.d.ts +18 -0
- package/dist/board/factory/factory.d.ts.map +1 -0
- package/dist/board/factory/factory.js +34 -0
- package/dist/board/factory/factory.js.map +1 -0
- package/dist/board/factory/index.d.ts +2 -0
- package/dist/board/factory/index.d.ts.map +1 -0
- package/dist/board/factory/index.js +2 -0
- package/dist/board/factory/index.js.map +1 -0
- package/dist/board/github/api/api.d.ts +86 -0
- package/dist/board/github/api/api.d.ts.map +1 -0
- package/dist/board/github/api/api.js +161 -0
- package/dist/board/github/api/api.js.map +1 -0
- package/dist/board/github/api/index.d.ts +3 -0
- package/dist/board/github/api/index.d.ts.map +1 -0
- package/dist/board/github/api/index.js +2 -0
- package/dist/board/github/api/index.js.map +1 -0
- package/dist/board/github/github-board.d.ts +19 -0
- package/dist/board/github/github-board.d.ts.map +1 -0
- package/dist/board/github/github-board.js +104 -0
- package/dist/board/github/github-board.js.map +1 -0
- package/dist/board/github/index.d.ts +3 -0
- package/dist/board/github/index.d.ts.map +1 -0
- package/dist/board/github/index.js +3 -0
- package/dist/board/github/index.js.map +1 -0
- package/dist/board/github/labels/index.d.ts +2 -0
- package/dist/board/github/labels/index.d.ts.map +1 -0
- package/dist/board/github/labels/index.js +2 -0
- package/dist/board/github/labels/index.js.map +1 -0
- package/dist/board/github/labels/labels.d.ts +42 -0
- package/dist/board/github/labels/labels.d.ts.map +1 -0
- package/dist/board/github/labels/labels.js +93 -0
- package/dist/board/github/labels/labels.js.map +1 -0
- package/dist/board/github/relations/index.d.ts +2 -0
- package/dist/board/github/relations/index.d.ts.map +1 -0
- package/dist/board/github/relations/index.js +2 -0
- package/dist/board/github/relations/index.js.map +1 -0
- package/dist/board/github/relations/relations.d.ts +54 -0
- package/dist/board/github/relations/relations.d.ts.map +1 -0
- package/dist/board/github/relations/relations.js +152 -0
- package/dist/board/github/relations/relations.js.map +1 -0
- package/dist/board/index.d.ts +2 -0
- package/dist/board/index.d.ts.map +1 -0
- package/dist/board/index.js +2 -0
- package/dist/board/index.js.map +1 -0
- package/dist/board/jira/api/api.d.ts +129 -0
- package/dist/board/jira/api/api.d.ts.map +1 -0
- package/dist/board/jira/api/api.js +207 -0
- package/dist/board/jira/api/api.js.map +1 -0
- package/dist/board/jira/api/index.d.ts +3 -0
- package/dist/board/jira/api/index.d.ts.map +1 -0
- package/dist/board/jira/api/index.js +2 -0
- package/dist/board/jira/api/index.js.map +1 -0
- package/dist/board/jira/index.d.ts +3 -0
- package/dist/board/jira/index.d.ts.map +1 -0
- package/dist/board/jira/index.js +3 -0
- package/dist/board/jira/index.js.map +1 -0
- package/dist/board/jira/jira-board.d.ts +12 -0
- package/dist/board/jira/jira-board.d.ts.map +1 -0
- package/dist/board/jira/jira-board.js +112 -0
- package/dist/board/jira/jira-board.js.map +1 -0
- package/dist/board/jira/labels/index.d.ts +2 -0
- package/dist/board/jira/labels/index.d.ts.map +1 -0
- package/dist/board/jira/labels/index.js +2 -0
- package/dist/board/jira/labels/index.js.map +1 -0
- package/dist/board/jira/labels/labels.d.ts +34 -0
- package/dist/board/jira/labels/labels.d.ts.map +1 -0
- package/dist/board/jira/labels/labels.js +69 -0
- package/dist/board/jira/labels/labels.js.map +1 -0
- package/dist/board/jira/relations/index.d.ts +2 -0
- package/dist/board/jira/relations/index.d.ts.map +1 -0
- package/dist/board/jira/relations/index.js +2 -0
- package/dist/board/jira/relations/index.js.map +1 -0
- package/dist/board/jira/relations/relations.d.ts +44 -0
- package/dist/board/jira/relations/relations.d.ts.map +1 -0
- package/dist/board/jira/relations/relations.js +111 -0
- package/dist/board/jira/relations/relations.js.map +1 -0
- package/dist/board/linear/api/api.d.ts +68 -0
- package/dist/board/linear/api/api.d.ts.map +1 -0
- package/dist/board/linear/api/api.js +179 -0
- package/dist/board/linear/api/api.js.map +1 -0
- package/dist/board/linear/api/index.d.ts +2 -0
- package/dist/board/linear/api/index.d.ts.map +1 -0
- package/dist/board/linear/api/index.js +2 -0
- package/dist/board/linear/api/index.js.map +1 -0
- package/dist/board/linear/index.d.ts +3 -0
- package/dist/board/linear/index.d.ts.map +1 -0
- package/dist/board/linear/index.js +3 -0
- package/dist/board/linear/index.js.map +1 -0
- package/dist/board/linear/labels/index.d.ts +2 -0
- package/dist/board/linear/labels/index.d.ts.map +1 -0
- package/dist/board/linear/labels/index.js +2 -0
- package/dist/board/linear/labels/index.js.map +1 -0
- package/dist/board/linear/labels/labels.d.ts +63 -0
- package/dist/board/linear/labels/labels.d.ts.map +1 -0
- package/dist/board/linear/labels/labels.js +204 -0
- package/dist/board/linear/labels/labels.js.map +1 -0
- package/dist/board/linear/linear-board.d.ts +18 -0
- package/dist/board/linear/linear-board.d.ts.map +1 -0
- package/dist/board/linear/linear-board.js +115 -0
- package/dist/board/linear/linear-board.js.map +1 -0
- package/dist/board/linear/relations/index.d.ts +2 -0
- package/dist/board/linear/relations/index.d.ts.map +1 -0
- package/dist/board/linear/relations/index.js +2 -0
- package/dist/board/linear/relations/index.js.map +1 -0
- package/dist/board/linear/relations/relations.d.ts +67 -0
- package/dist/board/linear/relations/relations.d.ts.map +1 -0
- package/dist/board/linear/relations/relations.js +195 -0
- package/dist/board/linear/relations/relations.js.map +1 -0
- package/dist/board/notion/api/api.d.ts +83 -0
- package/dist/board/notion/api/api.d.ts.map +1 -0
- package/dist/board/notion/api/api.js +124 -0
- package/dist/board/notion/api/api.js.map +1 -0
- package/dist/board/notion/api/helpers.d.ts +105 -0
- package/dist/board/notion/api/helpers.d.ts.map +1 -0
- package/dist/board/notion/api/helpers.js +175 -0
- package/dist/board/notion/api/helpers.js.map +1 -0
- package/dist/board/notion/api/index.d.ts +4 -0
- package/dist/board/notion/api/index.d.ts.map +1 -0
- package/dist/board/notion/api/index.js +3 -0
- package/dist/board/notion/api/index.js.map +1 -0
- package/dist/board/notion/index.d.ts +3 -0
- package/dist/board/notion/index.d.ts.map +1 -0
- package/dist/board/notion/index.js +3 -0
- package/dist/board/notion/index.js.map +1 -0
- package/dist/board/notion/labels/index.d.ts +2 -0
- package/dist/board/notion/labels/index.d.ts.map +1 -0
- package/dist/board/notion/labels/index.js +2 -0
- package/dist/board/notion/labels/index.js.map +1 -0
- package/dist/board/notion/labels/labels.d.ts +30 -0
- package/dist/board/notion/labels/labels.d.ts.map +1 -0
- package/dist/board/notion/labels/labels.js +56 -0
- package/dist/board/notion/labels/labels.js.map +1 -0
- package/dist/board/notion/notion-board.d.ts +12 -0
- package/dist/board/notion/notion-board.d.ts.map +1 -0
- package/dist/board/notion/notion-board.js +156 -0
- package/dist/board/notion/notion-board.js.map +1 -0
- package/dist/board/notion/relations/index.d.ts +2 -0
- package/dist/board/notion/relations/index.d.ts.map +1 -0
- package/dist/board/notion/relations/index.js +2 -0
- package/dist/board/notion/relations/index.js.map +1 -0
- package/dist/board/notion/relations/relations.d.ts +43 -0
- package/dist/board/notion/relations/relations.d.ts.map +1 -0
- package/dist/board/notion/relations/relations.js +127 -0
- package/dist/board/notion/relations/relations.js.map +1 -0
- package/dist/board/shortcut/api/api.d.ts +110 -0
- package/dist/board/shortcut/api/api.d.ts.map +1 -0
- package/dist/board/shortcut/api/api.js +227 -0
- package/dist/board/shortcut/api/api.js.map +1 -0
- package/dist/board/shortcut/api/index.d.ts +2 -0
- package/dist/board/shortcut/api/index.d.ts.map +1 -0
- package/dist/board/shortcut/api/index.js +2 -0
- package/dist/board/shortcut/api/index.js.map +1 -0
- package/dist/board/shortcut/index.d.ts +3 -0
- package/dist/board/shortcut/index.d.ts.map +1 -0
- package/dist/board/shortcut/index.js +3 -0
- package/dist/board/shortcut/index.js.map +1 -0
- package/dist/board/shortcut/labels/index.d.ts +2 -0
- package/dist/board/shortcut/labels/index.d.ts.map +1 -0
- package/dist/board/shortcut/labels/index.js +2 -0
- package/dist/board/shortcut/labels/index.js.map +1 -0
- package/dist/board/shortcut/labels/labels.d.ts +95 -0
- package/dist/board/shortcut/labels/labels.d.ts.map +1 -0
- package/dist/board/shortcut/labels/labels.js +154 -0
- package/dist/board/shortcut/labels/labels.js.map +1 -0
- package/dist/board/shortcut/relations/index.d.ts +2 -0
- package/dist/board/shortcut/relations/index.d.ts.map +1 -0
- package/dist/board/shortcut/relations/index.js +2 -0
- package/dist/board/shortcut/relations/index.js.map +1 -0
- package/dist/board/shortcut/relations/relations.d.ts +44 -0
- package/dist/board/shortcut/relations/relations.d.ts.map +1 -0
- package/dist/board/shortcut/relations/relations.js +118 -0
- package/dist/board/shortcut/relations/relations.js.map +1 -0
- package/dist/board/shortcut/shortcut-board.d.ts +18 -0
- package/dist/board/shortcut/shortcut-board.d.ts.map +1 -0
- package/dist/board/shortcut/shortcut-board.js +143 -0
- package/dist/board/shortcut/shortcut-board.js.map +1 -0
- package/dist/dev/lifecycle/branch/branch.d.ts +35 -0
- package/dist/dev/lifecycle/branch/branch.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/branch.js +48 -0
- package/dist/dev/lifecycle/branch/branch.js.map +1 -0
- package/dist/dev/lifecycle/branch/index.d.ts +2 -0
- package/dist/dev/lifecycle/branch/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/index.js +2 -0
- package/dist/dev/lifecycle/branch/index.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts +22 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js +50 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts +2 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.js +2 -0
- package/dist/dev/lifecycle/commit-type/index.js.map +1 -0
- package/dist/dev/lifecycle/cost/cost.d.ts +28 -0
- package/dist/dev/lifecycle/cost/cost.d.ts.map +1 -0
- package/dist/dev/lifecycle/cost/cost.js +36 -0
- package/dist/dev/lifecycle/cost/cost.js.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts +44 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js +75 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts +51 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js +132 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js.map +1 -0
- package/dist/dev/lifecycle/epic/epic.d.ts +66 -0
- package/dist/dev/lifecycle/epic/epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/epic.js +91 -0
- package/dist/dev/lifecycle/epic/epic.js.map +1 -0
- package/dist/dev/lifecycle/epic/index.d.ts +2 -0
- package/dist/dev/lifecycle/epic/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/index.js +2 -0
- package/dist/dev/lifecycle/epic/index.js.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts +55 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js +75 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts +49 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js +81 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js.map +1 -0
- package/dist/dev/lifecycle/format/format.d.ts +11 -0
- package/dist/dev/lifecycle/format/format.d.ts.map +1 -0
- package/dist/dev/lifecycle/format/format.js +23 -0
- package/dist/dev/lifecycle/format/format.js.map +1 -0
- package/dist/dev/lifecycle/lock/index.d.ts +3 -0
- package/dist/dev/lifecycle/lock/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/index.js +2 -0
- package/dist/dev/lifecycle/lock/index.js.map +1 -0
- package/dist/dev/lifecycle/lock/lock.d.ts +68 -0
- package/dist/dev/lifecycle/lock/lock.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/lock.js +125 -0
- package/dist/dev/lifecycle/lock/lock.js.map +1 -0
- package/dist/dev/lifecycle/outcome/index.d.ts +2 -0
- package/dist/dev/lifecycle/outcome/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/index.js +2 -0
- package/dist/dev/lifecycle/outcome/index.js.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts +65 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.js +61 -0
- package/dist/dev/lifecycle/outcome/outcome.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts +3 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.js +2 -0
- package/dist/dev/lifecycle/pr-creation/index.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts +47 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js +143 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts +42 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.js +101 -0
- package/dist/dev/lifecycle/preflight/preflight.js.map +1 -0
- package/dist/dev/lifecycle/progress/index.d.ts +3 -0
- package/dist/dev/lifecycle/progress/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/index.js +2 -0
- package/dist/dev/lifecycle/progress/index.js.map +1 -0
- package/dist/dev/lifecycle/progress/progress.d.ts +98 -0
- package/dist/dev/lifecycle/progress/progress.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/progress.js +212 -0
- package/dist/dev/lifecycle/progress/progress.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts +86 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js +198 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js +158 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js +168 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts +107 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.js +225 -0
- package/dist/dev/lifecycle/pull-request/github/github.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts +103 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js +215 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts +44 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js +64 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts +65 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js +144 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts +30 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js +39 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js.map +1 -0
- package/dist/dev/lifecycle/quality/quality.d.ts +99 -0
- package/dist/dev/lifecycle/quality/quality.d.ts.map +1 -0
- package/dist/dev/lifecycle/quality/quality.js +213 -0
- package/dist/dev/lifecycle/quality/quality.js.map +1 -0
- package/dist/dev/lifecycle/resume/resume.d.ts +64 -0
- package/dist/dev/lifecycle/resume/resume.d.ts.map +1 -0
- package/dist/dev/lifecycle/resume/resume.js +171 -0
- package/dist/dev/lifecycle/resume/resume.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts +20 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.js +203 -0
- package/dist/dev/lifecycle/rework/rework-builders.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts +50 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js +41 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework.d.ts +63 -0
- package/dist/dev/lifecycle/rework/rework.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework.js +141 -0
- package/dist/dev/lifecycle/rework/rework.js.map +1 -0
- package/dist/dev/pipeline/context.d.ts +105 -0
- package/dist/dev/pipeline/context.d.ts.map +1 -0
- package/dist/dev/pipeline/context.js +107 -0
- package/dist/dev/pipeline/context.js.map +1 -0
- package/dist/dev/pipeline/index.d.ts +6 -0
- package/dist/dev/pipeline/index.d.ts.map +1 -0
- package/dist/dev/pipeline/index.js +5 -0
- package/dist/dev/pipeline/index.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts +62 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js +128 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js +2 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts +40 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js +43 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts +68 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js +125 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts +38 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js +33 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.js +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts +48 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js +42 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js +2 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts +52 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js +34 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.js +2 -0
- package/dist/dev/pipeline/phases/feasibility/index.js.map +1 -0
- package/dist/dev/pipeline/phases/index.d.ts +26 -0
- package/dist/dev/pipeline/phases/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/index.js +14 -0
- package/dist/dev/pipeline/phases/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.js +2 -0
- package/dist/dev/pipeline/phases/lock-check/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts +55 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js +60 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js +2 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts +58 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js +82 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts +42 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js +41 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js +2 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts +40 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js +38 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js +2 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts +46 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js +64 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.js +2 -0
- package/dist/dev/pipeline/phases/transition/index.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts +30 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.js +27 -0
- package/dist/dev/pipeline/phases/transition/transition.js.map +1 -0
- package/dist/dev/pipeline/run-pipeline.d.ts +98 -0
- package/dist/dev/pipeline/run-pipeline.d.ts.map +1 -0
- package/dist/dev/pipeline/run-pipeline.js +106 -0
- package/dist/dev/pipeline/run-pipeline.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/azdo/azdo-pr.d.ts +58 -0
- package/dist/schemas/azdo/azdo-pr.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo-pr.js +48 -0
- package/dist/schemas/azdo/azdo-pr.js.map +1 -0
- package/dist/schemas/azdo/azdo.d.ts +88 -0
- package/dist/schemas/azdo/azdo.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo.js +60 -0
- package/dist/schemas/azdo/azdo.js.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts +112 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.js +73 -0
- package/dist/schemas/bitbucket/bitbucket.js.map +1 -0
- package/dist/schemas/env/env.d.ts +336 -0
- package/dist/schemas/env/env.d.ts.map +1 -0
- package/dist/schemas/env/env.js +94 -0
- package/dist/schemas/env/env.js.map +1 -0
- package/dist/schemas/github/github.d.ts +128 -0
- package/dist/schemas/github/github.d.ts.map +1 -0
- package/dist/schemas/github/github.js +65 -0
- package/dist/schemas/github/github.js.map +1 -0
- package/dist/schemas/gitlab/gitlab.d.ts +72 -0
- package/dist/schemas/gitlab/gitlab.d.ts.map +1 -0
- package/dist/schemas/gitlab/gitlab.js +38 -0
- package/dist/schemas/gitlab/gitlab.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/jira/jira.d.ts +79 -0
- package/dist/schemas/jira/jira.d.ts.map +1 -0
- package/dist/schemas/jira/jira.js +69 -0
- package/dist/schemas/jira/jira.js.map +1 -0
- package/dist/schemas/linear/linear.d.ts +178 -0
- package/dist/schemas/linear/linear.d.ts.map +1 -0
- package/dist/schemas/linear/linear.js +136 -0
- package/dist/schemas/linear/linear.js.map +1 -0
- package/dist/schemas/notion/notion.d.ts +131 -0
- package/dist/schemas/notion/notion.d.ts.map +1 -0
- package/dist/schemas/notion/notion.js +102 -0
- package/dist/schemas/notion/notion.js.map +1 -0
- package/dist/schemas/shortcut/shortcut.d.ts +149 -0
- package/dist/schemas/shortcut/shortcut.d.ts.map +1 -0
- package/dist/schemas/shortcut/shortcut.js +68 -0
- package/dist/schemas/shortcut/shortcut.js.map +1 -0
- package/dist/shared/cache/cache.d.ts +14 -0
- package/dist/shared/cache/cache.d.ts.map +1 -0
- package/dist/shared/cache/cache.js +25 -0
- package/dist/shared/cache/cache.js.map +1 -0
- package/dist/shared/cache/index.d.ts +2 -0
- package/dist/shared/cache/index.d.ts.map +1 -0
- package/dist/shared/cache/index.js +2 -0
- package/dist/shared/cache/index.js.map +1 -0
- package/dist/shared/env-parser/env-parser.d.ts +42 -0
- package/dist/shared/env-parser/env-parser.d.ts.map +1 -0
- package/dist/shared/env-parser/env-parser.js +97 -0
- package/dist/shared/env-parser/env-parser.js.map +1 -0
- package/dist/shared/env-parser/index.d.ts +3 -0
- package/dist/shared/env-parser/index.d.ts.map +1 -0
- package/dist/shared/env-parser/index.js +2 -0
- package/dist/shared/env-parser/index.js.map +1 -0
- package/dist/shared/git-ops/git-ops.d.ts +127 -0
- package/dist/shared/git-ops/git-ops.d.ts.map +1 -0
- package/dist/shared/git-ops/git-ops.js +225 -0
- package/dist/shared/git-ops/git-ops.js.map +1 -0
- package/dist/shared/git-ops/index.d.ts +3 -0
- package/dist/shared/git-ops/index.d.ts.map +1 -0
- package/dist/shared/git-ops/index.js +2 -0
- package/dist/shared/git-ops/index.js.map +1 -0
- package/dist/shared/git-token/git-token.d.ts +18 -0
- package/dist/shared/git-token/git-token.d.ts.map +1 -0
- package/dist/shared/git-token/git-token.js +28 -0
- package/dist/shared/git-token/git-token.js.map +1 -0
- package/dist/shared/git-token/index.d.ts +2 -0
- package/dist/shared/git-token/index.d.ts.map +1 -0
- package/dist/shared/git-token/index.js +2 -0
- package/dist/shared/git-token/index.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts +32 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js +53 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts +3 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.js +2 -0
- package/dist/shared/http/fetch-and-parse/index.js.map +1 -0
- package/dist/shared/http/index.d.ts +7 -0
- package/dist/shared/http/index.d.ts.map +1 -0
- package/dist/shared/http/index.js +4 -0
- package/dist/shared/http/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/index.d.ts +3 -0
- package/dist/shared/http/ping-endpoint/index.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/index.js +2 -0
- package/dist/shared/http/ping-endpoint/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts +29 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js +31 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js.map +1 -0
- package/dist/shared/http/retry-fetch/index.d.ts +3 -0
- package/dist/shared/http/retry-fetch/index.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/index.js +2 -0
- package/dist/shared/http/retry-fetch/index.js.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts +33 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js +94 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js.map +1 -0
- package/dist/shared/label-helpers/index.d.ts +3 -0
- package/dist/shared/label-helpers/index.d.ts.map +1 -0
- package/dist/shared/label-helpers/index.js +2 -0
- package/dist/shared/label-helpers/index.js.map +1 -0
- package/dist/shared/label-helpers/label-helpers.d.ts +41 -0
- package/dist/shared/label-helpers/label-helpers.d.ts.map +1 -0
- package/dist/shared/label-helpers/label-helpers.js +51 -0
- package/dist/shared/label-helpers/label-helpers.js.map +1 -0
- package/dist/shared/remote/index.d.ts +2 -0
- package/dist/shared/remote/index.d.ts.map +1 -0
- package/dist/shared/remote/index.js +2 -0
- package/dist/shared/remote/index.js.map +1 -0
- package/dist/shared/remote/remote.d.ts +39 -0
- package/dist/shared/remote/remote.d.ts.map +1 -0
- package/dist/shared/remote/remote.js +180 -0
- package/dist/shared/remote/remote.js.map +1 -0
- package/dist/types/board.d.ts +62 -0
- package/dist/types/board.d.ts.map +1 -0
- package/dist/types/board.js +5 -0
- package/dist/types/board.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/progress.d.ts +21 -0
- package/dist/types/progress.d.ts.map +1 -0
- package/dist/types/progress.js +34 -0
- package/dist/types/progress.js.map +1 -0
- package/dist/types/remote.d.ts +77 -0
- package/dist/types/remote.d.ts.map +1 -0
- package/dist/types/remote.js +5 -0
- package/dist/types/remote.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Issues relationship functions.
|
|
3
|
+
*
|
|
4
|
+
* Checks blocker status (via `Blocked by #N` in issue bodies) and
|
|
5
|
+
* children status (via `Epic: #N` / `Parent: #N` text search).
|
|
6
|
+
*/
|
|
7
|
+
import type { Fetcher } from '../../../shared/http/index.js';
|
|
8
|
+
import type { ChildrenStatus } from '../../../types/index.js';
|
|
9
|
+
/** Options for {@link fetchBlockerStatus}. */
|
|
10
|
+
type FetchBlockerOpts = {
|
|
11
|
+
readonly token: string;
|
|
12
|
+
readonly repo: string;
|
|
13
|
+
readonly issueNumber: number;
|
|
14
|
+
readonly body: string;
|
|
15
|
+
readonly fetcher?: Fetcher;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Check whether a GitHub issue is blocked by unresolved blockers.
|
|
19
|
+
*
|
|
20
|
+
* Parses the issue body for `Blocked by #N` lines and checks if
|
|
21
|
+
* any of those issues are still open.
|
|
22
|
+
*
|
|
23
|
+
* @param opts - Token, repo, issue number, and issue body text.
|
|
24
|
+
* @returns `true` if any blocker is unresolved, `false` otherwise.
|
|
25
|
+
*/
|
|
26
|
+
export declare function fetchBlockerStatus(opts: FetchBlockerOpts): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Parse `Blocked by #N` references from issue body text.
|
|
29
|
+
*
|
|
30
|
+
* @param body - The issue body text.
|
|
31
|
+
* @param selfNumber - The current issue number (excluded from results).
|
|
32
|
+
* @returns Array of blocker issue numbers.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseBlockerRefs(body: string, selfNumber: number): readonly number[];
|
|
35
|
+
/** Options for {@link fetchChildrenStatus}. */
|
|
36
|
+
type FetchChildrenOpts = {
|
|
37
|
+
readonly token: string;
|
|
38
|
+
readonly repo: string;
|
|
39
|
+
readonly parentNumber: number;
|
|
40
|
+
readonly currentTicketKey?: string;
|
|
41
|
+
readonly fetcher?: Fetcher;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Fetch children status of a GitHub parent issue (dual-mode).
|
|
45
|
+
*
|
|
46
|
+
* Tries `Epic: #{parentNumber}` text convention first. Falls back
|
|
47
|
+
* to `Parent: #{parentNumber}` for backward compatibility.
|
|
48
|
+
*
|
|
49
|
+
* @param opts - Token, repo, parent number, and optional current ticket key.
|
|
50
|
+
* @returns The children status, or `undefined` on failure.
|
|
51
|
+
*/
|
|
52
|
+
export declare function fetchChildrenStatus(opts: FetchChildrenOpts): Promise<ChildrenStatus | undefined>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../src/board/github/relations/relations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoCzD,8CAA8C;AAC9C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,SAAS,MAAM,EAAE,CAInB;AAED,+CAA+C;AAC/C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA8BF;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA8BrC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { z } from 'zod/mini';
|
|
2
|
+
import { GITHUB_API, githubHeaders, isValidRepo } from '../api/index.js';
|
|
3
|
+
const issueStateSchema = z.object({ state: z.optional(z.string()) });
|
|
4
|
+
const searchCountSchema = z.object({ total_count: z.optional(z.number()) });
|
|
5
|
+
/** Check if any blocker issue is still open (parallel fetch + short-circuit). */
|
|
6
|
+
async function checkAnyBlockerOpen(opts) {
|
|
7
|
+
const { headers, repo, blockerNumbers, fetcher } = opts;
|
|
8
|
+
const doFetch = fetcher ?? fetch;
|
|
9
|
+
const responses = await Promise.all(blockerNumbers.map(async (num) => {
|
|
10
|
+
const response = await doFetch(`${GITHUB_API}/repos/${repo}/issues/${num}`, { headers });
|
|
11
|
+
if (!response.ok)
|
|
12
|
+
return false;
|
|
13
|
+
const parsed = issueStateSchema.safeParse(await response.json());
|
|
14
|
+
return parsed.success && parsed.data.state !== 'closed';
|
|
15
|
+
}));
|
|
16
|
+
return responses.some(Boolean);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a GitHub issue is blocked by unresolved blockers.
|
|
20
|
+
*
|
|
21
|
+
* Parses the issue body for `Blocked by #N` lines and checks if
|
|
22
|
+
* any of those issues are still open.
|
|
23
|
+
*
|
|
24
|
+
* @param opts - Token, repo, issue number, and issue body text.
|
|
25
|
+
* @returns `true` if any blocker is unresolved, `false` otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export async function fetchBlockerStatus(opts) {
|
|
28
|
+
const { token, repo, issueNumber, body, fetcher } = opts;
|
|
29
|
+
if (!isValidRepo(repo))
|
|
30
|
+
return false;
|
|
31
|
+
const blockerNumbers = parseBlockerRefs(body, issueNumber);
|
|
32
|
+
if (blockerNumbers.length === 0)
|
|
33
|
+
return false;
|
|
34
|
+
try {
|
|
35
|
+
const headers = githubHeaders(token);
|
|
36
|
+
const isOpen = await checkAnyBlockerOpen({
|
|
37
|
+
headers,
|
|
38
|
+
repo,
|
|
39
|
+
blockerNumbers,
|
|
40
|
+
fetcher,
|
|
41
|
+
});
|
|
42
|
+
return isOpen;
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.warn(`⚠ fetchBlockerStatus failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse `Blocked by #N` references from issue body text.
|
|
51
|
+
*
|
|
52
|
+
* @param body - The issue body text.
|
|
53
|
+
* @param selfNumber - The current issue number (excluded from results).
|
|
54
|
+
* @returns Array of blocker issue numbers.
|
|
55
|
+
*/
|
|
56
|
+
export function parseBlockerRefs(body, selfNumber) {
|
|
57
|
+
return [...body.matchAll(/Blocked by #(\d+)/gi)]
|
|
58
|
+
.map((m) => parseInt(m[1], 10))
|
|
59
|
+
.filter((n) => !Number.isNaN(n) && n !== selfNumber);
|
|
60
|
+
}
|
|
61
|
+
/** Try both Epic: and Parent: conventions, return the first with results. */
|
|
62
|
+
async function searchBothConventions(opts) {
|
|
63
|
+
const { token, repo, parentNumber, fetcher } = opts;
|
|
64
|
+
const shared = { token, repo, fetcher };
|
|
65
|
+
const epic = await fetchChildrenByBodyRef({
|
|
66
|
+
...shared,
|
|
67
|
+
bodyRef: `Epic: #${parentNumber}`,
|
|
68
|
+
});
|
|
69
|
+
if (epic && epic.total > 0)
|
|
70
|
+
return { epic, parent: undefined };
|
|
71
|
+
const parent = await fetchChildrenByBodyRef({
|
|
72
|
+
...shared,
|
|
73
|
+
bodyRef: `Parent: #${parentNumber}`,
|
|
74
|
+
});
|
|
75
|
+
return { epic, parent };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Fetch children status of a GitHub parent issue (dual-mode).
|
|
79
|
+
*
|
|
80
|
+
* Tries `Epic: #{parentNumber}` text convention first. Falls back
|
|
81
|
+
* to `Parent: #{parentNumber}` for backward compatibility.
|
|
82
|
+
*
|
|
83
|
+
* @param opts - Token, repo, parent number, and optional current ticket key.
|
|
84
|
+
* @returns The children status, or `undefined` on failure.
|
|
85
|
+
*/
|
|
86
|
+
export async function fetchChildrenStatus(opts) {
|
|
87
|
+
const { token, repo, parentNumber, currentTicketKey, fetcher } = opts;
|
|
88
|
+
if (!isValidRepo(repo))
|
|
89
|
+
return undefined;
|
|
90
|
+
try {
|
|
91
|
+
const { epic, parent } = await searchBothConventions({
|
|
92
|
+
token,
|
|
93
|
+
repo,
|
|
94
|
+
parentNumber,
|
|
95
|
+
fetcher,
|
|
96
|
+
});
|
|
97
|
+
// Return whichever convention found children
|
|
98
|
+
const withChildren = [epic, parent].find((r) => r && r.total > 0);
|
|
99
|
+
if (withChildren)
|
|
100
|
+
return withChildren;
|
|
101
|
+
// If both searches failed (API errors), signal unknown state
|
|
102
|
+
if (!epic && !parent)
|
|
103
|
+
return undefined;
|
|
104
|
+
// At least one succeeded with 0 results. If the current ticket
|
|
105
|
+
// is a known child, the search index may not have caught up yet.
|
|
106
|
+
if (currentTicketKey)
|
|
107
|
+
return { total: 1, incomplete: 1 };
|
|
108
|
+
return epic ?? parent ?? { total: 0, incomplete: 0 };
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
console.warn(`⚠ fetchChildrenStatus failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Fetch children status by searching for a body reference string.
|
|
117
|
+
*
|
|
118
|
+
* @param opts - Token, repo, and body reference string.
|
|
119
|
+
* @returns The children status, or `undefined` on failure.
|
|
120
|
+
*/
|
|
121
|
+
async function fetchChildrenByBodyRef(opts) {
|
|
122
|
+
const { token, repo, bodyRef, fetcher } = opts;
|
|
123
|
+
const headers = githubHeaders(token);
|
|
124
|
+
const doFetch = fetcher ?? fetch;
|
|
125
|
+
const allQuery = `"${bodyRef}" repo:${repo} is:issue`;
|
|
126
|
+
const allParams = new URLSearchParams({ q: allQuery, per_page: '1' });
|
|
127
|
+
const allResponse = await doFetch(`${GITHUB_API}/search/issues?${allParams}`, {
|
|
128
|
+
headers,
|
|
129
|
+
});
|
|
130
|
+
if (!allResponse.ok)
|
|
131
|
+
return undefined;
|
|
132
|
+
const allParsed = searchCountSchema.safeParse(await allResponse.json());
|
|
133
|
+
if (!allParsed.success)
|
|
134
|
+
return undefined;
|
|
135
|
+
const total = allParsed.data.total_count ?? 0;
|
|
136
|
+
if (total === 0)
|
|
137
|
+
return { total: 0, incomplete: 0 };
|
|
138
|
+
const openQuery = `"${bodyRef}" repo:${repo} is:issue is:open`;
|
|
139
|
+
const openParams = new URLSearchParams({
|
|
140
|
+
q: openQuery,
|
|
141
|
+
per_page: '1',
|
|
142
|
+
});
|
|
143
|
+
const openResponse = await doFetch(`${GITHUB_API}/search/issues?${openParams}`, { headers });
|
|
144
|
+
if (!openResponse.ok)
|
|
145
|
+
return undefined;
|
|
146
|
+
const openParsed = searchCountSchema.safeParse(await openResponse.json());
|
|
147
|
+
return {
|
|
148
|
+
total,
|
|
149
|
+
incomplete: openParsed.success ? (openParsed.data.total_count ?? 0) : total,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../src/board/github/relations/relations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/board/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/board/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jira Cloud API functions.
|
|
3
|
+
*
|
|
4
|
+
* Low-level functions for interacting with the Jira REST API.
|
|
5
|
+
* Uses the POST `/rest/api/3/search/jql` endpoint (old GET `/search`
|
|
6
|
+
* was removed by Atlassian in August 2025).
|
|
7
|
+
*/
|
|
8
|
+
import type { Fetcher } from '../../../shared/http/index.js';
|
|
9
|
+
import type { PingResult } from '../../../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Build Jira Basic auth header value.
|
|
12
|
+
*
|
|
13
|
+
* @param user - The Jira username (email).
|
|
14
|
+
* @param token - The Jira API token.
|
|
15
|
+
* @returns The Base64-encoded `user:token` string for Basic auth.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildAuthHeader(user: string, token: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Build standard Jira API request headers.
|
|
20
|
+
*
|
|
21
|
+
* @param auth - The Base64-encoded Basic auth string.
|
|
22
|
+
* @returns Headers object for Jira REST API requests.
|
|
23
|
+
*/
|
|
24
|
+
export declare function jiraHeaders(auth: string): Record<string, string>;
|
|
25
|
+
/**
|
|
26
|
+
* Validate that a value is safe for use in JQL queries.
|
|
27
|
+
*
|
|
28
|
+
* @param value - The value to validate.
|
|
29
|
+
* @returns `true` if safe for JQL interpolation.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isSafeJqlValue(value: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Validate that a string is a valid Jira issue key.
|
|
34
|
+
*
|
|
35
|
+
* @param key - The string to validate.
|
|
36
|
+
* @returns `true` if it matches `PROJ-123` format.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isValidIssueKey(key: string): boolean;
|
|
39
|
+
/** Options for {@link pingJira}. */
|
|
40
|
+
type PingJiraOpts = {
|
|
41
|
+
readonly baseUrl: string;
|
|
42
|
+
readonly projectKey: string;
|
|
43
|
+
readonly auth: string;
|
|
44
|
+
readonly fetcher?: Fetcher;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Ping the Jira API to verify connectivity and credentials.
|
|
48
|
+
*
|
|
49
|
+
* @param opts - Base URL, project key, auth, and optional fetcher.
|
|
50
|
+
* @returns Ping result with `ok` and optional `error`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function pingJira(opts: PingJiraOpts): Promise<PingResult>;
|
|
53
|
+
/** Options for {@link buildJql}. */
|
|
54
|
+
type BuildJqlOpts = {
|
|
55
|
+
readonly projectKey: string;
|
|
56
|
+
readonly status: string;
|
|
57
|
+
readonly sprint?: string;
|
|
58
|
+
readonly label?: string;
|
|
59
|
+
readonly excludeHitl?: boolean;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Build a JQL query for fetching tickets.
|
|
63
|
+
*
|
|
64
|
+
* @param opts - Project key, status, and optional filters.
|
|
65
|
+
* @returns The JQL query string.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildJql(opts: BuildJqlOpts): string;
|
|
68
|
+
/**
|
|
69
|
+
* Extract all text from a Jira ADF (Atlassian Document Format) description.
|
|
70
|
+
*
|
|
71
|
+
* Recursively walks the ADF tree and collects all string values.
|
|
72
|
+
*
|
|
73
|
+
* @param adf - The ADF description object (or `undefined`).
|
|
74
|
+
* @returns A single string with all text content joined by spaces.
|
|
75
|
+
*/
|
|
76
|
+
export declare function extractAdfText(adf: unknown): string;
|
|
77
|
+
/** Jira ticket with epic, blocker, and label info. */
|
|
78
|
+
export type JiraTicket = {
|
|
79
|
+
readonly key: string;
|
|
80
|
+
readonly title: string;
|
|
81
|
+
readonly description: string;
|
|
82
|
+
readonly provider: 'jira';
|
|
83
|
+
readonly epicKey?: string;
|
|
84
|
+
readonly blockers: readonly string[];
|
|
85
|
+
readonly labels?: readonly string[];
|
|
86
|
+
};
|
|
87
|
+
/** Options for {@link fetchTickets}. */
|
|
88
|
+
type FetchTicketsOpts = {
|
|
89
|
+
readonly baseUrl: string;
|
|
90
|
+
readonly auth: string;
|
|
91
|
+
readonly projectKey: string;
|
|
92
|
+
readonly status: string;
|
|
93
|
+
readonly sprint?: string;
|
|
94
|
+
readonly label?: string;
|
|
95
|
+
readonly excludeHitl?: boolean;
|
|
96
|
+
readonly limit?: number;
|
|
97
|
+
readonly fetcher?: Fetcher;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Fetch candidate tickets from Jira.
|
|
101
|
+
*
|
|
102
|
+
* @param opts - Connection details, project key, and optional filters.
|
|
103
|
+
* @returns Array of fetched tickets (may be empty).
|
|
104
|
+
*/
|
|
105
|
+
export declare function fetchTickets(opts: FetchTicketsOpts): Promise<readonly JiraTicket[]>;
|
|
106
|
+
/** Options for {@link transitionIssue}. */
|
|
107
|
+
type TransitionOpts = {
|
|
108
|
+
readonly baseUrl: string;
|
|
109
|
+
readonly auth: string;
|
|
110
|
+
readonly issueKey: string;
|
|
111
|
+
readonly statusName: string;
|
|
112
|
+
readonly fetcher?: Fetcher;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Look up a Jira transition ID by status name.
|
|
116
|
+
*
|
|
117
|
+
* @param opts - Connection details and target status.
|
|
118
|
+
* @returns The transition ID, or `undefined` if not found.
|
|
119
|
+
*/
|
|
120
|
+
export declare function lookupTransitionId(opts: TransitionOpts): Promise<string | undefined>;
|
|
121
|
+
/**
|
|
122
|
+
* Transition a Jira issue to a new status.
|
|
123
|
+
*
|
|
124
|
+
* @param opts - Connection details, issue key, and target status.
|
|
125
|
+
* @returns `true` if the transition succeeded.
|
|
126
|
+
*/
|
|
127
|
+
export declare function transitionIssue(opts: TransitionOpts): Promise<boolean>;
|
|
128
|
+
export {};
|
|
129
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/board/jira/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { jiraSearchResponseSchema, jiraTransitionsResponseSchema, } from '../../../schemas/index.js';
|
|
2
|
+
import { fetchAndParse, pingEndpoint } from '../../../shared/http/index.js';
|
|
3
|
+
/** Pattern for safe JQL values (prevents injection). */
|
|
4
|
+
const SAFE_VALUE_PATTERN = /^[a-zA-Z0-9 _\-'.:]+$/;
|
|
5
|
+
/** Pattern for valid Jira issue keys (e.g. `PROJ-123`). */
|
|
6
|
+
const ISSUE_KEY_PATTERN = /^[A-Z][A-Z0-9]+-\d+$/;
|
|
7
|
+
/**
|
|
8
|
+
* Build Jira Basic auth header value.
|
|
9
|
+
*
|
|
10
|
+
* @param user - The Jira username (email).
|
|
11
|
+
* @param token - The Jira API token.
|
|
12
|
+
* @returns The Base64-encoded `user:token` string for Basic auth.
|
|
13
|
+
*/
|
|
14
|
+
export function buildAuthHeader(user, token) {
|
|
15
|
+
return Buffer.from(`${user}:${token}`).toString('base64');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build standard Jira API request headers.
|
|
19
|
+
*
|
|
20
|
+
* @param auth - The Base64-encoded Basic auth string.
|
|
21
|
+
* @returns Headers object for Jira REST API requests.
|
|
22
|
+
*/
|
|
23
|
+
export function jiraHeaders(auth) {
|
|
24
|
+
return {
|
|
25
|
+
Authorization: `Basic ${auth}`,
|
|
26
|
+
Accept: 'application/json',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate that a value is safe for use in JQL queries.
|
|
31
|
+
*
|
|
32
|
+
* @param value - The value to validate.
|
|
33
|
+
* @returns `true` if safe for JQL interpolation.
|
|
34
|
+
*/
|
|
35
|
+
export function isSafeJqlValue(value) {
|
|
36
|
+
return SAFE_VALUE_PATTERN.test(value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Validate that a string is a valid Jira issue key.
|
|
40
|
+
*
|
|
41
|
+
* @param key - The string to validate.
|
|
42
|
+
* @returns `true` if it matches `PROJ-123` format.
|
|
43
|
+
*/
|
|
44
|
+
export function isValidIssueKey(key) {
|
|
45
|
+
return ISSUE_KEY_PATTERN.test(key);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Ping the Jira API to verify connectivity and credentials.
|
|
49
|
+
*
|
|
50
|
+
* @param opts - Base URL, project key, auth, and optional fetcher.
|
|
51
|
+
* @returns Ping result with `ok` and optional `error`.
|
|
52
|
+
*/
|
|
53
|
+
export async function pingJira(opts) {
|
|
54
|
+
const { baseUrl, projectKey, auth, fetcher } = opts;
|
|
55
|
+
return pingEndpoint({
|
|
56
|
+
url: `${baseUrl}/rest/api/3/project/${projectKey}`,
|
|
57
|
+
headers: jiraHeaders(auth),
|
|
58
|
+
statusErrors: {
|
|
59
|
+
401: '✗ Jira auth failed — check credentials',
|
|
60
|
+
403: '✗ Jira permission denied for this project',
|
|
61
|
+
404: `✗ Jira project "${projectKey}" not found`,
|
|
62
|
+
},
|
|
63
|
+
networkError: '✗ Could not reach Jira — check network',
|
|
64
|
+
fetcher,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build a JQL query for fetching tickets.
|
|
69
|
+
*
|
|
70
|
+
* @param opts - Project key, status, and optional filters.
|
|
71
|
+
* @returns The JQL query string.
|
|
72
|
+
*/
|
|
73
|
+
export function buildJql(opts) {
|
|
74
|
+
const { projectKey, status, sprint, label, excludeHitl } = opts;
|
|
75
|
+
const interpolated = [projectKey, status, ...(label ? [label] : [])];
|
|
76
|
+
const unsafe = interpolated.find((v) => !isSafeJqlValue(v));
|
|
77
|
+
if (unsafe)
|
|
78
|
+
throw new Error(`Unsafe JQL value: "${unsafe}"`);
|
|
79
|
+
const parts = [
|
|
80
|
+
`project="${projectKey}"`,
|
|
81
|
+
...(sprint ? ['sprint in openSprints()'] : []),
|
|
82
|
+
...(label ? [`labels = "${label}"`] : []),
|
|
83
|
+
...(excludeHitl ? ['labels != "clancy:hitl"'] : []),
|
|
84
|
+
'assignee=currentUser()',
|
|
85
|
+
`status="${status}"`,
|
|
86
|
+
];
|
|
87
|
+
return `${parts.join(' AND ')} ORDER BY priority ASC`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Extract all text from a Jira ADF (Atlassian Document Format) description.
|
|
91
|
+
*
|
|
92
|
+
* Recursively walks the ADF tree and collects all string values.
|
|
93
|
+
*
|
|
94
|
+
* @param adf - The ADF description object (or `undefined`).
|
|
95
|
+
* @returns A single string with all text content joined by spaces.
|
|
96
|
+
*/
|
|
97
|
+
export function extractAdfText(adf) {
|
|
98
|
+
if (!adf || typeof adf !== 'object')
|
|
99
|
+
return '';
|
|
100
|
+
return collectStrings(adf).join(' ');
|
|
101
|
+
}
|
|
102
|
+
/** Recursively collect all string values from a nested structure. */
|
|
103
|
+
function collectStrings(node) {
|
|
104
|
+
if (typeof node === 'string')
|
|
105
|
+
return [node];
|
|
106
|
+
if (Array.isArray(node))
|
|
107
|
+
return node.flatMap(collectStrings);
|
|
108
|
+
if (node && typeof node === 'object') {
|
|
109
|
+
// Safe: the guard above confirms `node` is a non-null object
|
|
110
|
+
return Object.values(node).flatMap(collectStrings);
|
|
111
|
+
}
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Fetch candidate tickets from Jira.
|
|
116
|
+
*
|
|
117
|
+
* @param opts - Connection details, project key, and optional filters.
|
|
118
|
+
* @returns Array of fetched tickets (may be empty).
|
|
119
|
+
*/
|
|
120
|
+
export async function fetchTickets(opts) {
|
|
121
|
+
const { baseUrl, auth, projectKey, status } = opts;
|
|
122
|
+
const { sprint, label, excludeHitl, limit = 5, fetcher } = opts;
|
|
123
|
+
const jql = buildJql({ projectKey, status, sprint, label, excludeHitl });
|
|
124
|
+
const data = await fetchAndParse(`${baseUrl}/rest/api/3/search/jql`, {
|
|
125
|
+
method: 'POST',
|
|
126
|
+
headers: { ...jiraHeaders(auth), 'Content-Type': 'application/json' },
|
|
127
|
+
body: JSON.stringify({
|
|
128
|
+
jql,
|
|
129
|
+
maxResults: limit,
|
|
130
|
+
fields: [
|
|
131
|
+
'summary',
|
|
132
|
+
'description',
|
|
133
|
+
'issuelinks',
|
|
134
|
+
'parent',
|
|
135
|
+
'customfield_10014',
|
|
136
|
+
'labels',
|
|
137
|
+
],
|
|
138
|
+
}),
|
|
139
|
+
}, { schema: jiraSearchResponseSchema, label: 'Jira API', fetcher });
|
|
140
|
+
if (!data)
|
|
141
|
+
return [];
|
|
142
|
+
return data.issues.map(mapIssueToTicket);
|
|
143
|
+
}
|
|
144
|
+
/** Extract blocker issue keys from Jira issue links. */
|
|
145
|
+
function extractBlockers(links) {
|
|
146
|
+
return (links ?? [])
|
|
147
|
+
.filter((link) => link.type?.name === 'Blocks' && link.inwardIssue?.key)
|
|
148
|
+
.map((link) => link.inwardIssue?.key)
|
|
149
|
+
.filter((key) => Boolean(key));
|
|
150
|
+
}
|
|
151
|
+
/** Map a Jira search result issue to a JiraTicket. */
|
|
152
|
+
function mapIssueToTicket(issue) {
|
|
153
|
+
const { fields } = issue;
|
|
154
|
+
return {
|
|
155
|
+
key: issue.key,
|
|
156
|
+
title: fields.summary,
|
|
157
|
+
description: extractAdfText(fields.description),
|
|
158
|
+
provider: 'jira',
|
|
159
|
+
epicKey: fields.parent?.key ?? fields.customfield_10014 ?? undefined,
|
|
160
|
+
blockers: extractBlockers(fields.issuelinks),
|
|
161
|
+
labels: fields.labels,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Look up a Jira transition ID by status name.
|
|
166
|
+
*
|
|
167
|
+
* @param opts - Connection details and target status.
|
|
168
|
+
* @returns The transition ID, or `undefined` if not found.
|
|
169
|
+
*/
|
|
170
|
+
export async function lookupTransitionId(opts) {
|
|
171
|
+
const { baseUrl, auth, issueKey, statusName } = opts;
|
|
172
|
+
if (!isValidIssueKey(issueKey))
|
|
173
|
+
return undefined;
|
|
174
|
+
const data = await fetchAndParse(`${baseUrl}/rest/api/3/issue/${issueKey}/transitions`, { headers: jiraHeaders(auth) }, {
|
|
175
|
+
schema: jiraTransitionsResponseSchema,
|
|
176
|
+
label: 'Jira transitions',
|
|
177
|
+
fetcher: opts.fetcher,
|
|
178
|
+
});
|
|
179
|
+
return data?.transitions.find((t) => t.name === statusName)?.id;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Transition a Jira issue to a new status.
|
|
183
|
+
*
|
|
184
|
+
* @param opts - Connection details, issue key, and target status.
|
|
185
|
+
* @returns `true` if the transition succeeded.
|
|
186
|
+
*/
|
|
187
|
+
export async function transitionIssue(opts) {
|
|
188
|
+
const { baseUrl, auth, issueKey, statusName, fetcher } = opts;
|
|
189
|
+
try {
|
|
190
|
+
const transitionId = await lookupTransitionId(opts);
|
|
191
|
+
if (!transitionId) {
|
|
192
|
+
console.warn(`⚠ Jira transition "${statusName}" not found for ${issueKey}`);
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
const doFetch = fetcher ?? fetch;
|
|
196
|
+
const response = await doFetch(`${baseUrl}/rest/api/3/issue/${issueKey}/transitions`, {
|
|
197
|
+
method: 'POST',
|
|
198
|
+
headers: { ...jiraHeaders(auth), 'Content-Type': 'application/json' },
|
|
199
|
+
body: JSON.stringify({ transition: { id: transitionId } }),
|
|
200
|
+
});
|
|
201
|
+
return response.ok;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/board/jira/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/board/jira/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/board/jira/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/board/jira/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/board/jira/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { JiraEnv } from '../../schemas/index.js';
|
|
2
|
+
import type { Fetcher } from '../../shared/http/index.js';
|
|
3
|
+
import type { Board } from '../../types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create a Board implementation for Jira.
|
|
6
|
+
*
|
|
7
|
+
* @param env - The validated Jira environment variables.
|
|
8
|
+
* @param fetcher - Optional custom fetch function for DI in tests.
|
|
9
|
+
* @returns A Board object that delegates to Jira API functions.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createJiraBoard(env: JiraEnv, fetcher?: Fetcher): Board;
|
|
12
|
+
//# sourceMappingURL=jira-board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira-board.d.ts","sourceRoot":"","sources":["../../../src/board/jira/jira-board.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AA4FhF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAuDtE"}
|