gem-ci 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +58 -0
- data/CONTRIBUTORS.md +65 -0
- data/README.md +9 -100
- data/docs/Gemfile +33 -0
- data/docs/Gemfile.lock +177 -0
- data/docs/README.md +130 -0
- data/docs/_config.yml +53 -2
- data/docs/_includes/head-custom.html +77 -0
- data/docs/_includes/site-nav.html +40 -0
- data/docs/_layouts/default.html +46 -0
- data/docs/assets/css/style.scss +727 -0
- data/docs/assets/images/gem-ci-transparent-bg.png +0 -0
- data/docs/diagrams/ci-workflow-overview.md +10 -5
- data/docs/diagrams/gitflow-diagram.md +15 -10
- data/docs/guides/bot-commands.md +387 -0
- data/docs/guides/customization.md +553 -0
- data/docs/guides/ecosystem.md +579 -0
- data/docs/guides/gitflow.md +6 -1
- data/docs/guides/mermaid-test.md +89 -0
- data/docs/guides/monitoring.md +524 -0
- data/docs/guides/validation.md +590 -0
- data/docs/index.md +70 -73
- data/docs/setup/github-pages.md +5 -0
- data/docs/setup/secrets.md +6 -0
- data/docs/workflow-dependencies.md +43 -0
- data/docs/workflows/overview.md +54 -3
- data/lib/gem_ci/version.rb +1 -1
- metadata +18 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 29bc39ee5d271905ae3a9705d78682e89f417db9e01dd0b7e7c9bc85469ee0eb
|
|
4
|
+
data.tar.gz: efdc16b720ee51cb7234610d8bf3dd5a0d2d29765b4ddda48eeb2df6a10108e7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 815c79de0bdcdf09490eeafc4ef4f429077dc858670450af369b92f2b8184d201c8999343c46f516098a62e64e592e886b88911f2fddcccdf0b2f6adb73e6a49
|
|
7
|
+
data.tar.gz: 67cf0df7cd2d494850b142c8b433b652b36c0eeb3d5aae5e21f6a340d67c33eecf90d8cad029990bdbf3956b970ba7b67c4e1d425abff80adfc3999562c36b0a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.0](https://github.com/patrick204nqh/gem-ci/compare/gem-ci/v0.4.0...gem-ci/v0.5.0) (2026-02-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### 🚀 Features
|
|
7
|
+
|
|
8
|
+
* Enhance documentation with improved image handling and streamlined workflow descriptions ([a67bdab](https://github.com/patrick204nqh/gem-ci/commit/a67bdab6928a77f5cdf6312500d117a3e66e0778))
|
|
9
|
+
* Remove bot command handler workflow ([e01b6d5](https://github.com/patrick204nqh/gem-ci/commit/e01b6d584572dcaa76b13e2d1376b9cb4be81ccf))
|
|
10
|
+
* Revamp documentation layout and enhance content clarity ([94b2017](https://github.com/patrick204nqh/gem-ci/commit/94b20175117ac018b945770d23d868c8adb89ac8))
|
|
11
|
+
* Update CI workflows to ignore documentation changes and add new logo image ([cd0d30f](https://github.com/patrick204nqh/gem-ci/commit/cd0d30f3b226ce9d49e81ab615252d7955a0050f))
|
|
12
|
+
* Update documentation to include CI Workflow and GitFlow diagrams ([65438e4](https://github.com/patrick204nqh/gem-ci/commit/65438e4a538d513c471d4ccba7111f1e114cf728))
|
|
13
|
+
* Update documentation workflows and bot command handling for improved responses and clarity ([5413db6](https://github.com/patrick204nqh/gem-ci/commit/5413db6dbd683e95c228a48ada17eb48dc78a0ac))
|
|
14
|
+
* Update workflows to ignore documentation paths and disable bot command handling ([af81d10](https://github.com/patrick204nqh/gem-ci/commit/af81d10120883b8b48bea02d817ba7ed427b18f6))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### 🔧 Dependencies
|
|
18
|
+
|
|
19
|
+
* **deps:** Bump flog from 4.8.0 to 4.9.4 ([7711a57](https://github.com/patrick204nqh/gem-ci/commit/7711a57a1abc2d305c7e8a2706658a756e1bedce))
|
|
20
|
+
* **deps:** Bump irb from 1.15.2 to 1.16.0 ([46c2429](https://github.com/patrick204nqh/gem-ci/commit/46c242930a109fdbb8db6e8ab5917f3e0866f503))
|
|
21
|
+
* **deps:** Bump irb from 1.16.0 to 1.17.0 ([5892443](https://github.com/patrick204nqh/gem-ci/commit/589244344e6b1586bc5dfdee31301cc11bd7c7ca))
|
|
22
|
+
* **deps:** Bump json from 2.13.1 to 2.13.2 ([8ae9732](https://github.com/patrick204nqh/gem-ci/commit/8ae973260e288681ebca10ce31691f536ad9a2ee))
|
|
23
|
+
* **deps:** Bump json from 2.18.0 to 2.18.1 ([9726dde](https://github.com/patrick204nqh/gem-ci/commit/9726ddebc1234361b90d4f03c0a31529c7cf308d))
|
|
24
|
+
* **deps:** Bump parser from 3.3.10.0 to 3.3.10.1 ([dc1d30c](https://github.com/patrick204nqh/gem-ci/commit/dc1d30c0c848076afe58ffc72aad12b4f04dd7a7))
|
|
25
|
+
* **deps:** Bump pp from 0.6.2 to 0.6.3 ([ffd8a8c](https://github.com/patrick204nqh/gem-ci/commit/ffd8a8c8f9694853c74b8cf90f15f2dcb7f1126f))
|
|
26
|
+
* **deps:** Bump prism from 1.4.0 to 1.6.0 ([50714ce](https://github.com/patrick204nqh/gem-ci/commit/50714ce0aa3de79e75ce17510fbe4d5ff58dbb38))
|
|
27
|
+
* **deps:** Bump prism from 1.7.0 to 1.8.0 ([64b3a2e](https://github.com/patrick204nqh/gem-ci/commit/64b3a2e29b4d8903b4b113797b9c121cd4a64cfd))
|
|
28
|
+
* **deps:** Bump prism from 1.8.0 to 1.9.0 ([bc92d48](https://github.com/patrick204nqh/gem-ci/commit/bc92d48692c0fcd22295644cf283ed0c7a329560))
|
|
29
|
+
* **deps:** Bump rdoc from 6.14.2 to 7.0.3 ([6a3de7f](https://github.com/patrick204nqh/gem-ci/commit/6a3de7f57790c5ea81d6a60ffa88d68a53e0ff09))
|
|
30
|
+
* **deps:** Bump rdoc from 7.1.0 to 7.2.0 ([83b689f](https://github.com/patrick204nqh/gem-ci/commit/83b689fcecb057d874829dec03485e19ee1b0063))
|
|
31
|
+
* **deps:** Bump rexml from 3.4.1 to 3.4.4 ([986ae9f](https://github.com/patrick204nqh/gem-ci/commit/986ae9fc7f290c8f7cedf215312496baa07e5990))
|
|
32
|
+
* **deps:** Bump rubocop from 1.79.0 to 1.79.1 in the development group ([e086f18](https://github.com/patrick204nqh/gem-ci/commit/e086f18d2e9a19710add532d5b44c565246344ea))
|
|
33
|
+
* **deps:** Bump rubocop from 1.84.1 to 1.84.2 in the development group ([d60b63e](https://github.com/patrick204nqh/gem-ci/commit/d60b63e85ac68e36167999127b192b8e9d1044e9))
|
|
34
|
+
* **deps:** Bump sexp_processor from 4.17.3 to 4.17.4 ([b9fbbde](https://github.com/patrick204nqh/gem-ci/commit/b9fbbde5ff838b3ab2b468c8d234889887957e70))
|
|
35
|
+
* **deps:** Bump stringio from 3.1.7 to 3.2.0 ([2fbc635](https://github.com/patrick204nqh/gem-ci/commit/2fbc635e8a7b2f8dee07612989dc591bea1fea8d))
|
|
36
|
+
* **deps:** Bump the development group across 1 directory with 2 updates ([e860fb4](https://github.com/patrick204nqh/gem-ci/commit/e860fb401ac712c9159f1e40b84a2f6d2e89ad41))
|
|
37
|
+
* **deps:** Bump the development group across 1 directory with 3 updates ([864cc97](https://github.com/patrick204nqh/gem-ci/commit/864cc97a3515c7b12e75562e5e6eec19a287a761))
|
|
38
|
+
* **deps:** Bump the development group across 1 directory with 7 updates ([6d41263](https://github.com/patrick204nqh/gem-ci/commit/6d4126349cbfe8a4c62a8089fdcb69e1bb2add68))
|
|
39
|
+
* **deps:** Bump the development group with 2 updates ([908ae24](https://github.com/patrick204nqh/gem-ci/commit/908ae24dbc6e5d50eb0cd8c95fc9ce30073ae53d))
|
|
40
|
+
* **deps:** Bump unicode-display_width from 3.1.5 to 3.2.0 ([7d5fb0d](https://github.com/patrick204nqh/gem-ci/commit/7d5fb0d6a86a0c4621ef3366c0a899f2581d32b3))
|
|
41
|
+
* **deps:** Bump unicode-emoji from 4.0.4 to 4.1.0 ([e3ad109](https://github.com/patrick204nqh/gem-ci/commit/e3ad1096285f4afea4fc2361f0bbac66235376e0))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### 🤖 CI/CD
|
|
45
|
+
|
|
46
|
+
* **deps:** Bump codecov/codecov-action from 3 to 5 ([46ca4b4](https://github.com/patrick204nqh/gem-ci/commit/46ca4b48a4df965c82e9a04310f9ab67d6e3756b))
|
|
47
|
+
* **deps:** Bump codecov/codecov-action from 3 to 5 ([1f55fff](https://github.com/patrick204nqh/gem-ci/commit/1f55fffb56dba53f524f7a2dcdae723855b0272a))
|
|
48
|
+
* **deps:** Bump dorny/test-reporter from 1 to 2 ([8af47c1](https://github.com/patrick204nqh/gem-ci/commit/8af47c11c135cae9c3043c22572ea1c5b65abdfb))
|
|
49
|
+
* **deps:** Bump dorny/test-reporter from 1 to 2 ([c0d6566](https://github.com/patrick204nqh/gem-ci/commit/c0d65662609472ef7b0417772b62985ed697ad67))
|
|
50
|
+
* **deps:** Bump github/codeql-action from 3 to 4 in the security-actions group ([0388e62](https://github.com/patrick204nqh/gem-ci/commit/0388e62f06d4e1472a757af653bacb3ffbb36ce3))
|
|
51
|
+
* **deps:** Bump github/codeql-action in the security-actions group ([c99445e](https://github.com/patrick204nqh/gem-ci/commit/c99445e289345c5824a90228e4f1be18fc68bb88))
|
|
52
|
+
* **deps:** Bump peaceiris/actions-gh-pages from 3 to 4 ([b6dd928](https://github.com/patrick204nqh/gem-ci/commit/b6dd928a625ddee23e9294e0e354846f829818a2))
|
|
53
|
+
* **deps:** Bump peaceiris/actions-gh-pages from 3 to 4 ([e5f7d67](https://github.com/patrick204nqh/gem-ci/commit/e5f7d67d82e2074153a4885432df49285b70b93b))
|
|
54
|
+
* **deps:** Bump softprops/action-gh-release from 1 to 2 ([4458dab](https://github.com/patrick204nqh/gem-ci/commit/4458dab84ec0684ec5b89a5e49d9c8bc42806aba))
|
|
55
|
+
* **deps:** Bump softprops/action-gh-release from 1 to 2 ([12b925a](https://github.com/patrick204nqh/gem-ci/commit/12b925a22df7abb8ef905c338cd760210ead1510))
|
|
56
|
+
* **deps:** Bump the github-actions group across 1 directory with 7 updates ([22ca5ff](https://github.com/patrick204nqh/gem-ci/commit/22ca5ff54537e94ea11f03a43589a0089c79c41e))
|
|
57
|
+
* **deps:** Bump the github-actions group across 1 directory with 7 updates ([3972d4e](https://github.com/patrick204nqh/gem-ci/commit/3972d4ec746d3d1c0ac5feba0661bde505a0ff4e))
|
|
58
|
+
* **deps:** Bump the github-actions group with 4 updates ([0f4e73d](https://github.com/patrick204nqh/gem-ci/commit/0f4e73dede25b6dadcc4bbf6864ee19b78cf3a4d))
|
|
59
|
+
* **deps:** Bump the github-actions group with 4 updates ([0ddb51c](https://github.com/patrick204nqh/gem-ci/commit/0ddb51c57af96463a84f31bb8d8002d2344f0cee))
|
|
60
|
+
|
|
3
61
|
## [0.4.0](https://github.com/patrick204nqh/gem-ci/compare/gem-ci-v0.3.0...gem-ci/v0.4.0) (2025-07-27)
|
|
4
62
|
|
|
5
63
|
|
data/CONTRIBUTORS.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Contributors
|
|
2
|
+
|
|
3
|
+
Thank you to everyone who has contributed to gem-ci! 🎉
|
|
4
|
+
|
|
5
|
+
## 🤝 How to Contribute
|
|
6
|
+
|
|
7
|
+
We welcome contributions from the community! Here are ways you can help:
|
|
8
|
+
|
|
9
|
+
### 💡 Ideas & Feedback
|
|
10
|
+
- [Report bugs](https://github.com/patrick204nqh/gem-ci/issues/new?template=bug_report.md)
|
|
11
|
+
- [Suggest features](https://github.com/patrick204nqh/gem-ci/issues/new?template=feature_request.md)
|
|
12
|
+
- Share your experience using gem-ci
|
|
13
|
+
|
|
14
|
+
### 📝 Documentation
|
|
15
|
+
- Fix typos or improve clarity
|
|
16
|
+
- Add examples or use cases
|
|
17
|
+
- Translate documentation
|
|
18
|
+
|
|
19
|
+
### 🔧 Code Contributions
|
|
20
|
+
- Fix bugs
|
|
21
|
+
- Implement new features
|
|
22
|
+
- Optimize workflows
|
|
23
|
+
- Add tests
|
|
24
|
+
|
|
25
|
+
### 🧪 Testing
|
|
26
|
+
- Test new features
|
|
27
|
+
- Report compatibility issues
|
|
28
|
+
- Share workflow configurations
|
|
29
|
+
|
|
30
|
+
## 🚀 Getting Started
|
|
31
|
+
|
|
32
|
+
1. Fork the repository
|
|
33
|
+
2. Create a feature branch: `git checkout -b feature/your-feature`
|
|
34
|
+
3. Make your changes
|
|
35
|
+
4. Run tests: `bundle exec rspec`
|
|
36
|
+
5. Submit a pull request
|
|
37
|
+
|
|
38
|
+
## 📋 Contribution Guidelines
|
|
39
|
+
|
|
40
|
+
- Follow the existing code style
|
|
41
|
+
- Add tests for new features
|
|
42
|
+
- Update documentation as needed
|
|
43
|
+
- Use conventional commit messages
|
|
44
|
+
- Be respectful and constructive
|
|
45
|
+
|
|
46
|
+
## 🎯 Current Needs
|
|
47
|
+
|
|
48
|
+
We're especially looking for help with:
|
|
49
|
+
- [ ] Windows compatibility testing
|
|
50
|
+
- [ ] Additional Ruby version support
|
|
51
|
+
- [ ] Integration with more external services
|
|
52
|
+
- [ ] Performance optimizations
|
|
53
|
+
- [ ] Documentation improvements
|
|
54
|
+
|
|
55
|
+
## 📚 Resources
|
|
56
|
+
|
|
57
|
+
- [Development Setup](docs/guides/local-testing.md)
|
|
58
|
+
- [Workflow Overview](docs/workflows/overview.md)
|
|
59
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
**Want to contribute?** Check out our [good first issue](https://github.com/patrick204nqh/gem-ci/labels/good%20first%20issue) label or join the discussion in [Issues](https://github.com/patrick204nqh/gem-ci/issues).
|
|
64
|
+
|
|
65
|
+
Every contribution, no matter how small, makes gem-ci better for everyone! 🙏
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# 🏆 gem-ci
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<img src="public/gem-ci-transparent-bg.png" alt="gem-ci Logo" width="200">
|
|
6
6
|
|
|
7
7
|
**The Ultimate Ruby Gem Automation Showcase**
|
|
8
8
|
|
|
@@ -21,17 +21,14 @@
|
|
|
21
21
|
|
|
22
22
|
## ✨ What This Provides
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**9 comprehensive workflows** for complete Ruby gem automation:
|
|
25
25
|
|
|
26
|
-
- 🔄 **
|
|
27
|
-
- 🔒 **Security scanning
|
|
28
|
-
- 📊 **
|
|
29
|
-
- 🚀 **
|
|
30
|
-
- 👥 **Community management
|
|
31
|
-
-
|
|
32
|
-
- 🤖 **Bot commands** for interactive workflow management
|
|
33
|
-
- 🌐 **Ecosystem integration** and compatibility checks
|
|
34
|
-
- 📊 **Advanced monitoring** with cost-optimized scheduling
|
|
26
|
+
- 🔄 **CI/CD** with consolidated PR dashboard
|
|
27
|
+
- 🔒 **Security** scanning and vulnerability detection
|
|
28
|
+
- 📊 **Quality** enforcement and documentation
|
|
29
|
+
- 🚀 **Releases** with semantic versioning
|
|
30
|
+
- 👥 **Community** management and engagement
|
|
31
|
+
- 🤖 **Bot commands** for workflow control
|
|
35
32
|
|
|
36
33
|
## 🚀 Quick Start
|
|
37
34
|
|
|
@@ -42,55 +39,6 @@ This repository serves as the **ultimate showcase** for Ruby gem automation. It
|
|
|
42
39
|
5. **Test locally** using our [Local Testing Guide](docs/guides/local-testing.md)
|
|
43
40
|
6. **Start developing** - automation handles the rest!
|
|
44
41
|
|
|
45
|
-
## 📋 Complete Automation Tasks
|
|
46
|
-
|
|
47
|
-
| **Category** | **Task** | **Workflow** | **Action Used** | **Configuration** |
|
|
48
|
-
| ------------------- | ----------------------- | ---------------------------------------- | ----------------------------------------- | --------------------------- |
|
|
49
|
-
| **🔄 CI/CD** | Ruby testing | `02-ci.yml` | `ruby/setup-ruby@v1` | Ruby 3.3 (optimized) |
|
|
50
|
-
| | Ubuntu testing | `02-ci.yml` | `actions/checkout@v4` | Ubuntu-latest (cost optimized) |
|
|
51
|
-
| | Dependency caching | `02-ci.yml` | `actions/cache@v3` | Bundler cache |
|
|
52
|
-
| | Test execution | `02-ci.yml` | Custom scripts | RSpec, Minitest |
|
|
53
|
-
| | Coverage reporting | `04-quality.yml` | `simplecov` gem | 90% threshold |
|
|
54
|
-
| **🔒 Security** | CodeQL analysis | `03-security.yml` | `github/codeql-action@v3` | `.github/config/codeql.yml` |
|
|
55
|
-
| | Dependency scanning | `03-security.yml` | `actions/dependency-review-action@v4` | Vulnerability detection |
|
|
56
|
-
| | Secret scanning | `03-security.yml` | `trufflesecurity/trufflehog@main` | Git history scan |
|
|
57
|
-
| | Container scanning | `03-security.yml` | `aquasecurity/trivy-action@master` | Dockerfile security |
|
|
58
|
-
| | Bundle audit | `03-security.yml` | `bundler-audit` gem | Gem vulnerabilities |
|
|
59
|
-
| **📊 Quality** | Code linting | `04-quality.yml` | `rubocop/rubocop-github-action@v0.1.0` | RuboCop standards |
|
|
60
|
-
| | Documentation | `04-quality.yml` | `yard` gem | API documentation |
|
|
61
|
-
| | Markdown linting | `04-quality.yml` | `DavidAnson/markdownlint-cli2-action@v16` | Markdown standards |
|
|
62
|
-
| | Super linting | `04-quality.yml` | `super-linter/super-linter@v5` | Multi-language linting |
|
|
63
|
-
| **🏷️ Labels** | Label sync | `01-intake.yml` | `crazy-max/ghaction-github-labeler@v5` | `.github/config/labels.yml` |
|
|
64
|
-
| | Auto-labeling | `01-intake.yml` | `actions/labeler@v5` | `.github/config/labeler.yml` |
|
|
65
|
-
| | Size labeling | `01-intake.yml` | Custom script | PR size detection |
|
|
66
|
-
| **👥 Community** | Welcome messages | `01-intake.yml` | `actions/first-interaction@v1` | First-time contributors |
|
|
67
|
-
| | Stale management | `05-community.yml` | `actions/stale@v9` | 60-day stale policy |
|
|
68
|
-
| | Contributor recognition | `05-community.yml` | Custom script | Achievement badges |
|
|
69
|
-
| | Health monitoring | `08-monitoring.yml` | Custom script | Community metrics |
|
|
70
|
-
| **🚀 Release** | Semantic versioning | `06-release.yml` | Custom script | Version bumping |
|
|
71
|
-
| | Changelog generation | `06-release.yml` | Custom script | Auto-generated changelogs |
|
|
72
|
-
| | RubyGems publishing | `06-release.yml` | `ruby/setup-ruby@v1` | Automated gem push |
|
|
73
|
-
| | GitHub releases | `06-release.yml` | `actions/create-release@v1` | Release notes |
|
|
74
|
-
| | Release notifications | `06-release.yml` | `slackapi/slack-github-action@v1.27.0` | Slack integration |
|
|
75
|
-
| **📦 Dependencies** | Dependency updates | Dependabot | GitHub native | `.github/dependabot.yml` |
|
|
76
|
-
| | Security updates | Dependabot | GitHub native | Auto-merge safe updates |
|
|
77
|
-
| | Version grouping | Dependabot | GitHub native | Development/testing groups |
|
|
78
|
-
| **🛡️ Protection** | Branch protection | Rulesets | GitHub native | `.github/config/rulesets/` |
|
|
79
|
-
| | Tag protection | Rulesets | GitHub native | Release tag protection |
|
|
80
|
-
| | Push restrictions | Rulesets | GitHub native | Development branch rules |
|
|
81
|
-
| **📢 Notifications** | Slack integration | Multiple | Custom shared action | `SLACK_BOT_TOKEN` + `SLACK_CHANNEL_ID` |
|
|
82
|
-
| | PR Status Dashboard | Multiple | `update-pr-status` action | Consolidated PR comments |
|
|
83
|
-
| **🤖 Bot Commands** | Release management | `09-bot-commands.yml` | `actions/github-script@v7` | Slash commands |
|
|
84
|
-
| | Help system | `09-bot-commands.yml` | `actions/github-script@v7` | Interactive help |
|
|
85
|
-
| **🌐 Ecosystem** | Dependency health | `07-ecosystem.yml` | Custom scripts | Bi-weekly checks |
|
|
86
|
-
| | Compatibility matrix | `07-ecosystem.yml` | `ruby/setup-ruby@v1` | Ruby version testing |
|
|
87
|
-
| | Performance benchmarks | `07-ecosystem.yml` | Custom benchmark scripts | Release validation |
|
|
88
|
-
| **📊 Monitoring** | Workflow metrics | `08-monitoring.yml` | `actions/github-script@v7` | Weekly performance tracking |
|
|
89
|
-
| | Repository health | `08-monitoring.yml` | Custom health checks | Automated health reports |
|
|
90
|
-
| **🧪 Validation** | GitHub App setup | `tests/validate-github-app.yml` | `actions/create-github-app-token@v1` | Token validation |
|
|
91
|
-
| | Slack integration | `tests/validate-slack-integration.yml` | `slackapi/slack-github-action@v1.27.0` | Message testing |
|
|
92
|
-
| | Label sync | `tests/validate-labels-sync.yml` | `crazy-max/ghaction-github-labeler@v5` | Configuration validation |
|
|
93
|
-
| | Repository rulesets | `tests/validate-repository-rulesets.yml` | Custom scripts | Ruleset validation |
|
|
94
42
|
|
|
95
43
|
## 🔐 Required Setup
|
|
96
44
|
|
|
@@ -128,41 +76,6 @@ This repository serves as the **ultimate showcase** for Ruby gem automation. It
|
|
|
128
76
|
**Usage**: Comment these commands on any issue or PR to trigger bot actions.
|
|
129
77
|
</details>
|
|
130
78
|
|
|
131
|
-
## 🔄 Ruby Gem Repository Lifecycle
|
|
132
|
-
|
|
133
|
-
This template provides a complete automation solution that follows the natural lifecycle of a Ruby gem repository:
|
|
134
|
-
|
|
135
|
-
### 🚀 **Phase 1: Repository Setup** (One-time)
|
|
136
|
-
- **🏷️ Label Management**: Sync professional labels and organize repository structure
|
|
137
|
-
- **🔐 Secret Configuration**: Setup GitHub App authentication and integrations
|
|
138
|
-
- **🛡️ Branch Protection**: Configure repository rulesets and security policies
|
|
139
|
-
- **⚙️ Initial Configuration**: Setup dependency management, security scanning, and automation workflows
|
|
140
|
-
|
|
141
|
-
### 💻 **Phase 2: Development Cycle** (Daily)
|
|
142
|
-
- **🧪 Continuous Testing**: Run comprehensive test suites and validate gem functionality
|
|
143
|
-
- **🔒 Security Scanning**: Detect vulnerabilities in code and dependencies
|
|
144
|
-
- **📊 Code Quality**: Enforce coding standards, style guides, and generate documentation
|
|
145
|
-
- **🏷️ Auto-labeling**: Automatically categorize and organize issues and pull requests
|
|
146
|
-
- **👋 Contributor Welcome**: Guide first-time contributors and provide context
|
|
147
|
-
|
|
148
|
-
### 📦 **Phase 3: Dependency Management** (Automated)
|
|
149
|
-
- **🤖 Dependency Updates**: Monitor and update gem dependencies automatically
|
|
150
|
-
- **🧪 Update Testing**: Validate compatibility and functionality after updates
|
|
151
|
-
- **✅ Safe Auto-merge**: Automatically merge low-risk dependency updates
|
|
152
|
-
- **📊 Security Auditing**: Scan dependencies for known vulnerabilities
|
|
153
|
-
|
|
154
|
-
### 🚀 **Phase 4: Release Process** (On-demand)
|
|
155
|
-
- **🏗️ Gem Building**: Package gem files with proper versioning and metadata
|
|
156
|
-
- **💎 RubyGems Publishing**: Publish to RubyGems registry with proper validation
|
|
157
|
-
- **📝 Changelog Generation**: Generate release notes and update documentation
|
|
158
|
-
- **📢 Release Notifications**: Announce releases to team and community channels
|
|
159
|
-
|
|
160
|
-
### 🔄 **Phase 5: Ongoing Maintenance** (Background)
|
|
161
|
-
- **🧹 Stale Management**: Clean up inactive issues and pull requests
|
|
162
|
-
- **🌐 Ecosystem Monitoring**: Check compatibility with Ruby versions and dependencies
|
|
163
|
-
- **📈 Health Monitoring**: Track repository activity, performance, and community engagement
|
|
164
|
-
- **👥 Community Engagement**: Recognize contributors and maintain project health
|
|
165
|
-
- **🤖 Interactive Commands**: Provide bot-driven release management and workflow control
|
|
166
79
|
|
|
167
80
|
## 📚 Documentation
|
|
168
81
|
|
|
@@ -189,11 +102,7 @@ cp .secrets.example .secrets && nano .secrets
|
|
|
189
102
|
|
|
190
103
|
## 🎯 Key Features
|
|
191
104
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
Includes **9 optimized workflows** with 75-80% cost reduction, custom linting, consolidated PR dashboard, automated releases, and comprehensive security scanning.
|
|
195
|
-
|
|
196
|
-
**[📖 View Complete Feature List](docs/workflows/overview.md)**
|
|
105
|
+
**75-80% cost reduction** • **Consolidated PR dashboard** • **Interactive bot commands** • **Comprehensive security** • **Automated releases**
|
|
197
106
|
|
|
198
107
|
## 🤝 Contributing
|
|
199
108
|
|
data/docs/Gemfile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
# Jekyll and theme
|
|
6
|
+
gem "jekyll", "~> 4.3.0"
|
|
7
|
+
gem "jekyll-theme-cayman", "~> 0.2.0"
|
|
8
|
+
|
|
9
|
+
# Jekyll plugins
|
|
10
|
+
gem "jekyll-feed", "~> 0.12"
|
|
11
|
+
gem "jekyll-seo-tag", "~> 2.8"
|
|
12
|
+
gem "jekyll-sitemap", "~> 1.4"
|
|
13
|
+
|
|
14
|
+
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
|
15
|
+
# and associated library.
|
|
16
|
+
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
|
17
|
+
gem "tzinfo", ">= 1", "< 3"
|
|
18
|
+
gem "tzinfo-data"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Performance-booster for watching directories on Windows
|
|
22
|
+
gem "wdm", "~> 0.1.1", platforms: %i[mingw x64_mingw mswin]
|
|
23
|
+
|
|
24
|
+
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
|
|
25
|
+
# do not have a Java counterpart.
|
|
26
|
+
gem "http_parser.rb", "~> 0.6.0", platforms: %i[jruby]
|
|
27
|
+
|
|
28
|
+
# GitHub Pages compatibility
|
|
29
|
+
gem "webrick", "~> 1.8"
|
|
30
|
+
|
|
31
|
+
# Fix Ruby 3.4.0 compatibility warnings
|
|
32
|
+
gem "base64", "~> 0.1"
|
|
33
|
+
gem "csv", "~> 3.2"
|
data/docs/Gemfile.lock
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
addressable (2.8.7)
|
|
5
|
+
public_suffix (>= 2.0.2, < 7.0)
|
|
6
|
+
base64 (0.3.0)
|
|
7
|
+
bigdecimal (3.2.2)
|
|
8
|
+
colorator (1.1.0)
|
|
9
|
+
concurrent-ruby (1.3.5)
|
|
10
|
+
csv (3.3.5)
|
|
11
|
+
em-websocket (0.5.3)
|
|
12
|
+
eventmachine (>= 0.12.9)
|
|
13
|
+
http_parser.rb (~> 0)
|
|
14
|
+
eventmachine (1.2.7)
|
|
15
|
+
ffi (1.17.2)
|
|
16
|
+
ffi (1.17.2-aarch64-linux-gnu)
|
|
17
|
+
ffi (1.17.2-aarch64-linux-musl)
|
|
18
|
+
ffi (1.17.2-arm-linux-gnu)
|
|
19
|
+
ffi (1.17.2-arm-linux-musl)
|
|
20
|
+
ffi (1.17.2-arm64-darwin)
|
|
21
|
+
ffi (1.17.2-x86-linux-gnu)
|
|
22
|
+
ffi (1.17.2-x86-linux-musl)
|
|
23
|
+
ffi (1.17.2-x86_64-darwin)
|
|
24
|
+
ffi (1.17.2-x86_64-linux-gnu)
|
|
25
|
+
ffi (1.17.2-x86_64-linux-musl)
|
|
26
|
+
forwardable-extended (2.6.0)
|
|
27
|
+
google-protobuf (4.31.1)
|
|
28
|
+
bigdecimal
|
|
29
|
+
rake (>= 13)
|
|
30
|
+
google-protobuf (4.31.1-aarch64-linux-gnu)
|
|
31
|
+
bigdecimal
|
|
32
|
+
rake (>= 13)
|
|
33
|
+
google-protobuf (4.31.1-aarch64-linux-musl)
|
|
34
|
+
bigdecimal
|
|
35
|
+
rake (>= 13)
|
|
36
|
+
google-protobuf (4.31.1-arm64-darwin)
|
|
37
|
+
bigdecimal
|
|
38
|
+
rake (>= 13)
|
|
39
|
+
google-protobuf (4.31.1-x86-linux-gnu)
|
|
40
|
+
bigdecimal
|
|
41
|
+
rake (>= 13)
|
|
42
|
+
google-protobuf (4.31.1-x86-linux-musl)
|
|
43
|
+
bigdecimal
|
|
44
|
+
rake (>= 13)
|
|
45
|
+
google-protobuf (4.31.1-x86_64-darwin)
|
|
46
|
+
bigdecimal
|
|
47
|
+
rake (>= 13)
|
|
48
|
+
google-protobuf (4.31.1-x86_64-linux-gnu)
|
|
49
|
+
bigdecimal
|
|
50
|
+
rake (>= 13)
|
|
51
|
+
google-protobuf (4.31.1-x86_64-linux-musl)
|
|
52
|
+
bigdecimal
|
|
53
|
+
rake (>= 13)
|
|
54
|
+
http_parser.rb (0.8.0)
|
|
55
|
+
i18n (1.14.7)
|
|
56
|
+
concurrent-ruby (~> 1.0)
|
|
57
|
+
jekyll (4.3.4)
|
|
58
|
+
addressable (~> 2.4)
|
|
59
|
+
colorator (~> 1.0)
|
|
60
|
+
em-websocket (~> 0.5)
|
|
61
|
+
i18n (~> 1.0)
|
|
62
|
+
jekyll-sass-converter (>= 2.0, < 4.0)
|
|
63
|
+
jekyll-watch (~> 2.0)
|
|
64
|
+
kramdown (~> 2.3, >= 2.3.1)
|
|
65
|
+
kramdown-parser-gfm (~> 1.0)
|
|
66
|
+
liquid (~> 4.0)
|
|
67
|
+
mercenary (>= 0.3.6, < 0.5)
|
|
68
|
+
pathutil (~> 0.9)
|
|
69
|
+
rouge (>= 3.0, < 5.0)
|
|
70
|
+
safe_yaml (~> 1.0)
|
|
71
|
+
terminal-table (>= 1.8, < 4.0)
|
|
72
|
+
webrick (~> 1.7)
|
|
73
|
+
jekyll-feed (0.17.0)
|
|
74
|
+
jekyll (>= 3.7, < 5.0)
|
|
75
|
+
jekyll-sass-converter (3.1.0)
|
|
76
|
+
sass-embedded (~> 1.75)
|
|
77
|
+
jekyll-seo-tag (2.8.0)
|
|
78
|
+
jekyll (>= 3.8, < 5.0)
|
|
79
|
+
jekyll-sitemap (1.4.0)
|
|
80
|
+
jekyll (>= 3.7, < 5.0)
|
|
81
|
+
jekyll-theme-cayman (0.2.0)
|
|
82
|
+
jekyll (> 3.5, < 5.0)
|
|
83
|
+
jekyll-seo-tag (~> 2.0)
|
|
84
|
+
jekyll-watch (2.2.1)
|
|
85
|
+
listen (~> 3.0)
|
|
86
|
+
kramdown (2.5.1)
|
|
87
|
+
rexml (>= 3.3.9)
|
|
88
|
+
kramdown-parser-gfm (1.1.0)
|
|
89
|
+
kramdown (~> 2.0)
|
|
90
|
+
liquid (4.0.4)
|
|
91
|
+
listen (3.9.0)
|
|
92
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
93
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
|
94
|
+
mercenary (0.4.0)
|
|
95
|
+
pathutil (0.16.2)
|
|
96
|
+
forwardable-extended (~> 2.6)
|
|
97
|
+
public_suffix (6.0.2)
|
|
98
|
+
rake (13.3.0)
|
|
99
|
+
rb-fsevent (0.11.2)
|
|
100
|
+
rb-inotify (0.11.1)
|
|
101
|
+
ffi (~> 1.0)
|
|
102
|
+
rexml (3.4.1)
|
|
103
|
+
rouge (4.6.0)
|
|
104
|
+
safe_yaml (1.0.5)
|
|
105
|
+
sass-embedded (1.89.2)
|
|
106
|
+
google-protobuf (~> 4.31)
|
|
107
|
+
rake (>= 13)
|
|
108
|
+
sass-embedded (1.89.2-aarch64-linux-android)
|
|
109
|
+
google-protobuf (~> 4.31)
|
|
110
|
+
sass-embedded (1.89.2-aarch64-linux-gnu)
|
|
111
|
+
google-protobuf (~> 4.31)
|
|
112
|
+
sass-embedded (1.89.2-aarch64-linux-musl)
|
|
113
|
+
google-protobuf (~> 4.31)
|
|
114
|
+
sass-embedded (1.89.2-arm-linux-androideabi)
|
|
115
|
+
google-protobuf (~> 4.31)
|
|
116
|
+
sass-embedded (1.89.2-arm-linux-gnueabihf)
|
|
117
|
+
google-protobuf (~> 4.31)
|
|
118
|
+
sass-embedded (1.89.2-arm-linux-musleabihf)
|
|
119
|
+
google-protobuf (~> 4.31)
|
|
120
|
+
sass-embedded (1.89.2-arm64-darwin)
|
|
121
|
+
google-protobuf (~> 4.31)
|
|
122
|
+
sass-embedded (1.89.2-riscv64-linux-android)
|
|
123
|
+
google-protobuf (~> 4.31)
|
|
124
|
+
sass-embedded (1.89.2-riscv64-linux-gnu)
|
|
125
|
+
google-protobuf (~> 4.31)
|
|
126
|
+
sass-embedded (1.89.2-riscv64-linux-musl)
|
|
127
|
+
google-protobuf (~> 4.31)
|
|
128
|
+
sass-embedded (1.89.2-x86_64-darwin)
|
|
129
|
+
google-protobuf (~> 4.31)
|
|
130
|
+
sass-embedded (1.89.2-x86_64-linux-android)
|
|
131
|
+
google-protobuf (~> 4.31)
|
|
132
|
+
sass-embedded (1.89.2-x86_64-linux-gnu)
|
|
133
|
+
google-protobuf (~> 4.31)
|
|
134
|
+
sass-embedded (1.89.2-x86_64-linux-musl)
|
|
135
|
+
google-protobuf (~> 4.31)
|
|
136
|
+
terminal-table (3.0.2)
|
|
137
|
+
unicode-display_width (>= 1.1.1, < 3)
|
|
138
|
+
unicode-display_width (2.6.0)
|
|
139
|
+
webrick (1.9.1)
|
|
140
|
+
|
|
141
|
+
PLATFORMS
|
|
142
|
+
aarch64-linux-android
|
|
143
|
+
aarch64-linux-gnu
|
|
144
|
+
aarch64-linux-musl
|
|
145
|
+
arm-linux-androideabi
|
|
146
|
+
arm-linux-gnu
|
|
147
|
+
arm-linux-gnueabihf
|
|
148
|
+
arm-linux-musl
|
|
149
|
+
arm-linux-musleabihf
|
|
150
|
+
arm64-darwin
|
|
151
|
+
riscv64-linux-android
|
|
152
|
+
riscv64-linux-gnu
|
|
153
|
+
riscv64-linux-musl
|
|
154
|
+
ruby
|
|
155
|
+
x86-linux-gnu
|
|
156
|
+
x86-linux-musl
|
|
157
|
+
x86_64-darwin
|
|
158
|
+
x86_64-linux-android
|
|
159
|
+
x86_64-linux-gnu
|
|
160
|
+
x86_64-linux-musl
|
|
161
|
+
|
|
162
|
+
DEPENDENCIES
|
|
163
|
+
base64 (~> 0.1)
|
|
164
|
+
csv (~> 3.2)
|
|
165
|
+
http_parser.rb (~> 0.6.0)
|
|
166
|
+
jekyll (~> 4.3.0)
|
|
167
|
+
jekyll-feed (~> 0.12)
|
|
168
|
+
jekyll-seo-tag (~> 2.8)
|
|
169
|
+
jekyll-sitemap (~> 1.4)
|
|
170
|
+
jekyll-theme-cayman (~> 0.2.0)
|
|
171
|
+
tzinfo (>= 1, < 3)
|
|
172
|
+
tzinfo-data
|
|
173
|
+
wdm (~> 0.1.1)
|
|
174
|
+
webrick (~> 1.8)
|
|
175
|
+
|
|
176
|
+
BUNDLED WITH
|
|
177
|
+
2.6.9
|
data/docs/README.md
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# gem-ci Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains the Jekyll-based documentation for gem-ci.
|
|
4
|
+
|
|
5
|
+
## Local Development Setup
|
|
6
|
+
|
|
7
|
+
### Prerequisites
|
|
8
|
+
- Ruby 3.3+ installed
|
|
9
|
+
- Bundler gem installed
|
|
10
|
+
|
|
11
|
+
### Setup Instructions
|
|
12
|
+
|
|
13
|
+
1. **Navigate to docs directory:**
|
|
14
|
+
```bash
|
|
15
|
+
cd docs
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
2. **Install dependencies:**
|
|
19
|
+
```bash
|
|
20
|
+
bundle install
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
3. **Run Jekyll development server:**
|
|
24
|
+
```bash
|
|
25
|
+
bundle exec jekyll serve
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
4. **Open in browser:**
|
|
29
|
+
- Local site: http://localhost:4000/gem-ci/
|
|
30
|
+
- The site will auto-rebuild when you make changes
|
|
31
|
+
|
|
32
|
+
### Alternative Ports
|
|
33
|
+
|
|
34
|
+
If port 4000 is in use:
|
|
35
|
+
```bash
|
|
36
|
+
bundle exec jekyll serve --port 4001
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Build for Production
|
|
40
|
+
|
|
41
|
+
To build the static site:
|
|
42
|
+
```bash
|
|
43
|
+
bundle exec jekyll build
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Files will be generated in `_site/` directory.
|
|
47
|
+
|
|
48
|
+
## Directory Structure
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
docs/
|
|
52
|
+
├── _config.yml # Jekyll configuration
|
|
53
|
+
├── Gemfile # Ruby dependencies
|
|
54
|
+
├── assets/
|
|
55
|
+
│ └── css/
|
|
56
|
+
│ └── style.scss # Custom styling
|
|
57
|
+
├── guides/ # User guides
|
|
58
|
+
├── setup/ # Setup instructions
|
|
59
|
+
├── workflows/ # Workflow documentation
|
|
60
|
+
├── diagrams/ # Visual diagrams
|
|
61
|
+
└── index.md # Homepage
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Writing Documentation
|
|
65
|
+
|
|
66
|
+
### File Format
|
|
67
|
+
All documentation files should include frontmatter:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
---
|
|
71
|
+
title: Page Title
|
|
72
|
+
description: Page description for SEO
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
# Page Content
|
|
76
|
+
|
|
77
|
+
Your markdown content here...
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Navigation
|
|
81
|
+
Navigation is automatically generated based on the directory structure and frontmatter.
|
|
82
|
+
|
|
83
|
+
### Custom Styling
|
|
84
|
+
Custom CSS is in `assets/css/style.scss` and automatically compiled by Jekyll.
|
|
85
|
+
|
|
86
|
+
### Mermaid Diagrams
|
|
87
|
+
Mermaid diagrams are fully supported. Use standard Mermaid code blocks:
|
|
88
|
+
|
|
89
|
+
````markdown
|
|
90
|
+
```mermaid
|
|
91
|
+
flowchart TD
|
|
92
|
+
A[Start] --> B[End]
|
|
93
|
+
```
|
|
94
|
+
````
|
|
95
|
+
|
|
96
|
+
For better presentation, wrap diagrams in containers:
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
<div class="diagram-container">
|
|
100
|
+
<div class="diagram-title">Your Diagram Title</div>
|
|
101
|
+
<div class="diagram-description">Brief description of the diagram</div>
|
|
102
|
+
|
|
103
|
+
```mermaid
|
|
104
|
+
your diagram code here
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Deployment
|
|
111
|
+
|
|
112
|
+
This documentation is designed to work with GitHub Pages. The site will automatically build and deploy when changes are pushed to the repository.
|
|
113
|
+
|
|
114
|
+
## Troubleshooting
|
|
115
|
+
|
|
116
|
+
### Common Issues
|
|
117
|
+
|
|
118
|
+
**Bundler errors:**
|
|
119
|
+
```bash
|
|
120
|
+
bundle update
|
|
121
|
+
bundle install
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Port in use:**
|
|
125
|
+
```bash
|
|
126
|
+
bundle exec jekyll serve --port 4001
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Build errors:**
|
|
130
|
+
Check the Jekyll output for specific error messages and fix any YAML or Markdown syntax issues.
|