GitHub Projectボードに既存のIssueを追加してみた

2022.01.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

DevelopersIOのブログネタの管理にGitHubのIssueを使っているのですが、最近ネタのストックが多くなりすぎて整理整頓が大変になってきたので、ネタ(Issue)の優先順位付けや分類を簡単にできるようにGitHub Projectを使ってみることにしました。

今回は、その準備として、GitHub Projectボードに既存のIssueを追加する方法を確認してみました。

GitHub APIでは出来なかった

さて、既存のIssueをGitHub Projectで使うためには、ProjectのボードにIssueを追加する必要があります。

しかし追加対象としたい既存のIssueの数がとても多いため、手動ではなく可能な限りGitHub APIをコマンドから使用して追加操作を行いたいです。

というわけでGitHubのAPIドキュメントを見てみたのですが、「Issues API」および「Projects API」のいずれでもAPIでProjectのボードにIssueを追加する方法が見当たりませんでした。

例えばIssues APIの「Update an issue」の記述を見ても、Projectに関するパラメータは見当たりません。

よって少なくともオープンなAPIとしては、ProjectのボードにIssueを追加する方法は提供されていないようです。

GitHubのコンソールからは出来た

仕方がないのでGitHubのコンソールからIssueを追加することにします。次の2つの方法がありました。

  • Projectボード側から追加
  • Issue側から追加

Projectボード側から追加

追加したいIssue数が多ければ、多分こちらの方法の方が早いです。

追加先のProjectボードのコンソールを開いたら、画面右上の[Menu]をクリック。

[+]をクリック。

検索欄でis:open is:issueと検索すると、Opne状態でPull RequestでないIssueのカード一覧が結果に表示されました。

この一覧からカードを追加先の列にドラッグ&ドロップすれば追加できます!

注意点として、Issue検索時にis:issueを指定するとPull Request自体ではなくPull RequestがリンクされたIssueも検索対象外になるようです。

以下はIssuesの画面ですが、Pull Requestがリンクされた上2つのIssueは先程の検索結果一覧には表示されていませんでした。

今回は逆にこの方が都合が良かった(Pull RequestがリンクされたIssueは執筆中か投稿済みのため)のですが、少し注意が要りそうです。

Issue側から追加

次にIssue側のコンソールから追加したい場合です。

対象のIssueを開き、[Projects]の歯車をクリックし、追加先のProjectを選択します。

すると追加は出来たのですが、まだどの列にもトリアージ(Triage)されていない状態(Awaiting triage)となります。

[Awaiting triage]を開いて、追加先の列を選択します。

Projectのボード側を見るとちゃんとIssueが対象の列内に追加されていますね!(しかし追加位置は指定できないようです)

おわりに

GitHub Projectボードに既存のIssueを追加する方法を確認してみました。

とりあえず「Projectボード側から追加」する方法を今回は採用してみたいと思います。優先順位を予め明確化しておけば「今日はどのネタをブログに起こそうか…」と悩むことも無くなりそうです!

以上