Skip to content

MastoFeedBot

Actions
Push RSS feed updates to Mastodon via GitHub Actions
v1
Latest
Star (17)

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

MastoFeedBot is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Push RSS feed updates to Mastodon via GitHub Actions
v1
Latest

MastoFeedBot is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.