これは KOBA789 日記 Advent Calendar 2021 - Adventar 21日目の記事です。
GitHub Projects (beta)
みなさん GitHub Projects (beta) は使っていますか? 私はめっちゃ使っています。
しかし beta ということもあってまだまだ使いづらかったり機能が足らなかったりすることがありますよね?
マウスでポチポチしながら、SQL で操作できたらラクなのになぁと妄想したりもします。というわけで作りました。
ghsql
GitHub Projects (beta) のデータを SQL でクエリ・更新できるツールを作りました。SELECT はもちろん、UPDATE や DELETE もできます(INSERT は未実装)。
インストール
まだ crates.io とかには公開してないので、git clone
して cargo install --path .
してください。
使い方
Personal Access Token や Installation Access Token などを環境変数 GITHUB_TOKEN
に設定してください。
コマンドの引数は以下の通りです。
USAGE: ghsql <OWNER> <PROJECT_NUMBER> --github-token <github-token>
SQL の例
テーブル名は items
固定です。
とりあえず全部列挙:
SELECT * FROM items;
もちろん件数も数えられる:
SELECT count(*) FROM items;
Status
が In Progress
なやつだけ列挙:
SELECT * FROM items WHERE Status = 'In Progress';
リポジトリと Issue 番号を指定して Status
を Done
に更新:
UPDATE items SET Status = 'Done' WHERE Repository = 'owner/repo' AND Issue = 123;
Status
が Done
なアイテムを全部削除:
DELETE FROM items WHERE Status = 'Done';
もちろん、Iteration にも対応しています。
今イテレーション(Iteration 10)の積み残しを全部次のイテレーション(Iteration 11)に持ち越し:
UPDATE items SET Iteration = 'Iteration 11' WHERE Iteration = 'Iteration 10';
その他
思いついた勢いで一気に作ったので、気合いでごり押した設計と実装になっています。
終わりに
もうアドベントカレンダーも終盤じゃん。そろそろ書かなくていいかな。