Skip to content
rss

GitHub Action

MastoFeedBot

v1 Latest version

MastoFeedBot

rss

MastoFeedBot

Push RSS feed updates to Mastodon via GitHub Actions

Installation

Copy and paste the following snippet into your .yml file.

              

- name: MastoFeedBot

uses: selfagency/mastofeedbot@v1

Learn more about this action in selfagency/mastofeedbot

Choose a version

Mastofeedbot

Mastofeedbot is a bot that posts RSS feeds to Mastodon via GitHub Actions.

Usage

  1. Go to https://${YOUR_INSTANCE}/settings/applications/new and add a new application.
  • Name it whatever you want.
  • The redirect URI is not important, so you can use urn:ietf:wg:oauth:2.0:oob.
  • The only permission required is write:statuses.
  • Save it, click on the application link, and grab the access token.
  1. Create a new GitHub repository.
  2. 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.
  3. Add a file named .github/workflows/mastofeedbot.yml with the following content:
name: FeedBot
on:
  schedule:
    - cron: '*/5 * * * *'  # This will run every five minutes. Alter it using https://crontab.guru/.
jobs:
  rss-to-mastodon:
    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 }}/mastofeedbot
          key: feed-cache-${{ steps.generate-key.outputs.cache-key }}
          restore-keys: feed-cache-
      - name: GitHub
        uses: 'selfagency/mastofeedbot@v1'
        with:
          rss-feed: https://www.githubstatus.com/history.rss
          api-endpoint: https://mastodon.social
          api-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
          cache-file: ${{ github.workspace }}/mastofeedbot/cache.json