{"id":22779793,"url":"https://github.com/gusto/semantic-release-rubygem","last_synced_at":"2026-02-13T12:51:10.992Z","repository":{"id":38174268,"uuid":"275020628","full_name":"Gusto/semantic-release-rubygem","owner":"Gusto","description":"A semantic-release plugin for publishing Ruby gems","archived":false,"fork":false,"pushed_at":"2023-07-18T22:39:24.000Z","size":1722,"stargazers_count":10,"open_issues_count":32,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-11T21:54:37.847Z","etag":null,"topics":["publish","release","rubygems","semantic-release","semantic-release-plugin","version"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gusto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-06-25T21:41:38.000Z","updated_at":"2024-09-12T08:09:55.000Z","dependencies_parsed_at":"2024-09-08T21:06:29.985Z","dependency_job_id":"74c5070d-9ebc-4bc3-8315-336608221dd5","html_url":"https://github.com/Gusto/semantic-release-rubygem","commit_stats":{"total_commits":33,"total_committers":4,"mean_commits":8.25,"dds":"0.18181818181818177","last_synced_commit":"f254976ca89211aeeddd733b7ed85d2c5c4e54fb"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gusto%2Fsemantic-release-rubygem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gusto%2Fsemantic-release-rubygem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gusto%2Fsemantic-release-rubygem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gusto%2Fsemantic-release-rubygem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gusto","download_url":"https://codeload.github.com/Gusto/semantic-release-rubygem/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085934,"owners_count":21210379,"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","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":["publish","release","rubygems","semantic-release","semantic-release-plugin","version"],"created_at":"2024-12-11T20:09:52.021Z","updated_at":"2026-02-13T12:51:10.900Z","avatar_url":"https://github.com/Gusto.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# semantic-release-rubygem\n\n[**semantic-release**](https://github.com/semantic-release/semantic-release) plugin for publishing Ruby [gems](https://rubygems.org/).\n\n| Step               | Description                                                                                                                                   |                                                                     |\n|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------|\n| `verifyConditions` | Locate and validate a `.gemspec` file, locate and validate a `lib/**/version.rb` file, verify the presence of the `GEM_HOST_API_KEY` environment variable, and create a credentials file with the API key.|                                                                     |\n| `prepare`          | Update the version in the `lib/**/version.rb` version file and [build](https://guides.rubygems.org/command-reference/#gem-build) the gem.                                      |                                                                     |\n| `publish`          | [Push the gem](https://guides.rubygems.org/command-reference/#gem-push) to the gem server.                                                                |                                                                     |\n\n## Install\n\n```bash\n$ npm install semantic-release-rubygem -D\n```\n\n## Usage\n\nAdd the plugin to the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration):\n\n```json\n{\n  \"plugins\": [\n    \"@semantic-release/commit-analyzer\",\n    \"@semantic-release/release-notes-generator\",\n    \"semantic-release-rubygem\",\n  ]\n}\n```\n\n## Configuration\n\n### Gem server authentication\n\nThe gem server authentication configuration is **required**.\n\nThe API key must be set using the `GEM_HOST_API_KEY` environment variable. To retrieve the key, you can:\n1. Login to [RubyGems.org](https://rubygems.org) and click on ['Edit Profile'](https://rubygems.org/profile/edit). You'll find the key in the 'API Access' section of the page.\n2. Sign into your gem host using the [`gem signin`](https://guides.rubygems.org/command-reference/#gem-signin) command. After you enter your credentials, your API key will be stored as a YAML value in the `~/.gem/credentials` file under the `rubygems_api_key` key (or the hostname of your gem server).\n\n### gemspec file\n\nThis plugin requires exactly one valid `.gemspec` file to be present in the CWD.\n\n### `lib/**/version.rb` file\n\nThis plugin requires the version of the published gem to be defined in a `version.rb` file somewhere in the `lib` folder (e.g. `lib/my/gem/version.rb`). The version itself must be defined as a constant named `VERSION` inside the file:\n```ruby\nmodule My\n  module Gem\n    VERSION = '0.0.0'\n  end\nend\n\n```\n\n### Options\n\n| Options      | Description                                                                                                         | Default                                                                                                                          |\n|--------------|---------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|\n| `gemHost` | The gem server to push the gem to.  | `'https//rubygems.org'` |\n| `updateGemfileLock` | Whether to update the version of the gem to publish in the `Gemfile.lock`. This is useful if you are using the [`@semantic-release/git`](https://github.com/semantic-release/git) plugin to keep the version up to date in your git repo. When set to `true` the plugin will run `bundle install` to update the version. If another command is desired, it can be set by passing a string (e.g. `bundle appraisal install`). | `false` |\n| `gemPublish` | Whether to publish your gem to the gem server. | `true` |\n| `gemFileDir` | Directory path in which to write the the built `.gem` file. If `false`, the `.gem` file will not be kept on the file system. | `false` |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusto%2Fsemantic-release-rubygem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgusto%2Fsemantic-release-rubygem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusto%2Fsemantic-release-rubygem/lists"}