🏯

Emacs magit で forge をセットアップするとき secret service を使う方法

2024/05/23に公開

magit には forge という拡張があって GitHub や Gitlab などから Issue や Pull Request なんかの情報を取得したり、新しく Issue や PR を作ったりできます。
認証部分のセットアップがよくわからなかったので、調べてうまくいった方法を記録しておきます。

forge が使う認証は Emacs の標準で付いている auth-source という仕組みを使っています。
ファイルを使う方法は forge から辿れるドキュメントにも書いてあったのですが Linux の Secret Service を使う方法は書かれていませんでした。

ちなみに KeelPassXC のシークレットサービス統合を有効にしている状態です。そうでない場合は以下の keepassx の部分を書き換えてください。*scratch* で実行すればよいです。

(secrets-create-item "keepassx" "[label]" "ghp_xxx" :user "[username]^forge" :host "api.github.com")
  • [label] は任意のラベルです。わかりやすい名前にしておきましょう。
  • ghp_xxx の部分は GitHub の API token です。ドキュメントに書いてある権限を付与しましょう。
    • 自分は定期的に更新するのが面倒だったので classic PAT にしました
  • [username] は GitHub の login です。
  • [username] の後ろに付いている ^forge は固定です。

確認方法は以下の通りです。

(secrets-get-secret "keepassx" "[label]") ; 登録した API token の確認
(secrets-get-attributes "keepassx" "[label]") ; API token 以外の属性の確認

参考:

Discussion