@sk8metal/michi-cli 0.8.7 → 0.10.1
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 +70 -1
- package/README.md +1 -1
- package/dist/scripts/config/config-schema.d.ts +3 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +18 -0
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +20 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +124 -1
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/docs/user-guide/guides/multi-repo-guide.md +443 -0
- package/docs/user-guide/guides/workflow.md +4 -14
- package/docs/user-guide/hands-on/workflow-walkthrough.md +173 -4
- package/package.json +1 -1
- package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
- package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
- package/scripts/config/config-schema.ts +20 -0
- package/scripts/utils/multi-repo-validator.ts +160 -1
- package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
- package/templates/claude/commands/michi-multi-repo/impl-all.md +264 -0
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +271 -0
- package/templates/claude/commands/michi-multi-repo/spec-design.md +66 -3
- package/templates/claude/commands/michi-multi-repo/spec-review.md +247 -0
- package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
- package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
- package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,76 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [0.10.0] - 2025-12-23
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Multi-Repo Cross-Repository Reviewer Agent**: リポジトリ間の仕様整合性を自動レビュー
|
|
13
|
+
- **エージェント**: `templates/claude-agent/agents/cross-repo-reviewer.md`
|
|
14
|
+
- **機能**: API契約、データモデル、イベントスキーマの一貫性チェック
|
|
15
|
+
- **用途**: multi-repo環境でのspec-review時にPROACTIVELY使用
|
|
16
|
+
|
|
17
|
+
- **Multi-Repo Spec Executor Agent**: 個別リポジトリで仕様コマンドを実行
|
|
18
|
+
- **エージェント**: `templates/claude-agent/agents/repo-spec-executor.md`
|
|
19
|
+
- **機能**: `/kiro:*`、`/michi:*` コマンドの個別リポジトリでの実行
|
|
20
|
+
- **用途**: multi-repo環境での仕様展開時にPROACTIVELY使用
|
|
21
|
+
|
|
22
|
+
- **Multi-Repo Implementation Command**: 全リポジトリで並行実装を実行
|
|
23
|
+
- **コマンド**: `/michi-multi-repo:impl-all`
|
|
24
|
+
- **機能**: test-developer エージェントを使用したTDD実装の並行実行
|
|
25
|
+
- **用途**: multi-repo環境での一括実装自動化
|
|
26
|
+
|
|
27
|
+
- **Multi-Repo Spec Propagation Command**: プロジェクトから各リポジトリへ仕様展開
|
|
28
|
+
- **コマンド**: `/michi-multi-repo:propagate-specs`
|
|
29
|
+
- **機能**: repo-spec-executor を使用した仕様の並行展開
|
|
30
|
+
- **用途**: multi-repo環境での仕様配布自動化
|
|
31
|
+
|
|
32
|
+
- **Multi-Repo Spec Review Command**: クロスリポジトリ仕様整合性レビュー
|
|
33
|
+
- **コマンド**: `/michi-multi-repo:spec-review`
|
|
34
|
+
- **機能**: cross-repo-reviewer を使用した整合性レビュー
|
|
35
|
+
- **用途**: multi-repo環境でのspec-review自動化
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- **Multi-Repo Guide大幅更新**: 443行の詳細ガイドを追加
|
|
40
|
+
- `.michi/config.json` の Repository スキーマ詳細解説
|
|
41
|
+
- ワークフロー(プロジェクト初期化→仕様展開→実装→レビュー)の追加
|
|
42
|
+
- エージェント・コマンドの使い方を網羅
|
|
43
|
+
|
|
44
|
+
- **Workflow Walkthrough更新**: multi-repo対応の実践的ガイドを追加(177行追加)
|
|
45
|
+
- multi-repo環境でのハンズオン手順を追加
|
|
46
|
+
|
|
47
|
+
- **Multi-Repo Validator強化**: localPath品質検証機能を追加(161行追加)
|
|
48
|
+
- 絶対パス検証(Unix/Windows両対応)
|
|
49
|
+
- 重複パス検出
|
|
50
|
+
- パストラバーサル攻撃防止
|
|
51
|
+
- テストケース230行追加
|
|
52
|
+
|
|
53
|
+
## [0.9.0] - 2025-12-23
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- **Multi-Repo Repository localPath管理**: リポジトリのローカルクローンパスを`.michi/config.json`で管理
|
|
58
|
+
- **フィールド**: `Repository.localPath` (optional, 絶対パスのみ許可)
|
|
59
|
+
- **バリデーション**: Unix (`/path/to/repo`) と Windows (`C:\path\to\repo`) の絶対パス形式をサポート
|
|
60
|
+
- **セキュリティ**: 相対パス(`./`, `../`)と空文字列を禁止
|
|
61
|
+
- **後方互換性**: オプショナルフィールドのため既存データに影響なし
|
|
62
|
+
- **テスト**: 8件の新規テストケース追加(正常3件、異常5件)
|
|
63
|
+
- **用途**: multi-repo環境で各リポジトリへのドキュメント配置や詳細調査に活用
|
|
64
|
+
|
|
65
|
+
- **Mermaid Validatorスキル/エージェント**: architecture.md生成時のMermaid図構文エラーを自動検証・修正
|
|
66
|
+
- **スキル**: `templates/claude/skills/mermaid-validator/SKILL.md`
|
|
67
|
+
- **エージェント**: `templates/claude/agents/mermaid-validator/AGENT.md`
|
|
68
|
+
- **統合**: `/michi-multi-repo:spec-design` コマンドに自動実行を追加(Step 4.5.1)
|
|
69
|
+
- **機能**: C4モデル、シーケンス図、グラフ、ER図の構文検証と自動修正
|
|
70
|
+
- **検出エラー**: タイトル記法、矢印記法、インデント、リレーションシップ記法
|
|
71
|
+
- **効果**: architecture.md生成時のMermaidパースエラーを防止
|
|
72
|
+
|
|
73
|
+
- **Stable Version Auditor統合強化**: 技術スタックバージョン監査を設計フェーズに統合
|
|
74
|
+
- **統合**: `/michi-multi-repo:spec-design` コマンドに自動実行を追加(Step 4.5.2)
|
|
75
|
+
- **機能**: architecture.mdに記載された技術スタック(Node.js、Java、Python、PHP等)のバージョンを自動監査
|
|
76
|
+
- **監査内容**: EOLリスク評価、最新LTS/安定版の推奨、アップグレードパス提示
|
|
77
|
+
- **効果**: 設計時点で技術スタックの最新化を促進、技術的負債を削減
|
|
9
78
|
|
|
10
79
|
### Changed
|
|
11
80
|
|
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ Michiは、開発フロー全体(要件定義→設計→タスク分割→実
|
|
|
25
25
|
- ✅ **マルチプロジェクト対応**: 3-5プロジェクト同時進行
|
|
26
26
|
- ✅ **自動化スクリプト**: Markdown↔Confluence同期、JIRA連携、PR自動化
|
|
27
27
|
- ✅ **フェーズバリデーション**: フェーズ抜け漏れ防止の自動チェック
|
|
28
|
-
- ✅ **スキル・サブエージェント**: デザインレビュー、ライセンスチェック、バージョン監査、E2Eプランニング、PR
|
|
28
|
+
- ✅ **スキル・サブエージェント**: デザインレビュー、ライセンスチェック、バージョン監査、E2Eプランニング、PRレビュー対応、Mermaid図検証
|
|
29
29
|
|
|
30
30
|
### アーキテクチャ
|
|
31
31
|
|
|
@@ -185,6 +185,7 @@ export declare const RepositorySchema: z.ZodObject<{
|
|
|
185
185
|
name: z.ZodString;
|
|
186
186
|
url: z.ZodString;
|
|
187
187
|
branch: z.ZodDefault<z.ZodString>;
|
|
188
|
+
localPath: z.ZodOptional<z.ZodString>;
|
|
188
189
|
}, z.core.$strip>;
|
|
189
190
|
/**
|
|
190
191
|
* Multi-Repo プロジェクトスキーマ
|
|
@@ -198,6 +199,7 @@ export declare const MultiRepoProjectSchema: z.ZodObject<{
|
|
|
198
199
|
name: z.ZodString;
|
|
199
200
|
url: z.ZodString;
|
|
200
201
|
branch: z.ZodDefault<z.ZodString>;
|
|
202
|
+
localPath: z.ZodOptional<z.ZodString>;
|
|
201
203
|
}, z.core.$strip>>>;
|
|
202
204
|
}, z.core.$strip>;
|
|
203
205
|
/**
|
|
@@ -306,6 +308,7 @@ export declare const AppConfigSchema: z.ZodObject<{
|
|
|
306
308
|
name: z.ZodString;
|
|
307
309
|
url: z.ZodString;
|
|
308
310
|
branch: z.ZodDefault<z.ZodString>;
|
|
311
|
+
localPath: z.ZodOptional<z.ZodString>;
|
|
309
312
|
}, z.core.$strip>>>;
|
|
310
313
|
}, z.core.$strip>>>;
|
|
311
314
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;EAA+B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,uCAAuC;;;;;EAKlD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;iBA8B7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;EAI7C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;EAAyC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBAgB3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;iBAW/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAW5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,6 +161,24 @@ export const RepositorySchema = z.object({
|
|
|
161
161
|
message: 'GitHub URL must be in format: https://github.com/{owner}/{repo}',
|
|
162
162
|
}),
|
|
163
163
|
branch: z.string().default('main'),
|
|
164
|
+
localPath: z
|
|
165
|
+
.string()
|
|
166
|
+
.optional()
|
|
167
|
+
.refine((path) => {
|
|
168
|
+
// localPath が指定されていない場合は検証スキップ
|
|
169
|
+
if (path === undefined)
|
|
170
|
+
return true;
|
|
171
|
+
// 空文字列はエラー
|
|
172
|
+
if (path === '')
|
|
173
|
+
return false;
|
|
174
|
+
// 絶対パスであることを検証(セキュリティ考慮)
|
|
175
|
+
// Unix系: '/' で始まる、Windows系: 'C:\' 等で始まる
|
|
176
|
+
const isUnixAbsolutePath = path.startsWith('/');
|
|
177
|
+
const isWindowsAbsolutePath = /^[A-Za-z]:\\/.test(path);
|
|
178
|
+
return isUnixAbsolutePath || isWindowsAbsolutePath;
|
|
179
|
+
}, {
|
|
180
|
+
message: 'localPath must be an absolute path (Unix: /path/to/repo, Windows: C:\\path\\to\\repo)',
|
|
181
|
+
}),
|
|
164
182
|
});
|
|
165
183
|
/**
|
|
166
184
|
* Multi-Repo プロジェクトスキーマ
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* multi-repo-validator.ts
|
|
3
3
|
* Multi-Repo機能のバリデーションユーティリティ
|
|
4
4
|
*
|
|
5
|
-
* プロジェクト名、JIRAキー、リポジトリURLのバリデーションとセキュリティチェックを行います。
|
|
5
|
+
* プロジェクト名、JIRAキー、リポジトリURL、localPathのバリデーションとセキュリティチェックを行います。
|
|
6
6
|
*/
|
|
7
|
+
import type { Repository } from '../config/config-schema.js';
|
|
7
8
|
/**
|
|
8
9
|
* バリデーション結果
|
|
9
10
|
*/
|
|
@@ -12,6 +13,16 @@ export interface ValidationResult {
|
|
|
12
13
|
errors: string[];
|
|
13
14
|
warnings: string[];
|
|
14
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* LocalPathバリデーション結果(詳細情報付き)
|
|
18
|
+
*/
|
|
19
|
+
export interface LocalPathValidationResult extends ValidationResult {
|
|
20
|
+
exists: boolean;
|
|
21
|
+
isGitRepository: boolean;
|
|
22
|
+
currentBranch: string | null;
|
|
23
|
+
branchMatches: boolean;
|
|
24
|
+
hasUncommittedChanges: boolean;
|
|
25
|
+
}
|
|
15
26
|
/**
|
|
16
27
|
* プロジェクト名のバリデーション
|
|
17
28
|
* セキュリティ対策: パストラバーサル、相対パス、制御文字をチェック
|
|
@@ -27,4 +38,12 @@ export declare function validateJiraKey(key: string): ValidationResult;
|
|
|
27
38
|
* GitHub HTTPS URL形式のみ許可
|
|
28
39
|
*/
|
|
29
40
|
export declare function validateRepositoryUrl(url: string): ValidationResult;
|
|
41
|
+
/**
|
|
42
|
+
* LocalPathのバリデーション
|
|
43
|
+
* ディレクトリ存在、Gitリポジトリ、ブランチ、未コミット変更をチェック
|
|
44
|
+
*
|
|
45
|
+
* @param repository - リポジトリ設定
|
|
46
|
+
* @returns バリデーション結果(詳細情報付き)
|
|
47
|
+
*/
|
|
48
|
+
export declare function validateLocalPath(repository: Repository): LocalPathValidationResult;
|
|
30
49
|
//# sourceMappingURL=multi-repo-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-validator.d.ts","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"multi-repo-validator.d.ts","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAmClE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAyDnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,GACrB,yBAAyB,CAoI3B"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* multi-repo-validator.ts
|
|
3
3
|
* Multi-Repo機能のバリデーションユーティリティ
|
|
4
4
|
*
|
|
5
|
-
* プロジェクト名、JIRAキー、リポジトリURLのバリデーションとセキュリティチェックを行います。
|
|
5
|
+
* プロジェクト名、JIRAキー、リポジトリURL、localPathのバリデーションとセキュリティチェックを行います。
|
|
6
6
|
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import { execSync } from 'child_process';
|
|
7
10
|
/**
|
|
8
11
|
* プロジェクト名のバリデーション
|
|
9
12
|
* セキュリティ対策: パストラバーサル、相対パス、制御文字をチェック
|
|
@@ -102,4 +105,124 @@ export function validateRepositoryUrl(url) {
|
|
|
102
105
|
warnings,
|
|
103
106
|
};
|
|
104
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* LocalPathのバリデーション
|
|
110
|
+
* ディレクトリ存在、Gitリポジトリ、ブランチ、未コミット変更をチェック
|
|
111
|
+
*
|
|
112
|
+
* @param repository - リポジトリ設定
|
|
113
|
+
* @returns バリデーション結果(詳細情報付き)
|
|
114
|
+
*/
|
|
115
|
+
export function validateLocalPath(repository) {
|
|
116
|
+
const errors = [];
|
|
117
|
+
const warnings = [];
|
|
118
|
+
// 初期値
|
|
119
|
+
let exists = false;
|
|
120
|
+
let isGitRepository = false;
|
|
121
|
+
let currentBranch = null;
|
|
122
|
+
let branchMatches = false;
|
|
123
|
+
let hasUncommittedChanges = false;
|
|
124
|
+
// 1. localPath設定確認
|
|
125
|
+
if (!repository.localPath) {
|
|
126
|
+
warnings.push(`Repository '${repository.name}' does not have localPath configured`);
|
|
127
|
+
return {
|
|
128
|
+
isValid: false,
|
|
129
|
+
errors,
|
|
130
|
+
warnings,
|
|
131
|
+
exists,
|
|
132
|
+
isGitRepository,
|
|
133
|
+
currentBranch,
|
|
134
|
+
branchMatches,
|
|
135
|
+
hasUncommittedChanges,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const localPath = repository.localPath;
|
|
139
|
+
// 2. ディレクトリ存在確認
|
|
140
|
+
try {
|
|
141
|
+
const stats = fs.statSync(localPath);
|
|
142
|
+
if (!stats.isDirectory()) {
|
|
143
|
+
errors.push(`localPath '${localPath}' exists but is not a directory`);
|
|
144
|
+
return {
|
|
145
|
+
isValid: false,
|
|
146
|
+
errors,
|
|
147
|
+
warnings,
|
|
148
|
+
exists: true,
|
|
149
|
+
isGitRepository,
|
|
150
|
+
currentBranch,
|
|
151
|
+
branchMatches,
|
|
152
|
+
hasUncommittedChanges,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
exists = true;
|
|
156
|
+
}
|
|
157
|
+
catch (_error) {
|
|
158
|
+
errors.push(`localPath '${localPath}' does not exist`);
|
|
159
|
+
return {
|
|
160
|
+
isValid: false,
|
|
161
|
+
errors,
|
|
162
|
+
warnings,
|
|
163
|
+
exists,
|
|
164
|
+
isGitRepository,
|
|
165
|
+
currentBranch,
|
|
166
|
+
branchMatches,
|
|
167
|
+
hasUncommittedChanges,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
// 3. Gitリポジトリ確認
|
|
171
|
+
const gitDir = path.join(localPath, '.git');
|
|
172
|
+
if (!fs.existsSync(gitDir)) {
|
|
173
|
+
errors.push(`localPath '${localPath}' is not a Git repository (no .git directory)`);
|
|
174
|
+
return {
|
|
175
|
+
isValid: false,
|
|
176
|
+
errors,
|
|
177
|
+
warnings,
|
|
178
|
+
exists,
|
|
179
|
+
isGitRepository,
|
|
180
|
+
currentBranch,
|
|
181
|
+
branchMatches,
|
|
182
|
+
hasUncommittedChanges,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
isGitRepository = true;
|
|
186
|
+
// 4. ブランチ確認
|
|
187
|
+
try {
|
|
188
|
+
currentBranch = execSync('git branch --show-current', {
|
|
189
|
+
cwd: localPath,
|
|
190
|
+
encoding: 'utf-8',
|
|
191
|
+
}).trim();
|
|
192
|
+
if (currentBranch !== repository.branch) {
|
|
193
|
+
warnings.push(`Current branch '${currentBranch}' does not match configured branch '${repository.branch}'`);
|
|
194
|
+
branchMatches = false;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
branchMatches = true;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
warnings.push(`Failed to get current branch: ${error instanceof Error ? error.message : String(error)}`);
|
|
202
|
+
}
|
|
203
|
+
// 5. 未コミット変更確認
|
|
204
|
+
try {
|
|
205
|
+
const statusOutput = execSync('git status --porcelain', {
|
|
206
|
+
cwd: localPath,
|
|
207
|
+
encoding: 'utf-8',
|
|
208
|
+
}).trim();
|
|
209
|
+
if (statusOutput.length > 0) {
|
|
210
|
+
warnings.push(`Repository '${repository.name}' has uncommitted changes`);
|
|
211
|
+
hasUncommittedChanges = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
warnings.push(`Failed to check uncommitted changes: ${error instanceof Error ? error.message : String(error)}`);
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
isValid: errors.length === 0,
|
|
219
|
+
errors,
|
|
220
|
+
warnings,
|
|
221
|
+
exists,
|
|
222
|
+
isGitRepository,
|
|
223
|
+
currentBranch,
|
|
224
|
+
branchMatches,
|
|
225
|
+
hasUncommittedChanges,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
105
228
|
//# sourceMappingURL=multi-repo-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-validator.js","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"multi-repo-validator.js","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"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"}
|