Keeping your gem files up-to-date is challenging. When you begin building your app, only a handful of gems are used. But after a few weeks of development updating the gems becomes out of hand. Questions begin arising such as:
- What security bugs are getting patched that I’m not aware of?
- What optimization patches are available?
- If I update my gems, how is my application going to break?
So, the question I pose to you is: Are their performance enhancements and bugs that currently exist in your application that are already patched in newer versions of the gems?
Even using github to watch all of the repos your application uses becomes too much after you track 5 repositories.
The History
At SourceNinja we have been developing products to help individuals and organizations manage their open source packages and open source third party libraries. Our customers have requested help in managing their RPMs and Debian packages. So we built those integrations first.
However, we quickly realized to deliver more value to our customers we needed to consume our own dog food. We wanted the ability to use SourceNinja ourselves. We have personally struggled with keeping our open source libraries up-to-date for years and now that we’ve built a product that could help us do it, we wanted to benefit.
SourceNinja is built using Ruby, Rails, and Clojure and hosted on Heroku. The first step in using SourceNinja on SourceNinja was to make a simple integration point between the rails stack and SourceNinja. We needed to create a gem.
One Gem to Rule Them All
We released the sourceninja gem to have your application push the gems and versions to us. This means that you can have a secure rails applications in less than a minute. The SourceNinja gem helps to seamlessly integrate your rails applications with SourceNinja. One of the key benefits of using the gem: we never need direct access to your source code.
Whenever any gems your application uses are updated, the SourceNinja dashboard will reflect the change. You can even create a dashboard to have production, staging, and development environments. All reflecting the current state of the gems in your applications.
The best part of integrating the gem with your application is that as additional features are released you directly benefit from them without any additional work on your part.
Full Commit History
In 60 seconds, your application’s gems will be constantly monitored for upstream patches that directly affect your application.
SourceNinja gives you full commit history from version to version. This means that when you have an outdated gem, you see all the changes up to the most recent version. Having this information quickly available not only helps you make an informed decision on what to update, but also helps with knowing if there is anything critical that needs to be called out.
How this directly benefits your application and your team:
- Increase adoption of security patches into your application
- Better information regarding whether the newer version will break your application.
- Receive notifications when critical updates have been released for your gems.
Check out the documentation and try it out. We look forward to hearing your feedback or features that you would like to have.
Are you using a different technology stack? We also have a node module for your node stack. Not using Node, Rails, or Ruby? Tell us in the comments what technologies you would like us to support.

