@sk8metal/michi-cli 0.8.1 → 0.8.3

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.
Files changed (71) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/scripts/confluence-sync.js +2 -2
  3. package/dist/scripts/confluence-sync.js.map +1 -1
  4. package/dist/scripts/jira-sync.js +2 -2
  5. package/dist/scripts/jira-sync.js.map +1 -1
  6. package/dist/scripts/multi-project-estimate.js +2 -2
  7. package/dist/scripts/multi-project-estimate.js.map +1 -1
  8. package/dist/scripts/pr-automation.js +2 -2
  9. package/dist/scripts/pr-automation.js.map +1 -1
  10. package/dist/scripts/pre-flight-check.js +2 -2
  11. package/dist/scripts/pre-flight-check.js.map +1 -1
  12. package/dist/scripts/resource-dashboard.js +2 -2
  13. package/dist/scripts/resource-dashboard.js.map +1 -1
  14. package/dist/scripts/spec-impl-workflow.js +2 -2
  15. package/dist/scripts/spec-impl-workflow.js.map +1 -1
  16. package/dist/scripts/template/multi-repo-renderer.d.ts +1 -1
  17. package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -1
  18. package/dist/scripts/template/multi-repo-renderer.js +8 -3
  19. package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
  20. package/dist/scripts/test-workflow-stages.js +2 -2
  21. package/dist/scripts/test-workflow-stages.js.map +1 -1
  22. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  23. package/dist/scripts/utils/config-loader.js +3 -2
  24. package/dist/scripts/utils/config-loader.js.map +1 -1
  25. package/dist/scripts/utils/env-loader.d.ts +11 -0
  26. package/dist/scripts/utils/env-loader.d.ts.map +1 -0
  27. package/dist/scripts/utils/env-loader.js +23 -0
  28. package/dist/scripts/utils/env-loader.js.map +1 -0
  29. package/dist/scripts/workflow-orchestrator.js +2 -2
  30. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  31. package/dist/src/cli.js +3 -3
  32. package/dist/src/cli.js.map +1 -1
  33. package/docs/michi-development/design/config-unification.md +38 -4094
  34. package/docs/michi-development/design/design-config-current-state.md +330 -0
  35. package/docs/michi-development/design/design-config-implementation.md +628 -0
  36. package/docs/michi-development/design/design-config-migration.md +952 -0
  37. package/docs/michi-development/design/design-config-security.md +771 -0
  38. package/docs/michi-development/design/design-config-solution.md +583 -0
  39. package/docs/michi-development/design/design-config-testing.md +892 -0
  40. package/docs/michi-development/testing/manual-verification-flow.md +6 -1377
  41. package/docs/michi-development/testing/manual-verification-other-tools.md +1277 -0
  42. package/docs/michi-development/testing/manual-verification-troubleshooting.md +122 -0
  43. package/docs/user-guide/getting-started/setup.md +14 -32
  44. package/docs/user-guide/guides/multi-repo-guide.md +367 -44
  45. package/docs/user-guide/reference/config.md +1 -1
  46. package/docs/user-guide/reference/security-test-payloads.md +50 -0
  47. package/docs/user-guide/release/ci-setup-java.md +114 -0
  48. package/docs/user-guide/release/ci-setup-nodejs.md +94 -0
  49. package/docs/user-guide/release/ci-setup-php.md +102 -0
  50. package/docs/user-guide/release/ci-setup-troubleshooting.md +94 -0
  51. package/docs/user-guide/release/ci-setup.md +17 -370
  52. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +9 -3
  53. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +4 -43
  54. package/package.json +2 -3
  55. package/scripts/confluence-sync.ts +2 -2
  56. package/scripts/jira-sync.ts +2 -2
  57. package/scripts/multi-project-estimate.ts +2 -2
  58. package/scripts/pr-automation.ts +2 -2
  59. package/scripts/pre-flight-check.ts +2 -2
  60. package/scripts/resource-dashboard.ts +2 -2
  61. package/scripts/spec-impl-workflow.ts +2 -2
  62. package/scripts/template/__tests__/multi-repo-renderer.test.ts +15 -10
  63. package/scripts/template/multi-repo-renderer.ts +9 -3
  64. package/scripts/test-workflow-stages.ts +2 -2
  65. package/scripts/utils/__tests__/env-loader.test.ts +145 -0
  66. package/scripts/utils/config-loader.ts +3 -2
  67. package/scripts/utils/env-loader.ts +25 -0
  68. package/scripts/workflow-orchestrator.ts +2 -2
  69. package/docs/design-issue-55.md +0 -240
  70. package/docs/design-issue-56.md +0 -181
  71. package/docs/user-guide/guides/multi-repo-migration-guide.md +0 -516
