🐧

GitHub Issue Templates をエディタで自由に並べ替える

に公開

GitHub Issue Templates をエディタで自由に並べ替えるためのツールを作りました。

https://github.com/suzuki-shunsuke/sort-issue-template

GitHub Issue Templates を選択するページで、 template を並べ替えたいって思うことがあるかと思います。

e.g. https://github.com/aquaproj/aqua/issues/new/choose

template の並びはファイル名の辞書順です。
なので並びを変えるにはファイル名を変える必要があります。
公式ドキュメントでも、 01-feature.yml のようにファイル名の先頭に数字をつける方法が紹介されています。

https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#changing-the-order-of-templates

ですが、この数字をつけたり変更したりするのは地味に面倒な作業です。
例えば、 01-* から 10-* まであってあとから 06-* と 07-* の間に template を追加したいとなったら、 07-* 以降を全部リネームする必要が出てきます。

そこでこのリネーム作業をエディタを使ってファイル名を並び替えるだけで簡単に行えるツールを作りました。
使い方は簡単で、リポジトリ直下でコマンドを実行するだけです。

sort-issue-template

すると template 名が書かれた一時ファイルが開きます。
ファイル名を表示したい順に好きに並び替えてから変更を保存し、ファイルを閉じます。
すると template が指定した並びで表示されるよう、 template 名に数字の prefix がつけられたり prefix が変更されたりします。
あとはその変更をコミットして default branch に反映すると templates の並びが変更されます。

以下は簡単な補足です。

エディタを変更したい

デフォルトでは vi が起動します。
環境変数 EDITOR かコマンドラインオプション -editor で変更できます。

ファイル名を変えるのを止めたい

sort-issue-template を実行してエディタが開いたあとにやっぱり変更するのを止めたいということはあると思います。
その場合、全行を削除してファイルを保存して閉じてください。そうするとファイル名は変更されません。

プレフィックスの区切り文字 - を変えたい

区切り文字は -separator option で変更できます。
separator は正規表現 [-_.]+ にマッチしなければなりません。
正規表現 ^(\d+)[-_.]+ を使用して現在のファイル名から数字と区切り文字を取得しています。

ファイル名を書き換えないでください

エディタ上では行を並び替えることだけを想定しています。
エディタ上でファイル名を書き換えたりすることは想定していないのでやらないでください。

Discussion