#Blueskyfeedbotとは何か?GitHubActions経由でBlueskyにRSSフィードを投稿するbot #一30
https://github.com/marketplace/actions/feed-to-bluesky
GitHub Actions 経由で Bluesky に RSS フィードを投稿するボット「Blueskyfeedbot」の使い方を解説します。
準備
-
Bluesky アプリパスワードの取得:
- Bluesky の設定ページ (
) にアクセスし、新しいアプリパスワードを作成します。https://bsky.app/settings/app-passwords - パスワード名は任意ですが、分かりやすい名前を付けてください。
- セキュリティ上の理由から、このパスワードは一度しか表示されません。 紛失しないように安全な場所に保管してください。紛失した場合は、新しいパスワードを生成する必要があります。
- Bluesky の設定ページ (
-
GitHub リポジトリの作成:
- 新しい GitHub リポジトリを作成します。
-
シークレットの設定:
- リポジトリの設定ページ ([https://github.com/){YOUR_REPO}/settings/secrets/actions/new) にアクセスし、以下のシークレットを追加します。
BLUESKY_USERNAME
: Bluesky のユーザー名 (例: username.bsky.social)BLUESKY_PASSWORD
: 手順 1 で取得したアプリパスワード
- リポジトリの設定ページ ([https://github.com/){YOUR_REPO}/settings/secrets/actions/new) にアクセスし、以下のシークレットを追加します。
ワークフローファイルの作成
.github/workflows/blueskyfeedbot.yml
という名前のファイルを作成し、以下の内容を記述します。
<!-- end list -->
YAML
name: フィードボット
on:
スケジュール:
# これは 5 分ごとに実行されます。https://crontab.guru/ を使用して変更します
- クロン: '*/5 * * * *'
ジョブ:
rss-to-bluesky:
runs-on: ubuntu-latest
ステップ:
- 名前: キャッシュキーを生成
使用法: actions/github-script@v6
id を: キーを生成します
と:
スクリプト: |
core.setoutput ('cache-key', new Date().valueOf())
- 名前: キャッシュを取得
使用法: actions/cache@v3
と:
パス: ${{ github.workspace }}/blueskyfeedbot
キー: feed-cache-${{ steps.generate-key.outputs.cache-key }}
キーを復元します: フィードキャッシュ-
- 名前: GitHub
使用法: 'joschi/blueskyfeedbot@v1'
と:
# これは公開したいRSSフィードです
rssフィード: https://www.githubstatus.com/history.rss
# Bluesky(ハンドルバー)に投稿されたステータスのテンプレート
テンプレート: '{{item.title}} {{item.link}}'
# これはあなたのサービスのURLです(オプション)
サービス-url: https://bsky.social
# Blueskyのユーザー名です(例: username.bsky.social)
ユーザー名: ${{ secrets.BLUESKY_USERNAME }}
# 先ほど作成したアプリのパスワードです
パスワード: ${{ secrets.BLUESKY_PASSWORD }}
# これは、上記のキャッシュパスを使用して、キャッシュファイルへのパスです
キャッシュファイル: ${{ github.workspace }}/blueskyfeedbot/cache.json
- 変更をコミットして公開します。
ステータステンプレート
ステータス テンプレートでは、Handlebars テンプレートエンジンを使用できます。
アクションは、FeedData
(フィールド: feedData
) と現在の FeedEntry
(フィールド: item
) のインスタンスをテンプレートに渡します。
TypeScript
export interface FeedEntry {
リンク?: 文字列;
タイトル?: 文字列;
説明?: 文字列;
発行?: 日付;
}
export interface フィードデータ {
リンク?: 文字列;
タイトル?: 文字列;
説明?: 文字列;
発電機?: 文字列;
言語?: 文字列;
発行?: 日付;
エントリー?: 配列<FeedEntry>;
}
補足
blueskyfeedbot.yml
のcron
設定を変更することで、実行間隔を調整できます ( を参照)。https://crontab.guru/ rssフィード
には、投稿したい RSS フィードの URL を指定します。テンプレート
には、Bluesky に投稿するステータスのテンプレートを記述します。Handlebars の記法を使って、FeedData
とFeedEntry
のフィールドを参照できます。サービス-url
はオプションです。キャッシュファイル
は、前回の投稿日時を保存するために使用されます。
この手順に従って設定することで、Blueskyfeedbot が GitHub Actions 経由で RSS フィードを Bluesky に自動投稿するようになります。
コメント
コメントを投稿