Project

vendorise

0.01
No commit activity in last 3 years
No release in over 3 years
A reusable rake task to vendorise a gem hosted in a private git repo
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.3
>= 0

Runtime

>= 0
 Project Readme

Vendorise

Gem Version Build Status

Sometimes you need to use a gem that is only available in a private git repository. There are a few ways to do this:

  • Install an SSH certificate on your server, but it's not always an option (for example, if you use Heroku)
  • Use Gemfury, but that costs money and potentially creates privacy concerns
  • Hard-code an oauth token into your Gemfile (if the gem is hosted on github), but then anyone with access to the code also has access to all of your github repositories

Vendorise offers a different way of accessing privately hosted gems, by using git's subtree command to download the gem on your development machine and commit it into the source tree of your repository.

By using subtree, updating the code is straightforward and your server does not need to have access to the private git repository. For more explanation about git subtree and why you'd want to use it, I recommend reading Alternatives To Git Submodule: Git Subtree.

Note: vendorise relies on the git subtree command to work - only recent versions of git have this

Installation

If you're using bundler add this line to your application's Gemfile:

gem 'vendorise', group: :development

Or if you don't use bundler:

$ gem install vendorise

Usage

  1. Run rake "vendorise:gem[repo_url]" to vendorise the gem hosted at repo_url into /vendor/gems.
  2. Add gem '<gem_name>', path: 'vendor/gems/<gem_name>' to your Gemfile

You can update the gem at any time by running the rake task again.

By default the vendorise:gem rake task will use the master branch. To use another branch (or tag) specify it as the second parameter, like this:

rake "vendorise:gem[repo_url, branch]"

Etymology

Most Ruby developers would expect this gem to be called "vendorize", but the author of this gem is British and in British English the "-ise" suffix is more commonly used than "-ize".

Similar projects