@@ -39,297 +39,25 @@ michiは以下のCI/CDツールをサポートしています:
39
39
  - **メリット**: 高いカスタマイズ性、柔軟なパイプライン設定
40
40
  - **設定ファイル**: `screwdriver.yaml`
41
41
 
42
- ## Node.js/TypeScript プロジェクトのCI/CD設定
43
42
 
44
- ### GitHub Actions設定例
43
+ ## 言語別CI/CD設定ガイド
45
44
 
46
- **.github/workflows/test.yml**
45
+ 各言語のCI/CD設定については、以下のドキュメントを参照してください:
47
46
 
48
- ```yaml
49
- name: Test
50
-
51
- on:
52
- push:
53
- branches:
54
- - main
55
- pull_request:
56
-
57
- jobs:
58
- test:
59
- runs-on: ubuntu-latest
60
-
61
- strategy:
62
- matrix:
63
- node-version: [18.x, 20.x]
64
-
65
- steps:
66
- - uses: actions/checkout@v4
67
-
68
- - name: Setup Node.js
69
- uses: actions/setup-node@v4
70
- with:
71
- node-version: ${{ matrix.node-version }}
72
- cache: 'npm'
73
-
74
- - name: Install dependencies
75
- run: npm ci
76
-
77
- - name: Run lint
78
- run: npm run lint
79
-
80
- - name: Run tests
81
- run: npm test
82
-
83
- - name: Build
84
- run: npm run build
85
-
86
- - name: Upload coverage
87
- uses: codecov/codecov-action@v3
88
- if: matrix.node-version == '20.x'
89
- with:
90
- files: ./coverage/coverage-final.json
91
- ```
92
-
93
- ### Screwdriver設定例
94
-
95
- **screwdriver.yaml**
96
-
97
- ```yaml
98
- shared:
99
- image: node:20
100
-
101
- jobs:
102
- main:
103
- requires: [~pr, ~commit]
104
- steps:
105
- - install: npm ci
106
- - lint: npm run lint
107
- - test: npm test
108
- - build: npm run build
109
- - coverage: |
110
- if [ -d "coverage" ]; then
111
- echo "Coverage report generated"
112
- fi
113
- ```
114
-
115
- ### package.jsonスクリプト設定
116
-
117
- ```json
118
- {
119
- "scripts": {
120
- "test": "vitest run --coverage",
121
- "test:watch": "vitest",
122
- "lint": "eslint src/**/*.ts",
123
- "lint:fix": "eslint src/**/*.ts --fix",
124
- "build": "tsc",
125
- "type-check": "tsc --noEmit"
126
- }
127
- }
128
- ```
129
-
130
- ## Java(Gradle)プロジェクトのCI/CD設定
131
-
132
- ### GitHub Actions設定例
133
-
134
- **.github/workflows/test.yml**
47
+ - **[Node.js/TypeScript プロジェクト](./ci-setup-nodejs.md)**
48
+ - GitHub Actions設定
49
+ - Screwdriver設定
50
+ - Phase A/Bテスト実行
135
51
 
