gitrepo-status 0.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b979a4d611c8f5099bf6380f8e883a6b138df0e6
4
+ data.tar.gz: c259ac14668a39758ca09501d072693ee7fc8ae0
5
+ SHA512:
6
+ metadata.gz: e886cdc94a97da335e871ec7fa9efffbed9d8068aa90487a7bb13675a675de85e0dbe705d4cdd8112e0ad5ff0947f61e5b8c446a5e2f23ce7225c9c9b0ae05e4
7
+ data.tar.gz: 99ea3a3198a89ce4f80a312f66a13dc103a6d8afe472b120cd93ba7b71d8366c30ccccecafddca4a5a8bf4ca220b5b69a764edeb80eacbbcda9d870b1f78331a
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /vendor/
10
+ /vagrant/.vagrant
11
+
12
+ # rspec failure tracking
13
+ .rspec_status
14
+ puppet-control-repo
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.2
5
+ before_install: gem install bundler -v 1.16.0
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in gitrepo-status.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,37 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ gitrepo-status (0.2.0)
5
+ awesome_print
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ awesome_print (1.8.0)
11
+ diff-lcs (1.3)
12
+ rake (12.3.1)
13
+ rspec (3.7.0)
14
+ rspec-core (~> 3.7.0)
15
+ rspec-expectations (~> 3.7.0)
16
+ rspec-mocks (~> 3.7.0)
17
+ rspec-core (3.7.1)
18
+ rspec-support (~> 3.7.0)
19
+ rspec-expectations (3.7.0)
20
+ diff-lcs (>= 1.2.0, < 2.0)
21
+ rspec-support (~> 3.7.0)
22
+ rspec-mocks (3.7.0)
23
+ diff-lcs (>= 1.2.0, < 2.0)
24
+ rspec-support (~> 3.7.0)
25
+ rspec-support (3.7.1)
26
+
27
+ PLATFORMS
28
+ ruby
29
+
30
+ DEPENDENCIES
31
+ bundler (~> 1.16)
32
+ gitrepo-status!
33
+ rake (~> 12.0)
34
+ rspec (~> 3.7)
35
+
36
+ BUNDLED WITH
37
+ 1.16.1
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # Gitrepo::Status
2
+
3
+ ## Idea
4
+
5
+ - Check current status/commit of a repo
6
+ - compare with remotes and extra urls
7
+ - get source url from metadata.json for puppet modules
8
+ - get puppetforge version for puppet modules
9
+
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ gem 'gitrepo-status'
17
+ ```
18
+
19
+ And then execute:
20
+
21
+ $ bundle
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install gitrepo-status
26
+
27
+ ## Usage
28
+
29
+ TODO: Write usage instructions here
30
+
31
+ ## Development
32
+
33
+ A 'vagrant/Vagrantfile' is provided to ease development on Debian Stretch.
34
+
35
+ The vagrant setup installs the required package ruby-rugged.
36
+ This is because installing/building the rugged gem is a pain in ...
37
+
38
+ The current repo will be available in '/build' in the VM.
39
+
40
+
41
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
42
+
43
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
44
+
45
+ ## Contributing
46
+
47
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/gitrepo-status.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'gitrepo/status'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install --path vendor/
7
+
8
+ # Do any other automated setup that you need to do here
data/changelog.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ Version format based on http://semver.org/
5
+
6
+ ## [Unreleased]
7
+
8
+ ## [0.1.0] - 2018-03-27
9
+ ### Added
10
+ - gitrepo-status cli script
11
+
12
+ ## [0.0.0] - 2018-03-27
13
+ ### Added
14
+ - ...
15
+
16
+ ### Changed
17
+ - ...
18
+
19
+ ### Removed
20
+ - ...
@@ -0,0 +1,213 @@
1
+ #!/usr/bin/env ruby
2
+ require 'getoptlong'
3
+ require 'gitrepo/status'
4
+ require 'awesome_print'
5
+ require 'yaml'
6
+ require 'json'
7
+
8
+ class Hash
9
+ def to_html
10
+ [
11
+ '<ul>',
12
+ map { |k, v| ["<li><strong>#{k}:</strong> ", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></li>"] },
13
+ '</ul>'
14
+ ].join
15
+ end
16
+ end
17
+
18
+ def clidoc
19
+ puts <<-CLIDOC
20
+
21
+ #{$PROGRAM_NAME} [OPTION]
22
+
23
+ -h, --help:
24
+ show help
25
+
26
+ -d, --debug [level]:
27
+ Debug level.
28
+
29
+ -p, --path [location of repo to check]
30
+ Path to a location of the repo to check.
31
+ Default '.' (Current directory)
32
+ If this ends in '/' the script will loop over
33
+ all subdirectories. These should all be git repos.
34
+
35
+ -o, --output [txt|raw|html|yaml|json|...].
36
+ Multiple types specified by comma separated string.
37
+ eg : -o txt,html
38
+ Default 'txt'
39
+
40
+ -a, --ahead_behind
41
+ Show how many commits current commit is ahead or behind remote.
42
+
43
+ --puppet
44
+ Report puppet module info from metadata.json
45
+
46
+ -t, --tests
47
+ Run some test code...
48
+
49
+ CLIDOC
50
+ end
51
+
52
+ opts = GetoptLong.new(
53
+ ['--help', '-h', GetoptLong::NO_ARGUMENT],
54
+ ['--debug', '-d', GetoptLong::OPTIONAL_ARGUMENT],
55
+ ['--path', '-p', GetoptLong::REQUIRED_ARGUMENT],
56
+ ['--output', '-o', GetoptLong::REQUIRED_ARGUMENT],
57
+ ['--ahead_behind', '-a', GetoptLong::NO_ARGUMENT],
58
+ ['--puppet', GetoptLong::NO_ARGUMENT],
59
+ ['--test', '-t', GetoptLong::NO_ARGUMENT]
60
+ )
61
+
62
+ debug = 0
63
+ path = '.'
64
+ output = ['txt']
65
+ ahead_behind = false
66
+ puppet = false
67
+ test = false
68
+
69
+ opts.each do |opt, arg|
70
+ case opt
71
+ when '--help'
72
+ clidoc
73
+ exit
74
+ when '--debug'
75
+ debug = if arg == ''
76
+ 1
77
+ else
78
+ arg.to_i
79
+ end
80
+ when '--path'
81
+ path = arg
82
+ when '--output'
83
+ output = arg.split(',')
84
+ when '--ahead_behind'
85
+ ahead_behind = true
86
+ when '--puppet'
87
+ puppet = true
88
+ when '--test'
89
+ test = true
90
+ end
91
+ end
92
+
93
+ OR = output.include?('raw')
94
+ OT = output.include?('txt')
95
+ OH = output.include?('html')
96
+ OY = output.include?('yaml')
97
+ OJ = output.include?('json')
98
+
99
+ paths = if path.end_with? '/'
100
+ Dir.glob("#{path}*/")
101
+ else
102
+ [path]
103
+ end
104
+
105
+ result = {}
106
+
107
+ def o_t_p(obj, ap_p = false)
108
+ return unless OT
109
+ if ap_p
110
+ ap obj
111
+ else
112
+ puts obj
113
+ end
114
+ end
115
+
116
+ def o_t_r(obj)
117
+ return unless OR
118
+ ap obj
119
+ end
120
+
121
+ def o_t_h(obj)
122
+ return unless OH
123
+ html_str = %(
124
+ <!DOCTYPE html>
125
+ <html>
126
+ <head>
127
+ <meta charset="UTF-8">
128
+ <meta name="viewport" content="width=device-width,initial-scale=1">
129
+ <title>Puppet Module version report</title>
130
+ <meta name="author" content="gitrepo-status">
131
+ <meta name="description" content="Puppet Module Git repo status">
132
+ <link rel="stylesheet" href="stylesheet.css" type="text/css">
133
+ <style type="text/css">
134
+
135
+ </style>
136
+ </head>
137
+ <body>
138
+
139
+ #{obj.to_html}
140
+
141
+ </body>
142
+ </html>
143
+ )
144
+ puts html_str
145
+ end
146
+
147
+ def o_t_y(obj)
148
+ return unless OY
149
+ puts obj.to_yaml
150
+ end
151
+
152
+ def o_t_j(obj)
153
+ return unless OJ
154
+ puts obj.to_json
155
+ end
156
+
157
+ paths.each do |path|
158
+ o_t_p "Path : #{path}"
159
+ r = {}
160
+
161
+ gitrepo = Gitrepo::Status.new(path: path)
162
+
163
+ gitrepo.fetch_all
164
+
165
+ gitrepo.test if test
166
+
167
+ r = {}
168
+
169
+ if ahead_behind
170
+ a_b = gitrepo.ahead_behind
171
+ unless a_b.nil?
172
+ a_b.each do |name, data|
173
+ r[name] ||= {}
174
+ o_t_p "-- Branch : #{name}"
175
+ if (data[0]).zero? && (data[1]).zero?
176
+ o_t_p ' Branch up to date.'
177
+ else
178
+ o_t_p " ahead : #{data[0]} commits"
179
+ o_t_p " behind : #{data[1]} commits"
180
+ end
181
+ r[name]['ahead - behind'] = data
182
+ end
183
+ end
184
+ end
185
+
186
+ if puppet && gitrepo.puppet_module?
187
+ diff = gitrepo.puppet_module_info
188
+ keys = %w[version dependencies requirements]
189
+ unless diff.empty?
190
+ diff.each do |name, data|
191
+ r[name] ||= {}
192
+ r[name]['puppet'] ||= {}
193
+ o_t_p "--- metadata difference with branch : #{name} (keys #{keys})"
194
+ data.select { |key, _| keys.include?(key) }.each do |k, v|
195
+ o_t_p " Key : #{k}"
196
+ o_t_p ' Old : '
197
+ o_t_p v[0], true
198
+ o_t_p ' New : '
199
+ o_t_p v[1], true
200
+ r[name]['puppet'][k] = { 'Old' => v[0], 'New' => v[1] }
201
+ end
202
+ end
203
+ end
204
+ end
205
+ result[path] = r
206
+ end
207
+
208
+ o_t_r result
209
+ o_t_h result
210
+ o_t_y result
211
+ o_t_j result
212
+
213
+ # vim:set fileencoding=utf8 fileformat=undefined filetype=ruby tabstop=2 expandtab:
@@ -0,0 +1,38 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'gitrepo/status/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'gitrepo-status'
7
+ spec.version = Gitrepo::Status::VERSION
8
+ spec.authors = ['Stefan - Zipkid - Goethals']
9
+ spec.email = ['stefan@zipkid.eu']
10
+
11
+ spec.summary = 'Gitrepo status checker'
12
+ spec.description = 'Check status of a gitrepo compared to upstream and other source urls'
13
+ spec.homepage = 'https://github.com/vrtdev/gitrepo-status'
14
+
15
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
17
+ if spec.respond_to?(:metadata)
18
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
19
+ else
20
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
21
+ 'public gem pushes.'
22
+ end
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ f.match(%r{^(test|spec|features)/})
26
+ end
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_development_dependency 'bundler', '~> 1.16'
32
+ spec.add_development_dependency 'rake', '~> 12.0'
33
+ spec.add_development_dependency 'rspec', '~> 3.7'
34
+
35
+ # Building rugged is a pain, install system package 'ruby-rugged' instead.
36
+ # spec.add_runtime_dependency 'rugged'
37
+ spec.add_runtime_dependency 'awesome_print'
38
+ end
@@ -0,0 +1,5 @@
1
+ class Gitrepo
2
+ class Status
3
+ VERSION = '0.2.0'.freeze
4
+ end
5
+ end
@@ -0,0 +1,150 @@
1
+ require 'gitrepo/status/version'
2
+ require 'rugged'
3
+ require 'json'
4
+
5
+ # Class Gitrepo
6
+ class Gitrepo
7
+ # Class Gitrepo::Status
8
+ class Status
9
+ def initialize(opt = {})
10
+ @path = opt.fetch(:path)
11
+ @report_branches = opt[:report_branches] || %w[master]
12
+ repo
13
+ end
14
+
15
+ def repo
16
+ return @repo if @repo
17
+ @repo = Rugged::Repository.discover(@path)
18
+ @basepath = repo.path.chomp('/.git/')
19
+ @repo
20
+ end
21
+
22
+ def fetch_all
23
+ # libgit2 and https... a dificult story... :-(
24
+ # remotes.each do |remote|
25
+ # repo.fetch remote.name
26
+ # end
27
+ cmd1 = 'git branch -r | grep -v "\->" | while read remote; do git branch --track "${remote#origin/}" "$remote" > /dev/null 2>&1; done'
28
+ cmd2 = 'git fetch --all > /dev/null 2>&1'
29
+ Dir.chdir(@path) do
30
+ `#{cmd1}`
31
+ `#{cmd2}`
32
+ end
33
+ end
34
+
35
+ def puppet_module?
36
+ !repo.index.get('metadata.json').nil?
37
+ end
38
+
39
+ def branchnames
40
+ branches_txt = ''
41
+ Dir.chdir(@path) do
42
+ branches_txt = `git branch --contains HEAD | grep -v 'detached at'`
43
+ end
44
+ branches = branches_txt.split("\n").map(&:strip)
45
+ branches.insert(0, branches.delete('master')) if branches.include?('master')
46
+ select_branches(branches)
47
+ end
48
+
49
+ def select_branches(branches)
50
+ return branches if @report_branches.empty?
51
+ b = branches.select { |e| @report_branches.include?(e) }
52
+ return b unless b.empty?
53
+ branches
54
+ end
55
+
56
+ def ahead_behind
57
+ branches = {}
58
+ branchnames.each do |branch|
59
+ branches[branch] = repo.ahead_behind(repo.head.target_id, "origin/#{branch}")
60
+ end
61
+ branches
62
+ end
63
+
64
+ def puppet_module_info
65
+ blob = repo.blob_at(repo.head.target_id, 'metadata.json')
66
+ current_metadata = JSON.parse(blob.content)
67
+ diff = {}
68
+ branchnames.each do |branch|
69
+ blob = repo.blob_at(repo.branches[branch].target_id, 'metadata.json')
70
+ branch_metadata = JSON.parse(blob.content)
71
+ branch_diff = deep_diff(current_metadata, branch_metadata)
72
+ diff[branch] = branch_diff unless branch_diff.empty?
73
+ end
74
+ diff
75
+ end
76
+
77
+ def test
78
+ require 'awesome_print'
79
+ # puts '--- repo.methods ---'
80
+ # ap repo.methods
81
+ puts '--- repo.path ---'
82
+ ap repo.path
83
+
84
+ ap repo.index.get('metadata.json')
85
+
86
+ puts '--- repo.last_commit ---'
87
+ ap repo.last_commit.tree_id
88
+
89
+ puts "Is Puppet Module? (has '/metadata.json'?) : #{puppet_module?}"
90
+ head = repo.head
91
+ puts '--- repo.head ---'
92
+ ap head
93
+
94
+ # sha1 hash of the newest commit
95
+ head_sha = head.target_id
96
+ puts '--- repo.head.target_id ---'
97
+ ap head_sha
98
+
99
+ ap repo.ahead_behind(head_sha, 'origin/master')
100
+
101
+ puts '--- repo remotes ---'
102
+ repo.remotes.each do |remote|
103
+ # ap remote.methods
104
+ ap remote.url
105
+ end
106
+
107
+ puts '--- repo branch ---'
108
+ repo.branches.each do |branch|
109
+ # ap branch.methods
110
+ ap branch.name
111
+ ap branch.head?
112
+ ap branch.upstream
113
+ end
114
+
115
+ # # the commit message associated the newest commit
116
+ # commit = repo.lookup(head_sha)
117
+ # puts '--- repo.lookup(repo.head.target_id) ---'
118
+ # pp commit
119
+ #
120
+ # puts '--- repo object methods ---'
121
+ # ap repo.methods
122
+ #
123
+ puts '--- repo remotes ---'
124
+ repo.remotes.each do |remote|
125
+ # ap remote.methods
126
+ ap remote.name
127
+ ap remote.url
128
+ end
129
+ #
130
+ # puts '--- repo branch ---'
131
+ # repo.branches.each do |branch|
132
+ # ap branch.methods
133
+ # ap branch.name
134
+ # end
135
+ end
136
+
137
+ def deep_diff(a, b)
138
+ (a.keys | b.keys).each_with_object({}) do |k, diff|
139
+ if a[k] != b[k]
140
+ diff[k] = if a[k].is_a?(Hash) && b[k].is_a?(Hash)
141
+ deep_diff(a[k], b[k])
142
+ else
143
+ diff[k] = [a[k], b[k]]
144
+ end
145
+ end
146
+ diff
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,11 @@
1
+ #!/bin/bash
2
+
3
+ set -x
4
+
5
+ apt-get -y update
6
+
7
+ apt-get -y upgrade
8
+
9
+ apt-get install -y git curl rubygems ruby-rugged
10
+
11
+ gem install bundler
@@ -0,0 +1,16 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure('2') do |config|
9
+ config.vbguest.auto_update = false
10
+ config.vm.synced_folder '../', '/build'
11
+
12
+ config.vm.define :stretch do |stretch|
13
+ stretch.vm.box = 'generic/debian9'
14
+ stretch.vm.provision :shell, name: 'install tools', path: '../script/shell/installer'
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitrepo-status
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Stefan - Zipkid - Goethals
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-08-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '12.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '12.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: awesome_print
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Check status of a gitrepo compared to upstream and other source urls
70
+ email:
71
+ - stefan@zipkid.eu
72
+ executables:
73
+ - gitrepo-status
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".rspec"
79
+ - ".travis.yml"
80
+ - Gemfile
81
+ - Gemfile.lock
82
+ - README.md
83
+ - Rakefile
84
+ - bin/console
85
+ - bin/setup
86
+ - changelog.md
87
+ - exe/gitrepo-status
88
+ - gitrepo-status.gemspec
89
+ - lib/gitrepo/status.rb
90
+ - lib/gitrepo/status/version.rb
91
+ - script/shell/installer
92
+ - vagrant/Vagrantfile
93
+ homepage: https://github.com/vrtdev/gitrepo-status
94
+ licenses: []
95
+ metadata:
96
+ allowed_push_host: https://rubygems.org
97
+ post_install_message:
98
+ rdoc_options: []
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project:
113
+ rubygems_version: 2.5.2.1
114
+ signing_key:
115
+ specification_version: 4
116
+ summary: Gitrepo status checker
117
+ test_files: []