sourcehut という git のホスティングサービスがあります。
公式サイトは https://sourcehut.org/ です。
日本ではあまり見慣れないサービスですが、利用されている例を上げると Go の GUI ライブラリの Gio はこのサービスでホストされています。
https://git.sr.ht/~eliasnaur/gio
このサービスには Pull Request という概念はなく、自分でパッチをメーリングリストに投稿し、取り込んでもらう必要があります。
git には send-email というコマンドがあり、これを使ってパッチをメーリングリストに送ります。
今回自分がパッチを投げるまでに苦労したので同じことを行いたい人に向けて手順を残します。
前提条件
- git config の user.email に gmail のアカウントを設定している
- google のアカウントで2段階認証を設定している
- gmail の「メール転送と POP/IMAP」の項目で IMAP を有効にしている
事前準備
アプリパスワードを設定する
https://support.google.com/accounts/answer/185833 を見ながら設定します。
https://myaccount.google.com/security からアプリパスワードを作成します。
端末の種類を選ぶ箇所がありますが、その他で設定します。
生成が完了すると、パスワードが表示されます。
このパスワードは一度ページを離れると見れなくなるので、1password などに保存しておく必要があります。
git の config の設定をする
gitconfig ファイルに以下の設定を追加します。
大抵はリポジトリの .git/config に設定すると影響範囲が対象のリポジトリだけになるので便利です。
[sendemail]
smtpEncryption = tls
smtpServer = smtp.gmail.com
smtpUser = username@gmail.com
smtpServerPort = 587
実際にパッチを送る
実際にコマンドを実行してパッチを送ります。
git send-email HEAD^
HEAD^ の部分は適宜変更する必要がありますが、これを実行するとメールを送信するための編集画面が開きます。
特に変更する必要がなければ、このままエディタを閉じます。
すると「本当に送信するか?」というダイアログが出ます。
yesで送信しようとすると
Password for 'smtp://username@gmail.com@smtp.gmail.com:587':
というダイアログが出るので事前準備で取得したパスワードを入力します。
上手くいくとメールが送信されて、https://lists.sr.ht/USER/REPO から確認することができます。