jbox-gitolite 1.1.10 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/{LICENSE → LICENSE.txt} +0 -0
 - data/{README.markdown → README.md} +0 -0
 - data/lib/gitolite/gitolite_admin.rb +160 -128
 - data/lib/gitolite/version.rb +1 -1
 - metadata +27 -27
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b8d77c8feb647bdec7c1f02c7fe17d0f784d2b65
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 846058e42798a4a2e9d63216e40b4a91ede877ef
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 047899d17bb0346ee7f0f833e1ba04800ba96e1eb5c50e7aa536b388db7d7f4bf1114d28ba84e0ef4370df6e1adf19dc63f58a110967e67bf8b2b97792f5d6ba
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e16d359aad89f8343ae2f0b472fcb688ddf9f8075c5a2ab41eb4ce274529c6d412c023024d61a8044f6a09a1f77b609b29c72694cbea6ba0b782abd5e8a44bcd
         
     | 
    
        data/{LICENSE → LICENSE.txt}
    RENAMED
    
    | 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -2,208 +2,240 @@ require File.join(File.dirname(__FILE__), "dirty_proxy") 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Gitolite
         
     | 
| 
       4 
4 
     | 
    
         
             
              class GitoliteAdmin
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       5 
6 
     | 
    
         
             
                attr_accessor :gl_admin
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                DEBUG 
     | 
| 
      
 8 
     | 
    
         
            +
                CONFIG_FILE = "gitolite.conf"
         
     | 
| 
      
 9 
     | 
    
         
            +
                CONF_DIR    = "conf"
         
     | 
| 
      
 10 
     | 
    
         
            +
                KEY_DIR     = "keydir"
         
     | 
| 
      
 11 
     | 
    
         
            +
                DEBUG       = false
         
     | 
| 
      
 12 
     | 
    
         
            +
                TIMEOUT     = 10
         
     | 
| 
       11 
13 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
                #Gitolite gem's default  
     | 
| 
      
 14 
     | 
    
         
            +
                # Gitolite gem's default commit message
         
     | 
| 
       13 
15 
     | 
    
         
             
                DEFAULT_COMMIT_MSG = "Committed by the gitolite gem"
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  # Checks to see if the given path is a gitolite-admin repository
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # A valid repository contains a conf folder, keydir folder,
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # and a configuration file within the conf folder
         
     | 
| 
      
 22 
     | 
    
         
            +
                  def is_gitolite_admin_repo?(dir)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    # First check if it is a git repository
         
     | 
| 
      
 24 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 25 
     | 
    
         
            +
                      Grit::Repo.new(dir)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    rescue Grit::NoSuchPathError, Grit::InvalidGitRepositoryError
         
     | 
| 
      
 27 
     | 
    
         
            +
                      return false
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                    # If we got here it is a valid git repo,
         
     | 
| 
      
 31 
     | 
    
         
            +
                    # now check directory structure
         
     | 
| 
      
 32 
     | 
    
         
            +
                    File.exists?(File.join(dir, 'conf')) &&
         
     | 
| 
      
 33 
     | 
    
         
            +
                      File.exists?(File.join(dir, 'keydir')) &&
         
     | 
| 
      
 34 
     | 
    
         
            +
                      !Dir.glob(File.join(dir, 'conf', '*.conf')).empty?
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  # This method will bootstrap a gitolite-admin repo
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # at the given path.  A typical gitolite-admin
         
     | 
| 
      
 40 
     | 
    
         
            +
                  # repo will have the following tree:
         
     | 
| 
      
 41 
     | 
    
         
            +
                  #
         
     | 
| 
      
 42 
     | 
    
         
            +
                  # gitolite-admin
         
     | 
| 
      
 43 
     | 
    
         
            +
                  #   conf
         
     | 
| 
      
 44 
     | 
    
         
            +
                  #     gitolite.conf
         
     | 
| 
      
 45 
     | 
    
         
            +
                  #   keydir
         
     | 
| 
      
 46 
     | 
    
         
            +
                  def bootstrap(path, options = {})
         
     | 
| 
      
 47 
     | 
    
         
            +
                    if self.is_gitolite_admin_repo?(path)
         
     | 
| 
      
 48 
     | 
    
         
            +
                      if options[:overwrite]
         
     | 
| 
      
 49 
     | 
    
         
            +
                        FileUtils.rm_rf(File.join(path, '*'))
         
     | 
