fix(コミネコ): schedule YAMLバグを修正しREADMEを更新
Made-with: Cursor
This commit is contained in:
parent
c872debe4b
commit
f5eac097b2
@ -307,8 +307,7 @@ node .claude/skills/slack-formatting/scripts/post-report.js \
|
||||
**このスクリプトが行うこと:**
|
||||
- ✅ 複数画像を1メッセージにまとめて投稿
|
||||
- ✅ チャンネルに直接投稿(スレッドではない)
|
||||
- ✅ 環境変数 `SLACK_CHANNEL` からチャンネルIDを取得
|
||||
- ✅ 未設定の場合はデバッグチャンネル `YOUR_DEBUG_CHANNEL_ID` に投稿
|
||||
- ✅ 環境変数 `SLACK_CHANNEL` からチャンネルIDを取得(必須)
|
||||
|
||||
## 注意事項
|
||||
|
||||
|
||||
@ -44,9 +44,7 @@ node .claude/skills/slack-formatting/scripts/post-report.js \
|
||||
| 環境変数 | 用途 | 必須 |
|
||||
|----------|------|------|
|
||||
| `SLACK_BOT_TOKEN` | Bot User OAuth Token | ✅ |
|
||||
| `SLACK_CHANNEL` | 投稿先チャンネルID | ※未設定時はデバッグチャンネル |
|
||||
|
||||
**デバッグ用チャンネル**: `YOUR_DEBUG_CHANNEL_ID`
|
||||
| `SLACK_CHANNEL` | 投稿先チャンネルID | 必須 |
|
||||
|
||||
### スクリプトが行うこと
|
||||
|
||||
|
||||
@ -24,7 +24,6 @@ const https = require('https');
|
||||
// 環境変数(SLACK_CHANNEL または SLACK_CHANNEL_ID をサポート)
|
||||
const SLACK_TOKEN = process.env.SLACK_BOT_TOKEN;
|
||||
const CHANNEL_ID = process.env.SLACK_CHANNEL || process.env.SLACK_CHANNEL_ID;
|
||||
const DEBUG_CHANNEL = 'YOUR_DEBUG_CHANNEL_ID';
|
||||
|
||||
// ========================================
|
||||
// ログ出力(原因特定用)
|
||||
@ -146,7 +145,7 @@ async function completeUpload(fileIds, message, channelId) {
|
||||
// メイン処理
|
||||
// ========================================
|
||||
async function postReport(imagePaths, message) {
|
||||
const channelId = CHANNEL_ID || DEBUG_CHANNEL;
|
||||
const channelId = CHANNEL_ID;
|
||||
|
||||
logSection('SLACK投稿開始');
|
||||
log(`投稿先チャンネル: ${channelId}`);
|
||||
@ -215,7 +214,8 @@ async function main() {
|
||||
}
|
||||
|
||||
if (!CHANNEL_ID) {
|
||||
log(`警告: SLACK_CHANNEL が未設定のため、デバッグチャンネル (${DEBUG_CHANNEL}) に投稿します`);
|
||||
console.error('エラー: SLACK_CHANNEL(または SLACK_CHANNEL_ID)環境変数が必要です');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// 引数パース
|
||||
|
||||
10
.github/workflows/daily-report.yml
vendored
10
.github/workflows/daily-report.yml
vendored
@ -1,20 +1,15 @@
|
||||
name: Daily Commit Report
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# - cron: '0 22 * * *' # 毎日7:00 JST(有効にするにはコメントを外す)
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
debug:
|
||||
description: 'デバッグモード(テスト用チャンネルに投稿)'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
target_date:
|
||||
description: '対象日(YYYY-MM-DD、省略時は前日)'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
# schedule:
|
||||
# - cron: '0 22 * * *' # 毎日7:00 JST(有効にするにはコメントを外す)
|
||||
|
||||
jobs:
|
||||
report:
|
||||
@ -22,7 +17,6 @@ jobs:
|
||||
with:
|
||||
project_name: your-project
|
||||
config_file: configs/projects/your-project.yml
|
||||
debug_channel: ${{ github.event.inputs.debug == 'true' && 'YOUR_DEBUG_CHANNEL_ID' || '' }}
|
||||
target_date: ${{ github.event.inputs.target_date }}
|
||||
secrets:
|
||||
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
|
||||
11
.github/workflows/report-job.yml
vendored
11
.github/workflows/report-job.yml
vendored
@ -11,11 +11,6 @@ on:
|
||||
description: '設定ファイルパス'
|
||||
required: true
|
||||
type: string
|
||||
debug_channel:
|
||||
description: 'デバッグ用チャンネルID(指定時はこちらに投稿)'
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
target_date:
|
||||
description: '対象日(YYYY-MM-DD形式、省略時は前日)'
|
||||
required: false
|
||||
@ -82,7 +77,7 @@ jobs:
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
||||
SLACK_CHANNEL: ${{ inputs.debug_channel != '' && inputs.debug_channel || secrets.SLACK_CHANNEL }}
|
||||
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
|
||||
TARGET_DATE: ${{ inputs.target_date }}
|
||||
|
||||
- name: Notify failure to Slack
|
||||
@ -112,9 +107,9 @@ jobs:
|
||||
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"channel": "'"${SLACK_CHANNEL:-YOUR_DEBUG_CHANNEL_ID}"'",
|
||||
"channel": "'"${SLACK_CHANNEL}"'",
|
||||
"text": ":x: *コミネコ エラー発生*\n\nプロジェクト: ${{ inputs.project_name }}\n失敗箇所: '"$FAILED_STEP"'\nワークフロー実行: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|詳細を確認>"
|
||||
}'
|
||||
env:
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
||||
SLACK_CHANNEL: ${{ inputs.debug_channel != '' && inputs.debug_channel || secrets.SLACK_CHANNEL }}
|
||||
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }}
|
||||
|
||||
147
README.md
147
README.md
@ -2,6 +2,8 @@
|
||||
|
||||
GitHubのコミットをAIで分析し、図解レポートをSlackに自動投稿するツールです。愛称は「コミネコ」。
|
||||
|
||||
このツールは GitHub のコミット履歴を分析してレポートを生成します。**Git でコミットする運用が前提**で、Google ドライブやローカル保存など他の方法では使えません。
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ 📊 昨日の開発レポート 2026-01-15 │
|
||||
@ -22,6 +24,30 @@ Slackにはこのような図解レポートの画像が毎朝届きます。
|
||||
|
||||
---
|
||||
|
||||
## 全体像
|
||||
|
||||
セットアップに入る前に、全体の構成を把握してください。
|
||||
|
||||
```
|
||||
あなたの GitHub アカウント
|
||||
├── commit-report-tool ← このツール本体(GitHub Actions が毎朝動く)
|
||||
└── your-project ← 監視対象(あなたが開発しているリポジトリ)
|
||||
```
|
||||
|
||||
この2つのリポジトリと、3つの外部サービスを組み合わせて動きます。
|
||||
|
||||
```
|
||||
commit-report-tool(GitHub Actions)
|
||||
│
|
||||
├→ GitHub API で your-project のコミットを取得
|
||||
├→ Claude API(Anthropic)でコミットを分析・図解生成
|
||||
└→ Slack API で図解レポートの画像を投稿
|
||||
```
|
||||
|
||||
セットアップでは「ツール本体を GitHub に置く → 監視対象を設定する → 3つのAPIキーを登録する → 実行」の順に進めます。
|
||||
|
||||
---
|
||||
|
||||
## 料金について
|
||||
|
||||
このツールで使う外部サービスの料金です。
|
||||
@ -30,7 +56,7 @@ Slackにはこのような図解レポートの画像が毎朝届きます。
|
||||
|---|---|---|
|
||||
| GitHub Actions | 定期実行(トリガー) | 毎月 2,000 分無料 |
|
||||
| GitHub API | コミットデータ取得 | 無料(5,000 リクエスト/時) |
|
||||
| Claude API | AIによる分析・図解生成 | 従量課金(1回あたり約 $0.05〜0.20) |
|
||||
| Claude API | AIによる分析・図解生成 | 事前チャージ制・従量課金(1回あたり約 $0.05〜0.20、$5 で約25〜100回分) |
|
||||
| Slack | レポート画像の通知先 | 無料ワークスペースで可 |
|
||||
|
||||
---
|
||||
@ -42,7 +68,7 @@ Slackにはこのような図解レポートの画像が毎朝届きます。
|
||||
```
|
||||
┌─────────────┐
|
||||
│ トリガー │ .github/workflows/daily-report.yml
|
||||
│ (いつ動く) │ → 毎朝7時 or 手動実行
|
||||
│ (いつ動く) │ → 手動実行(定期実行はカスタマイズで有効化)
|
||||
└──────┬──────┘
|
||||
▼
|
||||
┌─────────────┐
|
||||
@ -94,20 +120,53 @@ configs/
|
||||
|
||||
## セットアップ
|
||||
|
||||
### 前提
|
||||
### 準備するもの
|
||||
|
||||
- **GitHub アカウント**と監視したいリポジトリが必要です
|
||||
- **Slack ワークスペース**が必要です(無料プランで可)
|
||||
- このツールは GitHub Actions が全自動で実行します。あなたのPCで `npm install` を実行する必要はありません
|
||||
- **GitHub アカウント**
|
||||
- **Slack ワークスペース**(無料プランで可)
|
||||
- **Anthropic Console のアカウント + クレジットチャージ済み**(後述の Part D で使います)
|
||||
|
||||
### Part A: リポジトリを準備する
|
||||
Anthropic Console(https://console.anthropic.com/)でアカウントを作成し、Billing(https://console.anthropic.com/settings/billing)で **$5 以上チャージ** しておいてください。チャージしないとツールが動きません。
|
||||
|
||||
1. このリポジトリを自分の GitHub アカウントにフォーク(またはコピー)する
|
||||
2. **リポジトリは Private にしてください**(APIキーなどの設定を含むため)
|
||||
> このツールは GitHub Actions が全自動で実行します。あなたのPCで `npm install` を実行する必要はありません。
|
||||
|
||||
### Part B: リポジトリの情報を設定する
|
||||
### Part A: ツール本体を GitHub に置く
|
||||
|
||||
**まず2行だけ書き換えてください。** 残りはそのままで動きます。
|
||||
このツールのコードを、あなたの GitHub アカウントにアップロードします。
|
||||
|
||||
#### 手順1: GitHub に新しいリポジトリを作る
|
||||
|
||||
1. https://github.com/new にアクセス
|
||||
2. **Repository name** に `commit-report-tool` と入力
|
||||
3. **Private** を選択(APIキーの設定を含むため、必ず Private にしてください)
|
||||
4. 「Add a README file」のチェックは**外したまま**にする
|
||||
5. 「Create repository」をクリック
|
||||
|
||||
#### 手順2: コードを GitHub にアップロードする
|
||||
|
||||
Cursor で AI に以下のように依頼してください:
|
||||
|
||||
> 「このコードを GitHub にpushして。リポジトリは `あなたのユーザー名/commit-report-tool` です」
|
||||
|
||||
AI が `git remote add` と `git push` を実行してくれます。完了したら GitHub のリポジトリページを開いて、ファイルが表示されていることを確認してください。
|
||||
|
||||
### Part B: 監視対象のリポジトリを設定する
|
||||
|
||||
レポートの対象にしたいリポジトリの情報を設定します。
|
||||
|
||||
#### 監視対象のリポジトリがまだない場合
|
||||
|
||||
GitHub で新しいリポジトリを作ってください。
|
||||
|
||||
1. https://github.com/new にアクセス
|
||||
2. **Repository name** に好きな名前を入力(例: `my-web-app`)
|
||||
3. **Private** を選択
|
||||
4. **「Add a README file」にチェックを入れる** — コミットが1件もないとレポートを生成できないため、最初のコミットを自動で作ります
|
||||
5. 「Create repository」をクリック
|
||||
|
||||
#### 設定ファイルを書き換える
|
||||
|
||||
**2行だけ書き換えてください。** 残りはそのままで動きます。
|
||||
|
||||
`configs/repos/your-repo.yml` を開いて:
|
||||
|
||||
@ -117,6 +176,8 @@ repository:
|
||||
name: your-web-app # ← ここを監視したいリポジトリ名に
|
||||
```
|
||||
|
||||
GitHubのURL が `https://github.com/yamada-taro/my-app` であれば、`owner` は `yamada-taro`、`name` は `my-app` です。
|
||||
|
||||
これだけでリポジトリ全体のコミットがレポート対象になります。
|
||||
アプリ別の分類が必要な場合は「カスタマイズ」セクションで設定します。
|
||||
|
||||
@ -134,14 +195,38 @@ repository:
|
||||
|
||||
### Part D: GitHub Secrets を設定する
|
||||
|
||||
リポジトリの Settings → Secrets and variables → Actions → New repository secret で以下を登録:
|
||||
4つのシークレットを取得して、GitHub に登録します。各キーは**取得したらすぐメモ帳に貼り付けてください。画面を閉じると二度と表示されないものがあります。**
|
||||
|
||||
| Secret名 | 値 |
|
||||
|---|---|
|
||||
| `ANTHROPIC_API_KEY` | Claude API キー(https://console.anthropic.com/ で取得) |
|
||||
| `GH_TOKEN` | GitHub Personal Access Token(repo スコープ) |
|
||||
| `SLACK_BOT_TOKEN` | Part C でコピーした Bot User OAuth Token |
|
||||
| `SLACK_CHANNEL` | Part C で確認したチャンネルID |
|
||||
GitHub Secrets の登録先: リポジトリの Settings → Secrets and variables → Actions → New repository secret
|
||||
|
||||
#### Secret 1: `ANTHROPIC_API_KEY`(Claude API キー)
|
||||
|
||||
> **注意**: 普段使っている Claude.ai(チャット画面)と Anthropic Console(API管理画面)は別のサービスです。APIキーの取得は console.anthropic.com で行います。Claude.ai の有料プランに加入していても、API利用料は別途チャージが必要です。
|
||||
|
||||
1. https://console.anthropic.com/settings/keys にアクセス
|
||||
2. 「Create Key」をクリック → 名前(例: `komineko`)を入力して作成
|
||||
3. 表示された `sk-ant-...` で始まるキーを**メモ帳に貼り付けて保存**
|
||||
4. GitHub Secrets に `ANTHROPIC_API_KEY` として登録
|
||||
|
||||
> 「準備するもの」でチャージ済みですか?まだの場合は https://console.anthropic.com/settings/billing で $5 以上チャージしてください。チャージしないとツール実行時にエラーになります。
|
||||
|
||||
#### Secret 2: `GH_TOKEN`(GitHub Personal Access Token)
|
||||
|
||||
1. https://github.com/settings/tokens/new にアクセス
|
||||
2. **Note** に `komineko` と入力
|
||||
3. **Expiration** は `90 days` でOK
|
||||
4. **Select scopes** で **`repo`** にチェック(リポジトリのスコープ。一番上にあります)
|
||||
5. 「Generate token」をクリック
|
||||
6. 表示された `ghp_...` で始まるトークンを**メモ帳に貼り付けて保存**
|
||||
7. GitHub Secrets に `GH_TOKEN` として登録
|
||||
|
||||
#### Secret 3: `SLACK_BOT_TOKEN`
|
||||
|
||||
Part C でコピーした Bot User OAuth Token(`xoxb-` で始まる文字列)を GitHub Secrets に `SLACK_BOT_TOKEN` として登録してください。
|
||||
|
||||
#### Secret 4: `SLACK_CHANNEL`
|
||||
|
||||
Part C で確認したチャンネルID(`C` で始まる文字列)を GitHub Secrets に `SLACK_CHANNEL` として登録してください。
|
||||
|
||||
### Part E: ローカル検証(オプション)
|
||||
|
||||
@ -163,10 +248,13 @@ node .claude/skills/github-api/scripts/get-commits.js あなたのユーザー
|
||||
|
||||
### Part F: GitHub Actions を実行する
|
||||
|
||||
1. リポジトリの「Actions」タブを開く
|
||||
2. 左メニューから「Daily Commit Report」を選択
|
||||
3. 「Run workflow」→「Run workflow」をクリック
|
||||
4. 数分待つと Slack にレポートが届きます
|
||||
1. リポジトリの「**Actions**」タブを開く
|
||||
2. **左サイドバー**から「**Daily Commit Report**」(または `.github/workflows/daily-report.yml`)をクリック
|
||||
3. 画面**右上**の「**Run workflow**」ボタンをクリック → ドロップダウンが開くので、緑の「**Run workflow**」ボタンをクリック
|
||||
4. 黄色(実行中)の表示が出たら、数分待ってください
|
||||
5. 緑(成功)になったら Slack にレポートが届きます
|
||||
|
||||
> 過去に失敗した実行が赤く表示されていることがありますが、それは古い記録です。新しく「Run workflow」で実行すれば問題ありません。
|
||||
|
||||
### チェックポイント
|
||||
|
||||
@ -233,14 +321,22 @@ apps:
|
||||
|
||||
### 定期実行を有効にする
|
||||
|
||||
`.github/workflows/daily-report.yml` の cron 行のコメントを外す:
|
||||
`.github/workflows/daily-report.yml` の `schedule` ブロック(2行)のコメントを外す:
|
||||
|
||||
変更前:
|
||||
```yaml
|
||||
# schedule:
|
||||
# - cron: '0 22 * * *' # 毎日7:00 JST(有効にするにはコメントを外す)
|
||||
```
|
||||
|
||||
変更後:
|
||||
```yaml
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 22 * * *' # 毎日7:00 JST
|
||||
```
|
||||
|
||||
`# ` を削除するとき、**先頭のスペース(インデント)はそのまま残してください**。`schedule:` の前にスペース2つ、`- cron:` の前にスペース4つが必要です。時刻は UTC で指定します(`0 22 * * *` = 日本時間 翌7:00)。
|
||||
|
||||
### ワンポイントTIPSを無効にする
|
||||
|
||||
`configs/projects/your-project.yml`:
|
||||
@ -270,6 +366,9 @@ tips:
|
||||
1. **まずAIに聞く**: Cursorで「セットアップで〇〇のエラーが出ました」と伝えてください
|
||||
2. **GitHub Actions のログを確認**: Actions タブ → 失敗したジョブ → ログを読む
|
||||
3. **よくある問題**:
|
||||
- 「**Credit balance is too low**」→ Anthropic Console(https://console.anthropic.com/settings/billing)でクレジットをチャージする。APIキーがあってもチャージしないと動きません
|
||||
- 「**404 エラー**で Secrets の設定ページが開けない」→ ツール本体のリポジトリが GitHub に push されていない可能性があります。Part A を確認してください
|
||||
- 「**Actions 画面がずっと赤い**」→ 過去の失敗記録が残っているだけです。新しく「Run workflow」で実行してください
|
||||
- 「コミットがない」→ 対象日のコミットがないか、リポジトリ名が間違っている
|
||||
- 「not_authed」→ SLACK_BOT_TOKEN が間違っているか期限切れ
|
||||
- 「Bad credentials」→ GH_TOKEN が間違っているか期限切れ
|
||||
|
||||
Loading…
Reference in New Issue
Block a user