Skip to content

A bot that posts RSS feeds to Mastodon via GitHub Actions

Notifications You must be signed in to change notification settings

selfagency/mastofeedbot

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

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.

About

A bot that posts RSS feeds to Mastodon via GitHub Actions

Resources

Stars

Watchers

Forks

Packages

No packages published