136
- ```yaml
137
- name: Test
138
-
139
- on:
140
- push:
141
- branches:
142
- - main
143
- pull_request:
144
-
145
- jobs:
146
- test:
147
- runs-on: ubuntu-latest
148
-
149
- strategy:
150
- matrix:
151
- java-version: [17, 21]
152
-
153
- steps:
154
- - uses: actions/checkout@v4
155
-
156
- - name: Setup JDK
157
- uses: actions/setup-java@v4
158
- with:
159
- distribution: 'temurin'
160
- java-version: ${{ matrix.java-version }}
161
- cache: 'gradle'
162
-
163
- - name: Grant execute permission for gradlew
164
- run: chmod +x gradlew
165
-
166
- - name: Run checkstyle
167
- run: ./gradlew checkstyleMain checkstyleTest
168
-
169
- - name: Run tests
170
- run: ./gradlew test
171
-
172
- - name: Build
173
- run: ./gradlew build
52
+ - **[Java(Gradle)プロジェクト](./ci-setup-java.md)**
53
+ - GitHub Actions設定
54
+ - Screwdriver設定
55
+ - Phase A/Bテスト実行
174
56
 
175
- - name: Upload test results
176
- uses: actions/upload-artifact@v3
177
- if: failure()
178
- with:
179
- name: test-results
180
- path: build/reports/tests/test/
181
- ```
182
-
183
- ### Screwdriver設定例
184
-
185
- **screwdriver.yaml**
186
-
187
- ```yaml
188
- shared:
189
- image: openjdk:17
190
-
191
- jobs:
192
- main:
193
- requires: [~pr, ~commit]
194
- steps:
195
- - setup: chmod +x gradlew
196
- - checkstyle: ./gradlew checkstyleMain checkstyleTest
197
- - test: ./gradlew test
198
- - build: ./gradlew build
199
- - report: |
200
- if [ -d "build/reports" ]; then
201
- echo "Test reports generated"
202
- fi
203
- ```
204
-
205
- ### build.gradle設定
206
-
207
- ```gradle
208
- plugins {
209
- id 'java'
210
- id 'checkstyle'
211
- id 'jacoco'
212
- }
213
-
214
- test {
215
- useJUnitPlatform()
216
- testLogging {
217
- events "passed", "skipped", "failed"
218
- }
219
- }
220
-
221
- jacoco {
222
- toolVersion = "0.8.10"
223
- }
224
-
225
- jacocoTestReport {
226
- reports {
227
- xml.required = true
228
- html.required = true
229
- }
230
- }
231
-
232
- checkstyle {
233
- toolVersion = '10.12.0'
234
- configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
235
- }
236
- ```
237
-
238
- ## PHP プロジェクトのCI/CD設定
239
-
240
- ### GitHub Actions設定例
241
-
242
- **.github/workflows/test.yml**
243
-
244
- ```yaml
245
- name: Test
246
-
247
- on:
248
- push:
249
- branches:
250
- - main
251
- pull_request:
252
-
253
- jobs:
254
- test:
255
- runs-on: ubuntu-latest
256
-
257
- strategy:
258
- matrix:
259
- php-version: ['8.1', '8.2', '8.3']
260
-
261
- steps:
262
- - uses: actions/checkout@v4
263
-
264
- - name: Setup PHP
265
- uses: shivammathur/setup-php@v2
266
- with:
267
- php-version: ${{ matrix.php-version }}
268
- coverage: xdebug
269
- tools: composer:v2
270
-
271
- - name: Cache Composer packages
272
- uses: actions/cache@v3
273
- with:
274
- path: vendor
275
- key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
276
- restore-keys: |
277
- ${{ runner.os }}-php-
278
-
279
- - name: Install dependencies
280
- run: composer install --prefer-dist --no-progress
281
-
282
- - name: Run PHPStan
283
- run: composer phpstan
284
-
285
- - name: Run tests
286
- run: composer test
287
-
288
- - name: Upload coverage
289
- uses: codecov/codecov-action@v3
290
- if: matrix.php-version == '8.3'
291
- with:
292
- files: ./coverage.xml
293
- ```
294
-
295
- ### Screwdriver設定例
296
-
297
- **screwdriver.yaml**
298
-
299
- ```yaml
300
- shared:
301
- image: php:8.3
302
-
303
- jobs:
304
- main:
305
- requires: [~pr, ~commit]
306
- steps:
307
- - install-composer: |
308
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
309
- php composer-setup.php
310
- php -r "unlink('composer-setup.php');"
311
- - install: php composer.phar install --prefer-dist --no-progress
312
- - phpstan: php composer.phar phpstan
313
- - test: php composer.phar test
314
- ```
315
-
316
- ### composer.json設定
317
-
318
- ```json
319
- {
320
- "scripts": {
321
- "test": "phpunit --coverage-clover coverage.xml",
322
- "test:unit": "phpunit --testsuite Unit",
323
- "phpstan": "phpstan analyse src tests --level=8",
324
- "cs-fix": "php-cs-fixer fix"
325
- },
326
- "require-dev": {
327
- "phpunit/phpunit": "^10.0",
328
- "phpstan/phpstan": "^1.10",
329
- "friendsofphp/php-cs-fixer": "^3.0"
330
- }
331
- }
332
- ```
57
+ - **[PHP プロジェクト](./ci-setup-php.md)**
58
+ - GitHub Actions設定
59
+ - Screwdriver設定
60
+ - Phase A/Bテスト実行
333
61
 
