{"id":13878232,"url":"https://github.com/MaximeD/gem_updater","last_synced_at":"2025-07-16T14:31:48.572Z","repository":{"id":28700548,"uuid":"32220915","full_name":"MaximeD/gem_updater","owner":"MaximeD","description":"Update gems in your Gemfile and fetch their changelogs","archived":false,"fork":false,"pushed_at":"2024-11-09T09:53:34.000Z","size":4088,"stargazers_count":320,"open_issues_count":0,"forks_count":13,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-20T23:27:42.681Z","etag":null,"topics":["bundler","changelog","gemfile","ruby","update"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/MaximeD.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":"MaximeD"}},"created_at":"2015-03-14T16:26:50.000Z","updated_at":"2024-11-09T09:51:57.000Z","dependencies_parsed_at":"2023-12-25T11:27:15.768Z","dependency_job_id":"31d347ea-5372-4474-8225-6a1314d011e9","html_url":"https://github.com/MaximeD/gem_updater","commit_stats":{"total_commits":144,"total_committers":8,"mean_commits":18.0,"dds":"0.11805555555555558","last_synced_commit":"967f72d20d4a659fd22a3b1e997c51b9ee68469b"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeD%2Fgem_updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeD%2Fgem_updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeD%2Fgem_updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeD%2Fgem_updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaximeD","download_url":"https://codeload.github.com/MaximeD/gem_updater/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226138849,"owners_count":17579496,"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":["bundler","changelog","gemfile","ruby","update"],"created_at":"2024-08-06T08:01:43.428Z","updated_at":"2024-11-24T07:30:51.786Z","avatar_url":"https://github.com/MaximeD.png","language":"Ruby","funding_links":["https://github.com/sponsors/MaximeD"],"categories":["Ruby"],"sub_categories":[],"readme":"[![Version](https://img.shields.io/gem/v/gem_updater.svg?style=flat)](https://rubygems.org/gems/gem_updater)\n[![Build Status](https://github.com/MaximeD/gem_updater/actions/workflows/ruby.yml/badge.svg)](https://github.com/MaximeD/gem_updater/actions/workflows/ruby.yml)\n[![Maintainability](https://api.codeclimate.com/v1/badges/74dc27b2f9635ecb851a/maintainability)](https://codeclimate.com/github/MaximeD/gem_updater/maintainability)\n[![Codacy Quality Badge](https://app.codacy.com/project/badge/Grade/6c95225b2b7249b7a723e847094a2c21)](https://www.codacy.com/gh/MaximeD/gem_updater/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=MaximeD/gem_updater\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Coverage Badge](https://app.codacy.com/project/badge/Coverage/6c95225b2b7249b7a723e847094a2c21)](https://www.codacy.com/gh/MaximeD/gem_updater/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=MaximeD/gem_updater\u0026utm_campaign=Badge_Coverage)\n[![Inline docs ](http://inch-ci.org/github/MaximeD/gem_updater.svg?style=flat)](http://inch-ci.org/github/MaximeD/gem_updater)\n\n\n# \u003cimg src=\"https://cdn.rawgit.com/MaximeD/gem_updater/bff4228f/logo.svg\" height=\"48\" width=\"48\"\u003e GemUpdater: update your gemfile and retrieve changelogs\n\nEvery week or so, you wish to update your `Gemfile`,\nto do so, you just have to launch `bundle update`.\n\nProblem is updates *may* break things.\nAnd obviously you need to know what may have broke before pushing your code to production.\nBefore running your test suite and checking everything is fine,\nthe first thing you do is probably to look for the changelogs of updated gems.\n\nThis process can be quite time consumming:\nyou need to check on the internet for every updated gems, find where their changelog is hosted,\nand probably link to it in your commit message so that other developers will have a chance\nto review it too.\n\n`gem_update` will do exactly that for you.\nIt updates your `Gemfile` (via `bundle update`) and finds links for changelogs of updated gems.\nAll you have to do is to copy paste the output to the commit message, and you're done!\nObviously, you still have to read changelogs and adapt your code though ;)\n\n## Installation and usage\n\n```\ngem install gem_updater\ngem_update\n\u003ccopy paste of output to commit message\u003e\n```\n\nIf you prefer to, you can ask gem_update to commit straight away:\n\n```\ngem_update --commit\n```\n\nThis will use the generated message as a commit message template, allowing you\nto edit before commit.\n\n\n### Diff format\n\nBy default, diff for your gems will look like the following:\n\n```\n* gem_1 0.1 → 0.2\n[changelog](https://github.com/maintainer/gem_1/CHANGELOG.md#02)\n\n* gem_2 3.4.2 → 3.4.3\n[changelog](https://github.com/maintainer/gem_2/CHANGELOG.md#343)\n```\n\nYou can change it if you like by writing you own template `.gem_updater_template.erb` in your home directory.\n[Look at default template](lib/gem_updater_template.erb) for an example on how to do it.\n\n## Troubleshooting\n\n### Changelog not found?\n\nThis project relies on the gem’s metadata to find the changelog url.\nIf a changelog was not found, check if the gem’s authors declared its uri in its gemspec,\nlike [here](https://github.com/thoughtbot/factory_bot/blob/8f4f899305be5a09cee206876eb8d346cf6a0dcb/factory_bot.gemspec#L26).\n\n## Contributing\n\nPRs are always welcome!\nIf you wish to contribute, do not hesitate to submit an issue or to open a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaximeD%2Fgem_updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMaximeD%2Fgem_updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaximeD%2Fgem_updater/lists"}