GitHub ActionsからGitHub wikiを更新する

GitHub ActionsからGitHub wikiを更新したいことがたまにあります。たとえば、何かのメトリクスを見やすく整形したものなど、repositoryのデータを何らかの形で加工したドキュメントを作りたいときです。コード生成したmarkdownドキュメントをコミットしてもいいですが、それよりはシンプルで運用が楽です。

今回は、GitHub repoで管理する原稿の文字数(など)を継続的に見れるページを作ると便利かなと思って作りました。自分一人だったらローカルで適当なツールを叩けばいいですが、同repoを見れる編集者にも共有したいとなると独立したページがあるほうが便利ですからね。

リポジトリはこんな感じです。

github.com

基本的には、 actions/checkout を使って "${{ github.repository }}.wiki" をcloneして編集してpushするだけです。 actions/checkout を使うことで適切なGitHub access tokenが生成されて使われるので、private repoでもcloneしたりcommitしたりできます。

git configの user.email が次のようになっており、少しトリッキーに見えるかもしれません。

git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"

しかし、このように設定することで実際のアカウントのメールアドレスを使うことなくGitHubのユーザーと適切にひも付きます。まあ、これはGitHub wikiに限らずGitHub Actionsからcommitするとき常に有効なハックですが。あとはまあ、YAMLに書いてあるとおりです。

Enjoy GitHub Actions!