Syu fu's blog

gh-dot-tmplを作った

githubcli

gh-dot-tmplというGitHub CLI拡張を作りました。
.github以下のファイルのテンプレートをあらかじめ作成しておき、選択したものを現在のリポジトリの.githubフォルダ配下にコピーするだけのコマンドです。
なにかを作る際、新しくリポジトリを作成した後に他の自分のリポジトリから.githubフォルダの中身をコピーする作業が多かったので、その作業をやめるために作成しました。

インストール方法

動作にはghが必要です。 以下のコマンドでインストール可能です。

gh extension install Syu-fu/dot-tmpl

アップデートの際は以下のコマンドを実行します。

gh extension upgrade dot-tmpl

使い方

以下のようなコンフィグファイルを$XDG_CONFIG_HOME/gh-dot-tmpl/config.yamlに配置します。 テンプレートファイルも同時に用意してください。

templates:
  issue:
    template_file: ~/.config/gh-dot-tmpl/template/issue.md
    output_file: .github/ISSUE_TEMPLATE.md
  pr:
    template_file: ~/.config/gh-dot-tmpl/template/pullrequest.md
    output_file: .github/PULL_REQUEST_TEMPLATE.md

この後、適用するリポジトリ内で以下のコマンドを実行します。

gh dot-tmpl issue pr

するとリポジトリの.githubフォルダ内にISSUE_TEMPLATE.mdPULL_REQUEST_TEMPLATE.mdが作成されます。

その他細かい機能についてはREADME.mdを参照してください。

ライセンスチェック

これを作っている最中にライセンスチェックもCIに含めたかったのでgo-licensesをGitHub Actionsで簡単に使えるgo-licensesを作ってみました。
こちらは以下のように呼び出せばライセンスの違反を確認できるようにしてあります。

~/.config/gh-dot-tmpl/config.yaml
jobs:
  license-check:
    runs-on: ubuntu-latest
    name: license check
    steps:
      - uses: actions/checkout@v4.1.7

      - uses: Syu-fu/go-licenses@v0.1.0

終わりに

今回は開発を快適に進めるため、CI/CDに力を入れて開発してみましたがリポジトリをきれいに保ちやすく、ライブラリの更新も楽なので他のプロジェクトに対しても適用していきたいです。
同じファイルがあるとき強制的に上書きされてしまったり、コンフィグファイルの拡張子が固定されていたりとまだ課題は残っていますが割ときれいに作れたので良ければ使ってみてください。