2026/06/24(水)ForgejoでWebUIからのコミットに署名させる

投稿日:

GitHubではWebUIからPRのマージやファイル編集をしたときにコミットに署名がつくが、これをForgejoでもやる方法。

確認環境

  • Forgejo 15.0.3

やり方

基本は公式にあるInstance Commit Signingの通り。

  1. 署名用のSSH鍵を作る
    ssh-keygen -t ED25519 -f forgejo
    ssh-keygen -y -f forgejo > forgejo.pub
    sudo mv forgejo* /etc/forgejo
    sudo chown git:git /etc/forgejo/forgejo
    sudo chown git:git /etc/forgejo/forgejo.pub
    
  2. /etc/forgejo/app.iniに設定を足す
    [repository.signing]
    FORMAT = ssh
    SIGNING_KEY = /etc/forgejo/forgejo.pub
    SIGNING_NAME = "Example Git Instance"
    SIGNING_EMAIL = "noreply@git.example.com"
    INITIAL_COMMIT = pubkey
    WIKI = pubkey
    CRUD_ACTIONS = pubkey
    MERGES = pubkey
    
  3. Forgejoを再起動する
    sudo systemctl restart forgejo.service
    

結果

対応前 対応後

コミットに署名がつき、自分のアイコンが出るようになった。

但しGitHubとは違い、Forgejoが署名したことが分かる見た目になっている。

実はGitHubでもWebUIからの修正にはGitHubの鍵で署名が行われているのだが、GitHubではUI上その区別がない。Forgejo はその区別があるため、より明確な表示になったといえる。

あとがき

コミット履歴のアイコンにForgejoがいるのが気に食わなかったので、自分のアイコンで上書きできてよかった。これで履歴の気味悪さを忘れてWebUIから気軽に治せる。

署名なしコミットは文字やアイコンが大きく、行も広くなるため、表示がしっくりこなかったので丁度よくなった。