A CLI tool to find Ruby gem source repositories on GitHub, compare versions, and update outdated gems with integrated git workflow.
gemdiff is a command-line tool that helps Ruby developers find the source repositories for their gems on GitHub, compare changes between versions, and update outdated gems with an integrated git workflow. It solves the problem of blindly updating dependencies by providing visibility into what has changed between gem versions.
Ruby developers using Bundler and RubyGems who want to review source code changes before updating gem dependencies in their projects.
Developers choose gemdiff because it automates the tedious process of finding gem repositories and constructing compare URLs, integrates seamlessly with Bundler and git, and promotes safer, more informed dependency updates.
Find source repositories for ruby gems. Open, compare, and update outdated gem versions
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Finds GitHub source URLs by inspecting gemspecs or searching the GitHub API, saving manual lookup time, as demonstrated in the repo finder implementation.
Integrates with Bundler to list outdated gems and provide direct compare URLs, running `bundle outdated --strict` and outputting results with links.
The update command bundles gem updates, shows git diff previews, and commits with messages including diff URLs, streamlining the update process as shown in the examples.
Offers an interactive mode (`gemdiff each`) to review each outdated gem step-by-step, with options to open compare views or skip, enhancing control over updates.
Only works with GitHub-hosted gems; the README admits it could support other hosts but doesn't, requiring pull requests for extensions.
Requires gems to have version tags in a standard format (e.g., v1.2.3) on GitHub; non-standard tags break compare functionality, as noted in the limitations.
Depends on the GitHub API which has rate limits; users must set up a personal access token via environment variables to avoid errors, adding setup complexity.