Gemfile RSS Feed Generator
Integrate Gemfile RSS into your workflow
API Documentation
The Gemfile RSS API allows you to programmatically update your feeds as your dependencies change.
This is particularly useful for CI/CD integrations, where you want to automatically sync your feed
whenever your Gemfile.lock is updated.
All API endpoints require authentication using your feed's unique API key, which is displayed on your feed page.
Authentication
API requests must include your feed's API key in the request header:
X-Gemfile-RSS-Key: your-api-key-here
If you lost your API key just generate a new feed again and you'll get a new one.
Create Feed
/feeds
Create a new RSS feed by providing your Gemfile.lock content.
This endpoint returns a feed token and API key that you can use for subsequent updates.
Request
curl -X POST https://gemfile-rss.com/feeds \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
Request Body
Send the raw contents of your Gemfile.lock as plain text in the request body.
Optional Query Parameters
name
Feed name (if not provided, a random name like "Happy Gemfile RSS" will be generated)
version_filter
Filter type: patch, minor, major, or all (default: patch)
ignore_prereleases
Boolean: true or false (default: true)
ignore_old_releases
Boolean: true or false (default: false)
Response (201 Created)
{
"status": "ok",
"token": "generated-feed-token",
"api_key": "generated-api-key",
"feed_url": "https://gemfile-rss.com/feeds/generated-feed-token.rss",
"gem_count": 42
}
Important: Save the token and api_key from this response.
You'll need them to update the feed later.
Error Responses
422 Unprocessable Content
{"error": "Invalid Gemfile.lock content"}
429 Too Many Requests
{"error": "Rate limit exceeded"}
Update Feed
/feeds/{token}
Update your feed by syncing it with your current Gemfile.lock.
This will add new gems, update locked versions, and remove gems that are no longer in your lockfile.
Request
curl -X PUT https://gemfile-rss.com/feeds/your-feed-token \
-H "X-Gemfile-RSS-Key: your-api-key" \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
To update the feed name along with the Gemfile.lock:
curl -X PUT "https://gemfile-rss.com/feeds/your-feed-token?name=Production%20Feed" \
-H "X-Gemfile-RSS-Key: your-api-key" \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
Request Body
Send the raw contents of your Gemfile.lock as plain text in the request body.
Optional Query Parameters
name
Update the feed name (optional)
Response (200 OK)
{
"status": "ok",
"token": "your-feed-token",
"name": "Your Feed Name",
"gem_count": 42,
"entries": {
"created": 3,
"updated": 5,
"deleted": 2
}
}
Error Responses
401 Unauthorized
{"error": "Unauthorized"}
404 Not Found
{"error": "Feed not found"}
422 Unprocessable Content
{"error": "Invalid Gemfile.lock content"}
Regenerate API Key
/feeds/{token}/regenerate_api_key
Generate a new API key for your feed. This will invalidate the previous API key immediately.
Request
curl -X POST https://gemfile-rss.com/feeds/your-feed-token/regenerate_api_key \
-H "X-Gemfile-RSS-Key: your-current-api-key"
Response (200 OK)
{
"status": "ok",
"token": "your-feed-token",
"api_key": "your-new-api-key"
}
Error Responses
401 Unauthorized
{"error": "Unauthorized"}
404 Not Found
{"error": "Feed not found"}
CI/CD Integration Examples
GitHub Actions: Update Only
name: Update Gemfile RSS Feed
on:
push:
paths:
- 'Gemfile.lock'
jobs:
update-feed:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update RSS Feed
run: |
curl -X PUT https://gemfile-rss.com/feeds/${{ secrets.FEED_TOKEN }} \
-H "X-Gemfile-RSS-Key: ${{ secrets.FEED_API_KEY }}" \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
Store your FEED_TOKEN and
FEED_API_KEY as repository secrets.
GitLab CI
update-rss-feed:
stage: deploy
only:
changes:
- Gemfile.lock
script:
- |
curl -X PUT https://gemfile-rss.com/feeds/$FEED_TOKEN \
-H "X-Gemfile-RSS-Key: $FEED_API_KEY" \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
Store your FEED_TOKEN and
FEED_API_KEY as CI/CD variables.
CircleCI
version: 2.1
jobs:
update-rss-feed:
docker:
- image: cimg/base:stable
steps:
- checkout
- run:
name: Update Gemfile RSS Feed
command: |
curl -X PUT https://gemfile-rss.com/feeds/$FEED_TOKEN \
-H "X-Gemfile-RSS-Key: $FEED_API_KEY" \
-H "Content-Type: text/plain" \
--data-binary @Gemfile.lock
workflows:
version: 2
update-feed-on-lockfile-change:
jobs:
- update-rss-feed:
filters:
branches:
only: main
Store your FEED_TOKEN and
FEED_API_KEY as environment variables in your project settings.