GitHub Action
Send Bluesky Post
Use this action to send a post from GitHub actions workflow.
This action is implemented in the Dart language and uses bluesky for posting to Bluesky Social.
Configure your workflow to use myConsciousness/bluesky-post@v5
,
and provide the post you want to send as the text
input.
Provide Bluesky's ATP server with identifier
(handle or email) and password
to create a session.
For example:
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
Now whenever you push something to your repository, GitHub Actions will post to Bluesky on your behalf.
Note
In the Bluesky API, themention
,link
andtag
functions will not work unless thefacet
parameter is set correctly when the request is sent, but this Action will automatically extract valid handle and link from the text and set the facet.
Bluesky Social is a distributed microservice.
So you may possibly want to post to a ATP server other than bsky.social
.
In that case, set the service
parameter to the authority you wish to post as follows.
If the service
parameter is omitted, the default is bsky.social
.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
service: "boobee.blue"
Server error or network errors may temporarily occur during API communication to the ATP server. In such cases, retrying at regular intervals may result in successful processing.
This Actions supports Retry
, and you can specify the maximum number of retries.
The default retry count is 5.
You can specify the following.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
retry-count: 5
You can also post a text with an image of a specified file path attached.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
# You must checkout resources
- uses: actions/checkout@v3
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
media: cool_photo.png
media-alt: "This is a cool photo!"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
You can give the post you are sending BCP47 format language tags.
One or more language tags can be set and passed to the langs
parameter in CSV format as follows.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
langs: "en,ja"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
You can label any post you send.
You can set one or more labels, and pass the value of any label in the labels
parameter in CSV format as follows.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
labels: "spam,porn"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
You can tag any post you send.
You can set one or more tags, and pass the value of any tag in the tags
parameter in CSV format as follows.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
tags: "bluesky,awesome"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
Note
The value specified in thetags
parameter is different from hashtags in the text, which are generally displayed as metadata about the post in Bluesky's clients.
You can specify links in a generic markdown format.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "[This is a markdown link!](https://atprotodart.com)"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
You can attach link preview (link card) with link-preview-url
parameter.
If a link-preview-url
parameter is also specified while a media
parameter is present,
the media
parameter will be used first.
name: Send Bluesky Post
on:
[push]
jobs:
post:
runs-on: ubuntu-latest
steps:
- uses: myConsciousness/bluesky-post@v5
with:
text: "Hello, Bluesky!"
link-preview-url: "https://atprotodart.com"
identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
password: ${{ secrets.BLUESKY_PASSWORD }}
bluesky_post was designed and implemented by Shinya Kato (@myConsciousness).