334
62
  ## CI/CDのベストプラクティス
335
63
 
@@ -397,93 +125,12 @@ jobs:
397
125
  path: build/reports/
398
126
  ```
399
127
 
400
- ## トラブルシューティング
401
-
402
- ### Node.js関連
403
-
404
- #### 問題: `npm ci` が失敗する
405
-
406
- **原因**: package-lock.jsonが古い
407
-
408
- **解決方法**:
409
- ```bash
410
- # ローカルで再生成
411
- rm -rf node_modules package-lock.json
412
- npm install
413
- git add package-lock.json
414
- git commit -m "fix: update package-lock.json"
415
- ```
416
-
417
- #### 問題: テストがローカルでは成功するがCI/CDで失敗
418
-
419
- **原因**: 環境依存の問題(タイムゾーン、ファイルパス等)
420
-
421
- **解決方法**:
422
- ```javascript
423
- // タイムゾーンを固定
424
- process.env.TZ = 'UTC';
425
-
426
- // ファイルパスは絶対パスではなく相対パス
427
- const configPath = path.join(__dirname, '../config.json');
428
- ```
429
128
 
430
- ### Java(Gradle)関連
431
-
432
- #### 問題: Gradleビルドが遅い
433
-
434
- **原因**: キャッシュが効いていない
435
-
436
- **解決方法**:
437
- ```yaml
438
- # GitHub Actionsでキャッシュを有効化
439
- - uses: actions/setup-java@v4
440
- with:
441
- cache: 'gradle'
442
-
443
- # または手動でキャッシュ
444
- - uses: actions/cache@v3
445
- with:
446
- path: |
447
- ~/.gradle/caches
448
- ~/.gradle/wrapper
449
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
450
- ```
451
-
452
- #### 問題: `./gradlew: Permission denied`
453
-
454
- **原因**: 実行権限がない
455
-
456
- **解決方法**:
457
- ```yaml
458
- - name: Grant execute permission
459
- run: chmod +x gradlew
460
- ```
461
-
462
- ### PHP関連
463
-
464
- #### 問題: Composer installが失敗
465
-
466
- **原因**: メモリ不足
467
-
468
- **解決方法**:
469
- ```yaml
470
- - name: Install dependencies
471
- run: composer install --prefer-dist --no-progress
472
- env:
473
- COMPOSER_MEMORY_LIMIT: -1
474
- ```
475
-
476
- #### 問題: PHPStanがCI/CDで異なる結果を返す
129
+ ## トラブルシューティング
477
130
 
478
- **原因**: PHPバージョンの違い
131
+ CI/CD設定の問題については、以下のドキュメントを参照してください:
479
132
 
480
- **解決方法**:
481
- ```yaml
482
- # 特定のPHPバージョンを指定
483
- - uses: shivammathur/setup-php@v2
484
- with:
485
- php-version: '8.3' # プロジェクトと同じバージョン
486
- ```
133
+ 👉 **[CI/CDトラブルシューティングガイド](./ci-setup-troubleshooting.md)**
487
134
 
488
135
  ## CI/CD設定のチェックリスト
489
136
 
@@ -85,7 +85,9 @@ Example:
85
85
  | UF-002 | Product Purchase | User browses, adds to cart, and completes checkout | High | 8 |
86
86
  | UF-003 | Password Reset | User resets forgotten password | Medium | 4 |
87
87
 
88
- ### 3.3 Browser/Device Matrix
88
+ ### 3.3 Browser/Device Matrix (Optional)
89
+
90
+ **Note**: This matrix is optional. Include it if you need to test across multiple browsers and devices.
89
91
 
90
92
  Test each user flow on the following combinations:
91
93
 
@@ -506,7 +508,9 @@ describe('User Registration Flow', () => {
506
508
  });
507
509
  ```
508
510
 
