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:
    # This will run every five minutes. Alter it using https://crontab.guru/.
    - cron: '*/5 * * * *'  
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:
          # This is the RSS feed you want to publish
          rss-feed: https://www.githubstatus.com/history.rss
          # This is your instance address
          api-endpoint: https://mastodon.social
          # This is the secret you created earlier
          api-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
          # This is a path to the cache file, using the above cache path
          cache-file: ${{ github.workspace }}/mastofeedbot/cache.json
  1. Commit and publish your changes.