@sk8metal/michi-cli 0.0.4 → 0.0.5
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 +18 -0
- package/README.md +24 -25
- package/dist/scripts/config-interactive.d.ts +1 -1
- package/dist/scripts/config-interactive.d.ts.map +1 -1
- package/dist/scripts/config-interactive.js +4 -4
- package/dist/scripts/config-interactive.js.map +1 -1
- package/dist/scripts/confluence-sync.js +2 -2
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/create-project.d.ts +2 -2
- package/dist/scripts/create-project.js +2 -2
- package/dist/scripts/jira-sync.js +3 -3
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/utils/__tests__/config-loader.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/config-loader.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/config-loader.test.js +201 -0
- package/dist/scripts/utils/__tests__/config-loader.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/config-validator.test.js +29 -16
- package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
- package/dist/scripts/utils/config-loader.d.ts +4 -0
- package/dist/scripts/utils/config-loader.d.ts.map +1 -1
- package/dist/scripts/utils/config-loader.js +24 -2
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/config-validator.js +8 -9
- package/dist/scripts/utils/config-validator.js.map +1 -1
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/docs/config-reference.md +76 -197
- package/docs/customization-guide.md +61 -9
- package/docs/multi-project.md +157 -25
- package/docs/new-project-setup.md +36 -36
- package/docs/quick-reference.md +23 -20
- package/docs/setup.md +5 -3
- package/env.example +3 -1
- package/package.json +1 -1
- package/scripts/config-interactive.ts +4 -3
- package/scripts/confluence-sync.ts +2 -2
- package/scripts/create-project.ts +4 -4
- package/scripts/jira-sync.ts +3 -3
- package/scripts/setup-existing.sh +1 -1
- package/scripts/utils/__tests__/config-loader.test.ts +254 -0
- package/scripts/utils/__tests__/config-validator.test.ts +32 -16
- package/scripts/utils/config-loader.ts +30 -2
- package/scripts/utils/config-validator.ts +8 -8
- package/docs/testing.md +0 -202
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config-loader.ts のユニットテスト
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
5
|
+
import { existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync } from 'fs';
|
|
6
|
+
import { resolve, join } from 'path';
|
|
7
|
+
import { tmpdir } from 'os';
|
|
8
|
+
import { loadConfig, getConfig, getConfigPath, clearConfigCache } from '../config-loader.js';
|
|
9
|
+
describe('config-loader', () => {
|
|
10
|
+
let testProjectRoot;
|
|
11
|
+
let originalEnv;
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
// テスト用の一時ディレクトリを作成(ランダム要素を追加して衝突を防ぐ)
|
|
14
|
+
testProjectRoot = resolve(tmpdir(), `michi-test-${Date.now()}-${Math.random().toString(36).substring(7)}`);
|
|
15
|
+
// 既存のディレクトリがあれば削除
|
|
16
|
+
if (existsSync(testProjectRoot)) {
|
|
17
|
+
rmSync(testProjectRoot, { recursive: true, force: true });
|
|
18
|
+
}
|
|
19
|
+
mkdirSync(testProjectRoot, { recursive: true });
|
|
20
|
+
mkdirSync(join(testProjectRoot, '.michi'), { recursive: true });
|
|
21
|
+
// 環境変数をバックアップ
|
|
22
|
+
originalEnv = { ...process.env };
|
|
23
|
+
// キャッシュをクリア(クリーンな状態から開始)
|
|
24
|
+
clearConfigCache();
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
// 環境変数を復元
|
|
28
|
+
process.env = originalEnv;
|
|
29
|
+
// テスト用ディレクトリを削除
|
|
30
|
+
if (existsSync(testProjectRoot)) {
|
|
31
|
+
// ファイルを削除
|
|
32
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
33
|
+
if (existsSync(configPath)) {
|
|
34
|
+
unlinkSync(configPath);
|
|
35
|
+
}
|
|
36
|
+
// ディレクトリを削除
|
|
37
|
+
try {
|
|
38
|
+
rmSync(testProjectRoot, { recursive: true, force: true });
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
// 削除失敗は無視
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// キャッシュをクリア(ディレクトリ削除後に実行)
|
|
45
|
+
clearConfigCache();
|
|
46
|
+
});
|
|
47
|
+
describe('getConfigPath', () => {
|
|
48
|
+
it('.michi/config.jsonのパスを返す', () => {
|
|
49
|
+
clearConfigCache();
|
|
50
|
+
const configPath = getConfigPath(testProjectRoot);
|
|
51
|
+
expect(configPath).toBe(join(testProjectRoot, '.michi/config.json'));
|
|
52
|
+
});
|
|
53
|
+
it('設定ファイルが存在しない場合でも.michi/config.jsonのパスを返す', () => {
|
|
54
|
+
clearConfigCache();
|
|
55
|
+
const configPath = getConfigPath(testProjectRoot);
|
|
56
|
+
expect(configPath).toBe(join(testProjectRoot, '.michi/config.json'));
|
|
57
|
+
expect(existsSync(configPath)).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('loadConfig', () => {
|
|
61
|
+
it('設定ファイルが存在しない場合はデフォルト設定を返す', () => {
|
|
62
|
+
clearConfigCache();
|
|
63
|
+
const config = loadConfig(testProjectRoot);
|
|
64
|
+
expect(config).toBeDefined();
|
|
65
|
+
expect(config.confluence).toBeDefined();
|
|
66
|
+
expect(config.confluence?.pageCreationGranularity).toBe('single');
|
|
67
|
+
});
|
|
68
|
+
it('設定ファイルが存在する場合はマージされた設定を返す', () => {
|
|
69
|
+
clearConfigCache();
|
|
70
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
71
|
+
writeFileSync(configPath, JSON.stringify({
|
|
72
|
+
confluence: {
|
|
73
|
+
pageCreationGranularity: 'by-hierarchy',
|
|
74
|
+
spaces: {
|
|
75
|
+
requirements: 'TestSpace'
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
const config = loadConfig(testProjectRoot);
|
|
80
|
+
expect(config.confluence?.pageCreationGranularity).toBe('by-hierarchy');
|
|
81
|
+
expect(config.confluence?.spaces?.requirements).toBe('TestSpace');
|
|
82
|
+
});
|
|
83
|
+
it('無効なJSONの場合はエラーをスロー', () => {
|
|
84
|
+
clearConfigCache(); // キャッシュをクリア
|
|
85
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
86
|
+
writeFileSync(configPath, '{ invalid json }');
|
|
87
|
+
expect(() => {
|
|
88
|
+
loadConfig(testProjectRoot);
|
|
89
|
+
}).toThrow(/Invalid JSON/);
|
|
90
|
+
// テスト後にファイルを削除して次のテストへの影響を防ぐ
|
|
91
|
+
if (existsSync(configPath)) {
|
|
92
|
+
unlinkSync(configPath);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe('getConfig (キャッシュ付き)', () => {
|
|
97
|
+
// キャッシュテストでは、beforeEachでキャッシュをクリアしない
|
|
98
|
+
// 代わりに、各テストの最後にキャッシュをクリアする
|
|
99
|
+
it('設定ファイルが存在しない場合はデフォルト設定を返す', () => {
|
|
100
|
+
clearConfigCache(); // テスト開始時にクリア
|
|
101
|
+
const config = getConfig(testProjectRoot);
|
|
102
|
+
expect(config).toBeDefined();
|
|
103
|
+
expect(config.confluence).toBeDefined();
|
|
104
|
+
});
|
|
105
|
+
it('同じ設定ファイルを2回読み込む場合はキャッシュが使用される', () => {
|
|
106
|
+
clearConfigCache(); // テスト開始時にクリア
|
|
107
|
+
// .kiro/が存在しないことを確認(legacy警告を防ぐ)
|
|
108
|
+
const legacyDir = join(testProjectRoot, '.kiro');
|
|
109
|
+
if (existsSync(legacyDir)) {
|
|
110
|
+
rmSync(legacyDir, { recursive: true, force: true });
|
|
111
|
+
}
|
|
112
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
113
|
+
writeFileSync(configPath, JSON.stringify({
|
|
114
|
+
confluence: {
|
|
115
|
+
pageCreationGranularity: 'by-hierarchy'
|
|
116
|
+
}
|
|
117
|
+
}));
|
|
118
|
+
const config1 = getConfig(testProjectRoot);
|
|
119
|
+
const config2 = getConfig(testProjectRoot);
|
|
120
|
+
// 同じオブジェクト参照であることを確認(キャッシュが使用されている)
|
|
121
|
+
expect(config1).toBe(config2);
|
|
122
|
+
});
|
|
123
|
+
it('設定ファイルを変更するとキャッシュが無効化される', async () => {
|
|
124
|
+
clearConfigCache(); // テスト開始時にクリア
|
|
125
|
+
// .michiディレクトリが存在することを確認(前のテストで削除されている可能性)
|
|
126
|
+
const michiDir = join(testProjectRoot, '.michi');
|
|
127
|
+
if (!existsSync(michiDir)) {
|
|
128
|
+
mkdirSync(michiDir, { recursive: true });
|
|
129
|
+
}
|
|
130
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
131
|
+
writeFileSync(configPath, JSON.stringify({
|
|
132
|
+
confluence: {
|
|
133
|
+
pageCreationGranularity: 'single'
|
|
134
|
+
}
|
|
135
|
+
}));
|
|
136
|
+
const config1 = getConfig(testProjectRoot);
|
|
137
|
+
expect(config1.confluence?.pageCreationGranularity).toBe('single');
|
|
138
|
+
// ファイルシステムのmtime精度を考慮して少し待つ
|
|
139
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
140
|
+
// 設定ファイルを更新(ディレクトリが削除されている可能性があるため再確認)
|
|
141
|
+
if (!existsSync(michiDir)) {
|
|
142
|
+
mkdirSync(michiDir, { recursive: true });
|
|
143
|
+
}
|
|
144
|
+
writeFileSync(configPath, JSON.stringify({
|
|
145
|
+
confluence: {
|
|
146
|
+
pageCreationGranularity: 'by-hierarchy'
|
|
147
|
+
}
|
|
148
|
+
}));
|
|
149
|
+
const config2 = getConfig(testProjectRoot);
|
|
150
|
+
expect(config2.confluence?.pageCreationGranularity).toBe('by-hierarchy');
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
describe('警告メッセージ', () => {
|
|
154
|
+
it('legacyパス(.kiro/config.json)が存在する場合は警告を表示', () => {
|
|
155
|
+
// .michi/config.jsonが存在しないことを確認(警告が表示される条件)
|
|
156
|
+
const michiConfigPath = join(testProjectRoot, '.michi/config.json');
|
|
157
|
+
const michiDir = join(testProjectRoot, '.michi');
|
|
158
|
+
// .michi/config.jsonとディレクトリを削除
|
|
159
|
+
if (existsSync(michiConfigPath)) {
|
|
160
|
+
unlinkSync(michiConfigPath);
|
|
161
|
+
}
|
|
162
|
+
if (existsSync(michiDir)) {
|
|
163
|
+
rmSync(michiDir, { recursive: true, force: true });
|
|
164
|
+
}
|
|
165
|
+
// legacyパスにファイルを作成
|
|
166
|
+
mkdirSync(join(testProjectRoot, '.kiro'), { recursive: true });
|
|
167
|
+
const legacyConfigPath = join(testProjectRoot, '.kiro/config.json');
|
|
168
|
+
writeFileSync(legacyConfigPath, JSON.stringify({
|
|
169
|
+
confluence: {
|
|
170
|
+
pageCreationGranularity: 'single'
|
|
171
|
+
}
|
|
172
|
+
}));
|
|
173
|
+
// 警告が表示されることを確認(console.warnをモック)
|
|
174
|
+
const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
175
|
+
// loadConfigを呼ぶことでresolveConfigPathが実行され、警告が表示される
|
|
176
|
+
loadConfig(testProjectRoot);
|
|
177
|
+
expect(consoleWarnSpy).toHaveBeenCalled();
|
|
178
|
+
expect(consoleWarnSpy.mock.calls[0][0]).toContain('Deprecated');
|
|
179
|
+
expect(consoleWarnSpy.mock.calls[0][0]).toContain('.kiro/config.json');
|
|
180
|
+
consoleWarnSpy.mockRestore();
|
|
181
|
+
// 次のテストのために.michiディレクトリを再作成
|
|
182
|
+
mkdirSync(michiDir, { recursive: true });
|
|
183
|
+
});
|
|
184
|
+
it('legacyパスと新規パスの両方が存在する場合は警告を表示しない', () => {
|
|
185
|
+
// 両方のパスにファイルを作成
|
|
186
|
+
mkdirSync(join(testProjectRoot, '.kiro'), { recursive: true });
|
|
187
|
+
const legacyConfigPath = join(testProjectRoot, '.kiro/config.json');
|
|
188
|
+
const michiConfigPath = join(testProjectRoot, '.michi/config.json');
|
|
189
|
+
writeFileSync(legacyConfigPath, JSON.stringify({}));
|
|
190
|
+
writeFileSync(michiConfigPath, JSON.stringify({}));
|
|
191
|
+
// 警告が表示されないことを確認
|
|
192
|
+
const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
193
|
+
// loadConfigを呼ぶことでresolveConfigPathが実行される
|
|
194
|
+
loadConfig(testProjectRoot);
|
|
195
|
+
// 警告は表示されない(新規パスが存在するため)
|
|
196
|
+
expect(consoleWarnSpy).not.toHaveBeenCalled();
|
|
197
|
+
consoleWarnSpy.mockRestore();
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
//# sourceMappingURL=config-loader.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.test.js","sourceRoot":"","sources":["../../../../scripts/utils/__tests__/config-loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync } from 'fs';
|
|
|
6
6
|
import { resolve, join } from 'path';
|
|
7
7
|
import { tmpdir } from 'os';
|
|
8
8
|
import { validateProjectConfig, validateForConfluenceSync, validateForJiraSync } from '../config-validator.js';
|
|
9
|
+
import { clearConfigCache } from '../config-loader.js';
|
|
9
10
|
describe('config-validator', () => {
|
|
10
11
|
let testProjectRoot;
|
|
11
12
|
let originalEnv;
|
|
@@ -13,9 +14,11 @@ describe('config-validator', () => {
|
|
|
13
14
|
// テスト用の一時ディレクトリを作成
|
|
14
15
|
testProjectRoot = resolve(tmpdir(), `michi-test-${Date.now()}`);
|
|
15
16
|
mkdirSync(testProjectRoot, { recursive: true });
|
|
16
|
-
mkdirSync(join(testProjectRoot, '.
|
|
17
|
+
mkdirSync(join(testProjectRoot, '.michi'), { recursive: true });
|
|
17
18
|
// 環境変数をバックアップ
|
|
18
19
|
originalEnv = { ...process.env };
|
|
20
|
+
// キャッシュをクリア
|
|
21
|
+
clearConfigCache();
|
|
19
22
|
});
|
|
20
23
|
afterEach(() => {
|
|
21
24
|
// 環境変数を復元
|
|
@@ -23,7 +26,7 @@ describe('config-validator', () => {
|
|
|
23
26
|
// テスト用ディレクトリを削除
|
|
24
27
|
if (existsSync(testProjectRoot)) {
|
|
25
28
|
// ファイルを削除
|
|
26
|
-
const configPath = join(testProjectRoot, '.
|
|
29
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
27
30
|
if (existsSync(configPath)) {
|
|
28
31
|
unlinkSync(configPath);
|
|
29
32
|
}
|
|
@@ -38,6 +41,11 @@ describe('config-validator', () => {
|
|
|
38
41
|
});
|
|
39
42
|
describe('validateProjectConfig', () => {
|
|
40
43
|
it('設定ファイルが存在しない場合は情報メッセージを返す', () => {
|
|
44
|
+
// .michi/config.jsonが存在しないことを確認
|
|
45
|
+
const michiConfigPath = join(testProjectRoot, '.michi/config.json');
|
|
46
|
+
if (existsSync(michiConfigPath)) {
|
|
47
|
+
unlinkSync(michiConfigPath);
|
|
48
|
+
}
|
|
41
49
|
const result = validateProjectConfig(testProjectRoot);
|
|
42
50
|
expect(result.valid).toBe(true);
|
|
43
51
|
expect(result.errors).toHaveLength(0);
|
|
@@ -46,7 +54,12 @@ describe('config-validator', () => {
|
|
|
46
54
|
expect(result.info[0]).toContain('not found');
|
|
47
55
|
});
|
|
48
56
|
it('有効な設定ファイルの場合は成功', () => {
|
|
49
|
-
|
|
57
|
+
// .michiディレクトリが存在することを確認
|
|
58
|
+
const michiDir = join(testProjectRoot, '.michi');
|
|
59
|
+
if (!existsSync(michiDir)) {
|
|
60
|
+
mkdirSync(michiDir, { recursive: true });
|
|
61
|
+
}
|
|
62
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
50
63
|
writeFileSync(configPath, JSON.stringify({
|
|
51
64
|
confluence: {
|
|
52
65
|
pageCreationGranularity: 'single',
|
|
@@ -60,7 +73,7 @@ describe('config-validator', () => {
|
|
|
60
73
|
expect(result.errors).toHaveLength(0);
|
|
61
74
|
});
|
|
62
75
|
it('無効なJSONの場合はエラーを返す', () => {
|
|
63
|
-
const configPath = join(testProjectRoot, '.
|
|
76
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
64
77
|
writeFileSync(configPath, '{ invalid json }');
|
|
65
78
|
const result = validateProjectConfig(testProjectRoot);
|
|
66
79
|
expect(result.valid).toBe(false);
|
|
@@ -68,7 +81,7 @@ describe('config-validator', () => {
|
|
|
68
81
|
expect(result.errors[0]).toContain('Invalid JSON');
|
|
69
82
|
});
|
|
70
83
|
it('by-hierarchyモードでhierarchy設定がない場合はエラー', () => {
|
|
71
|
-
const configPath = join(testProjectRoot, '.
|
|
84
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
72
85
|
writeFileSync(configPath, JSON.stringify({
|
|
73
86
|
confluence: {
|
|
74
87
|
pageCreationGranularity: 'by-hierarchy'
|
|
@@ -80,7 +93,7 @@ describe('config-validator', () => {
|
|
|
80
93
|
expect(result.errors[0]).toContain('hierarchy');
|
|
81
94
|
});
|
|
82
95
|
it('selected-phasesモードでselectedPhases設定がない場合はエラー', () => {
|
|
83
|
-
const configPath = join(testProjectRoot, '.
|
|
96
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
84
97
|
writeFileSync(configPath, JSON.stringify({
|
|
85
98
|
jira: {
|
|
86
99
|
storyCreationGranularity: 'selected-phases'
|
|
@@ -96,7 +109,7 @@ describe('config-validator', () => {
|
|
|
96
109
|
it('spaces設定がない場合は警告を返す', () => {
|
|
97
110
|
// 環境変数をクリア
|
|
98
111
|
delete process.env.CONFLUENCE_PRD_SPACE;
|
|
99
|
-
const configPath = join(testProjectRoot, '.
|
|
112
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
100
113
|
writeFileSync(configPath, JSON.stringify({
|
|
101
114
|
confluence: {
|
|
102
115
|
pageCreationGranularity: 'single'
|
|
@@ -111,7 +124,7 @@ describe('config-validator', () => {
|
|
|
111
124
|
}
|
|
112
125
|
});
|
|
113
126
|
it('spaces設定がある場合は成功', () => {
|
|
114
|
-
const configPath = join(testProjectRoot, '.
|
|
127
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
115
128
|
writeFileSync(configPath, JSON.stringify({
|
|
116
129
|
confluence: {
|
|
117
130
|
spaces: {
|
|
@@ -126,7 +139,7 @@ describe('config-validator', () => {
|
|
|
126
139
|
it('by-hierarchyモードでhierarchy設定がない場合はエラー', () => {
|
|
127
140
|
// デフォルト設定を上書きするため、hierarchyキーを削除
|
|
128
141
|
// デフォルト設定にhierarchyがあるため、実際にはエラーにならない可能性がある
|
|
129
|
-
const configPath = join(testProjectRoot, '.
|
|
142
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
130
143
|
writeFileSync(configPath, JSON.stringify({
|
|
131
144
|
confluence: {
|
|
132
145
|
pageCreationGranularity: 'by-hierarchy',
|
|
@@ -142,7 +155,7 @@ describe('config-validator', () => {
|
|
|
142
155
|
expect(result.valid).toBe(true);
|
|
143
156
|
});
|
|
144
157
|
it('manualモードでstructure設定がない場合はエラー', () => {
|
|
145
|
-
const configPath = join(testProjectRoot, '.
|
|
158
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
146
159
|
writeFileSync(configPath, JSON.stringify({
|
|
147
160
|
confluence: {
|
|
148
161
|
pageCreationGranularity: 'manual',
|
|
@@ -158,7 +171,7 @@ describe('config-validator', () => {
|
|
|
158
171
|
});
|
|
159
172
|
it('環境変数CONFLUENCE_PRD_SPACEがある場合は情報メッセージ', () => {
|
|
160
173
|
process.env.CONFLUENCE_PRD_SPACE = 'Michi';
|
|
161
|
-
const configPath = join(testProjectRoot, '.
|
|
174
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
162
175
|
writeFileSync(configPath, JSON.stringify({
|
|
163
176
|
confluence: {
|
|
164
177
|
pageCreationGranularity: 'single'
|
|
@@ -175,7 +188,7 @@ describe('config-validator', () => {
|
|
|
175
188
|
});
|
|
176
189
|
describe('validateForJiraSync', () => {
|
|
177
190
|
it('issueTypes.story設定がない場合はエラー', () => {
|
|
178
|
-
const configPath = join(testProjectRoot, '.
|
|
191
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
179
192
|
writeFileSync(configPath, JSON.stringify({
|
|
180
193
|
jira: {}
|
|
181
194
|
}));
|
|
@@ -185,7 +198,7 @@ describe('config-validator', () => {
|
|
|
185
198
|
expect(result.errors[0]).toContain('issueTypes.story');
|
|
186
199
|
});
|
|
187
200
|
it('issueTypes.story設定がある場合は成功', () => {
|
|
188
|
-
const configPath = join(testProjectRoot, '.
|
|
201
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
189
202
|
writeFileSync(configPath, JSON.stringify({
|
|
190
203
|
jira: {
|
|
191
204
|
issueTypes: {
|
|
@@ -199,7 +212,7 @@ describe('config-validator', () => {
|
|
|
199
212
|
});
|
|
200
213
|
it('環境変数JIRA_ISSUE_TYPE_STORYがある場合は情報メッセージ', () => {
|
|
201
214
|
process.env.JIRA_ISSUE_TYPE_STORY = '10036';
|
|
202
|
-
const configPath = join(testProjectRoot, '.
|
|
215
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
203
216
|
writeFileSync(configPath, JSON.stringify({
|
|
204
217
|
jira: {
|
|
205
218
|
createEpic: true
|
|
@@ -214,7 +227,7 @@ describe('config-validator', () => {
|
|
|
214
227
|
}
|
|
215
228
|
});
|
|
216
229
|
it('issueTypes.subtask設定がない場合は警告', () => {
|
|
217
|
-
const configPath = join(testProjectRoot, '.
|
|
230
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
218
231
|
writeFileSync(configPath, JSON.stringify({
|
|
219
232
|
jira: {
|
|
220
233
|
issueTypes: {
|
|
@@ -228,7 +241,7 @@ describe('config-validator', () => {
|
|
|
228
241
|
expect(result.warnings[0]).toContain('subtask');
|
|
229
242
|
});
|
|
230
243
|
it('selected-phasesモードでselectedPhases設定がない場合はエラー', () => {
|
|
231
|
-
const configPath = join(testProjectRoot, '.
|
|
244
|
+
const configPath = join(testProjectRoot, '.michi/config.json');
|
|
232
245
|
writeFileSync(configPath, JSON.stringify({
|
|
233
246
|
jira: {
|
|
234
247
|
storyCreationGranularity: 'selected-phases',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator.test.js","sourceRoot":"","sources":["../../../../scripts/utils/__tests__/config-validator.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-validator.test.js","sourceRoot":"","sources":["../../../../scripts/utils/__tests__/config-validator.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,eAAuB,CAAC;IAC5B,IAAI,WAA8B,CAAC;IAEnC,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB;QACnB,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,cAAc;QACd,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,YAAY;QACZ,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU;QACV,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAE1B,gBAAgB;QAChB,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,UAAU;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YACD,YAAY;YACZ,IAAI,CAAC;gBACH,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,UAAU;YACZ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,gCAAgC;YAChC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YACpE,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACzB,yBAAyB;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,QAAQ;oBACjC,MAAM,EAAE;wBACN,YAAY,EAAE,OAAO;qBACtB;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAE9C,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,cAAc;iBACxC;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE;oBACJ,wBAAwB,EAAE,iBAAiB;iBAC5C;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,WAAW;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAExC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,QAAQ;iBAClC;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAE1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,+BAA+B;YAC/B,mBAAmB;YACnB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,YAAY,EAAE,OAAO;qBACtB;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAE1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,iCAAiC;YACjC,4CAA4C;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,cAAc;oBACvC,MAAM,EAAE;wBACN,YAAY,EAAE,OAAO;qBACtB;oBACD,oDAAoD;iBACrD;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAE1E,kCAAkC;YAClC,8BAA8B;YAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,QAAQ;oBACjC,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAE1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE;oBACV,uBAAuB,EAAE,QAAQ;iBAClC;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAE1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,kCAAkC;YAClC,mBAAmB;YACnB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE,EAAE;aACT,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE;oBACJ,UAAU,EAAE;wBACV,KAAK,EAAE,OAAO;qBACf;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,OAAO,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI;iBACjB;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,kCAAkC;YAClC,mBAAmB;YACnB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE;oBACJ,UAAU,EAAE;wBACV,KAAK,EAAE,OAAO;qBACf;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;YAC/D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE;oBACJ,wBAAwB,EAAE,iBAAiB;oBAC3C,UAAU,EAAE;wBACV,KAAK,EAAE,OAAO;qBACf;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -17,4 +17,8 @@ export declare function getConfig(projectRoot?: string): AppConfig;
|
|
|
17
17
|
* 設定キャッシュをクリア(テスト用)
|
|
18
18
|
*/
|
|
19
19
|
export declare function clearConfigCache(): void;
|
|
20
|
+
/**
|
|
21
|
+
* 設定ファイルのパスを解決(外部から使用可能)
|
|
22
|
+
*/
|
|
23
|
+
export declare function getConfigPath(projectRoot?: string): string;
|
|
20
24
|
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../scripts/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../scripts/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA8L7E;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAmDzE;AAWD,wBAAgB,SAAS,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAkExE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE"}
|
|
@@ -121,11 +121,27 @@ function validateConfigPath(configPath, projectRoot) {
|
|
|
121
121
|
// これにより、プロジェクトルート外のパスを防ぐ
|
|
122
122
|
return !relativePath.startsWith('..') && !isAbsolute(relativePath);
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* 設定ファイルのパスを解決
|
|
126
|
+
* 新規パス: .michi/config.json
|
|
127
|
+
* legacyパス(.kiro/config.json)が存在する場合は警告のみ表示
|
|
128
|
+
*/
|
|
129
|
+
function resolveConfigPath(projectRoot) {
|
|
130
|
+
const michiConfigPath = resolve(projectRoot, '.michi/config.json');
|
|
131
|
+
const legacyConfigPath = resolve(projectRoot, '.kiro/config.json');
|
|
132
|
+
// legacyパスが存在する場合は警告(移行推奨)
|
|
133
|
+
if (existsSync(legacyConfigPath) && !existsSync(michiConfigPath)) {
|
|
134
|
+
console.warn('⚠️ Deprecated: .kiro/config.json is deprecated.\n' +
|
|
135
|
+
' Please migrate to .michi/config.json\n' +
|
|
136
|
+
' The legacy path will not be supported in future versions.\n');
|
|
137
|
+
}
|
|
138
|
+
return michiConfigPath;
|
|
139
|
+
}
|
|
124
140
|
/**
|
|
125
141
|
* プロジェクト固有設定を読み込む
|
|
126
142
|
*/
|
|
127
143
|
function loadProjectConfig(projectRoot = process.cwd()) {
|
|
128
|
-
const projectConfigPath =
|
|
144
|
+
const projectConfigPath = resolveConfigPath(projectRoot);
|
|
129
145
|
// パストラバーサル対策: パスを検証
|
|
130
146
|
if (!validateConfigPath(projectConfigPath, projectRoot)) {
|
|
131
147
|
throw new Error(`Invalid config path: ${projectConfigPath} is outside project root`);
|
|
@@ -216,7 +232,7 @@ let cachedProjectRoot = null;
|
|
|
216
232
|
let cachedConfigMtime = null;
|
|
217
233
|
let cachedDefaultConfigMtime = null;
|
|
218
234
|
export function getConfig(projectRoot = process.cwd()) {
|
|
219
|
-
const projectConfigPath =
|
|
235
|
+
const projectConfigPath = resolveConfigPath(projectRoot);
|
|
220
236
|
const currentFileUrl = import.meta.url;
|
|
221
237
|
const currentFilePath = fileURLToPath(currentFileUrl);
|
|
222
238
|
const currentDir = resolve(currentFilePath, '..');
|
|
@@ -288,4 +304,10 @@ export function clearConfigCache() {
|
|
|
288
304
|
cachedConfigMtime = null;
|
|
289
305
|
cachedDefaultConfigMtime = null;
|
|
290
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* 設定ファイルのパスを解決(外部から使用可能)
|
|
309
|
+
*/
|
|
310
|
+
export function getConfigPath(projectRoot = process.cwd()) {
|
|
311
|
+
return resolveConfigPath(projectRoot);
|
|
312
|
+
}
|
|
291
313
|
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../scripts/utils/config-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../scripts/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* 設定ファイルのバリデーション
|
|
3
3
|
*/
|
|
4
4
|
import { existsSync, readFileSync } from 'fs';
|
|
5
|
-
import { resolve } from 'path';
|
|
6
5
|
import { AppConfigSchema } from '../config/config-schema.js';
|
|
7
|
-
import { getConfig } from './config-loader.js';
|
|
6
|
+
import { getConfig, getConfigPath } from './config-loader.js';
|
|
8
7
|
/**
|
|
9
8
|
* プロジェクト設定ファイルをバリデーション
|
|
10
9
|
*/
|
|
@@ -12,7 +11,7 @@ export function validateProjectConfig(projectRoot = process.cwd()) {
|
|
|
12
11
|
const errors = [];
|
|
13
12
|
const warnings = [];
|
|
14
13
|
const info = [];
|
|
15
|
-
const configPath =
|
|
14
|
+
const configPath = getConfigPath(projectRoot);
|
|
16
15
|
if (!existsSync(configPath)) {
|
|
17
16
|
// 設定ファイルが存在しない場合は情報メッセージ(デフォルト設定を使用)
|
|
18
17
|
info.push('Project config file not found. Using default configuration.');
|
|
@@ -144,7 +143,7 @@ export function validateForConfluenceSync(docType, projectRoot = process.cwd())
|
|
|
144
143
|
const warnings = [];
|
|
145
144
|
const info = [];
|
|
146
145
|
const config = getConfig(projectRoot);
|
|
147
|
-
const configPath =
|
|
146
|
+
const configPath = getConfigPath(projectRoot);
|
|
148
147
|
// Confluence設定のチェック
|
|
149
148
|
if (!config.confluence) {
|
|
150
149
|
warnings.push('confluence設定がありません。デフォルト設定を使用します。');
|
|
@@ -156,7 +155,7 @@ export function validateForConfluenceSync(docType, projectRoot = process.cwd())
|
|
|
156
155
|
if (!process.env.CONFLUENCE_PRD_SPACE) {
|
|
157
156
|
warnings.push(`confluence.spaces.${docType}が設定されていません。` +
|
|
158
157
|
'環境変数CONFLUENCE_PRD_SPACEも設定されていないため、デフォルト値(PRD)を使用します。' +
|
|
159
|
-
'\n 推奨: .
|
|
158
|
+
'\n 推奨: .michi/config.jsonに以下を追加してください:\n' +
|
|
160
159
|
' {\n' +
|
|
161
160
|
' "confluence": {\n' +
|
|
162
161
|
' "spaces": {\n' +
|
|
@@ -174,7 +173,7 @@ export function validateForConfluenceSync(docType, projectRoot = process.cwd())
|
|
|
174
173
|
if (!confluence.hierarchy) {
|
|
175
174
|
errors.push('confluence.hierarchyが設定されていません。' +
|
|
176
175
|
`pageCreationGranularityが"${confluence.pageCreationGranularity}"の場合、hierarchy設定が必須です。` +
|
|
177
|
-
'\n 解決方法: .
|
|
176
|
+
'\n 解決方法: .michi/config.jsonに以下を追加してください:\n' +
|
|
178
177
|
' {\n' +
|
|
179
178
|
' "confluence": {\n' +
|
|
180
179
|
' "hierarchy": {\n' +
|
|
@@ -211,7 +210,7 @@ export function validateForJiraSync(projectRoot = process.cwd()) {
|
|
|
211
210
|
const warnings = [];
|
|
212
211
|
const info = [];
|
|
213
212
|
const config = getConfig(projectRoot);
|
|
214
|
-
const configPath =
|
|
213
|
+
const configPath = getConfigPath(projectRoot);
|
|
215
214
|
// JIRA設定のチェック
|
|
216
215
|
if (!config.jira) {
|
|
217
216
|
warnings.push('jira設定がありません。デフォルト設定を使用します。');
|
|
@@ -225,7 +224,7 @@ export function validateForJiraSync(projectRoot = process.cwd()) {
|
|
|
225
224
|
'環境変数JIRA_ISSUE_TYPE_STORYも設定されていないため、JIRA同期を実行できません。' +
|
|
226
225
|
'\n 解決方法1: 環境変数を設定:\n' +
|
|
227
226
|
' export JIRA_ISSUE_TYPE_STORY=10036 # JIRAインスタンス固有のID\n' +
|
|
228
|
-
'\n 解決方法2: .
|
|
227
|
+
'\n 解決方法2: .michi/config.jsonに以下を追加:\n' +
|
|
229
228
|
' {\n' +
|
|
230
229
|
' "jira": {\n' +
|
|
231
230
|
' "issueTypes": {\n' +
|
|
@@ -245,7 +244,7 @@ export function validateForJiraSync(projectRoot = process.cwd()) {
|
|
|
245
244
|
if (!process.env.JIRA_ISSUE_TYPE_STORY) {
|
|
246
245
|
errors.push('jira.issueTypes.storyが設定されていません。' +
|
|
247
246
|
'環境変数JIRA_ISSUE_TYPE_STORYも設定されていないため、JIRA同期を実行できません。' +
|
|
248
|
-
'\n 解決方法: .
|
|
247
|
+
'\n 解決方法: .michi/config.jsonのjira.issueTypes.storyに値を設定するか、' +
|
|
249
248
|
'環境変数JIRA_ISSUE_TYPE_STORYを設定してください。');
|
|
250
249
|
}
|
|
251
250
|
else {
|