| 
      
 50 
     | 
    
         
            +
                      else
         
     | 
| 
      
 51 
     | 
    
         
            +
                        return self.new(path)
         
     | 
| 
      
 52 
     | 
    
         
            +
                      end
         
     | 
| 
      
 53 
     | 
    
         
            +
                    end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                    FileUtils.mkdir_p([File.join(path, "conf"), File.join(path, "keydir")])
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                    options[:perm]  ||= "RW+"
         
     | 
| 
      
 58 
     | 
    
         
            +
                    options[:refex] ||= ""
         
     | 
| 
      
 59 
     | 
    
         
            +
                    options[:user]  ||= "git"
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                    c = Config.init
         
     | 
| 
      
 62 
     | 
    
         
            +
                    r = Config::Repo.new(options[:repo] || "gitolite-admin")
         
     | 
| 
      
 63 
     | 
    
         
            +
                    r.add_permission(options[:perm], options[:refex], options[:user])
         
     | 
| 
      
 64 
     | 
    
         
            +
                    c.add_repo(r)
         
     | 
| 
      
 65 
     | 
    
         
            +
                    config = c.to_file(File.join(path, "conf"))
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    gl_admin = Grit::Repo.init(path)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    gl_admin.git.native(:add, {:chdir => gl_admin.working_dir}, config)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    gl_admin.git.native(:commit, {:chdir => gl_admin.working_dir}, '-a', '-m', options[:message] || "Config bootstrapped by the gitolite gem")
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                    self.new(path)
         
     | 
| 
      
 72 
     | 
    
         
            +
                  end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
       15 
77 
     | 
    
         
             
                # Intialize with the path to
         
     | 
| 
       16 
78 
     | 
    
         
             
                # the gitolite-admin repository
         
     | 
| 
       17 
79 
     | 
    
         
             
                def initialize(path, options = {})
         
     | 
| 
       18 
80 
     | 
    
         
             
                  @path = path
         
     | 
| 
       19 
     | 
    
         
            -
                  @gl_admin = Grit::Repo.new(path)
         
     | 
| 
       20 
81 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                  @ 
     | 
| 
       22 
     | 
    
         
            -
                  @ 
     | 
| 
       23 
     | 
    
         
            -
                  @ 
     | 
| 
      
 82 
     | 
    
         
            +
                  @config_file = options[:config_file] || CONFIG_FILE
         
     | 
| 
      
 83 
     | 
    
         
            +
                  @conf_dir    = options[:conf_dir] || CONF_DIR
         
     | 
| 
      
 84 
     | 
    
         
            +
                  @key_dir     = options[:key_dir] || KEY_DIR
         
     | 
| 
      
 85 
     | 
    
         
            +
                  @env         = options[:env] || {}
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                  @config_file_path = File.join(@path, @conf_dir, @config_file)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  @conf_dir_path    = File.join(@path, @conf_dir)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  @key_dir_path     = File.join(@path, @key_dir)
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                  Grit::Git.git_timeout = options[:timeout] || TIMEOUT
         
     | 
| 
       24 
92 
     | 
    
         
             
                  Grit.debug = options[:debug] || DEBUG
         
     | 
| 
      
 93 
     | 
    
         
            +
                  @gl_admin  = Grit::Repo.new(path)
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                  reload!
         
     | 
| 
       25 
96 
     | 
    
         
             
                end
         
     | 
| 
       26 
97 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                # This method will bootstrap a gitolite-admin repo
         
     | 
| 
       28 
     | 
    
         
            -
                # at the given path.  A typical gitolite-admin
         
     | 
| 
       29 
     | 
    
         
            -
                # repo will have the following tree:
         
     | 
| 
       30 
     | 
    
         
            -
                #
         
     | 
| 
       31 
     | 
    
         
            -
                # gitolite-admin
         
     | 
| 
       32 
     | 
    
         
            -
                #   conf
         
     | 
| 
       33 
     | 
    
         
            -
                #     gitolite.conf
         
     | 
| 
       34 
     | 
    
         
            -
                #   keydir
         
     | 
| 
       35 
     | 
    
         
            -
                def self.bootstrap(path, options = {})
         
     | 
| 
       36 
     | 
    
         
            -
                  if self.is_gitolite_admin_repo?(path)
         
     | 
| 
       37 
     | 
    
         
            -
                    if options[:overwrite]
         
     | 
