Automatically post RSS feed content to Bluesky Social with AI-generated relevant hashtags using GitHub Actions.
- 🤖 Automated posting from RSS feeds to Bluesky
- 🏷️ AI-powered hashtag generation using Google's Gemini
- 🔄 Runs every hour (configurable)
- 📝 Tracks posted content to avoid duplicates
- ⚡ Easy setup using GitHub Actions
- A Bluesky account
- A Google Cloud Platform account for Gemini API
- A GitHub account
- An RSS feed to monitor
-
Fork this repository
-
Set up environment secrets
Go to your repository's Settings > Environments:
- Create a new environment named
Production
- Add the following secrets:
BLUESKY_HANDLE
: Your Bluesky handle (without @)BLUESKY_PASSWORD
: Your Bluesky passwordGEMINI_API_KEY
: Your Google Gemini API key
- Create a new environment named
-
Configure RSS Feed
Edit
src/post_to_bluesky.py
and replace the RSS feed URL: rss_url = "https://your-rss-feed-url.com/feed" -
Enable GitHub Actions
Go to Actions tab in your repository and enable workflows.
- The GitHub Action runs every 4 hours (configurable in
.github/workflows/bluesky-poster.yml
) - It fetches new posts from your RSS feed
- For each new post:
- Generates relevant hashtags using Gemini AI
- Creates a Bluesky post with the title, link, and hashtags
- Tracks posted content to avoid duplicates
- Changes are committed back to the repository
Edit the cron schedule in .github/workflows/bluesky-poster.yml
:yaml
on:
schedule:
- cron: '0 */4 * * *' # Runs every 4 hours
Edit the create_bluesky_post
function in src/post_to_bluesky.py
to modify how posts appear.
src/post_to_bluesky.py
: Main script for posting to Bluesky.github/workflows/bluesky-poster.yml
: GitHub Actions workflowrequirements.txt
: Python dependenciesposted_entries.json
: Tracks posted content (auto-generated)
- atproto: Bluesky API client
- feedparser: RSS feed parser
- google-generativeai: Gemini AI API client
-
Posts not appearing?
- Check the Actions tab for error logs
- Verify your Bluesky credentials
- Ensure RSS feed URL is correct
-
No hashtags generated?
- Verify your Gemini API key
- Check API quota limits
- Review Action logs for errors
-
Workflow not running?
- Ensure GitHub Actions is enabled
- Check if the Production environment is properly configured
- Verify workflow file syntax
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GPL 3 - see the LICENSE file for details.
- Bluesky Social for the platform
- Google for the Gemini AI API