github-issue-tower-defence-management 1.34.2 → 1.35.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/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ # [1.35.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.34.3...v1.35.0) (2026-04-02)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **core:** do not use defaultStatus as fallback for unrecognized status labels ([f3f1343](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/f3f13439cf8958751405776ba36644c78c82b651))
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** implement defaultStatus in UpdateIssueStatusByLabelUseCase ([157d2ea](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/157d2ea052837dcd5a830ec295f98ceebfea8f1f)), closes [#365](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/365)
12
+ * **core:** use defaultStatus as fallback when status label value is unrecognized ([5871499](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/587149914741e60b60a07caf822befe8ce37c15b))
13
+
14
+ ## [1.34.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.34.2...v1.34.3) (2026-04-02)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **deps:** update axios to v1.14.0 to resolve plain-crypto-js removal ([1d3d7a5](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/1d3d7a5f43fb59b37946bd6c408816a8322026f2))
20
+
1
21
  ## [1.34.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.34.1...v1.34.2) (2026-03-28)
2
22
 
3
23
 
package/README.md CHANGED
@@ -79,6 +79,7 @@ disabled: boolean # When true, skip all processing and return null
79
79
  org: string # Organization name
80
80
  projectUrl: string # URL of the target project
81
81
  manager: string # GitHub account name of the manager
82
+ defaultStatus?: string | null # Optional: Fallback status used when a status label value does not match any project status
82
83
  workingReport:
83
84
  repo: string # Repository name
84
85
  members: # Array of member's GitHub account names
@@ -111,6 +112,7 @@ disabled: false
111
112
  org: 'my-org'
112
113
  projectUrl: 'https://github.com/orgs/my-org/projects/1'
113
114
  manager: 'HiromiShikata'
115
+ defaultStatus: 'Unread'
114
116
  workingReport:
115
117
  repo: 'work-report'
116
118
  members:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.34.2",
3
+ "version": "1.35.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -72,7 +72,7 @@
72
72
  "typescript": "^5.6.3"
73
73
  },
74
74
  "dependencies": {
75
- "axios": "^1.7.7",
75
+ "axios": "^1.14.0",
76
76
  "axios-retry": "^4.5.0",
77
77
  "cheerio": "^1.0.0",
78
78
  "commander": "^14.0.0",
@@ -18,6 +18,7 @@ if (!SLACK_USER_TOKEN) {
18
18
 
19
19
  describe('AxiosSlackRepository Integration Tests', () => {
20
20
  jest.setTimeout(60 * 1000);
21
+ jest.retryTimes(3, { logErrorsBeforeRetry: true });
21
22
  let slackRepository: AxiosSlackRepository;
22
23
 
23
24
  beforeAll(() => {
@@ -262,6 +262,51 @@ describe('UpdateIssueStatusByLabelUseCase', () => {
262
262
  removeLabel: [],
263
263
  },
264
264
  },
265
+ {
266
+ name: 'should not change when status label value does not match any project status',
267
+ issues: [
268
+ {
269
+ ...mock<Issue>(),
270
+ labels: ['status:UnknownStatus'],
271
+ status: 'ToDo',
272
+ },
273
+ ],
274
+ defaultStatus: 'Unread',
275
+ expectedCalls: {
276
+ updateStatus: [],
277
+ removeLabel: [],
278
+ },
279
+ },
280
+ {
281
+ name: 'should not update when status label value does not match and defaultStatus is null',
282
+ issues: [
283
+ {
284
+ ...mock<Issue>(),
285
+ labels: ['status:UnknownStatus'],
286
+ status: 'ToDo',
287
+ },
288
+ ],
289
+ defaultStatus: null,
290
+ expectedCalls: {
291
+ updateStatus: [],
292
+ removeLabel: [],
293
+ },
294
+ },
295
+ {
296
+ name: 'should use matched status over defaultStatus when label matches a project status',
297
+ issues: [
298
+ {
299
+ ...mock<Issue>(),
300
+ labels: ['status:In Progress'],
301
+ status: 'ToDo',
302
+ },
303
+ ],
304
+ defaultStatus: 'Unread',
305
+ expectedCalls: {
306
+ updateStatus: [[expect.anything(), expect.anything(), 'status2']],
307
+ removeLabel: [[expect.anything(), 'status:In Progress']],
308
+ },
309
+ },
265
310
  ];
266
311
 
267
312
  testCases.forEach(({ name, issues, defaultStatus, expectedCalls }) => {