| 
       38 
     | 
    
         
            -
                      FileUtils.rm_rf(File.join(path, '*'))
         
     | 
| 
       39 
     | 
    
         
            -
                    else
         
     | 
| 
       40 
     | 
    
         
            -
                      return self.new(path)
         
     | 
| 
       41 
     | 
    
         
            -
                    end
         
     | 
| 
       42 
     | 
    
         
            -
                  end
         
     | 
| 
       43 
98 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
      
 99 
     | 
    
         
            +
                def config
         
     | 
| 
      
 100 
     | 
    
         
            +
                  @config ||= load_config
         
     | 
| 
      
 101 
     | 
    
         
            +
                end
         
     | 
| 
       45 
102 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
                  options[:perm] ||= "RW+"
         
     | 
| 
       47 
     | 
    
         
            -
                  options[:refex] ||= ""
         
     | 
| 
       48 
     | 
    
         
            -
                  options[:user] ||= "git"
         
     | 
| 
       49 
103 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                   
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                  c.add_repo(r)
         
     | 
| 
       54 
     | 
    
         
            -
                  config = c.to_file(File.join(path, "conf"))
         
     | 
| 
      
 104 
     | 
    
         
            +
                def config=(config)
         
     | 
| 
      
 105 
     | 
    
         
            +
                  @config = config
         
     | 
| 
      
 106 
     | 
    
         
            +
                end
         
     | 
| 
       55 
107 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
                  repo = Grit::Repo.init(path)
         
     | 
| 
       57 
     | 
    
         
            -
                  Dir.chdir(path) do
         
     | 
| 
       58 
     | 
    
         
            -
                    repo.add(config)
         
     | 
| 
       59 
     | 
    
         
            -
                    repo.commit_index(options[:message] || "Config bootstrapped by the gitolite gem")
         
     | 
| 
       60 
     | 
    
         
            -
                  end
         
     | 
| 
       61 
108 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 109 
     | 
    
         
            +
                def ssh_keys
         
     | 
| 
      
 110 
     | 
    
         
            +
                  @ssh_keys ||= load_keys
         
     | 
| 
      
 111 
     | 
    
         
            +
                end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                def add_key(key)
         
     | 
| 
      
 115 
     | 
    
         
            +
                  raise "Key must be of type Gitolite::SSHKey!" unless key.instance_of? Gitolite::SSHKey
         
     | 
| 
      
 116 
     | 
    
         
            +
                  ssh_keys[key.owner] << key
         
     | 
| 
      
 117 
     | 
    
         
            +
                end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                def rm_key(key)
         
     | 
| 
      
 121 
     | 
    
         
            +
                  raise "Key must be of type Gitolite::SSHKey!" unless key.instance_of? Gitolite::SSHKey
         
     | 
| 
      
 122 
     | 
    
         
            +
                  ssh_keys[key.owner].delete key
         
     | 
| 
      
 123 
     | 
    
         
            +
                end
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                # This method will destroy all local tracked changes, resetting the local gitolite
         
     | 
| 
      
 127 
     | 
    
         
            +
                # git repo to HEAD and reloading the entire repository
         
     | 
| 
      
 128 
     | 
    
         
            +
                # Note that this will also delete all untracked files
         
     | 
| 
      
 129 
     | 
    
         
            +
                def reset!
         
     | 
| 
      
 130 
     | 
    
         
            +
                  @gl_admin.git.native(:reset, {:env => @env, :chdir => @gl_admin.working_dir, :hard => true}, 'HEAD')
         
     | 
| 
      
 131 
     | 
    
         
            +
                  @gl_admin.git.native(:clean, {:env => @env, :chdir => @gl_admin.working_dir, :d => true, :q => true, :f => true})
         
     | 
| 
      
 132 
     | 
    
         
            +
                  reload!
         
     | 
| 
      
 133 
     | 
    
         
            +
                end
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
                # This method will destroy the in-memory data structures and reload everything
         
     | 
| 
      
 137 
     | 
    
         
            +
                # from the file system
         
     | 
| 
      
 138 
     | 
    
         
            +
                def reload!
         
     | 
| 
      
 139 
     | 
    
         
            +
                  @ssh_keys = load_keys
         
     | 
| 
      
 140 
     | 
    
         
            +
                  @config = load_config
         
     | 
| 
       63 
141 
     | 
    
         
             
                end
         
     | 
| 
       64 
