@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,510 +0,0 @@
|
|
|
1
|
-
# GitHubトークン作成ガイド
|
|
2
|
-
|
|
3
|
-
このガイドでは、MichiでGitHub連携を行うために必要なPersonal Access Token (PAT)の作成方法を説明します。
|
|
4
|
-
|
|
5
|
-
## 目次
|
|
6
|
-
|
|
7
|
-
1. [トークンの種類](#1-トークンの種類)
|
|
8
|
-
2. [作成手順](#2-作成手順)
|
|
9
|
-
3. [必要な権限](#3-必要な権限)
|
|
10
|
-
4. [トークンの保存](#4-トークンの保存)
|
|
11
|
-
5. [セキュリティベストプラクティス](#5-セキュリティベストプラクティス)
|
|
12
|
-
6. [トラブルシューティング](#6-トラブルシューティング)
|
|
13
|
-
7. [参考リンク](#7-参考リンク)
|
|
14
|
-
|
|
15
|
-
## 1. トークンの種類
|
|
16
|
-
|
|
17
|
-
GitHubでは2種類のPersonal Access Tokenが利用可能です。
|
|
18
|
-
|
|
19
|
-
### Fine-grained tokens(推奨)
|
|
20
|
-
|
|
21
|
-
**特徴**:
|
|
22
|
-
- ✅ リポジトリ単位で権限を制御可能
|
|
23
|
-
- ✅ より細かいアクセス制御
|
|
24
|
-
- ✅ 有効期限を細かく設定可能
|
|
25
|
-
- ✅ セキュリティが高い
|
|
26
|
-
|
|
27
|
-
**デメリット**:
|
|
28
|
-
- 設定項目が多い
|
|
29
|
-
- リポジトリごとに設定が必要
|
|
30
|
-
|
|
31
|
-
### Tokens (classic)
|
|
32
|
-
|
|
33
|
-
**特徴**:
|
|
34
|
-
- ✅ シンプルな設定
|
|
35
|
-
- ✅ 全リポジトリに対する権限
|
|
36
|
-
- ✅ 既存ツールとの互換性が高い
|
|
37
|
-
|
|
38
|
-
**デメリット**:
|
|
39
|
-
- 権限の粒度が粗い
|
|
40
|
-
- リポジトリ単位の制御ができない
|
|
41
|
-
|
|
42
|
-
**推奨**: セキュリティ重視の場合は **Fine-grained tokens**、シンプルさ重視の場合は **Tokens (classic)** を選択してください。
|
|
43
|
-
|
|
44
|
-
## 2. 作成手順
|
|
45
|
-
|
|
46
|
-
### 2.1 Fine-grained tokensの作成
|
|
47
|
-
|
|
48
|
-
#### Step 1: GitHubにアクセス
|
|
49
|
-
|
|
50
|
-
1. [GitHub](https://github.com) にログイン
|
|
51
|
-
2. 右上のプロフィール写真をクリック
|
|
52
|
-
3. **Settings** を選択
|
|
53
|
-
|
|
54
|
-
#### Step 2: Developer settingsに移動
|
|
55
|
-
|
|
56
|
-
1. 左サイドバーの一番下にある **Developer settings** をクリック
|
|
57
|
-
2. 左サイドバーで **Personal access tokens** を展開
|
|
58
|
-
3. **Fine-grained tokens** を選択
|
|
59
|
-
|
|
60
|
-
#### Step 3: トークンを生成
|
|
61
|
-
|
|
62
|
-
1. **Generate new token** をクリック
|
|
63
|
-
2. 以下の項目を入力:
|
|
64
|
-
|
|
65
|
-
| 項目 | 設定値 | 説明 |
|
|
66
|
-
|------|--------|------|
|
|
67
|
-
| **Token name** | `michi-cli-automation` | トークンの識別名 |
|
|
68
|
-
| **Expiration** | `90 days` | 有効期限(推奨) |
|
|
69
|
-
| **Description** | (任意) | トークンの用途説明 |
|
|
70
|
-
| **Resource owner** | あなたのアカウント | トークンの所有者 |
|
|
71
|
-
|
|
72
|
-
3. **Repository access** を選択:
|
|
73
|
-
- **Only select repositories** を選択
|
|
74
|
-
- Michiを使用するリポジトリを選択
|
|
75
|
-
|
|
76
|
-
#### Step 4: 権限を設定
|
|
77
|
-
|
|
78
|
-
**Repository permissions** セクションで以下を設定:
|
|
79
|
-
|
|
80
|
-
| 権限 | アクセスレベル | 用途 |
|
|
81
|
-
|------|----------------|------|
|
|
82
|
-
| **Contents** | **Read and write** | ファイルの読み書き、ブランチ作成 |
|
|
83
|
-
| **Pull requests** | **Read and write** | PRの作成、更新、マージ |
|
|
84
|
-
| **Metadata** | **Read-only** | リポジトリ情報取得(自動選択) |
|
|
85
|
-
| **Issues** | Read and write(オプション) | Issue作成(JIRA連携時) |
|
|
86
|
-
| **Workflows** | Read and write(オプション) | GitHub Actions実行 |
|
|
87
|
-
|
|
88
|
-
#### Step 5: トークンを生成
|
|
89
|
-
|
|
90
|
-
1. ページ下部の **Generate token** をクリック
|
|
91
|
-
2. **トークンをコピー**
|
|
92
|
-
|
|
93
|
-
⚠️ **重要**: この画面を離れると二度と表示されません!必ずコピーして安全な場所に保存してください。
|
|
94
|
-
|
|
95
|
-
### 2.2 Tokens (classic)の作成
|
|
96
|
-
|
|
97
|
-
#### Step 1: GitHubにアクセス
|
|
98
|
-
|
|
99
|
-
1. [GitHub](https://github.com) にログイン
|
|
100
|
-
2. 右上のプロフィール写真をクリック
|
|
101
|
-
3. **Settings** を選択
|
|
102
|
-
|
|
103
|
-
#### Step 2: Developer settingsに移動
|
|
104
|
-
|
|
105
|
-
1. 左サイドバーの一番下にある **Developer settings** をクリック
|
|
106
|
-
2. 左サイドバーで **Personal access tokens** を展開
|
|
107
|
-
3. **Tokens (classic)** を選択
|
|
108
|
-
|
|
109
|
-
#### Step 3: トークンを生成
|
|
110
|
-
|
|
111
|
-
1. **Generate new token** → **Generate new token (classic)** をクリック
|
|
112
|
-
2. 以下の項目を入力:
|
|
113
|
-
|
|
114
|
-
| 項目 | 設定値 | 説明 |
|
|
115
|
-
|------|--------|------|
|
|
116
|
-
| **Note** | `michi-cli-automation` | トークンの識別名 |
|
|
117
|
-
| **Expiration** | `90 days` | 有効期限(推奨) |
|
|
118
|
-
|
|
119
|
-
#### Step 4: スコープを選択
|
|
120
|
-
|
|
121
|
-
**必須スコープ**:
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
✅ repo (Full control of private repositories)
|
|
125
|
-
├─ ✅ repo:status (Access commit status)
|
|
126
|
-
├─ ✅ repo_deployment (Access deployment status)
|
|
127
|
-
├─ ✅ public_repo (Access public repositories)
|
|
128
|
-
└─ ✅ repo:invite (Access repository invitations)
|
|
129
|
-
|
|
130
|
-
✅ workflow (Update GitHub Action workflows)
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**オプショナルスコープ**:
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
⬜ admin:org (組織管理者のみ)
|
|
137
|
-
⬜ notifications (通知管理が必要な場合)
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
#### Step 5: トークンを生成
|
|
141
|
-
|
|
142
|
-
1. ページ下部の **Generate token** をクリック
|
|
143
|
-
2. **トークンをコピー**
|
|
144
|
-
|
|
145
|
-
⚠️ **重要**: この画面を離れると二度と表示されません!
|
|
146
|
-
|
|
147
|
-
## 3. 必要な権限
|
|
148
|
-
|
|
149
|
-
### 3.1 Michiで必要な最小権限
|
|
150
|
-
|
|
151
|
-
| 権限 | Fine-grained | Classic | 説明 | 用途 |
|
|
152
|
-
|------|--------------|---------|------|------|
|
|
153
|
-
| Contents | Read and write | `repo` | ファイルの読み書き | ブランチ作成、コミット |
|
|
154
|
-
| Pull requests | Read and write | `repo` | PRの管理 | PR作成、更新、マージ |
|
|
155
|
-
| Metadata | Read-only | `repo` | リポジトリ情報 | 基本情報取得 |
|
|
156
|
-
|
|
157
|
-
### 3.2 推奨権限セット(フル機能利用)
|
|
158
|
-
|
|
159
|
-
| 権限 | Fine-grained | Classic | 説明 | 用途 |
|
|
160
|
-
|------|--------------|---------|------|------|
|
|
161
|
-
| Contents | Read and write | `repo` | ファイルの読み書き | ブランチ作成、コミット、ファイル変更 |
|
|
162
|
-
| Pull requests | Read and write | `repo` | PRの管理 | PR作成、更新、マージ、レビュー |
|
|
163
|
-
| Workflows | Read and write | `workflow` | GitHub Actions | CI/CD連携、ワークフロー実行 |
|
|
164
|
-
| Issues | Read and write | `repo` | Issueの管理 | Issue作成、ラベル管理(JIRA連携時) |
|
|
165
|
-
| Metadata | Read-only | `repo` | リポジトリ情報 | 基本情報取得(自動) |
|
|
166
|
-
|
|
167
|
-
### 3.3 権限の詳細説明
|
|
168
|
-
|
|
169
|
-
#### Contents: Read and write
|
|
170
|
-
|
|
171
|
-
**用途**:
|
|
172
|
-
- ブランチの作成
|
|
173
|
-
- ファイルのコミット
|
|
174
|
-
- ファイルの読み取り
|
|
175
|
-
|
|
176
|
-
**Michiでの使用例**:
|
|
177
|
-
```bash
|
|
178
|
-
# 機能ブランチの作成
|
|
179
|
-
git checkout -b feature/new-feature
|
|
180
|
-
|
|
181
|
-
# ファイルのコミット
|
|
182
|
-
git add .
|
|
183
|
-
git commit -m "feat: 新機能追加"
|
|
184
|
-
git push origin feature/new-feature
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
#### Pull requests: Read and write
|
|
188
|
-
|
|
189
|
-
**用途**:
|
|
190
|
-
- PRの作成
|
|
191
|
-
- PRの更新
|
|
192
|
-
- PRのマージ
|
|
193
|
-
- レビューの管理
|
|
194
|
-
|
|
195
|
-
**Michiでの使用例**:
|
|
196
|
-
```bash
|
|
197
|
-
# PR作成(GitHub CLI経由)
|
|
198
|
-
gh pr create --head feature/new-feature --base main \
|
|
199
|
-
--title "新機能追加" \
|
|
200
|
-
--body "詳細説明"
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
#### Workflows: Read and write
|
|
204
|
-
|
|
205
|
-
**用途**:
|
|
206
|
-
- GitHub Actionsの実行
|
|
207
|
-
- ワークフローファイルの更新
|
|
208
|
-
- CI/CD連携
|
|
209
|
-
|
|
210
|
-
**Michiでの使用例**:
|
|
211
|
-
- PR作成時に自動テスト実行
|
|
212
|
-
- CI/CDパイプラインの管理
|
|
213
|
-
|
|
214
|
-
## 4. トークンの保存
|
|
215
|
-
|
|
216
|
-
### 4.1 .envファイルに保存(推奨)
|
|
217
|
-
|
|
218
|
-
Michiプロジェクトの `.env` ファイルに保存します。
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
cd /path/to/your-project
|
|
222
|
-
|
|
223
|
-
# .env ファイルを編集
|
|
224
|
-
nano .env
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
以下の内容を追加:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# GitHub設定
|
|
231
|
-
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
232
|
-
GITHUB_ORG=your-organization # または your-username
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
> **Note (v0.5.0以降)**: `GITHUB_REPO` 環境変数は廃止されました。リポジトリ情報は `.kiro/project.json` の `repository` フィールドから自動的に取得されます。
|
|
236
|
-
|
|
237
|
-
**セキュリティ**:
|
|
238
|
-
```bash
|
|
239
|
-
# .env ファイルのパーミッションを600に設定
|
|
240
|
-
chmod 600 .env
|
|
241
|
-
|
|
242
|
-
# .gitignore に .env が含まれているか確認
|
|
243
|
-
cat .gitignore | grep .env
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### 4.2 環境変数として設定
|
|
247
|
-
|
|
248
|
-
#### macOS / Linux(一時的)
|
|
249
|
-
|
|
250
|
-
```bash
|
|
251
|
-
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
#### macOS / Linux(永続的)
|
|
255
|
-
|
|
256
|
-
`~/.zshrc` または `~/.bash_profile` に追加:
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
echo 'export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' >> ~/.zshrc
|
|
260
|
-
source ~/.zshrc
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
#### Windows(PowerShell)
|
|
264
|
-
|
|
265
|
-
```powershell
|
|
266
|
-
# 一時的
|
|
267
|
-
$env:GITHUB_TOKEN = "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
268
|
-
|
|
269
|
-
# 永続的
|
|
270
|
-
[System.Environment]::SetEnvironmentVariable('GITHUB_TOKEN', 'ghp_xxx...', 'User')
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### 4.3 トークンの検証
|
|
274
|
-
|
|
275
|
-
設定したトークンが正しく動作するか確認:
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
# 環境変数の確認
|
|
279
|
-
echo $GITHUB_TOKEN
|
|
280
|
-
|
|
281
|
-
# GitHub APIで検証
|
|
282
|
-
curl -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/user
|
|
283
|
-
|
|
284
|
-
# 成功時のレスポンス例
|
|
285
|
-
# {
|
|
286
|
-
# "login": "your-username",
|
|
287
|
-
# "id": 12345,
|
|
288
|
-
# ...
|
|
289
|
-
# }
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
## 5. セキュリティベストプラクティス
|
|
293
|
-
|
|
294
|
-
### 5.1 トークンの取り扱い
|
|
295
|
-
|
|
296
|
-
#### ✅ やるべきこと
|
|
297
|
-
|
|
298
|
-
- **`.env` ファイルに保存し、`.gitignore` に追加**
|
|
299
|
-
```bash
|
|
300
|
-
# .gitignore
|
|
301
|
-
.env
|
|
302
|
-
.env.local
|
|
303
|
-
.env.*.local
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
- **ファイルパーミッションを600に設定**
|
|
307
|
-
```bash
|
|
308
|
-
chmod 600 .env
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
- **定期的にトークンをローテーション**
|
|
312
|
-
- 推奨: 90日ごと
|
|
313
|
-
- 最大: 1年
|
|
314
|
-
|
|
315
|
-
- **権限の最小化**
|
|
316
|
-
- 必要な権限のみを付与
|
|
317
|
-
- Fine-grained tokensでリポジトリを限定
|
|
318
|
-
|
|
319
|
-
#### ❌ やってはいけないこと
|
|
320
|
-
|
|
321
|
-
- **コードにハードコード**
|
|
322
|
-
```javascript
|
|
323
|
-
// ❌ 絶対にダメ!
|
|
324
|
-
const token = "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
- **Gitにコミット**
|
|
328
|
-
```bash
|
|
329
|
-
# ❌ ダメ!
|
|
330
|
-
git add .env
|
|
331
|
-
git commit -m "環境変数追加"
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
- **公開リポジトリで使用**
|
|
335
|
-
- Secretsやenvファイルの扱いに十分注意
|
|
336
|
-
|
|
337
|
-
### 5.2 トークンの無効化
|
|
338
|
-
|
|
339
|
-
トークンが漏洩した疑いがある場合:
|
|
340
|
-
|
|
341
|
-
1. GitHub Settings → Developer settings → Personal access tokens
|
|
342
|
-
2. 該当トークンを選択
|
|
343
|
-
3. **Delete** または **Regenerate** をクリック
|
|
344
|
-
4. 新しいトークンを生成し、`.env` を更新
|
|
345
|
-
|
|
346
|
-
### 5.3 有効期限の設定
|
|
347
|
-
|
|
348
|
-
| 期間 | 推奨 | 用途 |
|
|
349
|
-
|------|------|------|
|
|
350
|
-
| 7日 | ⭐⭐⭐ | テスト・検証用 |
|
|
351
|
-
| 30日 | ⭐⭐⭐ | 短期プロジェクト |
|
|
352
|
-
| 90日 | ⭐⭐ | 通常の開発(推奨) |
|
|
353
|
-
| 1年 | ⭐ | 長期プロジェクト |
|
|
354
|
-
| 無期限 | ❌ | 避けるべき |
|
|
355
|
-
|
|
356
|
-
## 6. トラブルシューティング
|
|
357
|
-
|
|
358
|
-
### 6.1 `Bad credentials`
|
|
359
|
-
|
|
360
|
-
**エラーメッセージ**:
|
|
361
|
-
```
|
|
362
|
-
Error: Bad credentials
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
**原因**:
|
|
366
|
-
- トークンが無効または期限切れ
|
|
367
|
-
- トークンの形式が間違っている
|
|
368
|
-
- 環境変数が正しく設定されていない
|
|
369
|
-
|
|
370
|
-
**解決方法**:
|
|
371
|
-
|
|
372
|
-
1. トークンの有効期限を確認:
|
|
373
|
-
- GitHub Settings → Developer settings → Personal access tokens
|
|
374
|
-
- 該当トークンの "Expires" を確認
|
|
375
|
-
|
|
376
|
-
2. トークンを再生成:
|
|
377
|
-
- 期限切れの場合は新しいトークンを作成
|
|
378
|
-
- `.env` ファイルを更新
|
|
379
|
-
|
|
380
|
-
3. 環境変数を確認:
|
|
381
|
-
```bash
|
|
382
|
-
echo $GITHUB_TOKEN
|
|
383
|
-
# 正しいトークンが表示されるか確認
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
### 6.2 `Resource not accessible by integration`
|
|
387
|
-
|
|
388
|
-
**エラーメッセージ**:
|
|
389
|
-
```
|
|
390
|
-
Error: Resource not accessible by integration
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
**原因**:
|
|
394
|
-
- 権限が不足している
|
|
395
|
-
- リポジトリへのアクセス権がない
|
|
396
|
-
|
|
397
|
-
**解決方法**:
|
|
398
|
-
|
|
399
|
-
1. トークンの権限を確認:
|
|
400
|
-
- Fine-grained tokens: Repository permissions を確認
|
|
401
|
-
- Classic tokens: `repo` スコープが有効か確認
|
|
402
|
-
|
|
403
|
-
2. リポジトリアクセスを確認:
|
|
404
|
-
- Fine-grained tokens: Repository access で対象リポジトリが選択されているか確認
|
|
405
|
-
|
|
406
|
-
3. 必要に応じてトークンを再作成:
|
|
407
|
-
- 不足している権限を追加
|
|
408
|
-
- `.env` ファイルを更新
|
|
409
|
-
|
|
410
|
-
### 6.3 `API rate limit exceeded`
|
|
411
|
-
|
|
412
|
-
**エラーメッセージ**:
|
|
413
|
-
```
|
|
414
|
-
Error: API rate limit exceeded for user ID xxxxx
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
**原因**:
|
|
418
|
-
- API呼び出し制限に到達
|
|
419
|
-
- 認証済み: 5000 requests/hour
|
|
420
|
-
- 未認証: 60 requests/hour
|
|
421
|
-
|
|
422
|
-
**解決方法**:
|
|
423
|
-
|
|
424
|
-
1. レート制限を確認:
|
|
425
|
-
```bash
|
|
426
|
-
curl -H "Authorization: token $GITHUB_TOKEN" \
|
|
427
|
-
https://api.github.com/rate_limit
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
2. リセット時刻を確認:
|
|
431
|
-
```json
|
|
432
|
-
{
|
|
433
|
-
"rate": {
|
|
434
|
-
"limit": 5000,
|
|
435
|
-
"remaining": 0,
|
|
436
|
-
"reset": 1234567890 // Unix timestamp
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
3. 対処法:
|
|
442
|
-
- リセット時刻まで待つ
|
|
443
|
-
- API呼び出しを減らす
|
|
444
|
-
- キャッシュを活用する
|
|
445
|
-
|
|
446
|
-
### 6.4 トークンが表示されない
|
|
447
|
-
|
|
448
|
-
**症状**:
|
|
449
|
-
- トークン生成後、画面を離れてトークンが見えなくなった
|
|
450
|
-
|
|
451
|
-
**解決方法**:
|
|
452
|
-
|
|
453
|
-
1. **トークンは再表示できません**
|
|
454
|
-
2. 新しいトークンを生成:
|
|
455
|
-
- Generate new token で新規作成
|
|
456
|
-
- 古いトークンは削除
|
|
457
|
-
|
|
458
|
-
### 6.5 Michiで認識されない
|
|
459
|
-
|
|
460
|
-
**症状**:
|
|
461
|
-
```bash
|
|
462
|
-
npx @sk8metal/michi-cli setup-existing --cursor
|
|
463
|
-
# GitHub設定でエラー
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
**解決方法**:
|
|
467
|
-
|
|
468
|
-
1. `.env` ファイルの場所を確認:
|
|
469
|
-
```bash
|
|
470
|
-
pwd
|
|
471
|
-
ls -la .env
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
2. `.env` の内容を確認:
|
|
475
|
-
```bash
|
|
476
|
-
cat .env | grep GITHUB_TOKEN
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
3. パーミッションを確認:
|
|
480
|
-
```bash
|
|
481
|
-
ls -l .env
|
|
482
|
-
# -rw------- 1 user group ... .env (600)
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
4. Michiを再実行:
|
|
486
|
-
```bash
|
|
487
|
-
npx @sk8metal/michi-cli setup-existing --cursor --lang ja
|
|
488
|
-
```
|
|
489
|
-
|
|
490
|
-
## 7. 参考リンク
|
|
491
|
-
|
|
492
|
-
### GitHub公式ドキュメント
|
|
493
|
-
|
|
494
|
-
- [Personal Access Tokens (classic)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic)
|
|
495
|
-
- [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)
|
|
496
|
-
- [GitHub API Rate Limiting](https://docs.github.com/en/rest/overview/rate-limits-for-the-rest-api)
|
|
497
|
-
- [GitHub Token Permissions](https://docs.github.com/en/rest/overview/permissions-required-for-fine-grained-personal-access-tokens)
|
|
498
|
-
|
|
499
|
-
### Michi関連ドキュメント
|
|
500
|
-
|
|
501
|
-
- [セットアップガイド](./setup.md)
|
|
502
|
-
- [クイックスタート](./quick-start.md)
|
|
503
|
-
- [トラブルシューティング](../hands-on/troubleshooting.md)
|
|
504
|
-
- [Michiメインドキュメント](../../README.md)
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
**次のステップ**: トークンを作成したら、[セットアップガイド](./setup.md)に戻って環境変数の設定を完了してください。
|
|
509
|
-
|
|
510
|
-
|