コンテンツにスキップ
Zenn Dev Snowcait Articles E0b473c69f2859

GitHub リポジトリの更新を Nostr へ通知する

  • URL: https://zenn.dev/snowcait/articles/e0b473c69f2859
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: GitHub Actions の on トリガーと jobs の if 条件を組み合わせ、Pull Request がマージされたタイミングで Nostr へ通知を送るワークフローを構築できる。snow-actions/nostr アクションを使うことで、リレーサーバーと秘密鍵を設定するだけで NIP-01 kind 1 の通常投稿が可能になる。さらに NIP-38 kind 30315 を使うとユーザーステータスも更新でき、有効期限を 12 時間に設定するといった細かい制御もできる。リレーアドレスはリポジトリ変数、秘密鍵はシークレットとして管理するパターンが示されている。

詳細

通常投稿(NIP-01 kind 1)の設定:

  • uses: snow-actions/nostr@v1.6.0 with: relays: ${{ vars.NOSTR_RELAYS }} private-key: ${{ secrets.NOSTR_PRIVATE_KEY }} content: | PR タイトルと URL を含む投稿文

ユーザーステータス更新(NIP-38 kind 30315):

  • kind: 30315 を指定
  • tags に d・t・r・expiration を設定
  • expiration には date コマンドで 12 時間後の UNIX タイムスタンプを算出して渡す

トリガー条件:

  • on: pull_request のイベント
  • if: ${{ github.event.pull_request.merged == true }} でマージ時のみ実行

ハッシュタグが不要な場合は tags フィールドごと省略できる。