Zenn Dev Snowcait Articles Ed618cf8514fce
Nostr のプロフィールを GitHub リポジトリで管理する
- URL: https://zenn.dev/snowcait/articles/ed618cf8514fce
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Nostr BOT のプロフィール(kind 0 イベント)を GitHub リポジトリで管理し、metadata.json の更新をトリガーに GitHub Actions で自動配信する方法を解説した記事。snow-actions/nostr アクションを使い、秘密鍵は GitHub Secrets で保管する構成で、リレーリストも JSON で Git 管理できる。kind 0 以外のイベントにも応用でき、Nostr クライアントを使わずに BOT をすべて GitHub Actions で管理する運用パターンとして有用。
詳細
Nostr プロフィールを GitHub Actions で自動管理するワークフロー設計
- アプローチ: metadata.json(kind 0 content)をリポジトリにコミットし、main ブランチへの push でワークフローを自動起動
- 使用アクション: snow-actions/nostr@v1.7.0(kind・content・relays・private-key を指定)
- 秘密鍵の管理: GitHub Secrets に NOSTR_PRIVATE_KEY として保存
- トリガー設定: paths: [metadata.json] で metadata.json 変更時のみ実行(ワークフローファイル自身は除外)。workflow_dispatch で手動起動も可能
- リレーリストの Git 管理:
- relays.json で管理 → jq -c -r ‘.[]’ で1行ずつ出力して relays に渡す
- 送信イベントをリポジトリにコミットする方法:
- permissions: contents: write が必要
- snow-actions/nostr に id を付与し、outputs.event を jq で整形して docs/metadata.json へコミット
- 応用範囲: kind 0 以外(投稿・リアクション等)にも使用可能。Nostr クライアント不要で BOT 全体を GitHub で管理できる