update_repo 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.pullreview.yml +4 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +103 -0
- data/Rakefile +31 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/update_repo +16 -0
- data/exe/update_repo +20 -0
- data/lib/update_repo.rb +73 -0
- data/lib/update_repo/version.rb +3 -0
- data/update_repo.gemspec +39 -0
- metadata +243 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b8306af42ee0918611be90bb7d383edd58b01809
|
4
|
+
data.tar.gz: 0044b4e45d04bf1d7e453f4d2186507c4ff93742
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 48dcd4bc4e2333d0ba99b885d632b9c13e8b88c657b1a47ff501b1289cb3d7e8ba7289027a253c14f48af34a1725819c49df3de63170b039dc5605b23411eac9
|
7
|
+
data.tar.gz: 5751e8889ff7c22b04a06d8ff6b1bca976ab3536d513dda738f7461b542c5679a53322c1876e006d2a2c323ca4c3050471564be2c4e0f37b61fb62b2042be169
|
data/.gitignore
ADDED
data/.pullreview.yml
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Grant Ramsay
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
# update_repo
|
2
|
+
|
3
|
+
A Simple Gem to keep multiple cloned Git Repositories up to date.
|
4
|
+
|
5
|
+
This is the conversion to a Gem of one of my standalone Ruby scripts. Still very much work in progress, but functions as required.
|
6
|
+
|
7
|
+
## Usage
|
8
|
+
|
9
|
+
#### Pre-requirements
|
10
|
+
|
11
|
+
It goes without saying that at the very least a working copy of [Git][git] needs to be installed on your machine. Also, the script has only been tested under Linux, not windows.
|
12
|
+
|
13
|
+
[git]: http://git-scm.com
|
14
|
+
|
15
|
+
#### Quick start
|
16
|
+
Create a [YAML](http://yaml.org/)-formatted configuration file `.updatereporc` **in your home directory** that contains at least a 'location' tag pointing to the directory containing the git repositories you wish to have updated :
|
17
|
+
```yaml
|
18
|
+
---
|
19
|
+
location:
|
20
|
+
- /media/myuser/git-repos
|
21
|
+
- /data/RepoDir
|
22
|
+
```
|
23
|
+
This is the most basic example of a configuration file and there are other options that can be added to fine-tune the operation - see the description of configuration options below.
|
24
|
+
|
25
|
+
This file should be located in the users home directory (`~/.updatereporc`).
|
26
|
+
|
27
|
+
Run the script :
|
28
|
+
```
|
29
|
+
$ update_repo
|
30
|
+
```
|
31
|
+
|
32
|
+
## Configuration
|
33
|
+
#### Configuration file
|
34
|
+
To be added.
|
35
|
+
|
36
|
+
#### Command line switches
|
37
|
+
To be added.
|
38
|
+
|
39
|
+
## To-Do
|
40
|
+
Not in any specific order :
|
41
|
+
|
42
|
+
- Improve error-checking and recovery while parsing the configuration file (convert to using my '[Confoog][confoog]' gem for example)
|
43
|
+
- Either add an option 'variants' or similar to allow non-standard git pull commands (eg Ubuntu kernel), or update the 'exceptions' option to do same.
|
44
|
+
- Error checking and reporting for the git processes - retry for connection issues etc (config setting).
|
45
|
+
- Add extra (optional) stats / info at end-of-job :
|
46
|
+
* number of repos updated
|
47
|
+
* number of repos skipped
|
48
|
+
* list of changed repos
|
49
|
+
* errors or connection problems
|
50
|
+
* _more..._
|
51
|
+
- Add command line options to override configuration, and even specify an alternate config file. Any options so specified will have precedence over settings specified in the configuration file.
|
52
|
+
- Add command line options for verbose or quiet, with same options in config file.
|
53
|
+
- Add ability to specify a new directory (containing Git repos) to search from the command line, and optionally save this to the standard configuration.
|
54
|
+
- Add new repo from the command line that will be cloned to the default repo directory and then updated as usual. Extra flag added for "add only, clone later" for offline use.
|
55
|
+
- Add flag for 'default' repo directory (or another specific directory - if it does not already exist it will be created and added to the standard list) which will be used for new additions.
|
56
|
+
- Option to save log file for each run.
|
57
|
+
- Add option to only display a (text) tree of the discovered git repositories, not updating them; Similar option to just dump a list of the remote git locations.
|
58
|
+
- Document configuration file format and options.
|
59
|
+
- Add testing!
|
60
|
+
|
61
|
+
[confoog]: http://confoog.seapagan.net
|
62
|
+
|
63
|
+
## Development
|
64
|
+
|
65
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests (or simply `rake`). You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
66
|
+
|
67
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
68
|
+
|
69
|
+
Run `rake` to run the RSpec tests, which also runs `RuboCop`, `Reek` and `inch --pedantic` too.
|
70
|
+
|
71
|
+
## Contributing
|
72
|
+
|
73
|
+
1. Fork it
|
74
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
75
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
76
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
77
|
+
5. Create new Pull Request
|
78
|
+
|
79
|
+
<del>Please note - This Gem currently aims to pass 100% on [RuboCop][rubocop], [Reek][reek] and [Inch-CI][inch] (on pedantic mode), so all pull requests should do likewise. Ask for guidance if needed.
|
80
|
+
Running `rake` will automatically test all 3 of those along with the RSpec tests. Note that Failures of Rubocop will cause the CI (Travis) to fail, however 'Reek' failures will not.</del>
|
81
|
+
This is still currently a messy conversion to Gem from a standalone script, so the RSpec tests are non-existent and it will fail all [RuboCop][rubocop], [Reek][reek] and [Inch-CI][inch]. This will be quickly fixed though. Once that is done this message will be removed and the above comment reinstated.
|
82
|
+
|
83
|
+
[rubocop]: https://github.com/bbatsov/rubocop
|
84
|
+
[reek]: https://github.com/troessner/reek
|
85
|
+
[inch]: https://inch-ci.org
|
86
|
+
|
87
|
+
## Versioning
|
88
|
+
|
89
|
+
This Gem aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations
|
90
|
+
of this scheme should be reported as bugs. Specifically, if a minor or patch
|
91
|
+
version is released that breaks backward compatibility, that version should be
|
92
|
+
immediately yanked and/or a new version should be immediately released that
|
93
|
+
restores compatibility. Breaking changes to the public API will only be
|
94
|
+
introduced with new major versions.
|
95
|
+
|
96
|
+
Of course, currently we have not even reached version 1, so leave off the version requirement completely. Expect any and all of the API and interface to change!
|
97
|
+
|
98
|
+
[semver]: http://semver.org/
|
99
|
+
[pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
100
|
+
|
101
|
+
## License
|
102
|
+
|
103
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
require 'rubocop/rake_task'
|
4
|
+
require 'inch/rake'
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
7
|
+
|
8
|
+
RuboCop::RakeTask.new do |task|
|
9
|
+
task.options << 'lib'
|
10
|
+
end
|
11
|
+
|
12
|
+
Inch::Rake::Suggest.new do |suggest|
|
13
|
+
suggest.args << '--pedantic'
|
14
|
+
end
|
15
|
+
|
16
|
+
# reek is not compatible with Ruby < 2.0]
|
17
|
+
if RUBY_VERSION > '2.0'
|
18
|
+
require 'reek/rake/task'
|
19
|
+
Reek::Rake::Task.new do |t|
|
20
|
+
t.fail_on_error = false
|
21
|
+
t.verbose = true
|
22
|
+
t.reek_opts = '-U'
|
23
|
+
end
|
24
|
+
else
|
25
|
+
task :reek do
|
26
|
+
# Empty task
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# task default: [:rubocop, :inch, :reek, :spec, :build]
|
31
|
+
task default: [ :spec, :build] # leave the others off until we are more advanced.
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "update_repo"
|
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
|
data/bin/setup
ADDED
data/bin/update_repo
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'update_repo' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require "pathname"
|
10
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require "rubygems"
|
14
|
+
require "bundler/setup"
|
15
|
+
|
16
|
+
load Gem.bin_path("update_repo", "update_repo")
|
data/exe/update_repo
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "update_repo"
|
4
|
+
include UpdateRepo
|
5
|
+
|
6
|
+
# start the process...
|
7
|
+
configs, location = check_config
|
8
|
+
|
9
|
+
show_header(configs, location)
|
10
|
+
|
11
|
+
# save the current time
|
12
|
+
start_time = Time.now
|
13
|
+
configs['location'].each do |loc|
|
14
|
+
recurse_dir(loc, configs['exceptions'])
|
15
|
+
end
|
16
|
+
|
17
|
+
# get duration since we saved the time
|
18
|
+
duration = Time.now - start_time
|
19
|
+
|
20
|
+
puts "\nUpdates completed - #{$counter} repositories processed in #{Time.at(duration).utc.strftime("%H:%M:%S")}\n".underline
|
data/lib/update_repo.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require "update_repo/version"
|
2
|
+
require 'yaml'
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
module UpdateRepo
|
6
|
+
|
7
|
+
CONFIG_FILE = '.updatereporc'
|
8
|
+
$counter = 0
|
9
|
+
|
10
|
+
def recurse_dir(dirname, exceptions)
|
11
|
+
Dir.foreach(dirname) do |dir|
|
12
|
+
dirpath= dirname + '/' + dir
|
13
|
+
if File.directory?(dirpath) && dir != '.' && dir != '..' then
|
14
|
+
gitpath = dirpath + '/.git'
|
15
|
+
if File.exists?(gitpath) && File.directory?(gitpath) then
|
16
|
+
if exceptions.nil? || !exceptions.include?(dir.chomp)
|
17
|
+
update_repo(dirpath)
|
18
|
+
$counter += 1
|
19
|
+
else
|
20
|
+
Dir.chdir(gitpath) do
|
21
|
+
repo_url = `git config remote.origin.url`.chomp
|
22
|
+
print "* Skipping #{dirpath}".yellow, " (#{repo_url})\n"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
else
|
26
|
+
recurse_dir(dirpath, exceptions)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def show_header(configs, location)
|
33
|
+
# print an informative header before starting
|
34
|
+
print "\nGit Repo update utility (v.0.1.0)".underline, " \u00A9 Grant Ramsay <seapagan@gmail.com>\n"
|
35
|
+
puts "Using Configuration from #{location}"
|
36
|
+
puts "\nRepo location(s):".underline
|
37
|
+
configs['location'].each do |loc|
|
38
|
+
print "-> ", loc.cyan, "\n"
|
39
|
+
end
|
40
|
+
if !configs['exceptions'].nil? then
|
41
|
+
print "\nExclusions:".underline, " ", configs['exceptions'].join(', ').yellow, "\n"
|
42
|
+
end
|
43
|
+
puts # blank line before processing starts
|
44
|
+
end
|
45
|
+
|
46
|
+
def update_repo(dirname)
|
47
|
+
Dir.chdir(dirname) do
|
48
|
+
repo_url = `git config remote.origin.url`.chomp
|
49
|
+
print "* ", "Checking ", dirname.green, " (#{repo_url})\n"
|
50
|
+
print " -> "
|
51
|
+
system "git pull"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def check_config
|
56
|
+
# locate the configuration file.
|
57
|
+
# first we check in this script location and if present then we ignore any
|
58
|
+
# further files.
|
59
|
+
dev_config = File.join '.', CONFIG_FILE
|
60
|
+
user_config = File.join Gem.user_home, CONFIG_FILE
|
61
|
+
|
62
|
+
if File.exist? dev_config
|
63
|
+
# configuration exists in script directory so we ignore any others.
|
64
|
+
return YAML.load_file(dev_config), File.expand_path(dev_config)
|
65
|
+
elsif File.exist? user_config
|
66
|
+
# configuration exists in user home directory so we use that.
|
67
|
+
return YAML.load_file(user_config), File.expand_path(user_config)
|
68
|
+
end
|
69
|
+
# otherwise return error
|
70
|
+
puts "Error : Cannot find configuration file '#{user_config}', aborting".red
|
71
|
+
exit 1
|
72
|
+
end
|
73
|
+
end
|
data/update_repo.gemspec
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# rubocop:disable LineLength
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'update_repo/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "update_repo"
|
9
|
+
spec.version = UpdateRepo::VERSION
|
10
|
+
spec.required_ruby_version = '>= 1.9.3'
|
11
|
+
spec.authors = ["Grant Ramsay"]
|
12
|
+
spec.email = ["seapagan@gmail.com"]
|
13
|
+
|
14
|
+
spec.summary = 'A Simple Gem to keep multiple cloned Git Repositories up to date'
|
15
|
+
spec.homepage = "http://opensource.seapagan.net"
|
16
|
+
spec.license = "MIT"
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
+
spec.add_development_dependency 'pry'
|
27
|
+
spec.add_development_dependency 'fakefs'
|
28
|
+
spec.add_development_dependency 'coveralls'
|
29
|
+
spec.add_development_dependency 'rubocop'
|
30
|
+
spec.add_development_dependency 'inch'
|
31
|
+
spec.add_development_dependency 'simplecov', '~> 0.10'
|
32
|
+
spec.add_development_dependency 'pullreview-coverage'
|
33
|
+
spec.add_development_dependency 'should_not'
|
34
|
+
|
35
|
+
spec.add_dependency 'colorize'
|
36
|
+
|
37
|
+
# Depends on Ruby version if we can use 'Reek'
|
38
|
+
spec.add_development_dependency 'reek', '~> 3.3' if RUBY_VERSION > '2.0'
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,243 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: update_repo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Grant Ramsay
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-01 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.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.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.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: fakefs
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coveralls
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: inch
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: simplecov
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.10'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.10'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pullreview-coverage
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: should_not
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: colorize
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: reek
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '3.3'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '3.3'
|
195
|
+
description:
|
196
|
+
email:
|
197
|
+
- seapagan@gmail.com
|
198
|
+
executables:
|
199
|
+
- update_repo
|
200
|
+
extensions: []
|
201
|
+
extra_rdoc_files: []
|
202
|
+
files:
|
203
|
+
- ".gitignore"
|
204
|
+
- ".pullreview.yml"
|
205
|
+
- ".rspec"
|
206
|
+
- ".travis.yml"
|
207
|
+
- Gemfile
|
208
|
+
- LICENSE.txt
|
209
|
+
- README.md
|
210
|
+
- Rakefile
|
211
|
+
- bin/console
|
212
|
+
- bin/setup
|
213
|
+
- bin/update_repo
|
214
|
+
- exe/update_repo
|
215
|
+
- lib/update_repo.rb
|
216
|
+
- lib/update_repo/version.rb
|
217
|
+
- update_repo.gemspec
|
218
|
+
homepage: http://opensource.seapagan.net
|
219
|
+
licenses:
|
220
|
+
- MIT
|
221
|
+
metadata: {}
|
222
|
+
post_install_message:
|
223
|
+
rdoc_options: []
|
224
|
+
require_paths:
|
225
|
+
- lib
|
226
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - ">="
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: 1.9.3
|
231
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - ">="
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '0'
|
236
|
+
requirements: []
|
237
|
+
rubyforge_project:
|
238
|
+
rubygems_version: 2.6.1
|
239
|
+
signing_key:
|
240
|
+
specification_version: 4
|
241
|
+
summary: A Simple Gem to keep multiple cloned Git Repositories up to date
|
242
|
+
test_files: []
|
243
|
+
has_rdoc:
|