GitHub issueからブログ記事を作成しPRを作成します
GitHub issueに記載されたブログ記事リクエストを処理し、記事を作成してPRを作成します。
以下のコマンドで blog-request ラベルが付いたオープンなissueを全て取得します:
gh issue list --label blog-request --state open --json number,title,body
取得したissueが0件の場合は「処理対象のissueがありません」と報告して終了します。
オプション: ユーザーが特定のissue番号を指定した場合は、そのissueのみを処理します。
取得した各issueに対して、以下の処理を順番に実行します:
issueから以下の情報を抽出します:
titleフィールド)をそのまま使用### slug セクションの内容### タグ セクションの内容(カンマ区切り)### 資料のタイトル セクションの内容(任意)### 資料のURL セクションの内容### 感想・学び セクションの内容重要: 各issueのブランチは必ずmainブランチから派生させます。複数のissueを処理する場合も、毎回mainブランチに戻ってから新しいブランチを作成してください。
git checkout main
git pull origin main
git checkout -b blog/issue-<issue番号>
以下の形式でファイルを作成します:
blog/YYYY/MM-DD-<slug>/index.mdYYYY は現在の年MM-DD は現在の月日slug はissueから取得した値ファイル内容:
---
slug: /<slug>
title: <ブログ記事のタイトル>
authors: yumechi
tags: [<タグをカンマ区切りで>]
---
<資料の簡単な紹介文を1-2文で生成>
<!-- truncate -->
## 資料リンク
- [<資料のタイトル>](<資料のURL>)
※資料のタイトルが空の場合はURLをそのままリンクテキストとして使用
## 感想・学び
<感想・学びの内容>
git add blog/
git commit -m "feat: <ブログ記事のタイトル>の記事を追加
Closes #<issue番号>"
git push -u origin blog/issue-<issue番号>
PRタイトルはissueの title フィールドをそのまま使用します(資料タイトルではなく、issueタイトル)。
gh pr create --title "feat: <issueのtitleフィールド>" --body "## Summary
- issueに基づいてブログ記事を作成しました
## Related Issue
Closes #<issue番号>
---
Generated with Claude Code"
全てのissueの処理が完了したら、必ずmainブランチに戻ります:
git checkout main
ユーザーに以下を報告します:
-)が含まれていた場合は、アンダースコア(_)に置換してから使用する(例: react-hooks → react_hooks)。frontmatter の slug と記事ディレクトリ名の <slug> 部分の両方に補正後の値を使うこと[] を設定~)のエスケープ: タイトルや本文にASCIIチルダ ~ が含まれる場合、markdownの打消し線として解釈されるのを防ぐため以下の対応を行う:title: ダブルクォートで囲む(例: title: "タイトル~サブタイトル~")~ を \~ にエスケープする〜(U+301C)は対象外(markdownで打消し線にならない)