@sk8metal/michi-cli 0.10.1 → 0.12.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/README.md +71 -848
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +0 -20
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/template-finder.d.ts +2 -2
- package/dist/scripts/utils/template-finder.d.ts.map +1 -1
- package/dist/scripts/utils/template-finder.js +3 -8
- package/dist/scripts/utils/template-finder.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +0 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -30
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +2 -6
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +8 -142
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +350 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +752 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +498 -0
- package/package.json +1 -3
- package/scripts/__tests__/create-project.test.ts +12 -12
- package/scripts/__tests__/setup-existing-project.test.ts +22 -22
- package/scripts/constants/__tests__/environments.test.ts +7 -50
- package/scripts/constants/environments.ts +1 -27
- package/scripts/phase-runner.ts +1 -1
- package/scripts/template/__tests__/renderer.test.ts +21 -21
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/scripts/utils/template-finder.ts +5 -11
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
- package/templates/cline/rules/atlassian-integration.md +0 -36
- package/templates/cline/rules/michi-core.md +0 -56
- package/templates/codex/AGENTS.override.md +0 -277
- package/templates/codex/prompts/confluence-sync.md +0 -177
- package/templates/codex/rules/README.md +0 -210
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
- package/templates/cursor/commands/michi/confluence-sync.md +0 -76
- package/templates/cursor/commands/michi/project-switch.md +0 -69
- package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
- package/templates/cursor/rules/github-ssot.mdc +0 -151
- package/templates/cursor/rules/multi-project.mdc +0 -81
- package/templates/gemini/commands/README.md +0 -41
- package/templates/gemini/rules/GEMINI.md +0 -80
|
@@ -1,952 +0,0 @@
|
|
|
1
|
-
# Michi 設定統合設計書 - マイグレーション戦略と後方互換性
|
|
2
|
-
|
|
3
|
-
**バージョン**: 1.0
|
|
4
|
-
**作成日**: 2025-01-11
|
|
5
|
-
**ステータス**: Draft
|
|
6
|
-
**親ドキュメント**: [config-unification.md](./config-unification.md)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 7. マイグレーション戦略
|
|
11
|
-
|
|
12
|
-
### 7.1 移行の概要
|
|
13
|
-
|
|
14
|
-
#### 7.1.1 移行が必要な理由
|
|
15
|
-
|
|
16
|
-
新しい設定システムへの移行により、以下の利点が得られます:
|
|
17
|
-
|
|
18
|
-
- **設定の一元管理**: 組織レベルの認証情報を全プロジェクトで共有
|
|
19
|
-
- **セキュリティの強化**: 認証情報を適切なファイル(`~/.michi/.env`)に集約し、パーミッション管理を強化
|
|
20
|
-
- **メンテナンス性の向上**: 設定変更が容易になり、チーム全体での管理が簡素化
|
|
21
|
-
- **将来の拡張性**: 新機能(暗号化、複数組織サポート等)の基盤を構築
|
|
22
|
-
|
|
23
|
-
#### 7.1.2 移行しない場合のリスク
|
|
24
|
-
|
|
25
|
-
- **v1.0.0以降でサポート終了**: 旧形式(`global.env`、`GITHUB_REPO`)は完全に削除されます
|
|
26
|
-
- **セキュリティ警告の継続表示**: 非推奨機能使用時に警告が表示され続けます
|
|
27
|
-
- **新機能が利用不可**: v1.1.0以降の新機能(暗号化等)が使用できません
|
|
28
|
-
- **互換性の問題**: 将来のバージョンで動作しなくなる可能性があります
|
|
29
|
-
|
|
30
|
-
### 7.2 移行パターン
|
|
31
|
-
|
|
32
|
-
#### 7.2.1 パターンA: 単一プロジェクトの移行(最も一般的)
|
|
33
|
-
|
|
34
|
-
**対象**: 1つのプロジェクトで Michi を使用しているユーザー
|
|
35
|
-
|
|
36
|
-
**手順**:
|
|
37
|
-
1. グローバル設定を作成: `michi config:global`
|
|
38
|
-
2. プロジェクト設定を移行: `michi migrate`
|
|
39
|
-
3. 動作確認
|
|
40
|
-
|
|
41
|
-
**推定時間**: 10-15分
|
|
42
|
-
|
|
43
|
-
**詳細手順**:
|
|
44
|
-
```bash
|
|
45
|
-
# ステップ1: グローバル設定の作成
|
|
46
|
-
$ michi config:global
|
|
47
|
-
# 対話的プロンプトに従って、組織共通の設定を入力
|
|
48
|
-
|
|
49
|
-
# ステップ2: プロジェクトディレクトリに移動
|
|
50
|
-
$ cd /path/to/your/project
|
|
51
|
-
|
|
52
|
-
# ステップ3: 移行ツールを実行
|
|
53
|
-
$ michi migrate
|
|
54
|
-
# 変更内容を確認し、承認
|
|
55
|
-
|
|
56
|
-
# ステップ4: 動作確認
|
|
57
|
-
$ michi init --help
|
|
58
|
-
# コマンドが正常に動作することを確認
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
#### 7.2.2 パターンB: 複数プロジェクトの一括移行
|
|
62
|
-
|
|
63
|
-
**対象**: 複数のプロジェクトで Michi を使用しているユーザー
|
|
64
|
-
|
|
65
|
-
**手順**:
|
|
66
|
-
1. グローバル設定を一度作成
|
|
67
|
-
2. 各プロジェクトで `migrate` を実行
|
|
68
|
-
3. (オプション)スクリプト化して自動実行
|
|
69
|
-
|
|
70
|
-
**推定時間**: 5分/プロジェクト
|
|
71
|
-
|
|
72
|
-
**一括移行スクリプト例**:
|
|
73
|
-
```bash
|
|
74
|
-
#!/bin/bash
|
|
75
|
-
|
|
76
|
-
# グローバル設定を一度だけ作成
|
|
77
|
-
michi config:global
|
|
78
|
-
|
|
79
|
-
# プロジェクトリスト
|
|
80
|
-
PROJECTS=(
|
|
81
|
-
"/path/to/project-a"
|
|
82
|
-
"/path/to/project-b"
|
|
83
|
-
"/path/to/project-c"
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
# 各プロジェクトで移行を実行
|
|
87
|
-
for project in "${PROJECTS[@]}"; do
|
|
88
|
-
echo "Migrating $project..."
|
|
89
|
-
cd "$project" || exit
|
|
90
|
-
michi migrate --force # 自動承認
|
|
91
|
-
echo "✅ $project migrated"
|
|
92
|
-
done
|
|
93
|
-
|
|
94
|
-
echo "🎉 All projects migrated successfully!"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
#### 7.2.3 パターンC: 新規プロジェクトの開始
|
|
98
|
-
|
|
99
|
-
**対象**: これから Michi を使い始めるユーザー
|
|
100
|
-
|
|
101
|
-
**手順**:
|
|
102
|
-
1. グローバル設定を作成
|
|
103
|
-
2. `michi init` で新規プロジェクト作成
|
|
104
|
-
|
|
105
|
-
**推定時間**: 5分
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
# ステップ1: グローバル設定
|
|
109
|
-
$ michi config:global
|
|
110
|
-
|
|
111
|
-
# ステップ2: 新規プロジェクト作成
|
|
112
|
-
$ mkdir my-new-project
|
|
113
|
-
$ cd my-new-project
|
|
114
|
-
$ michi init
|
|
115
|
-
|
|
116
|
-
# または、既存プロジェクトに追加
|
|
117
|
-
$ cd /path/to/existing-project
|
|
118
|
-
$ michi init --existing
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### 7.3 自動移行ツール: `michi migrate`
|
|
122
|
-
|
|
123
|
-
#### 7.3.1 コマンド構文
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
michi migrate [options]
|
|
127
|
-
|
|
128
|
-
Options:
|
|
129
|
-
--dry-run 実際には変更せず、変更内容をプレビュー
|
|
130
|
-
--backup-dir DIR バックアップディレクトリを指定
|
|
131
|
-
(デフォルト: .michi-backup-YYYYMMDDHHMMSS)
|
|
132
|
-
--force 確認プロンプトをスキップ
|
|
133
|
-
--verbose 詳細なログを表示
|
|
134
|
-
--help ヘルプを表示
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
#### 7.3.2 実行フロー
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
[1. 現状のスキャン]
|
|
141
|
-
├─ ~/.michi/config.json の存在確認
|
|
142
|
-
├─ ~/.michi/.env の存在確認(新形式)
|
|
143
|
-
├─ ~/.michi/global.env の存在確認(旧形式)
|
|
144
|
-
├─ .kiro/project.json の存在確認
|
|
145
|
-
└─ .env の存在確認
|
|
146
|
-
↓
|
|
147
|
-
[2. 変更内容のプレビュー]
|
|
148
|
-
├─ 組織共通設定の抽出(N項目)
|
|
149
|
-
├─ プロジェクト固有設定の保持(M項目)
|
|
150
|
-
├─ 旧形式ファイルのリネーム(該当する場合)
|
|
151
|
-
└─ 変更内容の表示
|
|
152
|
-
↓
|
|
153
|
-
[3. ユーザー確認]
|
|
154
|
-
├─ 変更内容の確認
|
|
155
|
-
└─ 続行するか確認(--force でスキップ)
|
|
156
|
-
↓
|
|
157
|
-
[4. バックアップ作成]
|
|
158
|
-
├─ .michi-backup-YYYYMMDDHHMMSS/ ディレクトリ作成
|
|
159
|
-
├─ 既存ファイルをすべてコピー
|
|
160
|
-
└─ バックアップの場所を表示
|
|
161
|
-
↓
|
|
162
|
-
[5. 設定の分離・移行]
|
|
163
|
-
├─ .env から組織共通設定を抽出
|
|
164
|
-
├─ ~/.michi/.env に書き込み(chmod 600)
|
|
165
|
-
├─ .env を更新(プロジェクト固有設定のみ)
|
|
166
|
-
└─ 旧形式ファイルのリネーム(該当する場合)
|
|
167
|
-
↓
|
|
168
|
-
[6. バリデーション]
|
|
169
|
-
├─ ConfigLoader で設定を読み込み
|
|
170
|
-
├─ 必須項目のチェック
|
|
171
|
-
└─ エラーがあれば表示
|
|
172
|
-
↓
|
|
173
|
-
[7. 完了レポート]
|
|
174
|
-
├─ 変更内容のサマリー
|
|
175
|
-
├─ バックアップの場所
|
|
176
|
-
├─ 次のステップ
|
|
177
|
-
└─ トラブルシューティングへのリンク
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
##### 7.3.3 実行例
|
|
181
|
-
|
|
182
|
-
**例1: 単一プロジェクトの移行(Pattern A)**
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
$ cd /Users/username/Work/git/my-project
|
|
186
|
-
$ michi migrate
|
|
187
|
-
|
|
188
|
-
🔄 Michi 設定移行ツール
|
|
189
|
-
================================================
|
|
190
|
-
|
|
191
|
-
[1] 現在の設定を検出中...
|
|
192
|
-
✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
|
|
193
|
-
✓ .michi/config.json 検出
|
|
194
|
-
✓ .env 検出
|
|
195
|
-
✓ project.json 検出
|
|
196
|
-
|
|
197
|
-
[2] 移行が必要な設定を分析中...
|
|
198
|
-
ℹ 以下の設定をグローバル化します:
|
|
199
|
-
- CONFLUENCE_URL
|
|
200
|
-
- CONFLUENCE_USERNAME
|
|
201
|
-
- CONFLUENCE_API_TOKEN
|
|
202
|
-
- JIRA_URL
|
|
203
|
-
- JIRA_USERNAME
|
|
204
|
-
- JIRA_API_TOKEN
|
|
205
|
-
- GITHUB_TOKEN
|
|
206
|
-
- GITHUB_USERNAME
|
|
207
|
-
- GITHUB_EMAIL
|
|
208
|
-
- GITHUB_ORG
|
|
209
|
-
|
|
210
|
-
ℹ 以下の設定はプロジェクト固有のままです:
|
|
211
|
-
- GITHUB_REPO (→ project.json.repository に統合)
|
|
212
|
-
- PROJECT_NAME (→ project.json.projectId)
|
|
213
|
-
|
|
214
|
-
[3] 変更内容の確認
|
|
215
|
-
変更されるファイル:
|
|
216
|
-
- ~/.michi/.env (新規作成)
|
|
217
|
-
- .env (更新: 10項目削除、1項目追加)
|
|
218
|
-
- project.json (更新: repository フィールド追加)
|
|
219
|
-
|
|
220
|
-
続行しますか? (y/n): y
|
|
221
|
-
|
|
222
|
-
[4] バックアップ作成中...
|
|
223
|
-
✓ バックアップ作成: .michi-backup-20250112143022/
|
|
224
|
-
|
|
225
|
-
[5] 設定の分離・移行中...
|
|
226
|
-
✓ ~/.michi/.env に組織設定を書き込みました
|
|
227
|
-
✓ .env を更新しました
|
|
228
|
-
✓ project.json を更新しました
|
|
229
|
-
|
|
230
|
-
[6] バリデーション実行中...
|
|
231
|
-
✓ ConfigLoader で設定を読み込みました
|
|
232
|
-
✓ すべての必須項目が設定されています
|
|
233
|
-
|
|
234
|
-
[7] 移行完了!
|
|
235
|
-
================================================
|
|
236
|
-
✅ 設定の移行が完了しました
|
|
237
|
-
|
|
238
|
-
変更内容:
|
|
239
|
-
- グローバル設定ファイル作成: ~/.michi/.env (10項目)
|
|
240
|
-
- プロジェクト.env更新: 10項目削除
|
|
241
|
-
- project.json更新: repository フィールド追加
|
|
242
|
-
|
|
243
|
-
バックアップ:
|
|
244
|
-
- 場所: .michi-backup-20250112143022/
|
|
245
|
-
- 復元方法: michi migrate --rollback .michi-backup-20250112143022
|
|
246
|
-
|
|
247
|
-
次のステップ:
|
|
248
|
-
1. 設定を確認: michi config:validate
|
|
249
|
-
2. 動作確認: michi confluence:sync {feature} --dry-run
|
|
250
|
-
3. 問題があれば: docs/michi-development/design/config-unification.md#7.7
|
|
251
|
-
|
|
252
|
-
移行ログ: .michi/migration.log
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**例2: 強制実行(確認スキップ)**
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
$ michi migrate --force
|
|
259
|
-
|
|
260
|
-
🔄 Michi 設定移行ツール
|
|
261
|
-
================================================
|
|
262
|
-
⚠️ --force オプションが指定されています。確認をスキップします。
|
|
263
|
-
|
|
264
|
-
[1] 現在の設定を検出中...
|
|
265
|
-
✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
|
|
266
|
-
...
|
|
267
|
-
|
|
268
|
-
[4] バックアップ作成中...
|
|
269
|
-
✓ バックアップ作成: .michi-backup-20250112143105/
|
|
270
|
-
|
|
271
|
-
[5] 設定の分離・移行中...
|
|
272
|
-
...
|
|
273
|
-
|
|
274
|
-
✅ 設定の移行が完了しました
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
**例3: ドライラン(変更なし)**
|
|
278
|
-
|
|
279
|
-
```bash
|
|
280
|
-
$ michi migrate --dry-run
|
|
281
|
-
|
|
282
|
-
🔄 Michi 設定移行ツール (ドライランモード)
|
|
283
|
-
================================================
|
|
284
|
-
⚠️ このモードでは実際の変更は行われません
|
|
285
|
-
|
|
286
|
-
[1] 現在の設定を検出中...
|
|
287
|
-
✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
|
|
288
|
-
✓ .michi/config.json 検出
|
|
289
|
-
✓ .env 検出
|
|
290
|
-
✓ project.json 検出
|
|
291
|
-
|
|
292
|
-
[2] 移行が必要な設定を分析中...
|
|
293
|
-
ℹ 以下の設定をグローバル化します:
|
|
294
|
-
- CONFLUENCE_URL
|
|
295
|
-
- CONFLUENCE_USERNAME
|
|
296
|
-
- ...
|
|
297
|
-
|
|
298
|
-
[予定される変更]
|
|
299
|
-
作成: ~/.michi/.env
|
|
300
|
-
CONFLUENCE_URL=https://example.atlassian.net
|
|
301
|
-
CONFLUENCE_USERNAME=admin@example.com
|
|
302
|
-
...
|
|
303
|
-
|
|
304
|
-
更新: .env (10行削除)
|
|
305
|
-
|
|
306
|
-
更新: project.json
|
|
307
|
-
+ "repository": "https://github.com/myorg/my-project.git"
|
|
308
|
-
|
|
309
|
-
[3] ドライラン完了
|
|
310
|
-
================================================
|
|
311
|
-
⚠️ --dry-run モードのため、実際の変更は行われませんでした
|
|
312
|
-
|
|
313
|
-
実際に移行を実行する場合:
|
|
314
|
-
$ michi migrate
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
#### 7.4 手動移行手順
|
|
318
|
-
|
|
319
|
-
自動移行ツールを使用しない場合や、カスタマイズが必要な場合の手動移行手順です。
|
|
320
|
-
|
|
321
|
-
##### 7.4.1 グローバル設定の作成
|
|
322
|
-
|
|
323
|
-
**ステップ1: ~/.michi/.env の作成**
|
|
324
|
-
|
|
325
|
-
```bash
|
|
326
|
-
# ディレクトリ作成
|
|
327
|
-
mkdir -p ~/.michi
|
|
328
|
-
|
|
329
|
-
# .env ファイル作成
|
|
330
|
-
cat > ~/.michi/.env << 'EOF'
|
|
331
|
-
# Michi グローバル設定(組織共通)
|
|
332
|
-
|
|
333
|
-
# Confluence設定
|
|
334
|
-
CONFLUENCE_URL=https://your-domain.atlassian.net
|
|
335
|
-
CONFLUENCE_USERNAME=your-email@example.com
|
|
336
|
-
CONFLUENCE_API_TOKEN=your-confluence-api-token
|
|
337
|
-
|
|
338
|
-
# JIRA設定
|
|
339
|
-
JIRA_URL=https://your-domain.atlassian.net
|
|
340
|
-
JIRA_USERNAME=your-email@example.com
|
|
341
|
-
JIRA_API_TOKEN=your-jira-api-token
|
|
342
|
-
|
|
343
|
-
# GitHub設定
|
|
344
|
-
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
345
|
-
GITHUB_USERNAME=your-github-username
|
|
346
|
-
GITHUB_EMAIL=your-email@example.com
|
|
347
|
-
GITHUB_ORG=your-organization
|
|
348
|
-
EOF
|
|
349
|
-
|
|
350
|
-
# パーミッション設定
|
|
351
|
-
chmod 600 ~/.michi/.env
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**ステップ2: 既存プロジェクトの .env を更新**
|
|
355
|
-
|
|
356
|
-
```bash
|
|
357
|
-
# プロジェクトディレクトリに移動
|
|
358
|
-
cd /path/to/your/project
|
|
359
|
-
|
|
360
|
-
# バックアップ作成
|
|
361
|
-
cp .env .env.backup
|
|
362
|
-
|
|
363
|
-
# グローバル化される項目を削除
|
|
364
|
-
# (以下は sed コマンドの例、実際には手動編集を推奨)
|
|
365
|
-
sed -i '' '/^CONFLUENCE_URL=/d' .env
|
|
366
|
-
sed -i '' '/^CONFLUENCE_USERNAME=/d' .env
|
|
367
|
-
sed -i '' '/^CONFLUENCE_API_TOKEN=/d' .env
|
|
368
|
-
sed -i '' '/^JIRA_URL=/d' .env
|
|
369
|
-
sed -i '' '/^JIRA_USERNAME=/d' .env
|
|
370
|
-
sed -i '' '/^JIRA_API_TOKEN=/d' .env
|
|
371
|
-
sed -i '' '/^GITHUB_TOKEN=/d' .env
|
|
372
|
-
sed -i '' '/^GITHUB_USERNAME=/d' .env
|
|
373
|
-
sed -i '' '/^GITHUB_EMAIL=/d' .env
|
|
374
|
-
sed -i '' '/^GITHUB_ORG=/d' .env
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
##### 7.4.2 プロジェクト設定の更新
|
|
378
|
-
|
|
379
|
-
**ステップ3: project.json の更新**
|
|
380
|
-
|
|
381
|
-
```bash
|
|
382
|
-
# .env から GITHUB_REPO を取得
|
|
383
|
-
GITHUB_REPO=$(grep GITHUB_REPO .env | cut -d= -f2)
|
|
384
|
-
|
|
385
|
-
# project.json に repository フィールドを追加
|
|
386
|
-
# (jq コマンドを使用する例)
|
|
387
|
-
jq --arg repo "https://github.com/$GITHUB_REPO.git" \
|
|
388
|
-
'.repository = $repo' \
|
|
389
|
-
.michi/project.json > .michi/project.json.tmp
|
|
390
|
-
|
|
391
|
-
mv .michi/project.json.tmp .michi/project.json
|
|
392
|
-
|
|
393
|
-
# または手動で編集
|
|
394
|
-
# {
|
|
395
|
-
# "projectId": "my-project",
|
|
396
|
-
# "repository": "https://github.com/myorg/my-project.git",
|
|
397
|
-
# ...
|
|
398
|
-
# }
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
**ステップ4: .env から GITHUB_REPO を削除**
|
|
402
|
-
|
|
403
|
-
```bash
|
|
404
|
-
sed -i '' '/^GITHUB_REPO=/d' .env
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
##### 7.4.3 設定の検証
|
|
408
|
-
|
|
409
|
-
```bash
|
|
410
|
-
# ConfigLoader でバリデーション
|
|
411
|
-
npm run config:validate
|
|
412
|
-
|
|
413
|
-
# または
|
|
414
|
-
npx tsx scripts/utils/config-validator.ts
|
|
415
|
-
|
|
416
|
-
# Michi CLIで動作確認(ドライラン)
|
|
417
|
-
michi confluence:sync my-feature --dry-run
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
#### 7.5 検証方法
|
|
421
|
-
|
|
422
|
-
移行後の設定が正しいことを確認するためのチェックリストです。
|
|
423
|
-
|
|
424
|
-
##### 7.5.1 ファイル存在チェック
|
|
425
|
-
|
|
426
|
-
```bash
|
|
427
|
-
# グローバル設定の確認
|
|
428
|
-
[ -f ~/.michi/.env ] && echo "✓ ~/.michi/.env 存在" || echo "✗ ~/.michi/.env が見つかりません"
|
|
429
|
-
|
|
430
|
-
# パーミッション確認
|
|
431
|
-
ls -l ~/.michi/.env | grep "^-rw-------" && echo "✓ パーミッション正常 (600)" || echo "⚠️ パーミッションを確認してください"
|
|
432
|
-
|
|
433
|
-
# プロジェクト設定の確認
|
|
434
|
-
[ -f .michi/project.json ] && echo "✓ .michi/project.json 存在" || echo "✗ .michi/project.json が見つかりません"
|
|
435
|
-
[ -f .env ] && echo "✓ .env 存在" || echo "✗ .env が見つかりません"
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
##### 7.5.2 設定内容チェック
|
|
439
|
-
|
|
440
|
-
**グローバル設定のチェック**
|
|
441
|
-
|
|
442
|
-
```bash
|
|
443
|
-
# 必須項目が含まれているか確認
|
|
444
|
-
grep -q "CONFLUENCE_URL=" ~/.michi/.env && echo "✓ CONFLUENCE_URL" || echo "✗ CONFLUENCE_URL が見つかりません"
|
|
445
|
-
grep -q "JIRA_URL=" ~/.michi/.env && echo "✓ JIRA_URL" || echo "✗ JIRA_URL が見つかりません"
|
|
446
|
-
grep -q "GITHUB_TOKEN=" ~/.michi/.env && echo "✓ GITHUB_TOKEN" || echo "✗ GITHUB_TOKEN が見つかりません"
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
**プロジェクト設定のチェック**
|
|
450
|
-
|
|
451
|
-
```bash
|
|
452
|
-
# GITHUB_REPO が削除されているか確認
|
|
453
|
-
! grep -q "GITHUB_REPO=" .env && echo "✓ GITHUB_REPO は削除されています" || echo "⚠️ GITHUB_REPO がまだ残っています"
|
|
454
|
-
|
|
455
|
-
# project.json に repository が追加されているか確認
|
|
456
|
-
grep -q '"repository"' .michi/project.json && echo "✓ project.json に repository フィールド追加済み" || echo "✗ repository フィールドが見つかりません"
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
##### 7.5.3 バリデーション実行
|
|
460
|
-
|
|
461
|
-
```bash
|
|
462
|
-
# Michi の設定バリデーション
|
|
463
|
-
npm run config:validate
|
|
464
|
-
|
|
465
|
-
# 期待される出力:
|
|
466
|
-
# ✅ 設定ファイルは有効です
|
|
467
|
-
# ✅ グローバル設定: ~/.michi/.env
|
|
468
|
-
# ✅ プロジェクト設定: .michi/config.json
|
|
469
|
-
# ✅ プロジェクト環境: .env
|
|
470
|
-
# ✅ すべての必須項目が設定されています
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
##### 7.5.4 機能テスト
|
|
474
|
-
|
|
475
|
-
**Confluence同期のテスト**
|
|
476
|
-
|
|
477
|
-
```bash
|
|
478
|
-
# ドライランで確認(実際にページは作成されない)
|
|
479
|
-
michi confluence:sync my-feature requirements --dry-run
|
|
480
|
-
|
|
481
|
-
# 期待される動作:
|
|
482
|
-
# - Confluence URLに接続できる
|
|
483
|
-
# - 認証が成功する
|
|
484
|
-
# - スペースにアクセスできる
|
|
485
|
-
# - ページ作成のシミュレーションが成功する
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
**JIRA同期のテスト**
|
|
489
|
-
|
|
490
|
-
```bash
|
|
491
|
-
# ドライランで確認
|
|
492
|
-
michi jira:sync my-feature --dry-run
|
|
493
|
-
|
|
494
|
-
# 期待される動作:
|
|
495
|
-
# - JIRA URLに接続できる
|
|
496
|
-
# - プロジェクトが見つかる
|
|
497
|
-
# - Epic/Story作成のシミュレーションが成功する
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
**GitHub PR作成のテスト**
|
|
501
|
-
|
|
502
|
-
```bash
|
|
503
|
-
# 現在のブランチ情報を確認
|
|
504
|
-
michi github:pr --info
|
|
505
|
-
|
|
506
|
-
# 期待される動作:
|
|
507
|
-
# - リポジトリ情報が正しく取得できる
|
|
508
|
-
# - ブランチ情報が表示される
|
|
509
|
-
# - PR作成の準備ができている
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
#### 7.6 ロールバック手順
|
|
513
|
-
|
|
514
|
-
移行後に問題が発生した場合の復元手順です。
|
|
515
|
-
|
|
516
|
-
##### 7.6.1 自動バックアップからの復元
|
|
517
|
-
|
|
518
|
-
`michi migrate` コマンドは自動的にバックアップを作成します。
|
|
519
|
-
|
|
520
|
-
```bash
|
|
521
|
-
# バックアップディレクトリの確認
|
|
522
|
-
ls -la .michi-backup-*
|
|
523
|
-
|
|
524
|
-
# 例: .michi-backup-20250112143022/
|
|
525
|
-
|
|
526
|
-
# ロールバック実行
|
|
527
|
-
michi migrate --rollback .michi-backup-20250112143022
|
|
528
|
-
|
|
529
|
-
# または手動で復元
|
|
530
|
-
cp -r .michi-backup-20250112143022/.michi .michi
|
|
531
|
-
cp .michi-backup-20250112143022/.env .env
|
|
532
|
-
cp .michi-backup-20250112143022/project.json .michi/project.json
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
##### 7.6.2 手動バックアップからの復元
|
|
536
|
-
|
|
537
|
-
手動移行を行った場合のロールバック手順:
|
|
538
|
-
|
|
539
|
-
**ステップ1: バックアップファイルを確認**
|
|
540
|
-
|
|
541
|
-
```bash
|
|
542
|
-
# バックアップファイルの確認
|
|
543
|
-
ls -la *.backup
|
|
544
|
-
|
|
545
|
-
# 例:
|
|
546
|
-
# .env.backup
|
|
547
|
-
# project.json.backup
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
**ステップ2: ファイルを復元**
|
|
551
|
-
|
|
552
|
-
```bash
|
|
553
|
-
# .env の復元
|
|
554
|
-
cp .env.backup .env
|
|
555
|
-
|
|
556
|
-
# project.json の復元
|
|
557
|
-
cp .michi/project.json.backup .michi/project.json
|
|
558
|
-
|
|
559
|
-
# 権限の確認
|
|
560
|
-
chmod 600 .env
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
**ステップ3: グローバル設定の削除(オプション)**
|
|
564
|
-
|
|
565
|
-
```bash
|
|
566
|
-
# グローバル設定をロールバックする場合
|
|
567
|
-
rm ~/.michi/.env
|
|
568
|
-
|
|
569
|
-
# または、グローバル設定は残して .env を旧形式に戻すのみでもOK
|
|
570
|
-
```
|
|
571
|
-
|
|
572
|
-
**ステップ4: 動作確認**
|
|
573
|
-
|
|
574
|
-
```bash
|
|
575
|
-
# 設定が正しく復元されたか確認
|
|
576
|
-
npm run config:validate
|
|
577
|
-
|
|
578
|
-
# 実際の機能をテスト
|
|
579
|
-
michi confluence:sync my-feature --dry-run
|
|
580
|
-
```
|
|
581
|
-
|
|
582
|
-
##### 7.6.3 部分的なロールバック
|
|
583
|
-
|
|
584
|
-
グローバル設定のみ、またはプロジェクト設定のみをロールバックする場合:
|
|
585
|
-
|
|
586
|
-
**グローバル設定のみロールバック**
|
|
587
|
-
|
|
588
|
-
```bash
|
|
589
|
-
# グローバル設定を削除
|
|
590
|
-
rm ~/.michi/.env
|
|
591
|
-
|
|
592
|
-
# .env に組織設定を復元
|
|
593
|
-
# (バックアップから CONFLUENCE_*, JIRA_*, GITHUB_* をコピー)
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
**プロジェクト設定のみロールバック**
|
|
597
|
-
|
|
598
|
-
```bash
|
|
599
|
-
# project.json の repository フィールドを削除
|
|
600
|
-
jq 'del(.repository)' .michi/project.json > .michi/project.json.tmp
|
|
601
|
-
mv .michi/project.json.tmp .michi/project.json
|
|
602
|
-
|
|
603
|
-
# .env に GITHUB_REPO を復元
|
|
604
|
-
echo "GITHUB_REPO=myorg/my-project" >> .env
|
|
605
|
-
```
|
|
606
|
-
|
|
607
|
-
#### 7.7 トラブルシューティング
|
|
608
|
-
|
|
609
|
-
移行中または移行後に発生する可能性のある問題と解決策です。
|
|
610
|
-
|
|
611
|
-
##### 7.7.1 移行ツールのエラー
|
|
612
|
-
|
|
613
|
-
**エラー: "No .env file found"**
|
|
614
|
-
|
|
615
|
-
```
|
|
616
|
-
原因: プロジェクトディレクトリに .env ファイルが存在しない
|
|
617
|
-
|
|
618
|
-
解決策:
|
|
619
|
-
1. 現在のディレクトリを確認: pwd
|
|
620
|
-
2. .env ファイルを作成: cp env.example .env
|
|
621
|
-
3. 必要な設定を記入
|
|
622
|
-
4. 再度移行を実行: michi migrate
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
**エラー: "~/.michi/.env already exists"**
|
|
626
|
-
|
|
627
|
-
```
|
|
628
|
-
原因: グローバル設定ファイルが既に存在する
|
|
629
|
-
|
|
630
|
-
解決策:
|
|
631
|
-
1. 既存のファイルを確認: cat ~/.michi/.env
|
|
632
|
-
2. バックアップを作成: cp ~/.michi/.env ~/.michi/.env.backup
|
|
633
|
-
3. --force オプションで上書き: michi migrate --force
|
|
634
|
-
または
|
|
635
|
-
4. 手動でマージ: 既存の ~/.michi/.env に不足している項目を追加
|
|
636
|
-
```
|
|
637
|
-
|
|
638
|
-
**エラー: "Invalid repository URL in project.json"**
|
|
639
|
-
|
|
640
|
-
```
|
|
641
|
-
原因: project.json の repository フィールドが不正な形式
|
|
642
|
-
|
|
643
|
-
解決策:
|
|
644
|
-
1. project.json を確認: cat .michi/project.json
|
|
645
|
-
2. repository フィールドを修正:
|
|
646
|
-
正しい形式: "https://github.com/org/repo.git"
|
|
647
|
-
または "git@github.com:org/repo.git"
|
|
648
|
-
3. 再度移行を実行: michi migrate
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
##### 7.7.2 バリデーションエラー
|
|
652
|
-
|
|
653
|
-
**エラー: "CONFLUENCE_URL is required"**
|
|
654
|
-
|
|
655
|
-
```
|
|
656
|
-
原因: グローバル設定に必須項目が不足している
|
|
657
|
-
|
|
658
|
-
解決策:
|
|
659
|
-
1. ~/.michi/.env を編集
|
|
660
|
-
2. 不足している項目を追加:
|
|
661
|
-
CONFLUENCE_URL=https://your-domain.atlassian.net
|
|
662
|
-
3. パーミッションを確認: chmod 600 ~/.michi/.env
|
|
663
|
-
4. 再度バリデーション: npm run config:validate
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
**エラー: "Repository URL does not match GITHUB_REPO"**
|
|
667
|
-
|
|
668
|
-
```
|
|
669
|
-
原因: project.json.repository と .env.GITHUB_REPO が一致しない
|
|
670
|
-
|
|
671
|
-
解決策:
|
|
672
|
-
1. どちらが正しいか確認
|
|
673
|
-
2. 正しい値を project.json に設定
|
|
674
|
-
3. .env から GITHUB_REPO を削除
|
|
675
|
-
4. 再度バリデーション: npm run config:validate
|
|
676
|
-
```
|
|
677
|
-
|
|
678
|
-
##### 7.7.3 機能テストの失敗
|
|
679
|
-
|
|
680
|
-
**エラー: "Confluence authentication failed"**
|
|
681
|
-
|
|
682
|
-
```
|
|
683
|
-
原因: Confluence の認証情報が間違っている、または期限切れ
|
|
684
|
-
|
|
685
|
-
解決策:
|
|
686
|
-
1. ~/.michi/.env の認証情報を確認
|
|
687
|
-
2. Atlassian でAPIトークンを再生成:
|
|
688
|
-
https://id.atlassian.com/manage-profile/security/api-tokens
|
|
689
|
-
3. ~/.michi/.env を更新
|
|
690
|
-
4. 再度テスト: michi confluence:sync my-feature --dry-run
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
**エラー: "GitHub repository not found"**
|
|
694
|
-
|
|
695
|
-
```
|
|
696
|
-
原因: リポジトリURLが間違っている、またはアクセス権限がない
|
|
697
|
-
|
|
698
|
-
解決策:
|
|
699
|
-
1. project.json の repository を確認
|
|
700
|
-
2. GitHub でリポジトリの存在とアクセス権限を確認
|
|
701
|
-
3. 必要に応じて GITHUB_TOKEN の権限を確認
|
|
702
|
-
4. 正しいURLに修正
|
|
703
|
-
5. 再度テスト: michi github:pr --info
|
|
704
|
-
```
|
|
705
|
-
|
|
706
|
-
##### 7.7.4 パーミッションの問題
|
|
707
|
-
|
|
708
|
-
**エラー: "Permission denied: ~/.michi/.env"**
|
|
709
|
-
|
|
710
|
-
```
|
|
711
|
-
原因: ファイルのパーミッションが正しくない
|
|
712
|
-
|
|
713
|
-
解決策:
|
|
714
|
-
1. 現在のパーミッションを確認: ls -l ~/.michi/.env
|
|
715
|
-
2. 正しいパーミッションに修正: chmod 600 ~/.michi/.env
|
|
716
|
-
3. 所有者を確認: ls -l ~/.michi/.env
|
|
717
|
-
4. 必要に応じて所有者を変更: sudo chown $USER ~/.michi/.env
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
##### 7.7.5 マルチプロジェクトでの問題
|
|
721
|
-
|
|
722
|
-
**問題: "複数プロジェクトで異なる組織設定が必要"**
|
|
723
|
-
|
|
724
|
-
```
|
|
725
|
-
原因: 複数の組織に跨ってプロジェクトを管理している
|
|
726
|
-
|
|
727
|
-
解決策(現在の制限事項):
|
|
728
|
-
1. グローバル設定は1つの組織のみをサポート
|
|
729
|
-
2. 別の組織のプロジェクトでは .env に組織設定を直接記述
|
|
730
|
-
3. 将来的にはプロファイル機能で複数組織をサポート予定(Section 11参照)
|
|
731
|
-
|
|
732
|
-
一時的な回避策:
|
|
733
|
-
- 主に使用する組織を ~/.michi/.env に設定
|
|
734
|
-
- 他の組織のプロジェクトでは .env に全設定を記述(グローバル設定を使用しない)
|
|
735
|
-
```
|
|
736
|
-
|
|
737
|
-
**問題: "プロジェクトAの変更がプロジェクトBに影響する"**
|
|
738
|
-
|
|
739
|
-
```
|
|
740
|
-
原因: グローバル設定を誤って変更した
|
|
741
|
-
|
|
742
|
-
解決策:
|
|
743
|
-
1. グローバル設定の変更は慎重に行う
|
|
744
|
-
2. プロジェクト固有の設定は必ず .env または .michi/config.json に記述
|
|
745
|
-
3. 設定の優先順位を理解する:
|
|
746
|
-
プロジェクト .env > プロジェクト config.json > グローバル .env
|
|
747
|
-
```
|
|
748
|
-
|
|
749
|
-
##### 7.7.6 ロールバック失敗
|
|
750
|
-
|
|
751
|
-
**エラー: "Backup directory not found"**
|
|
752
|
-
|
|
753
|
-
```
|
|
754
|
-
原因: バックアップディレクトリが見つからない
|
|
755
|
-
|
|
756
|
-
解決策:
|
|
757
|
-
1. バックアップディレクトリを検索: find . -name ".michi-backup-*"
|
|
758
|
-
2. 見つからない場合は手動バックアップを使用: .env.backup など
|
|
759
|
-
3. 最悪の場合は Git で復元: git checkout .env .michi/
|
|
760
|
-
```
|
|
761
|
-
|
|
762
|
-
**エラー: "Cannot restore: files are modified"**
|
|
763
|
-
|
|
764
|
-
```
|
|
765
|
-
原因: 復元先のファイルが変更されている
|
|
766
|
-
|
|
767
|
-
解決策:
|
|
768
|
-
1. 現在の変更を確認: git status
|
|
769
|
-
2. 変更を保存: git stash
|
|
770
|
-
3. ロールバックを実行
|
|
771
|
-
4. 必要に応じて変更を復元: git stash pop
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
---
|
|
775
|
-
|
|
776
|
-
### 参考情報
|
|
777
|
-
|
|
778
|
-
- **移行ログの確認**: `.michi/migration.log` に詳細なログが記録されます
|
|
779
|
-
- **バックアップの保管期間**: 自動バックアップは30日後に自動削除されます(設定で変更可能)
|
|
780
|
-
- **サポート**: 問題が解決しない場合は GitHub Issues で報告してください
|
|
781
|
-
|
|
782
|
-
---
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
---
|
|
786
|
-
|
|
787
|
-
## 10. 後方互換性
|
|
788
|
-
|
|
789
|
-
既存ユーザーへの影響を最小限に抑えるための後方互換性戦略です。
|
|
790
|
-
|
|
791
|
-
### 10.1 互換性レベル
|
|
792
|
-
|
|
793
|
-
#### 10.1.1 完全互換(継続サポート)
|
|
794
|
-
|
|
795
|
-
以下の機能は引き続きサポートされます:
|
|
796
|
-
|
|
797
|
-
| 機能 | 動作 | サポート期限 |
|
|
798
|
-
|------|------|------------|
|
|
799
|
-
| `.env` ファイル(プロジェクト) | 引き続き使用可能 | 無期限 |
|
|
800
|
-
| `.michi/config.json` | 引き続き使用可能 | 無期限 |
|
|
801
|
-
| `.michi/project.json` | 引き続き使用可能 | 無期限 |
|
|
802
|
-
| `npm run config:global` | グローバル設定作成 | 無期限 |
|
|
803
|
-
| 既存のCLIコマンド | すべて継続動作 | 無期限 |
|
|
804
|
-
|
|
805
|
-
#### 10.1.2 破壊的変更(v0.5.0)
|
|
806
|
-
|
|
807
|
-
**重要**: v0.5.0 では、シンプルな設計を実現するために破壊的変更が含まれます。
|
|
808
|
-
|
|
809
|
-
**削除される機能:**
|
|
810
|
-
- `GITHUB_REPO` 環境変数(`.env` 内)
|
|
811
|
-
- `setup-existing` コマンド(`michi init --existing` に統一)
|
|
812
|
-
|
|
813
|
-
**移行が必要なユーザー:**
|
|
814
|
-
- `.env` で `GITHUB_REPO` を使用しているユーザー
|
|
815
|
-
- `setup-existing` コマンドを使用しているユーザー
|
|
816
|
-
|
|
817
|
-
**移行方法:**
|
|
818
|
-
`michi migrate` コマンドで自動移行が可能です。
|
|
819
|
-
|
|
820
|
-
### 10.2 移行ガイド
|
|
821
|
-
|
|
822
|
-
#### 10.2.1 GITHUB_REPO の移行
|
|
823
|
-
|
|
824
|
-
v0.5.0 では、`GITHUB_REPO` 環境変数は削除されます。代わりに `.kiro/project.json` の `repository` フィールドを使用します。
|
|
825
|
-
|
|
826
|
-
**移行方法:**
|
|
827
|
-
|
|
828
|
-
1. **自動移行(推奨):**
|
|
829
|
-
```bash
|
|
830
|
-
michi migrate
|
|
831
|
-
```
|
|
832
|
-
|
|
833
|
-
2. **手動移行:**
|
|
834
|
-
- `.env` から `GITHUB_REPO` を削除
|
|
835
|
-
- `.kiro/project.json` に `repository` を追加:
|
|
836
|
-
```json
|
|
837
|
-
{
|
|
838
|
-
"repository": "https://github.com/myorg/myrepo"
|
|
839
|
-
}
|
|
840
|
-
```
|
|
841
|
-
|
|
842
|
-
**ConfigLoader の実装:**
|
|
843
|
-
|
|
844
|
-
```typescript
|
|
845
|
-
// ConfigLoader は repository から org/repo 形式を自動抽出
|
|
846
|
-
const parsed = this.parseGitHubRepository(merged.project.repository);
|
|
847
|
-
merged.github = {
|
|
848
|
-
...merged.github,
|
|
849
|
-
repository: parsed.url,
|
|
850
|
-
repositoryShort: parsed.shortForm, // "org/repo"
|
|
851
|
-
repositoryOrg: parsed.org,
|
|
852
|
-
repositoryName: parsed.repo,
|
|
853
|
-
};
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
#### 10.2.2 setup-existing コマンドの移行
|
|
857
|
-
|
|
858
|
-
v0.5.0 では、`setup-existing` コマンドは削除されます。代わりに `michi init --existing` を使用します。
|
|
859
|
-
|
|
860
|
-
**移行方法:**
|
|
861
|
-
|
|
862
|
-
すべての `setup-existing` の使用を `michi init --existing` に置き換えてください。
|
|
863
|
-
|
|
864
|
-
```bash
|
|
865
|
-
# 変更前
|
|
866
|
-
npx @sk8metal/michi-cli setup-existing
|
|
867
|
-
|
|
868
|
-
# 変更後
|
|
869
|
-
michi init --existing
|
|
870
|
-
```
|
|
871
|
-
|
|
872
|
-
### 10.3 バージョン間の互換性マトリクス
|
|
873
|
-
|
|
874
|
-
| 機能 | v0.4.0 (現在) | v0.5.0 (Breaking Change) | v1.0.0 |
|
|
875
|
-
|------|-------------|------------------------|--------|
|
|
876
|
-
| **GITHUB_REPO** | ✅ サポート | ❌ **削除** | - |
|
|
877
|
-
| **setup-existing** | ✅ サポート | ❌ **削除** | - |
|
|
878
|
-
| **~/.michi/.env** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
|
|
879
|
-
| **project.json.repository** | ❌ 未サポート | ✅ **必須** | ✅ 必須 |
|
|
880
|
-
| **michi migrate** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
|
|
881
|
-
| **michi init --existing** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
|
|
882
|
-
|
|
883
|
-
### 10.4 アップグレードガイド
|
|
884
|
-
|
|
885
|
-
#### 10.4.1 v0.4.0 → v0.5.0 (Breaking Change)
|
|
886
|
-
|
|
887
|
-
**重要**: v0.5.0 は Breaking Change を含むため、移行が必須です。
|
|
888
|
-
|
|
889
|
-
**アップグレード手順**:
|
|
890
|
-
|
|
891
|
-
1. **バックアップ作成**
|
|
892
|
-
```bash
|
|
893
|
-
cp -r .michi .michi.backup
|
|
894
|
-
cp -r .kiro .kiro.backup
|
|
895
|
-
cp .env .env.backup
|
|
896
|
-
```
|
|
897
|
-
|
|
898
|
-
2. **Michi をアップグレード**
|
|
899
|
-
```bash
|
|
900
|
-
npm install -g @sk8metal/michi-cli@0.5.0
|
|
901
|
-
```
|
|
902
|
-
|
|
903
|
-
3. **移行ツールを実行(必須)**
|
|
904
|
-
```bash
|
|
905
|
-
michi migrate
|
|
906
|
-
```
|
|
907
|
-
|
|
908
|
-
移行ツールは以下を自動的に行います:
|
|
909
|
-
- `GITHUB_REPO` を `.kiro/project.json` の `repository` に移行
|
|
910
|
-
- `.env` から組織共通設定を `~/.michi/.env` に抽出
|
|
911
|
-
- `.env` にプロジェクト固有設定のみを残す
|
|
912
|
-
|
|
913
|
-
4. **動作確認**
|
|
914
|
-
```bash
|
|
915
|
-
michi config:validate
|
|
916
|
-
michi confluence:sync my-feature --dry-run
|
|
917
|
-
```
|
|
918
|
-
|
|
919
|
-
5. **コマンド使用の更新**
|
|
920
|
-
- `setup-existing` → `michi init --existing` に変更
|
|
921
|
-
- スクリプトやドキュメントを更新
|
|
922
|
-
|
|
923
|
-
**移行しない場合**:
|
|
924
|
-
|
|
925
|
-
v0.4.0 のまま使用を続けることを推奨します。v0.5.0 は Breaking Change のため、移行なしではエラーが発生します。
|
|
926
|
-
|
|
927
|
-
### 10.5 ダウングレード
|
|
928
|
-
|
|
929
|
-
v0.5.0 から v0.4.0 へのダウングレードは可能ですが、以下の制限があります:
|
|
930
|
-
|
|
931
|
-
**ダウングレード手順**:
|
|
932
|
-
|
|
933
|
-
```bash
|
|
934
|
-
# 1. グローバル設定を .env に戻す
|
|
935
|
-
cat ~/.michi/.env >> .env
|
|
936
|
-
|
|
937
|
-
# 2. project.json から GITHUB_REPO を .env に追加
|
|
938
|
-
echo "GITHUB_REPO=myorg/myrepo" >> .env
|
|
939
|
-
|
|
940
|
-
# 3. Michi をダウングレード
|
|
941
|
-
npm install -g @sk8metal/michi-cli@0.4.0
|
|
942
|
-
|
|
943
|
-
# 4. グローバル設定を削除(オプション)
|
|
944
|
-
rm ~/.michi/.env
|
|
945
|
-
```
|
|
946
|
-
|
|
947
|
-
**注意**:
|
|
948
|
-
- 一度 v0.5.0 で作成した設定は、v0.4.0 では一部認識されません
|
|
949
|
-
- ダウングレードは緊急時のみ推奨されます
|
|
950
|
-
|
|
951
|
-
---
|
|
952
|
-
|