
Security News
rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
The Ultimate Ruby Gem Automation Showcase
Battle-tested GitHub Actions workflows with comprehensive CI/CD, security, and community management
This repository serves as the ultimate showcase for Ruby gem automation. It includes 9 comprehensive workflows that handle every aspect of your gem's lifecycle:
.github/config/rulesets/
Category | Task | Workflow | Action Used | Configuration |
---|---|---|---|---|
๐ CI/CD | Ruby testing | 02-ci.yml | ruby/setup-ruby@v1 | Ruby 3.3 (optimized) |
Ubuntu testing | 02-ci.yml | actions/checkout@v4 | Ubuntu-latest (cost optimized) | |
Dependency caching | 02-ci.yml | actions/cache@v3 | Bundler cache | |
Test execution | 02-ci.yml | Custom scripts | RSpec, Minitest | |
Coverage reporting | 04-quality.yml | simplecov gem | 90% threshold | |
๐ Security | CodeQL analysis | 03-security.yml | github/codeql-action@v3 | .github/config/codeql.yml |
Dependency scanning | 03-security.yml | actions/dependency-review-action@v4 | Vulnerability detection | |
Secret scanning | 03-security.yml | trufflesecurity/trufflehog@main | Git history scan | |
Container scanning | 03-security.yml | aquasecurity/trivy-action@master | Dockerfile security | |
Bundle audit | 03-security.yml | bundler-audit gem | Gem vulnerabilities | |
๐ Quality | Code linting | 04-quality.yml | rubocop/rubocop-github-action@v0.1.0 | RuboCop standards |
Documentation | 04-quality.yml | yard gem | API documentation | |
Markdown linting | 04-quality.yml | DavidAnson/markdownlint-cli2-action@v16 | Markdown standards | |
Super linting | 04-quality.yml | super-linter/super-linter@v5 | Multi-language linting | |
๐ท๏ธ Labels | Label sync | 01-intake.yml | crazy-max/ghaction-github-labeler@v5 | .github/config/labels.yml |
Auto-labeling | 01-intake.yml | actions/labeler@v5 | .github/config/labeler.yml | |
Size labeling | 01-intake.yml | Custom script | PR size detection | |
๐ฅ Community | Welcome messages | 01-intake.yml | actions/first-interaction@v1 | First-time contributors |
Stale management | 05-community.yml | actions/stale@v9 | 60-day stale policy | |
Contributor recognition | 05-community.yml | Custom script | Achievement badges | |
Health monitoring | 08-monitoring.yml | Custom script | Community metrics | |
๐ Release | Semantic versioning | 06-release.yml | Custom script | Version bumping |
Changelog generation | 06-release.yml | Custom script | Auto-generated changelogs | |
RubyGems publishing | 06-release.yml | ruby/setup-ruby@v1 | Automated gem push | |
GitHub releases | 06-release.yml | actions/create-release@v1 | Release notes | |
Release notifications | 06-release.yml | slackapi/slack-github-action@v1.27.0 | Slack integration | |
๐ฆ Dependencies | Dependency updates | Dependabot | GitHub native | .github/dependabot.yml |
Security updates | Dependabot | GitHub native | Auto-merge safe updates | |
Version grouping | Dependabot | GitHub native | Development/testing groups | |
๐ก๏ธ Protection | Branch protection | Rulesets | GitHub native | .github/config/rulesets/ |
Tag protection | Rulesets | GitHub native | Release tag protection | |
Push restrictions | Rulesets | GitHub native | Development branch rules | |
๐ข Notifications | Slack integration | Multiple | Custom shared action | SLACK_BOT_TOKEN + SLACK_CHANNEL_ID |
PR Status Dashboard | Multiple | update-pr-status action | Consolidated PR comments | |
๐ค Bot Commands | Release management | 09-bot-commands.yml | actions/github-script@v7 | Slash commands |
Help system | 09-bot-commands.yml | actions/github-script@v7 | Interactive help | |
๐ Ecosystem | Dependency health | 07-ecosystem.yml | Custom scripts | Bi-weekly checks |
Compatibility matrix | 07-ecosystem.yml | ruby/setup-ruby@v1 | Ruby version testing | |
Performance benchmarks | 07-ecosystem.yml | Custom benchmark scripts | Release validation | |
๐ Monitoring | Workflow metrics | 08-monitoring.yml | actions/github-script@v7 | Weekly performance tracking |
Repository health | 08-monitoring.yml | Custom health checks | Automated health reports | |
๐งช Validation | GitHub App setup | tests/validate-github-app.yml | actions/create-github-app-token@v1 | Token validation |
Slack integration | tests/validate-slack-integration.yml | slackapi/slack-github-action@v1.27.0 | Message testing | |
Label sync | tests/validate-labels-sync.yml | crazy-max/ghaction-github-labeler@v5 | Configuration validation | |
Repository rulesets | tests/validate-repository-rulesets.yml | Custom scripts | Ruleset validation |
Secret | Purpose | Required |
---|---|---|
APP_ID | GitHub App ID for branded automation | โ Yes |
PRIVATE_KEY | GitHub App private key | โ Yes |
SLACK_BOT_TOKEN | Slack bot token for notifications | โ Optional |
SLACK_CHANNEL_ID | Slack channel ID | โ Optional |
RUBYGEMS_API_KEY | RubyGems publishing key | โ Optional |
File | Purpose | Required |
---|---|---|
.github/config/labels.yml | Label definitions and colors | โ Yes |
.github/config/labeler.yml | Auto-labeling rules for PRs | โ Yes |
.github/dependabot.yml | Dependency update configuration | โ Yes |
.github/CODEOWNERS | Code ownership and review assignments | โ Yes |
.github/config/codeql.yml | CodeQL analysis configuration | โ Yes |
.github/config/release-please-config.json | Release configuration | โ Yes |
.github/config/release-please-manifest.json | Release manifest | โ Yes |
.github/config/rulesets/*.json | Repository protection rules | โ Optional |
Command | Description | Example |
---|---|---|
/gem-ci help | Show available commands | /gem-ci help |
/gem-ci revise release [from] to [to] | Change release type | /gem-ci revise release minor to patch |
/gem-ci cancel release | Cancel current release PR | /gem-ci cancel release |
Usage: Comment these commands on any issue or PR to trigger bot actions.
This template provides a complete automation solution that follows the natural lifecycle of a Ruby gem repository:
Complete documentation is available on our Documentation Site including:
# Setup (one time)
cp .secrets.example .secrets && nano .secrets
# Test workflows locally
./scripts/test-local # Test push workflows
./scripts/test-local ci # Test CI workflow
./scripts/test-workflows # Run validation tests
๐ View Testing Scripts Documentation
๐ Optimized CI/CD โข ๐ Comprehensive Security โข ๐ Quality Enforcement โข ๐ Automated Releases โข ๐ฅ Community Management โข ๐ท๏ธ Smart Labeling
Includes 9 optimized workflows with 75-80% cost reduction, custom linting, consolidated PR dashboard, automated releases, and comprehensive security scanning.
๐ View Complete Feature List
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Note: This template is designed for Ruby gem projects and may require adjustments for other languages or frameworks. It is battle-tested and ready to use, but always review and customize workflows to fit your specific needs.
FAQs
Unknown package
We found that gem-ci demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last weekโs supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.