npm-cli-gh-issue-preparator 1.16.1 → 1.18.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/.github/workflows/test.yml +2 -2
- package/CHANGELOG.md +14 -0
- package/README.md +13 -3
- package/bin/adapter/entry-points/cli/index.js +142 -25
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +4 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +3 -1
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/config.example.yml +21 -0
- package/package.json +4 -2
- package/src/adapter/entry-points/cli/index.integration.test.ts +6 -2
- package/src/adapter/entry-points/cli/index.test.ts +1131 -523
- package/src/adapter/entry-points/cli/index.ts +188 -44
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +60 -1
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +17 -2
- package/src/domain/usecases/StartPreparationUseCase.test.ts +38 -1
- package/src/domain/usecases/StartPreparationUseCase.ts +13 -2
- package/types/adapter/entry-points/cli/index.d.ts +13 -1
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
|
@@ -28,13 +28,13 @@ jobs:
|
|
|
28
28
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
29
29
|
|
|
30
30
|
- name: Upload test results
|
|
31
|
-
uses: actions/upload-artifact@
|
|
31
|
+
uses: actions/upload-artifact@v7
|
|
32
32
|
with:
|
|
33
33
|
name: jest-junit-report
|
|
34
34
|
path: reports/jest-junit
|
|
35
35
|
|
|
36
36
|
- name: Upload artifacts
|
|
37
|
-
uses: actions/upload-artifact@
|
|
37
|
+
uses: actions/upload-artifact@v7
|
|
38
38
|
with:
|
|
39
39
|
name: reports
|
|
40
40
|
path: reports
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [1.18.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.17.0...v1.18.0) (2026-02-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **core:** call prepareStatus for all provided statuses before use ([c2739f3](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/c2739f3a3adfa64e97bb37ed25a18999b0f54b7c))
|
|
7
|
+
|
|
8
|
+
# [1.17.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.16.1...v1.17.0) (2026-02-26)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **cli:** move all CLI parameters to config YAML file ([bf4672c](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/bf4672cb1aca8c5003ac23c456d0c400ce0147f8))
|
|
14
|
+
|
|
1
15
|
## [1.16.1](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.16.0...v1.16.1) (2026-02-25)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -24,20 +24,30 @@ Commands:
|
|
|
24
24
|
help [command] display help for command
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
## Configuration
|
|
28
|
+
|
|
29
|
+
All parameters can be specified in a YAML config file. See [config.example.yml](./config.example.yml) for a complete example. CLI options override config file values.
|
|
30
|
+
|
|
27
31
|
## Example 📖
|
|
28
32
|
|
|
29
33
|
Here's a quick example to illustrate its usage:
|
|
30
34
|
|
|
31
|
-
###
|
|
35
|
+
### Using config file
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
npx npm-cli-gh-issue-preparator startDaemon --configFilePath ./config.yml
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Start preparation (with CLI overrides)
|
|
32
42
|
|
|
33
43
|
```
|
|
34
|
-
npx npm-cli-gh-issue-preparator startDaemon --projectUrl <projectUrl> --awaitingWorkspaceStatus "Awaiting workspace" --preparationStatus "Preparation" --defaultAgentName "impl"
|
|
44
|
+
npx npm-cli-gh-issue-preparator startDaemon --configFilePath ./config.yml --projectUrl <projectUrl> --awaitingWorkspaceStatus "Awaiting workspace" --preparationStatus "Preparation" --defaultAgentName "impl"
|
|
35
45
|
```
|
|
36
46
|
|
|
37
47
|
### Notify finished issue preparation
|
|
38
48
|
|
|
39
49
|
```
|
|
40
|
-
npx npm-cli-gh-issue-preparator notifyFinishedIssuePreparation --
|
|
50
|
+
npx npm-cli-gh-issue-preparator notifyFinishedIssuePreparation --configFilePath ./config.yml --issueUrl <issueUrl>
|
|
41
51
|
```
|
|
42
52
|
|
|
43
53
|
## Contributing
|
|
@@ -1,12 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
3
36
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
38
|
};
|
|
6
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.program = void 0;
|
|
40
|
+
exports.loadConfigFile = exports.program = void 0;
|
|
8
41
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
9
42
|
dotenv_1.default.config();
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const yaml = __importStar(require("js-yaml"));
|
|
10
45
|
const commander_1 = require("commander");
|
|
11
46
|
const StartPreparationUseCase_1 = require("../../../domain/usecases/StartPreparationUseCase");
|
|
12
47
|
const NotifyFinishedIssuePreparationUseCase_1 = require("../../../domain/usecases/NotifyFinishedIssuePreparationUseCase");
|
|
@@ -16,6 +51,41 @@ const TowerDefenceProjectRepository_1 = require("../../repositories/TowerDefence
|
|
|
16
51
|
const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
|
|
17
52
|
const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
|
|
18
53
|
const OauthAPIClaudeRepository_1 = require("../../repositories/OauthAPIClaudeRepository");
|
|
54
|
+
const getStringValue = (obj, key) => {
|
|
55
|
+
const value = obj[key];
|
|
56
|
+
return typeof value === 'string' ? value : undefined;
|
|
57
|
+
};
|
|
58
|
+
const getNumberValue = (obj, key) => {
|
|
59
|
+
const value = obj[key];
|
|
60
|
+
return typeof value === 'number' ? value : undefined;
|
|
61
|
+
};
|
|
62
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
63
|
+
const loadConfigFile = (configFilePath) => {
|
|
64
|
+
try {
|
|
65
|
+
const content = fs.readFileSync(configFilePath, 'utf-8');
|
|
66
|
+
const parsed = yaml.load(content);
|
|
67
|
+
if (!isRecord(parsed)) {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
projectUrl: getStringValue(parsed, 'projectUrl'),
|
|
72
|
+
awaitingWorkspaceStatus: getStringValue(parsed, 'awaitingWorkspaceStatus'),
|
|
73
|
+
preparationStatus: getStringValue(parsed, 'preparationStatus'),
|
|
74
|
+
defaultAgentName: getStringValue(parsed, 'defaultAgentName'),
|
|
75
|
+
logFilePath: getStringValue(parsed, 'logFilePath'),
|
|
76
|
+
maximumPreparingIssuesCount: getNumberValue(parsed, 'maximumPreparingIssuesCount'),
|
|
77
|
+
utilizationPercentageThreshold: getNumberValue(parsed, 'utilizationPercentageThreshold'),
|
|
78
|
+
awaitingQualityCheckStatus: getStringValue(parsed, 'awaitingQualityCheckStatus'),
|
|
79
|
+
thresholdForAutoReject: getNumberValue(parsed, 'thresholdForAutoReject'),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
84
|
+
console.error(`Failed to load configuration file "${configFilePath}": ${message}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
exports.loadConfigFile = loadConfigFile;
|
|
19
89
|
const program = new commander_1.Command();
|
|
20
90
|
exports.program = program;
|
|
21
91
|
program
|
|
@@ -24,11 +94,11 @@ program
|
|
|
24
94
|
program
|
|
25
95
|
.command('startDaemon')
|
|
26
96
|
.description('Start daemon to prepare GitHub issues')
|
|
27
|
-
.requiredOption('--projectUrl <url>', 'GitHub project URL')
|
|
28
|
-
.requiredOption('--awaitingWorkspaceStatus <status>', 'Status for issues awaiting workspace')
|
|
29
|
-
.requiredOption('--preparationStatus <status>', 'Status for issues in preparation')
|
|
30
|
-
.requiredOption('--defaultAgentName <name>', 'Default agent name')
|
|
31
97
|
.requiredOption('--configFilePath <path>', 'Path to config file for tower defence management')
|
|
98
|
+
.option('--projectUrl <url>', 'GitHub project URL')
|
|
99
|
+
.option('--awaitingWorkspaceStatus <status>', 'Status for issues awaiting workspace')
|
|
100
|
+
.option('--preparationStatus <status>', 'Status for issues in preparation')
|
|
101
|
+
.option('--defaultAgentName <name>', 'Default agent name')
|
|
32
102
|
.option('--logFilePath <path>', 'Path to log file')
|
|
33
103
|
.option('--maximumPreparingIssuesCount <count>', 'Maximum number of issues in preparation status (default: 6)')
|
|
34
104
|
.option('--utilizationPercentageThreshold <percentage>', 'Claude usage percentage threshold for skipping preparation (default: 90)')
|
|
@@ -38,6 +108,28 @@ program
|
|
|
38
108
|
console.error('GH_TOKEN environment variable is required');
|
|
39
109
|
process.exit(1);
|
|
40
110
|
}
|
|
111
|
+
const config = loadConfigFile(options.configFilePath);
|
|
112
|
+
const projectUrl = options.projectUrl ?? config.projectUrl;
|
|
113
|
+
const awaitingWorkspaceStatus = options.awaitingWorkspaceStatus ?? config.awaitingWorkspaceStatus;
|
|
114
|
+
const preparationStatus = options.preparationStatus ?? config.preparationStatus;
|
|
115
|
+
const defaultAgentName = options.defaultAgentName ?? config.defaultAgentName;
|
|
116
|
+
const logFilePath = options.logFilePath ?? config.logFilePath;
|
|
117
|
+
if (!projectUrl) {
|
|
118
|
+
console.error('projectUrl is required. Provide via --projectUrl or config file.');
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
if (!awaitingWorkspaceStatus) {
|
|
122
|
+
console.error('awaitingWorkspaceStatus is required. Provide via --awaitingWorkspaceStatus or config file.');
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
if (!preparationStatus) {
|
|
126
|
+
console.error('preparationStatus is required. Provide via --preparationStatus or config file.');
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
if (!defaultAgentName) {
|
|
130
|
+
console.error('defaultAgentName is required. Provide via --defaultAgentName or config file.');
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
41
133
|
const projectRepository = new TowerDefenceProjectRepository_1.TowerDefenceProjectRepository(options.configFilePath, token);
|
|
42
134
|
const towerDefenceIssueRepository = new TowerDefenceIssueRepository_1.TowerDefenceIssueRepository(options.configFilePath, token);
|
|
43
135
|
const graphqlIssueRepository = new GraphqlIssueRepository_1.GraphqlIssueRepository(token);
|
|
@@ -49,8 +141,9 @@ program
|
|
|
49
141
|
update: graphqlIssueRepository.update.bind(graphqlIssueRepository),
|
|
50
142
|
}, claudeRepository, localCommandRunner);
|
|
51
143
|
let maximumPreparingIssuesCount = null;
|
|
52
|
-
|
|
53
|
-
|
|
144
|
+
const rawMaxCount = options.maximumPreparingIssuesCount ?? config.maximumPreparingIssuesCount;
|
|
145
|
+
if (rawMaxCount !== undefined) {
|
|
146
|
+
const parsedCount = Number(rawMaxCount);
|
|
54
147
|
if (!Number.isFinite(parsedCount) ||
|
|
55
148
|
!Number.isInteger(parsedCount) ||
|
|
56
149
|
parsedCount <= 0) {
|
|
@@ -60,8 +153,10 @@ program
|
|
|
60
153
|
maximumPreparingIssuesCount = parsedCount;
|
|
61
154
|
}
|
|
62
155
|
let utilizationPercentageThreshold = 90;
|
|
63
|
-
|
|
64
|
-
|
|
156
|
+
const rawThreshold = options.utilizationPercentageThreshold ??
|
|
157
|
+
config.utilizationPercentageThreshold;
|
|
158
|
+
if (rawThreshold !== undefined) {
|
|
159
|
+
const parsedThreshold = Number(rawThreshold);
|
|
65
160
|
if (!Number.isFinite(parsedThreshold) ||
|
|
66
161
|
parsedThreshold < 0 ||
|
|
67
162
|
parsedThreshold > 100) {
|
|
@@ -71,11 +166,11 @@ program
|
|
|
71
166
|
utilizationPercentageThreshold = parsedThreshold;
|
|
72
167
|
}
|
|
73
168
|
await useCase.run({
|
|
74
|
-
projectUrl
|
|
75
|
-
awaitingWorkspaceStatus
|
|
76
|
-
preparationStatus
|
|
77
|
-
defaultAgentName
|
|
78
|
-
logFilePath
|
|
169
|
+
projectUrl,
|
|
170
|
+
awaitingWorkspaceStatus,
|
|
171
|
+
preparationStatus,
|
|
172
|
+
defaultAgentName,
|
|
173
|
+
logFilePath,
|
|
79
174
|
maximumPreparingIssuesCount,
|
|
80
175
|
utilizationPercentageThreshold,
|
|
81
176
|
});
|
|
@@ -83,12 +178,12 @@ program
|
|
|
83
178
|
program
|
|
84
179
|
.command('notifyFinishedIssuePreparation')
|
|
85
180
|
.description('Notify that issue preparation is finished')
|
|
86
|
-
.requiredOption('--projectUrl <url>', 'GitHub project URL')
|
|
87
|
-
.requiredOption('--issueUrl <url>', 'GitHub issue URL')
|
|
88
|
-
.requiredOption('--preparationStatus <status>', 'Status for issues in preparation')
|
|
89
|
-
.requiredOption('--awaitingWorkspaceStatus <status>', 'Status for issues awaiting workspace')
|
|
90
|
-
.requiredOption('--awaitingQualityCheckStatus <status>', 'Status for issues awaiting quality check')
|
|
91
181
|
.requiredOption('--configFilePath <path>', 'Path to config file for tower defence management')
|
|
182
|
+
.requiredOption('--issueUrl <url>', 'GitHub issue URL')
|
|
183
|
+
.option('--projectUrl <url>', 'GitHub project URL')
|
|
184
|
+
.option('--preparationStatus <status>', 'Status for issues in preparation')
|
|
185
|
+
.option('--awaitingWorkspaceStatus <status>', 'Status for issues awaiting workspace')
|
|
186
|
+
.option('--awaitingQualityCheckStatus <status>', 'Status for issues awaiting quality check')
|
|
92
187
|
.option('--thresholdForAutoReject <count>', 'Threshold for auto-escalation after consecutive rejections (default: 3)')
|
|
93
188
|
.action(async (options) => {
|
|
94
189
|
const token = process.env.GH_TOKEN;
|
|
@@ -96,13 +191,35 @@ program
|
|
|
96
191
|
console.error('GH_TOKEN environment variable is required');
|
|
97
192
|
process.exit(1);
|
|
98
193
|
}
|
|
194
|
+
const config = loadConfigFile(options.configFilePath);
|
|
195
|
+
const projectUrl = options.projectUrl ?? config.projectUrl;
|
|
196
|
+
const preparationStatus = options.preparationStatus ?? config.preparationStatus;
|
|
197
|
+
const awaitingWorkspaceStatus = options.awaitingWorkspaceStatus ?? config.awaitingWorkspaceStatus;
|
|
198
|
+
const awaitingQualityCheckStatus = options.awaitingQualityCheckStatus ?? config.awaitingQualityCheckStatus;
|
|
199
|
+
if (!projectUrl) {
|
|
200
|
+
console.error('projectUrl is required. Provide via --projectUrl or config file.');
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
if (!preparationStatus) {
|
|
204
|
+
console.error('preparationStatus is required. Provide via --preparationStatus or config file.');
|
|
205
|
+
process.exit(1);
|
|
206
|
+
}
|
|
207
|
+
if (!awaitingWorkspaceStatus) {
|
|
208
|
+
console.error('awaitingWorkspaceStatus is required. Provide via --awaitingWorkspaceStatus or config file.');
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
if (!awaitingQualityCheckStatus) {
|
|
212
|
+
console.error('awaitingQualityCheckStatus is required. Provide via --awaitingQualityCheckStatus or config file.');
|
|
213
|
+
process.exit(1);
|
|
214
|
+
}
|
|
99
215
|
const projectRepository = new TowerDefenceProjectRepository_1.TowerDefenceProjectRepository(options.configFilePath, token);
|
|
100
216
|
const graphqlIssueRepository = new GraphqlIssueRepository_1.GraphqlIssueRepository(token);
|
|
101
217
|
const issueCommentRepository = new GitHubIssueCommentRepository_1.GitHubIssueCommentRepository(token);
|
|
102
218
|
const useCase = new NotifyFinishedIssuePreparationUseCase_1.NotifyFinishedIssuePreparationUseCase(projectRepository, graphqlIssueRepository, issueCommentRepository);
|
|
103
219
|
let thresholdForAutoReject = 3;
|
|
104
|
-
|
|
105
|
-
|
|
220
|
+
const rawThreshold = options.thresholdForAutoReject ?? config.thresholdForAutoReject;
|
|
221
|
+
if (rawThreshold !== undefined) {
|
|
222
|
+
const parsed = Number(rawThreshold);
|
|
106
223
|
if (!Number.isFinite(parsed) ||
|
|
107
224
|
!Number.isInteger(parsed) ||
|
|
108
225
|
parsed <= 0) {
|
|
@@ -112,11 +229,11 @@ program
|
|
|
112
229
|
thresholdForAutoReject = parsed;
|
|
113
230
|
}
|
|
114
231
|
await useCase.run({
|
|
115
|
-
projectUrl
|
|
232
|
+
projectUrl,
|
|
116
233
|
issueUrl: options.issueUrl,
|
|
117
|
-
preparationStatus
|
|
118
|
-
awaitingWorkspaceStatus
|
|
119
|
-
awaitingQualityCheckStatus
|
|
234
|
+
preparationStatus,
|
|
235
|
+
awaitingWorkspaceStatus,
|
|
236
|
+
awaitingQualityCheckStatus,
|
|
120
237
|
thresholdForAutoReject,
|
|
121
238
|
});
|
|
122
239
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,10 @@ class NotifyFinishedIssuePreparationUseCase {
|
|
|
21
21
|
this.issueRepository = issueRepository;
|
|
22
22
|
this.issueCommentRepository = issueCommentRepository;
|
|
23
23
|
this.run = async (params) => {
|
|
24
|
-
|
|
24
|
+
let project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
25
|
+
project = await this.projectRepository.prepareStatus(params.preparationStatus, project);
|
|
26
|
+
project = await this.projectRepository.prepareStatus(params.awaitingWorkspaceStatus, project);
|
|
27
|
+
project = await this.projectRepository.prepareStatus(params.awaitingQualityCheckStatus, project);
|
|
25
28
|
const issue = await this.issueRepository.get(params.issueUrl, project);
|
|
26
29
|
if (!issue) {
|
|
27
30
|
throw new IssueNotFoundError(params.issueUrl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,QAAgB;QAC1B,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AACD,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YACE,QAAgB,EAChB,aAA4B,EAC5B,cAA6B;QAE7B,KAAK,CACH,4BAA4B,QAAQ,cAAc,cAAc,aAAa,aAAa,EAAE,CAC7F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAXD,0DAWC;AASD,MAAa,qCAAqC;IAChD,YACmB,
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,9 @@ class StartPreparationUseCase {
|
|
|
19
19
|
console.warn('Failed to check Claude usage:', error);
|
|
20
20
|
}
|
|
21
21
|
const maximumPreparingIssuesCount = params.maximumPreparingIssuesCount ?? 6;
|
|
22
|
-
|
|
22
|
+
let project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
23
|
+
project = await this.projectRepository.prepareStatus(params.awaitingWorkspaceStatus, project);
|
|
24
|
+
project = await this.projectRepository.prepareStatus(params.preparationStatus, project);
|
|
23
25
|
const storyObjectMap = await this.issueRepository.getStoryObjectMap(project);
|
|
24
26
|
const allIssues = await this.issueRepository.getAllOpened(project);
|
|
25
27
|
const repositoryBlockerIssues = this.createWorkflowBockerIsues(storyObjectMap);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":";;;AAOA,MAAa,uBAAuB;IAClC,YACmB,
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
org: HiromiShikata
|
|
2
|
+
projectUrl: https://github.com/users/HiromiShikata/projects/49
|
|
3
|
+
projectName: test-project
|
|
4
|
+
manager: HiromiShikata
|
|
5
|
+
allowIssueCacheMinutes: 0
|
|
6
|
+
credentials:
|
|
7
|
+
ghToken: your_gh_token_here
|
|
8
|
+
bot:
|
|
9
|
+
github:
|
|
10
|
+
token: your_gh_token_here
|
|
11
|
+
workingReport:
|
|
12
|
+
repo: test-repository
|
|
13
|
+
members:
|
|
14
|
+
- HiromiShikata
|
|
15
|
+
spreadsheetUrl: https://docs.google.com/spreadsheets/d/your-sheet-id
|
|
16
|
+
reportIssueLabels:
|
|
17
|
+
- report
|
|
18
|
+
awaitingWorkspaceStatus: 'Awaiting workspace'
|
|
19
|
+
preparationStatus: 'Preparation'
|
|
20
|
+
defaultAgentName: 'impl'
|
|
21
|
+
awaitingQualityCheckStatus: 'Awaiting quality check'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-cli-gh-issue-preparator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "bin/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@semantic-release/changelog": "^6.0.3",
|
|
49
49
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
50
50
|
"@types/jest": "^30.0.0",
|
|
51
|
+
"@types/js-yaml": "^4.0.9",
|
|
51
52
|
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
52
53
|
"@typescript-eslint/parser": "^7.2.0",
|
|
53
54
|
"check-node-version": "^4.2.1",
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
"@semantic-release/npm": "^13.0.0",
|
|
72
73
|
"commander": "^14.0.0",
|
|
73
74
|
"dotenv": "^16.4.5",
|
|
74
|
-
"github-issue-tower-defence-management": "^1.21.2"
|
|
75
|
+
"github-issue-tower-defence-management": "^1.21.2",
|
|
76
|
+
"js-yaml": "^4.1.1"
|
|
75
77
|
}
|
|
76
78
|
}
|
|
@@ -41,6 +41,10 @@ workingReport:
|
|
|
41
41
|
spreadsheetUrl: https://docs.google.com/spreadsheets/d/test
|
|
42
42
|
reportIssueLabels:
|
|
43
43
|
- report
|
|
44
|
+
awaitingWorkspaceStatus: "Awaiting workspace"
|
|
45
|
+
preparationStatus: "Preparation"
|
|
46
|
+
defaultAgentName: "impl"
|
|
47
|
+
awaitingQualityCheckStatus: "Awaiting quality check"
|
|
44
48
|
`;
|
|
45
49
|
fs.writeFileSync(configFilePath, configContent);
|
|
46
50
|
});
|
|
@@ -54,7 +58,7 @@ workingReport:
|
|
|
54
58
|
describe('startDaemon', () => {
|
|
55
59
|
it('executes without error', () => {
|
|
56
60
|
const result = execSync(
|
|
57
|
-
`npx ts-node ./src/adapter/entry-points/cli/index.ts startDaemon --
|
|
61
|
+
`npx ts-node ./src/adapter/entry-points/cli/index.ts startDaemon --configFilePath ${configFilePath}`,
|
|
58
62
|
{ encoding: 'utf-8', timeout: 600000 },
|
|
59
63
|
);
|
|
60
64
|
expect(result).toBeDefined();
|
|
@@ -67,7 +71,7 @@ workingReport:
|
|
|
67
71
|
|
|
68
72
|
try {
|
|
69
73
|
execSync(
|
|
70
|
-
`npx ts-node ./src/adapter/entry-points/cli/index.ts notifyFinishedIssuePreparation --
|
|
74
|
+
`npx ts-node ./src/adapter/entry-points/cli/index.ts notifyFinishedIssuePreparation --issueUrl ${notifyFinishedIssueUrl} --configFilePath ${configFilePath} 2>&1`,
|
|
71
75
|
{ encoding: 'utf-8', timeout: 600000 },
|
|
72
76
|
);
|
|
73
77
|
} catch (err) {
|