🤖 Automate Posts to Mastodon with GitHub Actions
There’s a lot to do when you want to build and maintain software — and one of the most essential aspects is sharing what you’re up to with your community. But with so much going on, from working on code, writing blog posts, thinking about user acquisition strategies, or improving our app’s accessibility, social media can often go dormant for long periods.
The automation can solve problems for so many use cases, and here we’ll show you how to configure GitHub Actions to automatically post to Mastodon whenever a PR gets merged! This helps us keep people informed in real-time about progress on our software, making our community more informed and, in turn, safer.
Step 1: Mastodon
From your Mastodon account, go to Preferences > Development and click “New application.” Give it any name, for example, “Github PR Notifier.”
Modify the Scopes only to select write:statuses
and crypto
and click “Save Changes.”
Once saved, click back into the application you just created. At the top of the screen, you’ll see “Your access token” — we’ll use this in the next step.
Step 2: GitHub
If you don’t have a GitHub account, you’ll need to create one. Go to or create the repository that you want to automate.
Store Your Secret
Go to Settings > Secrets and variables > Actions and click “New repository secret.” Name it MASTODON_ACCESS_TOKEN
and paste your access token from step 1 into the Secret field.
Create an Action
Click “Add File” and create the file “.github/workflows
/post_to_mastodon.yml
. Add the following content, and be sure to replace your-mastodon-instance-url
with the URL of your Mastodon instance.
name: Post to Mastodon on PR Merge
on:
pull_request:
types:
- closed
jobs:
post_to_mastodon:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Post to Mastodon
run: |
curl -X POST -H "Authorization: Bearer ${{ secrets.MASTODON_ACCESS_TOKEN }}" \
-F "status=Pull request #${{ github.event.pull_request.number }} merged: ${{ github.event.pull_request.title }}" \
https://your-mastodon-instance-url/api/v1/statuses
Step 3: Test it!
From your repository, create a new branch. Make any change — a slight modification to your README, or a new file, for example. Next, click on the tab labeled “Pull requests.” You should see a “Compare & pull request” button. Click that, and then merge your PR.
Once merged, the PR will be closed, and your action should automatically post an update to your Mastodon account!
🎉 Congratulations! You’ve just gained time back to your life.