142 
     | 
    
         | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                # 
     | 
| 
       67 
     | 
    
         
            -
                 
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                  keydir  = File.join(@gl_admin.working_dir, @keydir)
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                # Writes all changed aspects out to the file system
         
     | 
| 
      
 145 
     | 
    
         
            +
                # will also stage all changes then commit
         
     | 
| 
      
 146 
     | 
    
         
            +
                def save(commit_message = DEFAULT_COMMIT_MSG, options = {})
         
     | 
| 
       70 
147 
     | 
    
         | 
| 
       71 
148 
     | 
    
         
             
                  #Process config file (if loaded, i.e. may be modified)
         
     | 
| 
       72 
149 
     | 
    
         
             
                  if @config
         
     | 
| 
       73 
     | 
    
         
            -
                    new_conf = @config.to_file( 
     | 
| 
       74 
     | 
    
         
            -
                    @gl_admin.git.native(:add, {:chdir => @gl_admin.working_dir}, new_conf)
         
     | 
| 
      
 150 
     | 
    
         
            +
                    new_conf = @config.to_file(@conf_dir_path)
         
     | 
| 
      
 151 
     | 
    
         
            +
                    @gl_admin.git.native(:add, {:env => @env, :chdir => @gl_admin.working_dir}, new_conf)
         
     | 
| 
       75 
152 
     | 
    
         
             
                  end
         
     | 
| 
       76 
153 
     | 
    
         | 
| 
       77 
154 
     | 
    
         
             
                  #Process ssh keys (if loaded, i.e. may be modified)
         
     | 
| 
       78 
155 
     | 
    
         
             
                  if @ssh_keys
         
     | 
| 
       79 
     | 
    
         
            -
                    files = list_keys 
     | 
| 
       80 
     | 
    
         
            -
                    keys 
     | 
| 
      
 156 
     | 
    
         
            +
                    files = list_keys.map{|f| File.basename f}
         
     | 
| 
      
 157 
     | 
    
         
            +
                    keys  = @ssh_keys.values.map{|f| f.map {|t| t.filename}}.flatten
         
     | 
| 
       81 
158 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                    to_remove = (files - keys).map { |f| File.join(@ 
     | 
| 
      
 159 
     | 
    
         
            +
                    to_remove = (files - keys).map { |f| File.join(@key_dir, f) }
         
     | 
| 
       83 
160 
     | 
    
         
             
                    to_remove.each do |key|
         
     | 
| 
       84 
     | 
    
         
            -
                      @gl_admin.git.native(:rm, {:chdir => @gl_admin.working_dir}, key)
         
     | 
| 
      
 161 
     | 
    
         
            +
                      @gl_admin.git.native(:rm, {:env => @env, :chdir => @gl_admin.working_dir}, key)
         
     | 
| 
       85 
162 
     | 
    
         
             
                    end
         
     | 
| 
       86 
163 
     | 
    
         | 
| 
       87 
164 
     | 
    
         
             
                    @ssh_keys.each_value do |key|
         
     | 
| 
       88 
     | 
    
         
            -
                      #Write only keys from sets that has been modified
         
     | 
| 
      
 165 
     | 
    
         
            +
                      # Write only keys from sets that has been modified
         
     | 
| 
       89 
166 
     | 
    
         
             
                      next if key.respond_to?(:dirty?) && !key.dirty?
         
     | 
| 
       90 
167 
     | 
    
         
             
                      key.each do |k|
         
     | 
| 
       91 
     | 
    
         
            -
                        new_key = k.to_file( 
     | 
| 
       92 
     | 
    
         
            -
                        @gl_admin.git.native(:add, {:chdir => @gl_admin.working_dir}, new_key)
         
     | 
| 
      
 168 
     | 
    
         
            +
                        new_key = k.to_file(@key_dir_path)
         
     | 
| 
      
 169 
     | 
    
         
            +
                        @gl_admin.git.native(:add, {:env => @env, :chdir => @gl_admin.working_dir}, new_key)
         
     | 
| 
       93 
170 
     | 
    
         
             
                      end
         
     | 
| 
       94 
171 
     | 
    
         
             
                    end
         
     | 
| 
       95 
172 
     | 
    
         
             
                  end
         
     | 
| 
       96 
173 
     | 
    
         | 
| 
       97 
     | 
    
         
            -
                   
     | 
| 
       98 
     | 
    
         
            -
                end
         
     | 
| 
      
 174 
     | 
    
         
            +
                  args = []
         
     | 
| 
       99 
175 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
                # Note that this will also delete all untracked files
         
     | 
| 
       103 
     | 
    
         
            -
                def reset!
         
     | 
| 
       104 
     | 
    
         
            -
                  Dir.chdir(@gl_admin.working_dir) do
         
     | 
| 
       105 
     | 
    
         
            -
                    @gl_admin.git.reset({:hard => true}, 'HEAD')
         
     | 
| 
       106 
     | 
    
         
            -
                    @gl_admin.git.clean({:d => true, :q => true, :f => true})
         
     | 
| 
      
 176 
     | 
    
         
            +
                  if options.has_key?(:author) && !options[:author].empty?
         
     | 
| 
      
 177 
     | 
    
         
            +
                    args << "--author='#{options[:author]}'"
         
     | 
| 
       107 
178 
     | 
    
         
             
                  end
         
     | 
| 
       108 
     | 
    
         
            -
                  reload!
         
     | 
| 
       109 
     | 
    
         
            -
                end
         
     | 
| 
       110 
179 
     | 
    
         | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
                # from the file system
         
     | 
| 
       113 
     | 
    
         
            -
                def reload!
         
     | 
| 
       114 
     | 
    
         
            -
                  @ssh_keys = load_keys
         
     | 
| 
       115 
     | 
    
         
            -
                  @config = load_config
         
     | 
| 
      
 180 
     | 
    
         
            +
                  @gl_admin.git.native(:commit, {:env => @env, :chdir => @gl_admin.working_dir}, '-a', '-m', commit_message, args.join(' '))
         
     | 
| 
       116 
181 
     | 
    
         
             
                end
         
     | 
| 
       117 
182 
     | 
    
         | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
       118 
184 
     | 
    
         
             
                # Push back to origin
         
     | 
| 
       119 
185 
     | 
    
         
             
                def apply
         
     | 
| 
       120 
     | 
    
         
            -
                  @gl_admin.git.native(:push, {:chdir => @gl_admin.working_dir}, "origin", "master")
         
     | 
| 
      
 186 
     | 
    
         
            +
                  @gl_admin.git.native(:push, {:env => @env, :chdir => @gl_admin.working_dir}, "origin", "master")
         
     | 
| 
       121 
187 
     | 
    
         
             
                end
         
     | 
| 
       122 
188 
     | 
    
         | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
       123 
190 
     | 
    
         
             
                # Commits all staged changes and pushes back to origin
         
     | 
| 
       124 
191 
     | 
    
         
             
                def save_and_apply(commit_message = DEFAULT_COMMIT_MSG)
         
     | 
| 
       125 
     | 
    
         
            -
                   
     | 
| 
       126 
     | 
    
         
            -
                   
     | 
| 
      
 192 
     | 
    
         
            +
                  save(commit_message)
         
     | 
| 
      
 193 
     | 
    
         
            +
                  apply
         
     | 
| 
       127 
194 
     | 
    
         
             
                end
         
     | 
| 
       128 
195 
     | 
    
         | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
       129 
197 
     | 
    
         
             
                # Updates the repo with changes from remote master
         
     | 
| 
       130 
198 
     | 
    
         
             
                def update(options = {})
         
     | 
| 
       131 
199 
     | 
    
         
             
                  options = {:reset => true, :rebase => false}.merge(options)
         
     | 
| 
       132 
200 
     | 
    
         | 
| 
       133 
201 
     | 
    
         
             
                  reset! if options[:reset]
         
     | 
| 
       134 
202 
     | 
    
         | 
| 
       135 
     | 
    
         
            -
                  @gl_admin.git.native(:pull, {:chdir => @gl_admin.working_dir, :rebase => options[:rebase]}, "origin", "master")
         
     | 
| 
      
 203 
     | 
    
         
            +
                  @gl_admin.git.native(:pull, {:env => @env, :chdir => @gl_admin.working_dir, :rebase => options[:rebase]}, "origin", "master")
         
     | 
| 
       136 
204 
     | 
    
         | 
| 
       137 
205 
     | 
    
         
             
                  reload!
         
     | 
| 
       138 
206 
     | 
    
         
             
                end
         
     | 
| 
       139 
207 
     | 
    
         | 
| 
       140 
     | 
    
         
            -
                def add_key(key)
         
     | 
| 
       141 
     | 
    
         
            -
                  raise "Key must be of type Gitolite::SSHKey!" unless key.instance_of? Gitolite::SSHKey
         
     | 
| 
       142 
     | 
    
         
            -
                  ssh_keys[key.owner] << key
         
     | 
| 
       143 
     | 
    
         
            -
                end
         
     | 
| 
       144 
208 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
                 
     | 
| 
       146 
     | 
    
         
            -
                  raise "Key must be of type Gitolite::SSHKey!" unless key.instance_of? Gitolite::SSHKey
         
     | 
| 
       147 
     | 
    
         
            -
                  ssh_keys[key.owner].delete key
         
     | 
| 
       148 
     | 
    
         
            -
                end
         
     | 
| 
      
 209 
     | 
    
         
            +
                private
         
     | 
| 
       149 
210 
     | 
    
         | 
| 
       150 
     | 
    
         
            -
                #Checks to see if the given path is a gitolite-admin repository
         
     | 
| 
       151 
     | 
    
         
            -
                #A valid repository contains a conf folder, keydir folder,
         
     | 
| 
       152 
     | 
    
         
            -
                #and a configuration file within the conf folder
         
     | 
| 
       153 
     | 
    
         
            -
                def self.is_gitolite_admin_repo?(dir)
         
     | 
| 
       154 
     | 
    
         
            -
                  # First check if it is a git repository
         
     | 
| 
       155 
     | 
    
         
            -
                  begin
         
     | 
| 
       156 
     | 
    
         
            -
                    Grit::Repo.new(dir)
         
     | 
| 
       157 
     | 
    
         
            -
                  rescue Grit::InvalidGitRepositoryError
         
     | 
| 
       158 
     | 
    
         
            -
                    return false
         
     | 
| 
       159 
     | 
    
         
            -
                  end
         
     | 
| 
       160 
211 
     | 
    
         | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
                   
     | 
| 
       163 
     | 
    
         
            -
                  File.exists?(File.join(dir, 'conf')) &&
         
     | 
| 
       164 
     | 
    
         
            -
                    File.exists?(File.join(dir, 'keydir')) &&
         
     | 
| 
       165 
     | 
    
         
            -
                    !Dir.glob(File.join(dir, 'conf', '*.conf')).empty?
         
     | 
| 
      
 212 
     | 
    
         
            +
                def load_config
         
     | 
| 
      
 213 
     | 
    
         
            +
                  Config.new(@config_file_path)
         
     | 
| 
       166 
214 
     | 
    
         
             
                end
         
     | 
| 
       167 
215 
     | 
    
         | 
| 
       168 
     | 
    
         
            -
                def ssh_keys
         
     | 
| 
       169 
     | 
    
         
            -
                  @ssh_keys ||= load_keys
         
     | 
| 
       170 
     | 
    
         
            -
                end
         
     | 
| 
       171 
216 
     | 
    
         | 
| 
       172 
     | 
    
         
            -
                def  
     | 
| 
       173 
     | 
    
         
            -
                  @ 
     | 
| 
       174 
     | 
    
         
            -
                end
         
     | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
                def config=(config)
         
     | 
| 
       177 
     | 
    
         
            -
                  @config = config
         
     | 
| 
      
 217 
     | 
    
         
            +
                def list_keys
         
     | 
| 
      
 218 
     | 
    
         
            +
                  Dir.glob(@key_dir_path + '/**/*.pub')
         
     | 
| 
       178 
219 
     | 
    
         
             
                end
         
     | 
| 
       179 
220 
     | 
    
         | 
| 
       180 
     | 
    
         
            -
                private
         
     | 
| 
       181 
     | 
    
         
            -
                  #Loads all .pub files in the gitolite-admin
         
     | 
| 
       182 
     | 
    
         
            -
                  #keydir directory
         
     | 
| 
       183 
     | 
    
         
            -
                  def load_keys(path = nil)
         
     | 
| 
       184 
     | 
    
         
            -
                    path ||= File.join(@path, @keydir)
         
     | 
| 
       185 
     | 
    
         
            -
                    keys = Hash.new {|k,v| k[v] = DirtyProxy.new([])}
         
     | 
| 
       186 
221 
     | 
    
         | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
      
 222 
     | 
    
         
            +
                # Loads all .pub files in the gitolite-admin
         
     | 
| 
      
 223 
     | 
    
         
            +
                # keydir directory
         
     | 
| 
      
 224 
     | 
    
         
            +
                def load_keys
         
     | 
| 
      
 225 
     | 
    
         
            +
                  keys = Hash.new {|k,v| k[v] = DirtyProxy.new([])}
         
     | 
| 
       190 
226 
     | 
    
         | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
     | 
    
         
            -
                     
     | 
| 
       193 
     | 
    
         
            -
                     
     | 
| 
       194 
     | 
    
         
            -
                    keys.values.each{|set| set.clean_up!}
         
     | 
| 
      
 227 
     | 
    
         
            +
                  list_keys.each do |key|
         
     | 
| 
      
 228 
     | 
    
         
            +
                    new_key = SSHKey.from_file(key)
         
     | 
| 
      
 229 
     | 
    
         
            +
                    owner = new_key.owner
         
     | 
| 
       195 
230 
     | 
    
         | 
| 
       196 
     | 
    
         
            -
                    keys
         
     | 
| 
      
 231 
     | 
    
         
            +
                    keys[owner] << new_key
         
     | 
| 
       197 
232 
     | 
    
         
             
                  end
         
     | 
| 
       198 
233 
     | 
    
         | 
| 
       199 
     | 
    
         
            -
                   
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
                   
     | 
| 
      
 234 
     | 
    
         
            +
                  # Mark key sets as unmodified (for dirty checking)
         
     | 
| 
      
 235 
     | 
    
         
            +
                  keys.values.each{|set| set.clean_up!}
         
     | 
| 
      
 236 
     | 
    
         
            +
             
     | 
| 
      
 237 
     | 
    
         
            +
                  keys
         
     | 
| 
      
 238 
     | 
    
         
            +
                end
         
     | 
| 
       203 
239 
     | 
    
         | 
| 
       204 
     | 
    
         
            -
                  def list_keys(path)
         
     | 
| 
       205 
     | 
    
         
            -
                    keys = Dir.glob(path + '/**/*.pub')
         
     | 
| 
       206 
     | 
    
         
            -
                    keys
         
     | 
| 
       207 
     | 
    
         
            -
                  end
         
     | 
| 
       208 
240 
     | 
    
         
             
              end
         
     | 
| 
       209 
241 
     | 
    
         
             
            end
         
     | 
    
        data/lib/gitolite/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,139 +1,139 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: jbox-gitolite
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.11
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Nicolas Rodriguez
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-04-14 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rspec
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - -  
     | 
| 
      
 17 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
19 
     | 
    
         
             
                    version: 2.9.0
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :development
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - -  
     | 
| 
      
 24 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
26 
     | 
    
         
             
                    version: 2.9.0
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: forgery
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - -  
     | 
| 
      
 31 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       32 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
33 
     | 
    
         
             
                    version: 0.5.0
         
     | 
| 
       34 
34 
     | 
    
         
             
              type: :development
         
     | 
| 
       35 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - -  
     | 
| 
      
 38 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: 0.5.0
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
42 
     | 
    
         
             
              name: rdoc
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - -  
     | 
| 
      
 45 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       46 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
47 
     | 
    
         
             
                    version: '3.12'
         
     | 
| 
       48 
48 
     | 
    
         
             
              type: :development
         
     | 
| 
       49 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       50 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
     | 
    
         
            -
                - -  
     | 
| 
      
 52 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
54 
     | 
    
         
             
                    version: '3.12'
         
     | 
| 
       55 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
56 
     | 
    
         
             
              name: simplecov
         
     | 
| 
       57 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
     | 
    
         
            -
                - -  
     | 
| 
      
 59 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       60 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
61 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       62 
62 
     | 
    
         
             
              type: :development
         
     | 
| 
       63 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       64 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
     | 
    
         
            -
                - -  
     | 
| 
      
 66 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
68 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              name: simplecov-rcov
         
     | 
| 
       71 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
72 
     | 
    
         
             
                requirements:
         
     | 
| 
       73 
     | 
    
         
            -
                - -  
     | 
| 
      
 73 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       74 
74 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       75 
75 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       76 
76 
     | 
    
         
             
              type: :development
         
     | 
| 
       77 
77 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       78 
78 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       79 
79 
     | 
    
         
             
                requirements:
         
     | 
| 
       80 
     | 
    
         
            -
                - -  
     | 
| 
      
 80 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       81 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
82 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       83 
83 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
84 
     | 
    
         
             
              name: ci_reporter
         
     | 
| 
       85 
85 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       86 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       87 
     | 
    
         
            -
                - -  
     | 
| 
      
 87 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       88 
88 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       89 
89 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       90 
90 
     | 
    
         
             
              type: :development
         
     | 
| 
       91 
91 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       92 
92 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       93 
93 
     | 
    
         
             
                requirements:
         
     | 
| 
       94 
     | 
    
         
            -
                - -  
     | 
| 
      
 94 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       95 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
96 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       97 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
98 
     | 
    
         
             
              name: rake
         
     | 
| 
       99 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       101 
     | 
    
         
            -
                - -  
     | 
| 
      
 101 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       102 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
103 
     | 
    
         
             
                    version: 10.0.2
         
     | 
| 
       104 
104 
     | 
    
         
             
              type: :development
         
     | 
| 
       105 
105 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       106 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       108 
     | 
    
         
            -
                - -  
     | 
| 
      
 108 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       109 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
110 
     | 
    
         
             
                    version: 10.0.2
         
     | 
| 
       111 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
112 
     | 
    
         
             
              name: gitlab-grit
         
     | 
| 
       113 
113 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
114 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
     | 
    
         
            -
                - -  
     | 
| 
      
 115 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       116 
116 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
117 
     | 
    
         
             
                    version: 2.6.0
         
     | 
| 
       118 
118 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       119 
119 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       120 
120 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
121 
     | 
    
         
             
                requirements:
         
     | 
| 
       122 
     | 
    
         
            -
                - -  
     | 
| 
      
 122 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       123 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
124 
     | 
    
         
             
                    version: 2.6.0
         
     | 
| 
       125 
125 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
126 
     | 
    
         
             
              name: gratr19
         
     | 
| 
       127 
127 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
128 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
     | 
    
         
            -
                - -  
     | 
| 
      
 129 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       130 
130 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
131 
     | 
    
         
             
                    version: 0.4.4.1
         
     | 
| 
       132 
132 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       133 
133 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
134 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
135 
     | 
    
         
             
                requirements:
         
     | 
| 
       136 
     | 
    
         
            -
                - -  
     | 
| 
      
 136 
     | 
    
         
            +
                - - ~>
         
     | 
| 
       137 
137 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
138 
     | 
    
         
             
                    version: 0.4.4.1
         
     | 
| 
       139 
139 
     | 
    
         
             
            description: This gem is designed to provide a Ruby interface to the gitolite git
         
     | 
| 
         @@ -145,12 +145,12 @@ executables: [] 
     | 
|
| 
       145 
145 
     | 
    
         
             
            extensions: []
         
     | 
| 
       146 
146 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       147 
147 
     | 
    
         
             
            files:
         
     | 
| 
       148 
     | 
    
         
            -
            -  
     | 
| 
       149 
     | 
    
         
            -
            -  
     | 
| 
       150 
     | 
    
         
            -
            -  
     | 
| 
      
 148 
     | 
    
         
            +
            - .gemtest
         
     | 
| 
      
 149 
     | 
    
         
            +
            - .gitignore
         
     | 
| 
      
 150 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
       151 
151 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       152 
     | 
    
         
            -
            - LICENSE
         
     | 
| 
       153 
     | 
    
         
            -
            - README. 
     | 
| 
      
 152 
     | 
    
         
            +
            - LICENSE.txt
         
     | 
| 
      
 153 
     | 
    
         
            +
            - README.md
         
     | 
| 
       154 
154 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       155 
155 
     | 
    
         
             
            - gitolite.gemspec
         
     | 
| 
       156 
156 
     | 
    
         
             
            - lib/gitolite.rb
         
     | 
| 
         @@ -193,12 +193,12 @@ require_paths: 
     | 
|
| 
       193 
193 
     | 
    
         
             
            - lib
         
     | 
| 
       194 
194 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       195 
195 
     | 
    
         
             
              requirements:
         
     | 
| 
       196 
     | 
    
         
            -
              - -  
     | 
| 
      
 196 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       197 
197 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       198 
198 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       199 
199 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       200 
200 
     | 
    
         
             
              requirements:
         
     | 
| 
       201 
     | 
    
         
            -
              - -  
     | 
| 
      
 201 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       202 
202 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       203 
203 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       204 
204 
     | 
    
         
             
            requirements: []
         
     |