GitHub Hot Board

GitHub Hot Board · Repository archive

joschi/blueskyfeedbot

A bot that posts RSS feeds to Bluesky via GitHub Actions (This description comes from the repository itself.)

Data at October 27joschi

Best

#166

Underappreciated Gems

100

Total stars

7

Total forks

4

Days on boards (30d)

Project statusLicense: unknownLast push: October 27Open issues: 15

Collected since 2026-10-25; unknown = not yet harvested

Put your badge on the README · joschi/blueskyfeedbot[![Put your badge on the README](https://git.vaiox.xyz/api/badge/joschi/blueskyfeedbot.svg)](https://git.vaiox.xyz/en/repo/joschi/blueskyfeedbot)

Badge · 任何仓库都可以挂 —— 未上榜的仓库显示灰章,上完榜会自动点亮。

<a href="https://git.vaiox.xyz/en/repo/joschi/blueskyfeedbot"><img src="https://git.vaiox.xyz/api/badge/joschi/blueskyfeedbot.svg" alt="Put your badge on the README" height="20"></a>

README

Bluesky Feed Bot

Bluesky Feed Bot is a GitHub Action for posting RSS feeds to Bluesky via GitHub Actions workflows.

Usage

  1. Go to https://bsky.app/settings/app-passwords and add a new app password.

    • Name it whatever you want.
    • Save it and grab the app password. For security reasons, you won't be able to view this again. If you lose this app password, you'll need to generate a new one.
  2. Create a new GitHub repository.

  3. Go to your repository settings at https://github.com/${YOUR_REPO}/settings/secrets/actions/new, and add a new secret with the value of the access token.

  4. Add a file named .github/workflows/blueskyfeedbot.yml with the following content:

    name: FeedBot
    on:
      schedule:
        # This will run every five minutes. Alter it using https://crontab.guru/.
        - cron: '*/5 * * * *'
      workflow_dispatch: # This allows manually running the workflow from the GitHub actions page
    concurrency:
      group: feedbot
    jobs:
      rss-to-bluesky:
        runs-on: ubuntu-latest
        steps:
          - name: Generate cache key
            uses: actions/github-script@v6
            id: generate-key
            with:
              script: |
                core.setOutput('cache-key', new Date().valueOf())
          - name: Retrieve cache
            uses: actions/cache@v3
            with:
              path: ${{ github.workspace }}/blueskyfeedbot
              key: feed-cache-${{ steps.generate-key.outputs.cache-key }}
              restore-keys: feed-cache-
          - name: GitHub
            uses: 'joschi/blueskyfeedbot@v1'
            with:
              # This is the RSS feed you want to publish
              rss-feed: https://www.githubstatus.com/history.rss
              # Template of status posted to Bluesky (Handlebars)
              template: |
                {{item.title}}
    
                {{item.link}}
              # This is your service URL (optional)
              service-url: https://bsky.social
              # This is the Bluesky username (example: username.bsky.social)
              username: ${{ secrets.BLUESKY_USERNAME }}
              # This is the app password you created earlier
              password: ${{ secrets.BLUESKY_PASSWORD }}
              # This is a path to the cache file, using the above cache path
              cache-file: ${{ github.workspace }}/blueskyfeedbot/cache.json
              # The maximum number of posts created on the first run
              initial-post-limit: 10
              # Maximum number of XML entity expansions allowed when parsing feeds (0 = unlimited)
              # xml-entity-expansion-limit: 10000
  5. Commit and publish your changes.

Status template

The status template (status-template) is using Handlebars as template engine.

The action is passing in an instance of FeedData (field feedData) and the current FeedEntry (field item) into the template:

export interface FeedEntry {
  link?: string;
  title?: string;
  description?: string;
  published?: Date;
}

export interface FeedData {
  link?: string;
  title?: string;
  description?: string;
  generator?: string;
  language?: string;
  published?: Date;
  entries?: Array<FeedEntry>;
}

Current rankings

  • 166

    Underappreciated Gems

    100 stars · 7 fork · Total stars (ascending)

    Underrated →

Momentum, past 30 days

Cumulative stars

Rank movement

Daily star gain

Similar projects · shared topics

← Back to boards

GitHub Hot BoardTime MachineDiscover