509
- ## Appendix C: Screenshot and Video Configuration
511
+ ## Appendix C: Screenshot and Video Configuration (Optional)
512
+
513
+ **Note**: This section is optional. Include it if you need to configure screenshot and video capture for your E2E tests.
510
514
 
511
515
  ### Playwright Configuration
512
516
 
@@ -533,7 +537,9 @@ module.exports = {
533
537
  };
534
538
  ```
535
539
 
536
- ## Appendix D: Execution Timing
540
+ ## Appendix D: Execution Timing (Optional)
541
+
542
+ **Note**: This section is optional. Include it if you need to specify when E2E tests should be executed.
537
543
 
538
544
  ## Phase B (Before Release) - Manual Execution
539
545
 
@@ -603,47 +603,12 @@ sonar-scanner \
603
603
 
604
604
  ---
605
605
 
606
- ## Appendix B: Common Attack Payloads
607
-
608
- ### SQL Injection Payloads
609
-
610
- ```sql
611
- ' OR '1'='1' --
612
- ' OR '1'='1' /*
613
- admin' --
614
- admin' #
615
- ' UNION SELECT NULL, username, password FROM users --
616
- 1'; DROP TABLE users; --
617
- ```
618
-
619
- ### XSS Payloads
620
-
621
- ```html
622
- <script>alert('XSS')</script>
623
- <img src=x onerror=alert('XSS')>
624
- <svg onload=alert('XSS')>
625
- <iframe src="javascript:alert('XSS')">
626
- <body onload=alert('XSS')>
627
- ```
628
606
 
629
- ### Path Traversal Payloads
630
-
631
- ```text
632
- ../../etc/passwd
633
- ....//....//etc/passwd
634
- ..%2F..%2Fetc%2Fpasswd
635
- ..%252F..%252Fetc%252Fpasswd
636
- ```
607
+ ## Appendix B: Common Attack Payloads
637
608
 
638
- ### LDAP Injection Payloads
609
+ 攻撃ペイロードの詳細なリストは、以下のリファレンスドキュメントを参照してください:
639
610
 
640
- ```text
641
- *)(uid=*))(|(uid=*
642
- admin)(&(password=*))
643
- *)(objectClass=*)
644
- ```
645
-
646
- ---
611
+ 👉 **[一般的な攻撃ペイロード](../../reference/security-test-payloads.md)**
647
612
 
648
613
  ## Appendix C: Execution Timing
649
614
 
@@ -657,8 +622,4 @@ Security tests are executed manually before creating a release tag:
657
622
  4. All critical and high-severity vulnerabilities must be fixed before release
658
623
  5. Medium/low vulnerabilities should be documented and scheduled for future fix
659
624
 
660
- Security tests are **NOT** executed automatically in CI/CD during PR phase (Phase A), except for:
661
- - Static code analysis (SonarQube)
662
- - Dependency vulnerability scanning (Snyk)
663
-
664
- These automated scans can run in Phase A, but comprehensive security testing is done in Phase B.
625
+ **Note**: All security tests, including static code analysis and dependency vulnerability scanning, are executed manually in Phase B. CI/CD during PR phase (Phase A) only runs unit tests, linting, and build checks.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sk8metal/michi-cli",
3
- "version": "0.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "Managed Intelligent Comprehensive Hub for Integration - AI-driven development workflow automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -81,7 +81,6 @@
81
81
  "commander": "^14.0.2",
82
82
  "dotenv": "^17.2.3",
83
83
  "exceljs": "^4.4.0",
84
- "googleapis": "^166.0.0",
85
84
  "inquirer": "^13.0.1",
86
85
  "jira-client": "^8.2.2",
87
86
  "markdown-it": "^14.0.0",
@@ -91,7 +90,7 @@
91
90
  "devDependencies": {
92
91
  "@eslint/js": "^9.39.1",
93
92
  "@types/markdown-it": "^14.1.2",
94
- "@types/node": "^24.10.1",
93
+ "@types/node": "^25.0.2",
95
94
  "@types/turndown": "^5.0.4",
96
95
  "@typescript-eslint/eslint-plugin": "^8.46.4",
97
96
  "@typescript-eslint/parser": "^8.46.4",
@@ -6,7 +6,7 @@
6
6
  import { readFileSync } from 'fs';
7
7
  import { resolve } from 'path';
8
8
  import axios from 'axios';
9
- import { config } from 'dotenv';
9
+ import { loadEnv } from './utils/env-loader.js';
10
10
  import { loadProjectMeta } from './utils/project-meta.js';
11
11
  import { validateFeatureNameOrThrow } from './utils/feature-name-validator.js';
12
12
  import { getConfig, getConfigPath } from './utils/config-loader.js';
@@ -15,7 +15,7 @@ import { validateForConfluenceSync } from './utils/config-validator.js';
15
15
  import { updateSpecJsonAfterConfluenceSync, loadSpecJson } from './utils/spec-updater.js';
16
16
 
17
17
  // 環境変数読み込み
18
- config();
18
+ loadEnv();
19
19
 
20
20
  /**
21
21
  * セキュリティ: CQLクエリ文字列のエスケープ
@@ -20,7 +20,7 @@
20
20
  import { readFileSync } from 'fs';
21
21
  import { resolve } from 'path';
22
22
  import axios from 'axios';
23
- import { config } from 'dotenv';
23
+ import { loadEnv } from './utils/env-loader.js';
24
24
  import { loadProjectMeta } from './utils/project-meta.js';
25
25
  import { validateFeatureNameOrThrow } from './utils/feature-name-validator.js';
26
26
  import { getConfig, getConfigPath } from './utils/config-loader.js';
@@ -30,7 +30,7 @@ import {
30
30
  type SpecJson,
31
31
  } from './utils/spec-updater.js';
32
32
 
33
- config();
33
+ loadEnv();
34
34
 
35
35
  /**
36
36
  * JIRA Issue基本型
@@ -3,14 +3,14 @@
3
3
  */
4
4
 
5
5
  import { Octokit } from '@octokit/rest';
6
- import { config } from 'dotenv';
6
+ import { loadEnv } from './utils/env-loader.js';
7
7
  import ExcelJS from 'exceljs';
8
8
  import { resolve, join, dirname } from 'path';
9
9
  import { writeFileSync, mkdirSync, unlinkSync, readFileSync } from 'fs';
10
10
  import { tmpdir } from 'os';
11
11
  import { mkdir } from 'fs/promises';
12
12
 
13
- config();
13
+ loadEnv();
14
14
 
15
15
  // EstimateData型定義(estimate-generator.tsから統合)
16
16
  export interface EstimateData {
@@ -3,9 +3,9 @@
3
3
  */
4
4
 
5
5
  import { Octokit } from '@octokit/rest';
6
- import { config } from 'dotenv';
6
+ import { loadEnv } from './utils/env-loader.js';
7
7
 
8
- config();
8
+ loadEnv();
9
9
 
10
10
  interface PROptions {
11
11
  branch: string;
@@ -6,9 +6,9 @@
6
6
  import { existsSync, readFileSync } from 'fs';
7
7
  import { join } from 'path';
8
8
  import axios from 'axios';
9
- import { config } from 'dotenv';
9
+ import { loadEnv } from './utils/env-loader.js';
10
10
 
11
- config();
11
+ loadEnv();
12
12
 
13
13
  interface PreFlightResult {
14
14
  valid: boolean;
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  import { Octokit } from '@octokit/rest';
7
- import { config } from 'dotenv';
7
+ import { loadEnv } from './utils/env-loader.js';
8
8
  import { ConfluenceClient, getConfluenceConfig } from './confluence-sync.js';
9
9
  import { getConfig } from './utils/config-loader.js';
10
10
 
11
- config();
11
+ loadEnv();
12
12
 
13
13
  interface ProjectResource {
14
14
  projectName: string;
@@ -7,7 +7,7 @@
7
7
  * - 終了時: PR作成、Epic + 最初の Story を「レビュー待ち」に移動、PRリンクをコメント
8
8
  */
9
9
 
10
- import { config } from 'dotenv';
10
+ import { loadEnv } from './utils/env-loader.js';
11
11
  import { JIRAClient } from './jira-sync.js';
12
12
  import { getConfig } from './utils/config-loader.js';
13
13
  import {
@@ -16,7 +16,7 @@ import {
16
16
  JiraInfo,
17
17
  } from './utils/spec-loader.js';
18
18
 
19
- config();
19
+ loadEnv();
20
20
 
21
21
  /**
22
22
  * spec-impl 統合ワークフローのオプション