@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the conventional commit type for a ticket.
|
|
3
|
+
*
|
|
4
|
+
* Maps board-specific ticket types (e.g., Shortcut `story_type`,
|
|
5
|
+
* Jira `issuetype`, Azure DevOps `WorkItemType`) to conventional
|
|
6
|
+
* commit prefixes (`feat`, `fix`, `chore`). Falls back to `feat`
|
|
7
|
+
* when the ticket type is unknown or not provided.
|
|
8
|
+
*/
|
|
9
|
+
/** Known commit types for PR titles. */
|
|
10
|
+
type CommitType = 'feat' | 'fix' | 'chore';
|
|
11
|
+
/**
|
|
12
|
+
* Resolve a conventional commit type from a board ticket type string.
|
|
13
|
+
*
|
|
14
|
+
* Matches against known keywords case-insensitively. Returns `'feat'`
|
|
15
|
+
* when the ticket type is `undefined`, empty, or unrecognised.
|
|
16
|
+
*
|
|
17
|
+
* @param ticketType - The raw ticket type from the board (e.g., `'Bug'`, `'feature'`, `'Task'`).
|
|
18
|
+
* @returns The conventional commit type.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveCommitType(ticketType: string | undefined): CommitType;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=commit-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-type.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/commit-type/commit-type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wCAAwC;AACxC,KAAK,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAyB3C;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAU5E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the conventional commit type for a ticket.
|
|
3
|
+
*
|
|
4
|
+
* Maps board-specific ticket types (e.g., Shortcut `story_type`,
|
|
5
|
+
* Jira `issuetype`, Azure DevOps `WorkItemType`) to conventional
|
|
6
|
+
* commit prefixes (`feat`, `fix`, `chore`). Falls back to `feat`
|
|
7
|
+
* when the ticket type is unknown or not provided.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Keywords that map to `fix` — matched case-insensitively against
|
|
11
|
+
* the raw ticket type string.
|
|
12
|
+
*/
|
|
13
|
+
const FIX_KEYWORDS = ['bug', 'bugfix', 'defect', 'hotfix', 'incident'];
|
|
14
|
+
/**
|
|
15
|
+
* Keywords that map to `chore` — matched case-insensitively.
|
|
16
|
+
*/
|
|
17
|
+
const CHORE_KEYWORDS = [
|
|
18
|
+
'chore',
|
|
19
|
+
'task',
|
|
20
|
+
'maintenance',
|
|
21
|
+
'spike',
|
|
22
|
+
'tech debt',
|
|
23
|
+
'infrastructure',
|
|
24
|
+
];
|
|
25
|
+
/** Check whether `text` contains `keyword` as a whole word. */
|
|
26
|
+
function matchesWord(text, keyword) {
|
|
27
|
+
return new RegExp(`\\b${keyword}\\b`).test(text);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolve a conventional commit type from a board ticket type string.
|
|
31
|
+
*
|
|
32
|
+
* Matches against known keywords case-insensitively. Returns `'feat'`
|
|
33
|
+
* when the ticket type is `undefined`, empty, or unrecognised.
|
|
34
|
+
*
|
|
35
|
+
* @param ticketType - The raw ticket type from the board (e.g., `'Bug'`, `'feature'`, `'Task'`).
|
|
36
|
+
* @returns The conventional commit type.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveCommitType(ticketType) {
|
|
39
|
+
if (!ticketType)
|
|
40
|
+
return 'feat';
|
|
41
|
+
const lower = ticketType.toLowerCase().trim();
|
|
42
|
+
if (!lower)
|
|
43
|
+
return 'feat';
|
|
44
|
+
if (FIX_KEYWORDS.some((kw) => matchesWord(lower, kw)))
|
|
45
|
+
return 'fix';
|
|
46
|
+
if (CHORE_KEYWORDS.some((kw) => matchesWord(lower, kw)))
|
|
47
|
+
return 'chore';
|
|
48
|
+
return 'feat';
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=commit-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-type.js","sourceRoot":"","sources":["../../../../src/dev/lifecycle/commit-type/commit-type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,OAAO;IACP,MAAM;IACN,aAAa;IACb,OAAO;IACP,WAAW;IACX,gBAAgB;CACjB,CAAC;AAEF,+DAA+D;AAC/D,SAAS,WAAW,CAAC,IAAY,EAAE,OAAe;IAChD,OAAO,IAAI,MAAM,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAExE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/commit-type/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dev/lifecycle/commit-type/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Injected filesystem operations for cost log I/O. */
|
|
2
|
+
export type CostFs = {
|
|
3
|
+
/** Append UTF-8 content to a file (creates if missing). */
|
|
4
|
+
readonly appendFile: (path: string, content: string) => void;
|
|
5
|
+
/** Create directory recursively. */
|
|
6
|
+
readonly mkdir: (path: string) => void;
|
|
7
|
+
};
|
|
8
|
+
/** Options for appending a cost entry. */
|
|
9
|
+
type CostEntryOpts = {
|
|
10
|
+
readonly ticketKey: string;
|
|
11
|
+
readonly startedAt: string;
|
|
12
|
+
readonly now: number;
|
|
13
|
+
readonly tokenRate?: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Append a cost entry to `.clancy/costs.log`.
|
|
17
|
+
*
|
|
18
|
+
* Calculates session duration from `startedAt` to `now`, estimates token
|
|
19
|
+
* usage based on the token rate, and appends a human-readable line.
|
|
20
|
+
*
|
|
21
|
+
* @param fs - Injected filesystem operations.
|
|
22
|
+
* @param projectRoot - Absolute path to the project root.
|
|
23
|
+
* @param opts - Cost entry options (ticket key, timestamps, token rate).
|
|
24
|
+
* @returns Nothing. Best-effort — invalid timestamps produce `0min`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function appendCostEntry(fs: CostFs, projectRoot: string, opts: CostEntryOpts): void;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=cost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/cost/cost.ts"],"names":[],"mappings":"AAUA,uDAAuD;AACvD,MAAM,MAAM,MAAM,GAAG;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,0CAA0C;AAC1C,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAWF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,GAClB,IAAI,CAaN"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost estimation logger for `.clancy/costs.log`.
|
|
3
|
+
*
|
|
4
|
+
* Appends duration-based token cost estimates per ticket. Filesystem
|
|
5
|
+
* access is dependency-injected for testability.
|
|
6
|
+
*/
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
9
|
+
const CLANCY_DIR = '.clancy';
|
|
10
|
+
const COSTS_FILE = 'costs.log';
|
|
11
|
+
const DEFAULT_TOKEN_RATE = 6600;
|
|
12
|
+
const MS_PER_MINUTE = 60_000;
|
|
13
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Append a cost entry to `.clancy/costs.log`.
|
|
16
|
+
*
|
|
17
|
+
* Calculates session duration from `startedAt` to `now`, estimates token
|
|
18
|
+
* usage based on the token rate, and appends a human-readable line.
|
|
19
|
+
*
|
|
20
|
+
* @param fs - Injected filesystem operations.
|
|
21
|
+
* @param projectRoot - Absolute path to the project root.
|
|
22
|
+
* @param opts - Cost entry options (ticket key, timestamps, token rate).
|
|
23
|
+
* @returns Nothing. Best-effort — invalid timestamps produce `0min`.
|
|
24
|
+
*/
|
|
25
|
+
export function appendCostEntry(fs, projectRoot, opts) {
|
|
26
|
+
const { ticketKey, startedAt, now, tokenRate = DEFAULT_TOKEN_RATE } = opts;
|
|
27
|
+
const start = new Date(startedAt).getTime();
|
|
28
|
+
const durationMs = Number.isNaN(start) ? 0 : Math.max(0, now - start);
|
|
29
|
+
const durationMin = Math.round(durationMs / MS_PER_MINUTE);
|
|
30
|
+
const estimatedTokens = Math.round(durationMin * tokenRate);
|
|
31
|
+
const timestamp = new Date(now).toISOString();
|
|
32
|
+
const line = `${timestamp} | ${ticketKey} | ${durationMin}min | ~${estimatedTokens} tokens (estimated)\n`;
|
|
33
|
+
fs.mkdir(join(projectRoot, CLANCY_DIR));
|
|
34
|
+
fs.appendFile(join(projectRoot, CLANCY_DIR, COSTS_FILE), line);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../../../src/dev/lifecycle/cost/cost.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAoBjC,gFAAgF;AAEhF,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,WAAmB,EACnB,IAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAE3E,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,SAAS,MAAM,WAAW,UAAU,eAAe,uBAAuB,CAAC;IAE1G,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACxC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Epic PR delivery — create the final PR from epic branch to base branch.
|
|
3
|
+
*
|
|
4
|
+
* Called by the epic-completion phase when all children of an epic are
|
|
5
|
+
* done. Gathers child entries from progress, builds the epic PR body,
|
|
6
|
+
* creates the PR, and appends progress. Returns structured results —
|
|
7
|
+
* no console output. Board transitions are the caller's responsibility.
|
|
8
|
+
*/
|
|
9
|
+
import type { FetchFn } from '../../../dev/lifecycle/pr-creation/index.js';
|
|
10
|
+
import type { ProgressFs } from '../../../dev/lifecycle/progress/index.js';
|
|
11
|
+
import type { BoardConfig } from '../../../schemas/env/env.js';
|
|
12
|
+
import type { ExecGit } from '../../../shared/git-ops/index.js';
|
|
13
|
+
import { computeDeliveryOutcome } from '../../../dev/lifecycle/outcome/index.js';
|
|
14
|
+
/** Options for {@link deliverEpicToBase}. */
|
|
15
|
+
type DeliverEpicOpts = {
|
|
16
|
+
readonly exec: ExecGit;
|
|
17
|
+
readonly fetchFn: FetchFn;
|
|
18
|
+
readonly progressFs: ProgressFs;
|
|
19
|
+
readonly projectRoot: string;
|
|
20
|
+
readonly config: BoardConfig;
|
|
21
|
+
readonly epicKey: string;
|
|
22
|
+
readonly epicTitle: string;
|
|
23
|
+
readonly epicBranch: string;
|
|
24
|
+
readonly baseBranch: string;
|
|
25
|
+
readonly ticketType?: string;
|
|
26
|
+
};
|
|
27
|
+
/** Result of an epic delivery attempt. */
|
|
28
|
+
type DeliverEpicResult = {
|
|
29
|
+
readonly ok: boolean;
|
|
30
|
+
readonly outcome: ReturnType<typeof computeDeliveryOutcome>;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Create the final PR from the epic branch to the base branch.
|
|
34
|
+
*
|
|
35
|
+
* Gathers child entries from progress, builds the PR body, attempts
|
|
36
|
+
* PR creation, computes the outcome, and appends progress. Returns
|
|
37
|
+
* a structured result — no console output.
|
|
38
|
+
*
|
|
39
|
+
* @param opts - Epic delivery options with DI dependencies.
|
|
40
|
+
* @returns Result with `ok` status and delivery outcome.
|
|
41
|
+
*/
|
|
42
|
+
export declare function deliverEpicToBase(opts: DeliverEpicOpts): Promise<DeliverEpicResult>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=deliver-epic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-epic.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/deliver-epic/deliver-epic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAK3D,OAAO,EACL,sBAAsB,EAEvB,MAAM,oCAAoC,CAAC;AAQ5C,6CAA6C;AAC7C,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,0CAA0C;AAC1C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAC7D,CAAC;AAIF;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAqB5B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { resolveCommitType } from '../../../dev/lifecycle/commit-type/index.js';
|
|
2
|
+
import { gatherChildEntries } from '../../../dev/lifecycle/epic/index.js';
|
|
3
|
+
import { computeDeliveryOutcome, progressForOutcome, } from '../../../dev/lifecycle/outcome/index.js';
|
|
4
|
+
import { attemptPrCreation } from '../../../dev/lifecycle/pr-creation/index.js';
|
|
5
|
+
import { appendProgress } from '../../../dev/lifecycle/progress/index.js';
|
|
6
|
+
import { buildEpicPrBody } from '../../../dev/lifecycle/pull-request/pr-body/index.js';
|
|
7
|
+
import { detectRemote } from '../../../shared/git-ops/index.js';
|
|
8
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Create the final PR from the epic branch to the base branch.
|
|
11
|
+
*
|
|
12
|
+
* Gathers child entries from progress, builds the PR body, attempts
|
|
13
|
+
* PR creation, computes the outcome, and appends progress. Returns
|
|
14
|
+
* a structured result — no console output.
|
|
15
|
+
*
|
|
16
|
+
* @param opts - Epic delivery options with DI dependencies.
|
|
17
|
+
* @returns Result with `ok` status and delivery outcome.
|
|
18
|
+
*/
|
|
19
|
+
export async function deliverEpicToBase(opts) {
|
|
20
|
+
const { exec, config, epicKey, epicBranch, baseBranch } = opts;
|
|
21
|
+
const childEntries = gatherChildEntries({
|
|
22
|
+
progressFs: opts.progressFs,
|
|
23
|
+
projectRoot: opts.projectRoot,
|
|
24
|
+
epicKey,
|
|
25
|
+
});
|
|
26
|
+
const remote = detectRemote(exec, config.env.CLANCY_GIT_PLATFORM);
|
|
27
|
+
const prResult = await createEpicPr(opts, remote, childEntries);
|
|
28
|
+
const outcome = computeDeliveryOutcome({
|
|
29
|
+
pr: prResult,
|
|
30
|
+
remote,
|
|
31
|
+
sourceBranch: epicBranch,
|
|
32
|
+
targetBranch: baseBranch,
|
|
33
|
+
});
|
|
34
|
+
appendEpicProgress(opts, outcome);
|
|
35
|
+
return resolveResult(outcome);
|
|
36
|
+
}
|
|
37
|
+
// ─── Internal helpers ────────────────────────────────────────────────────────
|
|
38
|
+
/** Build and attempt the epic PR creation. */
|
|
39
|
+
async function createEpicPr(opts, remote, childEntries) {
|
|
40
|
+
const { fetchFn, config, epicKey, epicTitle, epicBranch, baseBranch } = opts;
|
|
41
|
+
const commitType = resolveCommitType(opts.ticketType);
|
|
42
|
+
const prTitle = `${commitType}(${epicKey}): ${epicTitle}`;
|
|
43
|
+
const prBody = buildEpicPrBody({
|
|
44
|
+
epicKey,
|
|
45
|
+
epicTitle,
|
|
46
|
+
childEntries,
|
|
47
|
+
provider: config.provider,
|
|
48
|
+
});
|
|
49
|
+
return attemptPrCreation({
|
|
50
|
+
fetchFn,
|
|
51
|
+
env: config.env,
|
|
52
|
+
remote,
|
|
53
|
+
sourceBranch: epicBranch,
|
|
54
|
+
targetBranch: baseBranch,
|
|
55
|
+
title: prTitle,
|
|
56
|
+
body: prBody,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** Append epic progress based on outcome. */
|
|
60
|
+
function appendEpicProgress(opts, outcome) {
|
|
61
|
+
const { status, prNumber } = progressForOutcome(outcome);
|
|
62
|
+
const epicStatus = status === 'PR_CREATED' ? 'EPIC_PR_CREATED' : status;
|
|
63
|
+
appendProgress(opts.progressFs, opts.projectRoot, {
|
|
64
|
+
key: opts.epicKey,
|
|
65
|
+
summary: opts.epicTitle,
|
|
66
|
+
status: epicStatus,
|
|
67
|
+
prNumber,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/** Map outcome to result — created/exists are ok, all others are not. */
|
|
71
|
+
function resolveResult(outcome) {
|
|
72
|
+
const ok = outcome.type === 'created' || outcome.type === 'exists';
|
|
73
|
+
return { ok, outcome };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=deliver-epic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-epic.js","sourceRoot":"","sources":["../../../../src/dev/lifecycle/deliver-epic/deliver-epic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PR delivery orchestration.
|
|
3
|
+
*
|
|
4
|
+
* Push branch to remote, create PR/MR, compute outcome, and append
|
|
5
|
+
* progress. No console output — returns structured results for the
|
|
6
|
+
* terminal layer to display.
|
|
7
|
+
*/
|
|
8
|
+
import type { FetchFn } from '../../../dev/lifecycle/pr-creation/index.js';
|
|
9
|
+
import type { ProgressFs } from '../../../dev/lifecycle/progress/index.js';
|
|
10
|
+
import type { BoardConfig } from '../../../schemas/env/env.js';
|
|
11
|
+
import type { ExecGit } from '../../../shared/git-ops/index.js';
|
|
12
|
+
import type { FetchedTicket } from '../../../types/board.js';
|
|
13
|
+
import type { PrCreationResult } from '../../../types/remote.js';
|
|
14
|
+
import { computeDeliveryOutcome } from '../../../dev/lifecycle/outcome/index.js';
|
|
15
|
+
/** Filesystem for reading verification attempt counter. */
|
|
16
|
+
type DeliverFs = {
|
|
17
|
+
readonly readFile: (path: string) => string;
|
|
18
|
+
};
|
|
19
|
+
/** Options for {@link deliverViaPullRequest}. */
|
|
20
|
+
type DeliverOpts = {
|
|
21
|
+
readonly exec: ExecGit;
|
|
22
|
+
readonly fetchFn: FetchFn;
|
|
23
|
+
readonly progressFs: ProgressFs;
|
|
24
|
+
readonly deliverFs: DeliverFs;
|
|
25
|
+
readonly projectRoot: string;
|
|
26
|
+
readonly config: BoardConfig;
|
|
27
|
+
readonly ticket: FetchedTicket;
|
|
28
|
+
readonly ticketBranch: string;
|
|
29
|
+
readonly targetBranch: string;
|
|
30
|
+
readonly skipLog?: boolean;
|
|
31
|
+
readonly parent?: string;
|
|
32
|
+
readonly singleChildParent?: string;
|
|
33
|
+
};
|
|
34
|
+
/** Result of a delivery attempt. */
|
|
35
|
+
type DeliveryResult = {
|
|
36
|
+
readonly pushed: boolean;
|
|
37
|
+
readonly outcome: ReturnType<typeof computeDeliveryOutcome>;
|
|
38
|
+
readonly prResult?: PrCreationResult;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Push branch to remote, create PR/MR, compute outcome, and append progress.
|
|
42
|
+
*
|
|
43
|
+
* Returns a structured result — no console output. The terminal layer
|
|
44
|
+
* handles logging and board transitions based on the outcome.
|
|
45
|
+
*
|
|
46
|
+
* @param opts - Delivery options with DI dependencies.
|
|
47
|
+
* @returns Delivery result with push status, outcome, and optional PR info.
|
|
48
|
+
*/
|
|
49
|
+
export declare function deliverViaPullRequest(opts: DeliverOpts): Promise<DeliveryResult>;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=deliver-ticket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-ticket.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/deliver-ticket/deliver-ticket.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,qBAAqB,CAAC;AAIxE,OAAO,EACL,sBAAsB,EAEvB,MAAM,oCAAoC,CAAC;AAY5C,2DAA2D;AAC3D,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C,CAAC;AAEF,iDAAiD;AACjD,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,oCAAoC;AACpC,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CACtC,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,cAAc,CAAC,CAsBzB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { resolveCommitType } from '../../../dev/lifecycle/commit-type/index.js';
|
|
2
|
+
import { buildEpicContext } from '../../../dev/lifecycle/epic/index.js';
|
|
3
|
+
import { computeDeliveryOutcome, progressForOutcome, } from '../../../dev/lifecycle/outcome/index.js';
|
|
4
|
+
import { attemptPrCreation } from '../../../dev/lifecycle/pr-creation/index.js';
|
|
5
|
+
import { appendProgress } from '../../../dev/lifecycle/progress/index.js';
|
|
6
|
+
import { buildPrBody } from '../../../dev/lifecycle/pull-request/pr-body/index.js';
|
|
7
|
+
import { checkout, detectRemote, pushBranch, } from '../../../shared/git-ops/index.js';
|
|
8
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Push branch to remote, create PR/MR, compute outcome, and append progress.
|
|
11
|
+
*
|
|
12
|
+
* Returns a structured result — no console output. The terminal layer
|
|
13
|
+
* handles logging and board transitions based on the outcome.
|
|
14
|
+
*
|
|
15
|
+
* @param opts - Delivery options with DI dependencies.
|
|
16
|
+
* @returns Delivery result with push status, outcome, and optional PR info.
|
|
17
|
+
*/
|
|
18
|
+
export async function deliverViaPullRequest(opts) {
|
|
19
|
+
const { exec, ticketBranch, targetBranch } = opts;
|
|
20
|
+
const pushed = pushBranch(exec, ticketBranch);
|
|
21
|
+
if (!pushed) {
|
|
22
|
+
return handlePushFailure(opts);
|
|
23
|
+
}
|
|
24
|
+
const remote = detectRemote(exec, opts.config.env.CLANCY_GIT_PLATFORM);
|
|
25
|
+
const prResult = await createPr(opts, remote);
|
|
26
|
+
const outcome = computeDeliveryOutcome({
|
|
27
|
+
pr: prResult,
|
|
28
|
+
remote,
|
|
29
|
+
sourceBranch: ticketBranch,
|
|
30
|
+
targetBranch,
|
|
31
|
+
});
|
|
32
|
+
appendDeliveryProgress(opts, outcome);
|
|
33
|
+
safeCheckout(exec, targetBranch);
|
|
34
|
+
return { pushed: true, outcome, prResult };
|
|
35
|
+
}
|
|
36
|
+
// ─── Internal helpers ────────────────────────────────────────────────────────
|
|
37
|
+
/** Handle push failure: log progress and return failure result. */
|
|
38
|
+
function handlePushFailure(opts) {
|
|
39
|
+
const { exec, progressFs, projectRoot, ticket, targetBranch } = opts;
|
|
40
|
+
const { skipLog = false, parent } = opts;
|
|
41
|
+
if (!skipLog) {
|
|
42
|
+
appendProgress(progressFs, projectRoot, {
|
|
43
|
+
key: ticket.key,
|
|
44
|
+
summary: ticket.title,
|
|
45
|
+
status: 'PUSH_FAILED',
|
|
46
|
+
parent,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
safeCheckout(exec, targetBranch);
|
|
50
|
+
return {
|
|
51
|
+
pushed: false,
|
|
52
|
+
outcome: { type: 'local' },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Attempt PR creation with platform dispatch. */
|
|
56
|
+
async function createPr(opts, remote) {
|
|
57
|
+
const { fetchFn, config, ticket, ticketBranch, targetBranch } = opts;
|
|
58
|
+
const commitType = resolveCommitType(ticket.ticketType);
|
|
59
|
+
const prTitle = `${commitType}(${ticket.key}): ${ticket.title}`;
|
|
60
|
+
const epicContext = resolveEpicContext(opts);
|
|
61
|
+
const prBody = buildPrBody({
|
|
62
|
+
config,
|
|
63
|
+
ticket: {
|
|
64
|
+
key: ticket.key,
|
|
65
|
+
title: ticket.title,
|
|
66
|
+
description: ticket.description,
|
|
67
|
+
provider: config.provider,
|
|
68
|
+
},
|
|
69
|
+
targetBranch,
|
|
70
|
+
verificationWarning: readVerificationWarning(opts),
|
|
71
|
+
singleChildParent: opts.singleChildParent,
|
|
72
|
+
epicContext,
|
|
73
|
+
});
|
|
74
|
+
return attemptPrCreation({
|
|
75
|
+
fetchFn,
|
|
76
|
+
env: config.env,
|
|
77
|
+
remote,
|
|
78
|
+
sourceBranch: ticketBranch,
|
|
79
|
+
targetBranch,
|
|
80
|
+
title: prTitle,
|
|
81
|
+
body: prBody,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/** Build epic context for child PRs targeting epic branches. */
|
|
85
|
+
function resolveEpicContext(opts) {
|
|
86
|
+
return buildEpicContext({
|
|
87
|
+
progressFs: opts.progressFs,
|
|
88
|
+
projectRoot: opts.projectRoot,
|
|
89
|
+
parent: opts.parent,
|
|
90
|
+
targetBranch: opts.targetBranch,
|
|
91
|
+
ticketKey: opts.ticket.key,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Read the verification attempt counter. Returns warning or `undefined`. */
|
|
95
|
+
function readVerificationWarning(opts) {
|
|
96
|
+
try {
|
|
97
|
+
const attempt = opts.deliverFs
|
|
98
|
+
.readFile(`${opts.projectRoot}/.clancy/verify-attempt.txt`)
|
|
99
|
+
.trim();
|
|
100
|
+
const attemptNum = parseInt(attempt, 10);
|
|
101
|
+
if (attemptNum > 0) {
|
|
102
|
+
return `Verification checks did not fully pass (${attemptNum} attempt(s)). Review carefully.`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// No verify-attempt file — verification passed or wasn't run
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
/** Append delivery progress based on outcome. */
|
|
111
|
+
function appendDeliveryProgress(opts, outcome) {
|
|
112
|
+
if (opts.skipLog)
|
|
113
|
+
return;
|
|
114
|
+
const { status, prNumber } = progressForOutcome(outcome);
|
|
115
|
+
appendProgress(opts.progressFs, opts.projectRoot, {
|
|
116
|
+
key: opts.ticket.key,
|
|
117
|
+
summary: opts.ticket.title,
|
|
118
|
+
status,
|
|
119
|
+
prNumber,
|
|
120
|
+
parent: opts.parent,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/** Checkout a branch, ignoring errors. */
|
|
124
|
+
function safeCheckout(exec, branch) {
|
|
125
|
+
try {
|
|
126
|
+
checkout(exec, branch);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Best-effort
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=deliver-ticket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-ticket.js","sourceRoot":"","sources":["../../../../src/dev/lifecycle/deliver-ticket/deliver-ticket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Epic branch management.
|
|
3
|
+
*
|
|
4
|
+
* Ensures epic branches exist, builds epic context for child PRs,
|
|
5
|
+
* and gathers child entries for the final epic PR.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProgressEntry, ProgressFs } from '../../../dev/lifecycle/progress/index.js';
|
|
8
|
+
import type { EpicContext } from '../../../dev/lifecycle/pull-request/pr-body/index.js';
|
|
9
|
+
import type { ExecGit } from '../../../shared/git-ops/index.js';
|
|
10
|
+
/** Result of ensuring an epic branch. */
|
|
11
|
+
type EnsureEpicResult = {
|
|
12
|
+
readonly ok: boolean;
|
|
13
|
+
readonly error?: string;
|
|
14
|
+
};
|
|
15
|
+
/** Options for {@link ensureEpicBranch}. */
|
|
16
|
+
type EnsureEpicOpts = {
|
|
17
|
+
readonly exec: ExecGit;
|
|
18
|
+
readonly epicBranch: string;
|
|
19
|
+
readonly baseBranch: string;
|
|
20
|
+
};
|
|
21
|
+
/** Options for {@link buildEpicContext}. */
|
|
22
|
+
type BuildEpicContextOpts = {
|
|
23
|
+
readonly progressFs: ProgressFs;
|
|
24
|
+
readonly projectRoot: string;
|
|
25
|
+
readonly parent: string | undefined;
|
|
26
|
+
readonly targetBranch: string;
|
|
27
|
+
readonly ticketKey: string;
|
|
28
|
+
};
|
|
29
|
+
/** Options for {@link gatherChildEntries}. */
|
|
30
|
+
type GatherChildOpts = {
|
|
31
|
+
readonly progressFs: ProgressFs;
|
|
32
|
+
readonly projectRoot: string;
|
|
33
|
+
readonly epicKey: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Ensure the epic branch exists locally and on the remote.
|
|
37
|
+
*
|
|
38
|
+
* If it exists on the remote, fetches it locally. If it only exists
|
|
39
|
+
* locally (not remote), returns an error (safety guard for stale
|
|
40
|
+
* local branches). If it doesn't exist, creates from
|
|
41
|
+
* `origin/{baseBranch}` and pushes.
|
|
42
|
+
*
|
|
43
|
+
* @param opts - Options with DI dependencies.
|
|
44
|
+
* @returns Result indicating success or failure with error message.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ensureEpicBranch(opts: EnsureEpicOpts): EnsureEpicResult;
|
|
47
|
+
/**
|
|
48
|
+
* Build epic context for child PRs targeting epic/milestone branches.
|
|
49
|
+
*
|
|
50
|
+
* Returns `undefined` if the target is not an epic branch or no parent.
|
|
51
|
+
*
|
|
52
|
+
* @param opts - Options with progress FS and branch info.
|
|
53
|
+
* @returns Epic context for PR body, or `undefined`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildEpicContext(opts: BuildEpicContextOpts): EpicContext | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Gather child progress entries for an epic PR body.
|
|
58
|
+
*
|
|
59
|
+
* Collects entries with delivered statuses whose parent matches the epic key.
|
|
60
|
+
*
|
|
61
|
+
* @param opts - Options with progress FS and epic key.
|
|
62
|
+
* @returns Child entries for the epic PR body.
|
|
63
|
+
*/
|
|
64
|
+
export declare function gatherChildEntries(opts: GatherChildOpts): readonly ProgressEntry[];
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=epic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epic.d.ts","sourceRoot":"","sources":["../../../../src/dev/lifecycle/epic/epic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAc3D,yCAAyC;AACzC,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,4CAA4C;AAC5C,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,4CAA4C;AAC5C,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,8CAA8C;AAC9C,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAqBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,GACzB,WAAW,GAAG,SAAS,CAczB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,eAAe,GACpB,SAAS,aAAa,EAAE,CAM1B"}
|