github-issue-tower-defence-management 2.153.9 → 2.154.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/bin/adapter/entry-points/cli/index.js +54 -0
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/cli/storyGateCommands.js +101 -0
- package/bin/adapter/entry-points/cli/storyGateCommands.js.map +1 -0
- package/bin/adapter/repositories/GithubStoryGateIssueRepository.js +256 -0
- package/bin/adapter/repositories/GithubStoryGateIssueRepository.js.map +1 -0
- package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js +107 -0
- package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js.map +1 -0
- package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js +41 -0
- package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js +11 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js.map +1 -0
- package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js +76 -0
- package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js +84 -0
- package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js +446 -0
- package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js +23 -0
- package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js.map +1 -0
- package/bin/domain/usecases/storyGate/issueCommentSplit.js +37 -0
- package/bin/domain/usecases/storyGate/issueCommentSplit.js.map +1 -0
- package/bin/domain/usecases/storyGate/specificationRoutingDetect.js +27 -0
- package/bin/domain/usecases/storyGate/specificationRoutingDetect.js.map +1 -0
- package/bin/domain/usecases/storyGate/specificationSectionDetect.js +50 -0
- package/bin/domain/usecases/storyGate/specificationSectionDetect.js.map +1 -0
- package/bin/domain/usecases/storyGate/storyValueClassify.js +20 -0
- package/bin/domain/usecases/storyGate/storyValueClassify.js.map +1 -0
- package/package.json +1 -1
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/cli/storyGateCommands.d.ts +32 -0
- package/types/adapter/entry-points/cli/storyGateCommands.d.ts.map +1 -0
- package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts +24 -0
- package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts.map +1 -0
- package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts +11 -0
- package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts.map +1 -0
- package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts +7 -0
- package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts +25 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts +63 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts +9 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts +22 -0
- package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts +24 -0
- package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts +123 -0
- package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts +4 -0
- package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/issueCommentSplit.d.ts +18 -0
- package/types/domain/usecases/storyGate/issueCommentSplit.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts +4 -0
- package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts +8 -0
- package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/storyValueClassify.d.ts +10 -0
- package/types/domain/usecases/storyGate/storyValueClassify.d.ts.map +1 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasStoryIssueLabel = exports.hasBacklogTicketUrl = exports.isRegularStory = exports.isStoryUnset = exports.STORY_ISSUE_LABEL_NAME = exports.BACKLOG_MILESTONE_STORY_MARKER = exports.DISABLED_STORY_OPTION_COLOR = exports.NO_STORY_MARKER = exports.REGULAR_STORY_PREFIX = void 0;
|
|
4
|
+
exports.REGULAR_STORY_PREFIX = 'regular /';
|
|
5
|
+
exports.NO_STORY_MARKER = 'NO STORY';
|
|
6
|
+
exports.DISABLED_STORY_OPTION_COLOR = 'GRAY';
|
|
7
|
+
exports.BACKLOG_MILESTONE_STORY_MARKER = 'milestone on Backlog';
|
|
8
|
+
exports.STORY_ISSUE_LABEL_NAME = 'story';
|
|
9
|
+
const BACKLOG_TICKET_URL_PATTERN = /\.backlog\.(?:com|jp)\/view\//;
|
|
10
|
+
const isStoryUnset = (story) => story === null ||
|
|
11
|
+
story.trim() === '' ||
|
|
12
|
+
story.toUpperCase().includes(exports.NO_STORY_MARKER);
|
|
13
|
+
exports.isStoryUnset = isStoryUnset;
|
|
14
|
+
const isRegularStory = (story) => story.startsWith(exports.REGULAR_STORY_PREFIX);
|
|
15
|
+
exports.isRegularStory = isRegularStory;
|
|
16
|
+
const hasBacklogTicketUrl = (text) => BACKLOG_TICKET_URL_PATTERN.test(text);
|
|
17
|
+
exports.hasBacklogTicketUrl = hasBacklogTicketUrl;
|
|
18
|
+
const hasStoryIssueLabel = (labels) => labels.some((label) => label.toLowerCase() === exports.STORY_ISSUE_LABEL_NAME);
|
|
19
|
+
exports.hasStoryIssueLabel = hasStoryIssueLabel;
|
|
20
|
+
//# sourceMappingURL=storyValueClassify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyValueClassify.js","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/storyValueClassify.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,eAAe,GAAG,UAAU,CAAC;AAC7B,QAAA,2BAA2B,GAAG,MAAM,CAAC;AACrC,QAAA,8BAA8B,GAAG,sBAAsB,CAAC;AACxD,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,MAAM,0BAA0B,GAAG,+BAA+B,CAAC;AAE5D,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAW,EAAE,CAC5D,KAAK,KAAK,IAAI;IACd,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;IACnB,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,uBAAe,CAAC,CAAC;AAHnC,QAAA,YAAY,gBAGuB;AAEzC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CACvD,KAAK,CAAC,UAAU,CAAC,4BAAoB,CAAC,CAAC;AAD5B,QAAA,cAAc,kBACc;AAElC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAW,EAAE,CAC3D,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAD3B,QAAA,mBAAmB,uBACQ;AAEjC,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAAW,EAAE,CAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,8BAAsB,CAAC,CAAC;AAD5D,QAAA,kBAAkB,sBAC0C"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAwUzB,eAAO,MAAM,OAAO,SAAgB,CAAC;AA6uBrC,eAAO,MAAM,6BAA6B,GACxC,KAAK,MAAM,KACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAMpC,CAAC;AAszBF,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,IAGxD,CAAC;AA2CF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EAAE,EACd,kBAAkB,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KACzC,OAAO,CAAC,IAAI,CAqCd,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type StoryGateCommandOutput = {
|
|
2
|
+
stdout: string | null;
|
|
3
|
+
stderr: string | null;
|
|
4
|
+
exitCode: 0 | 2;
|
|
5
|
+
};
|
|
6
|
+
export type CheckStoryGateInput = {
|
|
7
|
+
issueUrl: string;
|
|
8
|
+
agentName: string;
|
|
9
|
+
triageAgentName: string;
|
|
10
|
+
specificationAgentName: string;
|
|
11
|
+
configDirectory: string;
|
|
12
|
+
outputDirectory: string;
|
|
13
|
+
dryRun: boolean;
|
|
14
|
+
ghToken: string | undefined;
|
|
15
|
+
boardCacheBaseDirectory?: string;
|
|
16
|
+
};
|
|
17
|
+
export type SetIssueStoryIfUnsetInput = {
|
|
18
|
+
issueUrl: string;
|
|
19
|
+
story: string;
|
|
20
|
+
dryRun: boolean;
|
|
21
|
+
ghToken: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
export type StartSpecificationTaskInput = {
|
|
24
|
+
issueUrl: string;
|
|
25
|
+
specificationAgentName: string;
|
|
26
|
+
dryRun: boolean;
|
|
27
|
+
ghToken: string | undefined;
|
|
28
|
+
};
|
|
29
|
+
export declare const checkStoryGate: (input: CheckStoryGateInput) => Promise<StoryGateCommandOutput>;
|
|
30
|
+
export declare const setIssueStoryIfUnset: (input: SetIssueStoryIfUnsetInput) => Promise<StoryGateCommandOutput>;
|
|
31
|
+
export declare const startSpecificationTask: (input: StartSpecificationTaskInput) => Promise<StoryGateCommandOutput>;
|
|
32
|
+
//# sourceMappingURL=storyGateCommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyGateCommands.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/storyGateCommands.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAkCF,eAAO,MAAM,cAAc,GACzB,OAAO,mBAAmB,KACzB,OAAO,CAAC,sBAAsB,CAsChC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,yBAAyB,KAC/B,OAAO,CAAC,sBAAsB,CAmBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,2BAA2B,KACjC,OAAO,CAAC,sBAAsB,CAmBhC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ClosingPullRequest, GithubIssueReference, IssueProjectItemsSnapshot, ProjectItemSingleSelectValueUpdate, StoryGateIssue, StoryGateIssueComment, StoryGateIssueRepository } from '../../domain/usecases/adapter-interfaces/StoryGateIssueRepository';
|
|
2
|
+
export declare const GITHUB_API_BASE_URL = "https://api.github.com";
|
|
3
|
+
export declare const GITHUB_GRAPHQL_URL = "https://api.github.com/graphql";
|
|
4
|
+
export declare const GITHUB_COMMENTS_PAGE_SIZE = 100;
|
|
5
|
+
export declare const RATE_LIMIT_RETRY_LIMIT = 3;
|
|
6
|
+
export declare const RATE_LIMIT_DEFAULT_WAIT_SECONDS = 30;
|
|
7
|
+
export declare const RATE_LIMIT_MAXIMUM_WAIT_SECONDS = 120;
|
|
8
|
+
export declare const ISSUE_PROJECT_ITEMS_QUERY = "query StoryGateIssueProjectItems($owner: String!, $repo: String!, $number: Int!) {\n repository(owner: $owner, name: $repo) {\n issueOrPullRequest(number: $number) {\n ... on Issue { state projectItems(first: 20) { nodes { ...StoryGateProjectItem } } }\n ... on PullRequest { state projectItems(first: 20) { nodes { ...StoryGateProjectItem } } }\n }\n }\n}\nfragment StoryGateSingleSelectField on ProjectV2SingleSelectField { id options { id name color } }\nfragment StoryGateProjectItem on ProjectV2Item {\n id\n project {\n id\n upperStoryField: field(name: \"Story\") { ...StoryGateSingleSelectField }\n lowerStoryField: field(name: \"story\") { ...StoryGateSingleSelectField }\n agentField: field(name: \"Agent\") { ...StoryGateSingleSelectField }\n statusField: field(name: \"Status\") { ...StoryGateSingleSelectField }\n }\n upperStory: fieldValueByName(name: \"Story\") { ... on ProjectV2ItemFieldSingleSelectValue { name } }\n lowerStory: fieldValueByName(name: \"story\") { ... on ProjectV2ItemFieldSingleSelectValue { name } }\n agent: fieldValueByName(name: \"Agent\") { ... on ProjectV2ItemFieldSingleSelectValue { name } }\n status: fieldValueByName(name: \"Status\") { ... on ProjectV2ItemFieldSingleSelectValue { name } }\n}";
|
|
9
|
+
export declare const CLOSING_PULL_REQUESTS_QUERY = "query StoryGateClosingPullRequests($owner: String!, $repo: String!, $number: Int!) {\n repository(owner: $owner, name: $repo) {\n issueOrPullRequest(number: $number) {\n ... on Issue {\n timelineItems(first: 100, itemTypes: [CROSS_REFERENCED_EVENT]) {\n nodes { ... on CrossReferencedEvent { willCloseTarget source { ... on PullRequest { url state } } } }\n }\n }\n }\n }\n}";
|
|
10
|
+
export declare const PROJECT_ITEM_SINGLE_SELECT_UPDATE_MUTATION = "mutation StoryGateProjectItemSingleSelectUpdate($projectId: ID!, $itemId: ID!, $fieldId: ID!, $optionId: String!) {\n updateProjectV2ItemFieldValue(input: { projectId: $projectId, itemId: $itemId, fieldId: $fieldId, value: { singleSelectOptionId: $optionId } }) {\n projectV2Item { id }\n }\n}";
|
|
11
|
+
export declare class GithubStoryGateIssueRepository implements StoryGateIssueRepository {
|
|
12
|
+
private readonly ghToken;
|
|
13
|
+
private readonly waitForMilliseconds;
|
|
14
|
+
constructor(ghToken: string, waitForMilliseconds?: (milliseconds: number) => Promise<void>);
|
|
15
|
+
findIssue: (issue: GithubIssueReference) => Promise<StoryGateIssue | null>;
|
|
16
|
+
listIssueComments: (issue: GithubIssueReference) => Promise<StoryGateIssueComment[]>;
|
|
17
|
+
findIssueProjectItems: (issue: GithubIssueReference) => Promise<IssueProjectItemsSnapshot | null>;
|
|
18
|
+
listClosingPullRequests: (issue: GithubIssueReference) => Promise<ClosingPullRequest[]>;
|
|
19
|
+
updateProjectItemSingleSelectValue: (update: ProjectItemSingleSelectValueUpdate) => Promise<void>;
|
|
20
|
+
private graphql;
|
|
21
|
+
private assertSuccessful;
|
|
22
|
+
private request;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=GithubStoryGateIssueRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GithubStoryGateIssueRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/GithubStoryGateIssueRepository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAElB,oBAAoB,EAEpB,yBAAyB,EACzB,kCAAkC,EAGlC,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EAEzB,MAAM,mEAAmE,CAAC;AAE3E,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,mCAAmC,CAAC;AACnE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AA6FnD,eAAO,MAAM,yBAAyB,owCAsBpC,CAAC;AAEH,eAAO,MAAM,2BAA2B,oaAUtC,CAAC;AAEH,eAAO,MAAM,0CAA0C,+SAIrD,CAAC;AAKH,qBAAa,8BAA+B,YAAW,wBAAwB;IAE3E,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBADnB,OAAO,EAAE,MAAM,EACf,mBAAmB,GAAE,CACpC,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAA8B;IAGjD,SAAS,GACP,OAAO,oBAAoB,KAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiB/B;IAEF,iBAAiB,GACf,OAAO,oBAAoB,KAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBjC;IAEF,qBAAqB,GACnB,OAAO,oBAAoB,KAC1B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAmB1C;IAEF,uBAAuB,GACrB,OAAO,oBAAoB,KAC1B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA8B9B;IAEF,kCAAkC,GAChC,QAAQ,kCAAkC,KACzC,OAAO,CAAC,IAAI,CAAC,CAOd;IAEF,OAAO,CAAC,OAAO,CAoBb;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,OAAO,CAyCb;CACH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BoardCache, StoryGateBoardCacheRepository } from '../../domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository';
|
|
2
|
+
export declare const BOARD_CACHE_DIRECTORY_PREFIX = "allIssues-";
|
|
3
|
+
export declare const BOARD_CACHE_FILE_NAME = "latest.json";
|
|
4
|
+
export declare class LocalStorageStoryGateBoardCacheRepository implements StoryGateBoardCacheRepository {
|
|
5
|
+
private readonly cacheBaseDirectory;
|
|
6
|
+
constructor(cacheBaseDirectory: string);
|
|
7
|
+
listBoardCachesNewestFirst: () => Promise<BoardCache[]>;
|
|
8
|
+
private boardCacheFilePathsList;
|
|
9
|
+
private boardCacheRead;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=LocalStorageStoryGateBoardCacheRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorageStoryGateBoardCacheRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EAGV,6BAA6B,EAC9B,MAAM,wEAAwE,CAAC;AAEhF,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAyDnD,qBAAa,yCAA0C,YAAW,6BAA6B;IACjF,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,MAAM;IAEvD,0BAA0B,QAAa,OAAO,CAAC,UAAU,EAAE,CAAC,CAW1D;IAEF,OAAO,CAAC,uBAAuB,CAwB7B;IAEF,OAAO,CAAC,cAAc,CA0BpB;CACH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StoryGateProjectConfig, StoryGateProjectConfigRepository } from '../../domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository';
|
|
2
|
+
export declare class YamlStoryGateProjectConfigRepository implements StoryGateProjectConfigRepository {
|
|
3
|
+
private readonly configDirectory;
|
|
4
|
+
constructor(configDirectory: string);
|
|
5
|
+
listProjectConfigs: () => Promise<StoryGateProjectConfig[]>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=YamlStoryGateProjectConfigRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YamlStoryGateProjectConfigRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/YamlStoryGateProjectConfigRepository.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,2EAA2E,CAAC;AAInF,qBAAa,oCAAqC,YAAW,gCAAgC;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,MAAM;IAEpD,kBAAkB,QAAa,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwB9D;CACH"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type BoardCacheStoryOption = {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
color: string;
|
|
5
|
+
};
|
|
6
|
+
export type BoardCacheIssue = {
|
|
7
|
+
url: string;
|
|
8
|
+
story: string | null;
|
|
9
|
+
labels: string[];
|
|
10
|
+
body: string;
|
|
11
|
+
itemId: string;
|
|
12
|
+
};
|
|
13
|
+
export type BoardCache = {
|
|
14
|
+
filePath: string;
|
|
15
|
+
modifiedAt: Date;
|
|
16
|
+
projectId: string;
|
|
17
|
+
storyFieldId: string | null;
|
|
18
|
+
storyOptions: BoardCacheStoryOption[];
|
|
19
|
+
storyIssueUrlByOptionName: Record<string, string>;
|
|
20
|
+
issues: BoardCacheIssue[];
|
|
21
|
+
};
|
|
22
|
+
export interface StoryGateBoardCacheRepository {
|
|
23
|
+
listBoardCachesNewestFirst(): Promise<BoardCache[]>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=StoryGateBoardCacheRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateBoardCacheRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,0BAA0B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CACrD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export type GithubIssueReference = {
|
|
2
|
+
owner: string;
|
|
3
|
+
repo: string;
|
|
4
|
+
number: number;
|
|
5
|
+
url: string;
|
|
6
|
+
};
|
|
7
|
+
export type StoryGateIssueState = 'OPEN' | 'CLOSED';
|
|
8
|
+
export type StoryGateIssue = {
|
|
9
|
+
url: string;
|
|
10
|
+
state: StoryGateIssueState;
|
|
11
|
+
body: string;
|
|
12
|
+
labels: string[];
|
|
13
|
+
};
|
|
14
|
+
export type StoryGateIssueComment = {
|
|
15
|
+
url: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
body: string;
|
|
18
|
+
};
|
|
19
|
+
export type ClosingPullRequestState = 'OPEN' | 'CLOSED' | 'MERGED';
|
|
20
|
+
export type ClosingPullRequest = {
|
|
21
|
+
url: string;
|
|
22
|
+
state: ClosingPullRequestState;
|
|
23
|
+
};
|
|
24
|
+
export type ProjectSingleSelectOption = {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
color: string;
|
|
28
|
+
};
|
|
29
|
+
export type ProjectSingleSelectField = {
|
|
30
|
+
fieldId: string;
|
|
31
|
+
options: ProjectSingleSelectOption[];
|
|
32
|
+
};
|
|
33
|
+
export type IssueProjectItem = {
|
|
34
|
+
projectId: string;
|
|
35
|
+
itemId: string;
|
|
36
|
+
storyField: ProjectSingleSelectField | null;
|
|
37
|
+
storyName: string | null;
|
|
38
|
+
agentField: ProjectSingleSelectField | null;
|
|
39
|
+
agentName: string | null;
|
|
40
|
+
statusField: ProjectSingleSelectField | null;
|
|
41
|
+
statusName: string | null;
|
|
42
|
+
};
|
|
43
|
+
export type IssueProjectItemsSnapshot = {
|
|
44
|
+
state: StoryGateIssueState;
|
|
45
|
+
items: IssueProjectItem[];
|
|
46
|
+
};
|
|
47
|
+
export type ProjectItemSingleSelectValueUpdate = {
|
|
48
|
+
projectId: string;
|
|
49
|
+
itemId: string;
|
|
50
|
+
fieldId: string;
|
|
51
|
+
optionId: string;
|
|
52
|
+
};
|
|
53
|
+
export declare class StoryGateGithubRequestError extends Error {
|
|
54
|
+
constructor(message: string);
|
|
55
|
+
}
|
|
56
|
+
export interface StoryGateIssueRepository {
|
|
57
|
+
findIssue(issue: GithubIssueReference): Promise<StoryGateIssue | null>;
|
|
58
|
+
listIssueComments(issue: GithubIssueReference): Promise<StoryGateIssueComment[]>;
|
|
59
|
+
findIssueProjectItems(issue: GithubIssueReference): Promise<IssueProjectItemsSnapshot | null>;
|
|
60
|
+
listClosingPullRequests(issue: GithubIssueReference): Promise<ClosingPullRequest[]>;
|
|
61
|
+
updateProjectItemSingleSelectValue(update: ProjectItemSingleSelectValueUpdate): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=StoryGateIssueRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateIssueRepository.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvE,iBAAiB,CACf,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACpC,qBAAqB,CACnB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAC7C,uBAAuB,CACrB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjC,kCAAkC,CAChC,MAAM,EAAE,kCAAkC,GACzC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type StoryGateProjectConfig = {
|
|
2
|
+
filePath: string;
|
|
3
|
+
org: string;
|
|
4
|
+
agents: string[];
|
|
5
|
+
};
|
|
6
|
+
export interface StoryGateProjectConfigRepository {
|
|
7
|
+
listProjectConfigs(): Promise<StoryGateProjectConfig[]>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=StoryGateProjectConfigRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateProjectConfigRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;CACzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GithubIssueReference, StoryGateIssueRepository } from '../adapter-interfaces/StoryGateIssueRepository';
|
|
2
|
+
export type IssueStorySetIfUnsetOutcome = 'WRITTEN' | 'SKIPPED_DRY_RUN' | 'LIVE_STORY_ALREADY_SET' | 'OPTION_NOT_ACTIVE' | 'ISSUE_NOT_IN_PROJECT' | 'READ_BACK_MISMATCH';
|
|
3
|
+
export type IssueStorySetIfUnsetInput = {
|
|
4
|
+
issue: GithubIssueReference;
|
|
5
|
+
storyName: string;
|
|
6
|
+
dryRun: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type IssueStorySetIfUnsetResult = {
|
|
9
|
+
issueUrl: string;
|
|
10
|
+
requestedStory: string;
|
|
11
|
+
dryRun: boolean;
|
|
12
|
+
outcome: IssueStorySetIfUnsetOutcome;
|
|
13
|
+
liveStory: string | null;
|
|
14
|
+
projectId: string | null;
|
|
15
|
+
itemId: string | null;
|
|
16
|
+
};
|
|
17
|
+
export declare class IssueStorySetIfUnsetUseCase {
|
|
18
|
+
private readonly issueRepository;
|
|
19
|
+
constructor(issueRepository: StoryGateIssueRepository);
|
|
20
|
+
run: (input: IssueStorySetIfUnsetInput) => Promise<IssueStorySetIfUnsetResult>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=IssueStorySetIfUnsetUseCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueStorySetIfUnsetUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAEpB,wBAAwB,EACzB,MAAM,gDAAgD,CAAC;AAMxD,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,iBAAiB,GACjB,wBAAwB,GACxB,mBAAmB,GACnB,sBAAsB,GACtB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,2BAA2B,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,wBAAwB;IAEtE,GAAG,GACD,OAAO,yBAAyB,KAC/B,OAAO,CAAC,0BAA0B,CAAC,CA6EpC;CACH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GithubIssueReference, StoryGateIssueRepository } from '../adapter-interfaces/StoryGateIssueRepository';
|
|
2
|
+
export type SpecificationTaskStartOutcome = 'STARTED' | 'ISSUE_CLOSED' | 'AGENT_OPTION_NOT_FOUND' | 'STATUS_OPTION_NOT_FOUND' | 'ISSUE_NOT_IN_PROJECT' | 'READ_BACK_MISMATCH' | 'SKIPPED_DRY_RUN';
|
|
3
|
+
export type SpecificationTaskStartInput = {
|
|
4
|
+
issue: GithubIssueReference;
|
|
5
|
+
specificationAgentName: string;
|
|
6
|
+
dryRun: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type SpecificationTaskStartResult = {
|
|
9
|
+
issueUrl: string;
|
|
10
|
+
specificationAgentName: string;
|
|
11
|
+
statusName: string;
|
|
12
|
+
dryRun: boolean;
|
|
13
|
+
outcome: SpecificationTaskStartOutcome;
|
|
14
|
+
projectId: string | null;
|
|
15
|
+
itemId: string | null;
|
|
16
|
+
readBackAgentName: string | null;
|
|
17
|
+
readBackStatusName: string | null;
|
|
18
|
+
};
|
|
19
|
+
export declare class SpecificationTaskStartUseCase {
|
|
20
|
+
private readonly issueRepository;
|
|
21
|
+
constructor(issueRepository: StoryGateIssueRepository);
|
|
22
|
+
run: (input: SpecificationTaskStartInput) => Promise<SpecificationTaskStartResult>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SpecificationTaskStartUseCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecificationTaskStartUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/SpecificationTaskStartUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EAEpB,wBAAwB,EACzB,MAAM,gDAAgD,CAAC;AAExD,MAAM,MAAM,6BAA6B,GACrC,SAAS,GACT,cAAc,GACd,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,6BAA6B,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,wBAAwB;IAEtE,GAAG,GACD,OAAO,2BAA2B,KACjC,OAAO,CAAC,4BAA4B,CAAC,CAqFtC;CACH"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { StoryGateBoardCacheRepository } from '../adapter-interfaces/StoryGateBoardCacheRepository';
|
|
2
|
+
import { GithubIssueReference, StoryGateIssue, StoryGateIssueRepository } from '../adapter-interfaces/StoryGateIssueRepository';
|
|
3
|
+
import { StoryGateProjectConfigRepository } from '../adapter-interfaces/StoryGateProjectConfigRepository';
|
|
4
|
+
export declare const STORY_GATE_RESULT_SCHEMA_VERSION = 1;
|
|
5
|
+
export declare const STORY_GATE_RESULT_FILE_NAME = "story-gate-result.json";
|
|
6
|
+
export type StoryGateAction = 'PROCEED' | 'STOP_SILENT' | 'ROUTE' | 'SELF_RESOLVE_STORY' | 'FOLD_REQUIRED' | 'JUDGE';
|
|
7
|
+
export type StoryGateReason = 'NOT_ON_ANY_BOARD' | 'REGULAR_STORY' | 'STORY_ISSUE_READ' | 'ISSUE_CLOSED' | 'STORY_ISSUE_CLOSED' | 'SPECIFICATION_ROUTING_ALREADY_POSTED' | 'ISSUE_NOT_IN_BOARD_CACHE' | 'STORY_NOT_ADOPTABLE' | 'STORY_ISSUE_NOT_FOUND' | 'STORY_ISSUES_NOT_READABLE' | 'AGENT_NOT_IN_PROJECT_AGENTS' | 'OPEN_PULL_REQUEST_EXISTS' | 'COMMENT_HISTORY_OVER_LIMIT' | 'WORK_MERGED_WITHOUT_APPROVED_SPECIFICATION';
|
|
8
|
+
export type StorySource = 'BOARD_CACHE' | 'LIVE' | 'ADOPTED' | 'NONE';
|
|
9
|
+
export type StoryAdoptionOutcome = 'NOT_ATTEMPTED' | 'WRITTEN' | 'SKIPPED_DRY_RUN' | 'LIVE_STORY_ALREADY_SET' | 'NO_UNIQUE_LINKED_STORY' | 'READ_BACK_MISMATCH';
|
|
10
|
+
export type AgentRoutingJson = {
|
|
11
|
+
nextStepAgent: string;
|
|
12
|
+
returnToAgent: string;
|
|
13
|
+
};
|
|
14
|
+
export type IssueCommentFiles = {
|
|
15
|
+
ownerCommentsPath: string;
|
|
16
|
+
agentCommentsPath: string;
|
|
17
|
+
ownerCommentCount: number;
|
|
18
|
+
agentCommentCountRead: number;
|
|
19
|
+
agentCommentCountTotal: number;
|
|
20
|
+
};
|
|
21
|
+
export type StoryIssueReadResult = IssueCommentFiles & {
|
|
22
|
+
url: string;
|
|
23
|
+
state: StoryGateIssue['state'];
|
|
24
|
+
bodyPath: string;
|
|
25
|
+
};
|
|
26
|
+
export type AssignedIssueFoldMode = 'NEW_ISSUE' | 'IN_PLACE';
|
|
27
|
+
export type AssignedIssueSummary = {
|
|
28
|
+
url: string;
|
|
29
|
+
state: StoryGateIssue['state'];
|
|
30
|
+
hasStoryLabel: boolean;
|
|
31
|
+
commentCountTotal: number;
|
|
32
|
+
commentCountAfterLatestFold: number;
|
|
33
|
+
foldMode: AssignedIssueFoldMode | null;
|
|
34
|
+
commentFiles: IssueCommentFiles | null;
|
|
35
|
+
};
|
|
36
|
+
export type SpecificationCandidateSource = 'SELF' | 'LINKED_IN_BODY' | 'NAMED_IN_COMMENT';
|
|
37
|
+
export type SpecificationCandidate = {
|
|
38
|
+
url: string;
|
|
39
|
+
source: SpecificationCandidateSource;
|
|
40
|
+
hasNumberedRequirements: boolean;
|
|
41
|
+
hasNumberedCriteria: boolean;
|
|
42
|
+
};
|
|
43
|
+
export type SpecificationDetection = {
|
|
44
|
+
candidates: SpecificationCandidate[];
|
|
45
|
+
unreadableUrls: string[];
|
|
46
|
+
detectedUrl: string | null;
|
|
47
|
+
};
|
|
48
|
+
export type StoryGateFacts = {
|
|
49
|
+
boardCacheFilePath: string | null;
|
|
50
|
+
boardCacheModifiedAt: string | null;
|
|
51
|
+
liveStoryRead: boolean;
|
|
52
|
+
liveProjectIds: string[];
|
|
53
|
+
projectConfigFilePath: string | null;
|
|
54
|
+
agentInProjectAgents: boolean | null;
|
|
55
|
+
openClosingPullRequestUrls: string[] | null;
|
|
56
|
+
mergedClosingPullRequestUrls: string[] | null;
|
|
57
|
+
parentCandidateUrls: string[];
|
|
58
|
+
parentHasApprovedSpecification: boolean | null;
|
|
59
|
+
storyIssueUrlsNotFound: string[];
|
|
60
|
+
};
|
|
61
|
+
export type StoryGateResult = {
|
|
62
|
+
schemaVersion: typeof STORY_GATE_RESULT_SCHEMA_VERSION;
|
|
63
|
+
issueUrl: string;
|
|
64
|
+
dryRun: boolean;
|
|
65
|
+
action: StoryGateAction;
|
|
66
|
+
reason: StoryGateReason;
|
|
67
|
+
story: {
|
|
68
|
+
value: string | null;
|
|
69
|
+
source: StorySource;
|
|
70
|
+
adoptedFromUrls: string[];
|
|
71
|
+
};
|
|
72
|
+
storyAdoption: {
|
|
73
|
+
outcome: StoryAdoptionOutcome;
|
|
74
|
+
};
|
|
75
|
+
routingJson: AgentRoutingJson | null;
|
|
76
|
+
specificationMissingRoutingJson: AgentRoutingJson;
|
|
77
|
+
activeStoryOptions: string[];
|
|
78
|
+
storyIssues: StoryIssueReadResult[];
|
|
79
|
+
assignedIssue: AssignedIssueSummary | null;
|
|
80
|
+
specification: SpecificationDetection | null;
|
|
81
|
+
facts: StoryGateFacts;
|
|
82
|
+
};
|
|
83
|
+
export type StoryGateOutputFile = {
|
|
84
|
+
path: string;
|
|
85
|
+
content: string;
|
|
86
|
+
};
|
|
87
|
+
export type StoryGateCheckInput = {
|
|
88
|
+
issue: GithubIssueReference;
|
|
89
|
+
agentName: string;
|
|
90
|
+
triageAgentName: string;
|
|
91
|
+
specificationAgentName: string;
|
|
92
|
+
outputDirectory: string;
|
|
93
|
+
dryRun: boolean;
|
|
94
|
+
};
|
|
95
|
+
export type StoryGateCheckOutput = {
|
|
96
|
+
result: StoryGateResult;
|
|
97
|
+
outputFiles: StoryGateOutputFile[];
|
|
98
|
+
};
|
|
99
|
+
export declare class StoryGateCheckUseCase {
|
|
100
|
+
private readonly issueRepository;
|
|
101
|
+
private readonly boardCacheRepository;
|
|
102
|
+
private readonly projectConfigRepository;
|
|
103
|
+
constructor(issueRepository: StoryGateIssueRepository, boardCacheRepository: StoryGateBoardCacheRepository, projectConfigRepository: StoryGateProjectConfigRepository);
|
|
104
|
+
run: (input: StoryGateCheckInput) => Promise<StoryGateCheckOutput>;
|
|
105
|
+
private evaluationStateCreate;
|
|
106
|
+
private boardCacheHitFind;
|
|
107
|
+
private issueProjectItemsRead;
|
|
108
|
+
private decide;
|
|
109
|
+
private routeToTriage;
|
|
110
|
+
private linkedStoryResolve;
|
|
111
|
+
private linkedLiveStoryRead;
|
|
112
|
+
private storyAdopt;
|
|
113
|
+
private storyUnadoptableEvaluate;
|
|
114
|
+
private closingPullRequestsRecord;
|
|
115
|
+
private storyIssueUrlsFind;
|
|
116
|
+
private commentFilesWrite;
|
|
117
|
+
private storyIssuesRead;
|
|
118
|
+
private assignedIssueEvaluate;
|
|
119
|
+
private assignedIssueFoldModeDecide;
|
|
120
|
+
private specificationDetect;
|
|
121
|
+
private issueBodyRead;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=StoryGateCheckUseCase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateCheckUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/StoryGateCheckUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GithubIssueReference } from '../adapter-interfaces/StoryGateIssueRepository';
|
|
2
|
+
export declare const githubIssueReferenceParse: (issueUrl: string) => GithubIssueReference | null;
|
|
3
|
+
export declare const githubIssueUrlsExtractInOrder: (text: string) => string[];
|
|
4
|
+
//# sourceMappingURL=githubIssueReferenceParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"githubIssueReferenceParse.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/githubIssueReferenceParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAQtF,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,KACf,oBAAoB,GAAG,IAWzB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAAM,EAElE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { StoryGateIssueComment } from '../adapter-interfaces/StoryGateIssueRepository';
|
|
2
|
+
export declare const AGENT_REPORT_PREFIX = "From: :robot:";
|
|
3
|
+
export declare const FOLD_MARKER_LINE = "## Fold";
|
|
4
|
+
export declare const AGENT_COMMENT_READ_LIMIT = 40;
|
|
5
|
+
export declare const COMMENT_HISTORY_FOLD_THRESHOLD = 40;
|
|
6
|
+
export type IssueCommentSplit = {
|
|
7
|
+
ownerComments: StoryGateIssueComment[];
|
|
8
|
+
agentCommentsNewestFirst: StoryGateIssueComment[];
|
|
9
|
+
ownerCommentCount: number;
|
|
10
|
+
agentCommentCountRead: number;
|
|
11
|
+
agentCommentCountTotal: number;
|
|
12
|
+
};
|
|
13
|
+
export declare const isAgentReportBody: (body: string) => boolean;
|
|
14
|
+
export declare const hasFoldMarkerLine: (body: string) => boolean;
|
|
15
|
+
export declare const issueCommentsAfterLatestFold: (comments: StoryGateIssueComment[]) => StoryGateIssueComment[];
|
|
16
|
+
export declare const issueCommentsSplitByAuthorKind: (comments: StoryGateIssueComment[]) => IssueCommentSplit;
|
|
17
|
+
export declare const issueCommentsFormatAsText: (comments: StoryGateIssueComment[]) => string;
|
|
18
|
+
//# sourceMappingURL=issueCommentSplit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issueCommentSplit.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/issueCommentSplit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,wBAAwB,EAAE,qBAAqB,EAAE,CAAC;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OACX,CAAC;AAEvC,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OAC8B,CAAC;AAEhF,eAAO,MAAM,4BAA4B,GACvC,UAAU,qBAAqB,EAAE,KAChC,qBAAqB,EAOvB,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,UAAU,qBAAqB,EAAE,KAChC,iBAgBF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,UAAU,qBAAqB,EAAE,KAChC,MAMY,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const SPECIFICATION_ABSENT_LINE = "\u627F\u8A8D\u6E08\u307F\u4ED5\u69D8: \u306A\u3057";
|
|
2
|
+
export declare const isSpecificationRoutingAlreadyPosted: (commentBody: string, specificationAgentName: string) => boolean;
|
|
3
|
+
export declare const approvedSpecificationUrlsExtract: (commentBody: string) => string[];
|
|
4
|
+
//# sourceMappingURL=specificationRoutingDetect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specificationRoutingDetect.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/specificationRoutingDetect.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,uDAAe,CAAC;AAiBtD,eAAO,MAAM,mCAAmC,GAC9C,aAAa,MAAM,EACnB,wBAAwB,MAAM,KAC7B,OAIA,CAAC;AAEJ,eAAO,MAAM,gCAAgC,GAC3C,aAAa,MAAM,KAClB,MAAM,EAIL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const REQUIREMENT_SECTION_HEADINGS: string[];
|
|
2
|
+
export declare const CRITERIA_SECTION_HEADINGS: string[];
|
|
3
|
+
export type SpecificationSectionDetection = {
|
|
4
|
+
hasNumberedRequirements: boolean;
|
|
5
|
+
hasNumberedCriteria: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const specificationSectionsDetect: (body: string) => SpecificationSectionDetection;
|
|
8
|
+
//# sourceMappingURL=specificationSectionDetect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specificationSectionDetect.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/specificationSectionDetect.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,UAKxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAKrC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,uBAAuB,EAAE,OAAO,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAwCF,eAAO,MAAM,2BAA2B,GACtC,MAAM,MAAM,KACX,6BAYF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const REGULAR_STORY_PREFIX = "regular /";
|
|
2
|
+
export declare const NO_STORY_MARKER = "NO STORY";
|
|
3
|
+
export declare const DISABLED_STORY_OPTION_COLOR = "GRAY";
|
|
4
|
+
export declare const BACKLOG_MILESTONE_STORY_MARKER = "milestone on Backlog";
|
|
5
|
+
export declare const STORY_ISSUE_LABEL_NAME = "story";
|
|
6
|
+
export declare const isStoryUnset: (story: string | null) => boolean;
|
|
7
|
+
export declare const isRegularStory: (story: string) => boolean;
|
|
8
|
+
export declare const hasBacklogTicketUrl: (text: string) => boolean;
|
|
9
|
+
export declare const hasStoryIssueLabel: (labels: string[]) => boolean;
|
|
10
|
+
//# sourceMappingURL=storyValueClassify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyValueClassify.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/storyValueClassify.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,8BAA8B,yBAAyB,CAAC;AACrE,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAI9C,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,GAAG,IAAI,KAAG,OAGL,CAAC;AAEhD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,OACP,CAAC;AAEzC,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,OACZ,CAAC;AAExC,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,KAAG,OACkB,CAAC"}
|