{"id":20051660,"url":"https://github.com/dry-rb/devtools","last_synced_at":"2025-08-09T03:03:25.952Z","repository":{"id":52206716,"uuid":"174600263","full_name":"dry-rb/devtools","owner":"dry-rb","description":"Shared tools, configuration and maintenance automation for dry-rb repos","archived":false,"fork":false,"pushed_at":"2024-11-20T11:28:04.000Z","size":353,"stargazers_count":9,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-05T11:44:26.460Z","etag":null,"topics":["dry-rb","ruby"],"latest_commit_sha":null,"homepage":"https://dry-rb.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dry-rb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-08T19:54:40.000Z","updated_at":"2024-11-20T11:28:08.000Z","dependencies_parsed_at":"2024-11-20T21:30:25.252Z","dependency_job_id":null,"html_url":"https://github.com/dry-rb/devtools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dry-rb/devtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dry-rb%2Fdevtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dry-rb%2Fdevtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dry-rb%2Fdevtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dry-rb%2Fdevtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dry-rb","download_url":"https://codeload.github.com/dry-rb/devtools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dry-rb%2Fdevtools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269523362,"owners_count":24431613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dry-rb","ruby"],"created_at":"2024-11-13T12:05:16.877Z","updated_at":"2025-08-09T03:03:25.883Z","avatar_url":"https://github.com/dry-rb.png","language":"Ruby","readme":"# devtools\n\nCommon tools and configs used in dry-rb projects\n\n## Release workflow\n\nThe release workflow is triggered from ci builds that are triggered by tag creation. Before creating and pushing a new tag, remember to:\n\n- [ ] ensure that the version is updated in the `version.rb` file\n- [ ] ensure that the latest changelog entry corresponds to the current version\n- [ ] ensure that the latest changelog entry has the correct release date\n\n!! **IMPORTANT** release workflow will only pass if *the tag creator is a member of the core team on GitHub* and *the commit that created the tag is signed and verified by GitHub*\n\n## Keeping CHANGELOG.md up to date\n\nUse the following syntax in your **commit messages** to have `CHANGELOG.md` automatically updated in dry-rb repos:\n\n#### Updating latest version that already exists in the CHANGELOG.md\n\n```\nI added a feature\n\n[changelog]\n\nadded: \"New feature was added (@gh-handle)\"\n```\n\n#### Targetting a specific version in the CHANGELOG.md\n\n```\nI added a feature\n\n[changelog]\n\nversion: 3.1.2\nadded: \"New feature was added (@gh-handle)\"\n```\n\n\u003e if the version doesn't exist, it will be added for you\n\n### Adding multiple entries\n\n```\nBump to 3.1.2\n\n[changelog]\n\nversion: 3.1.2\nadded: \"New feature was added (@gh-handle)\"\nfixed: \"Something was broken and it was fixed (@gh-handle)\"\nchanged: \"Something else was changed too (@gh-handle)\"\n```\n\n### Adding many items under the same entry\n\n```\nBump to 3.1.2\n\n[changelog]\n\nversion: 3.1.2\nfixed:\n- \"this bug (@gh-handle)\"\n- \"that bug (@gh-handle)\"\n```\n\n### Adding release date and summary\n\n```\nBump to 3.1.2\n\n[changelog]\n\nversion: 3.1.2\nsummary: \"This release is great\"\n```\n\n### Adding `unreleased` version\n\nTo add or update `unreleased` version simply set `version: unreleased` ie:\n\n```\nAdd a feature\n\n[changelog]\n\nversion: unreleased\nsummary: \"This release will be great\"\nadded: a feature!\n```\n\n## Cherry-pick doc patches\n\nWhen a doc patch is sent the bot can cherry-pick it into version branches. Use the following syntax in merge commits:\n\n```\ndocsite:release-1.2\ndocsite:release-1.3\n```\n\nThe example above patches `release-1.2` and `release-1.3` branches. Don't forget the PR should be based on `main`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdry-rb%2Fdevtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdry-rb%2Fdevtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdry-rb%2Fdevtools/lists"}