I Automated My Daily Blog with GitHub Actions, Gemini and the Blogger API
Description and use
Automating daily blog posts with GitHub Actions, Gemini, and Blogger API, handling secret management, model retirement, and OAuth token expiry.
Problem
Automate daily blog posting without manual intervention, ensuring credentials, model availability, and token validity.
Outcome
The automated pipeline publishes a new blog post every morning, handling credential storage, model retirement, and token expiry, while ensuring idempotency and quality guardrails.
Workflow
- Trigger GitHub Actions on a daily cron schedule.
- Run generate_post.py to request a Gemini model to write a post about a skill from skills.txt.
- Run post_to_blogger.py to publish the generated post via the Blogger API.
- Commit the generated post file to prevent topic repetition.
Evidence
GitHub Actions runs a Python script on a schedule, Gemini writes the post, and the Blogger API publishes it.
The key was in my local .env, but GitHub never sees your .env file.
This model models/gemini-2.0-flash is no longer available.
If your Google OAuth app is in Testing mode, refresh tokens expire after about 7 days.
- Record date: 2026-11-01T14:59:10.558Z