gimp 0.0.3 → 0.1.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 +4 -4
- data/README.md +4 -4
- data/exe/gimp +8 -36
- data/gimp.gemspec +13 -14
- data/lib/gimp.rb +7 -1
- data/lib/gimp/options.rb +56 -0
- data/lib/gimp/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 842a3ae347d1837cf8e6a04854450bce2fd24271
|
4
|
+
data.tar.gz: 04d023df2c43678b1150cf91349a587a251d8f75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cea25d78d6c3eaa86786fd73f9f7542052c834367377ac5c27270f4d5c3d45a936e50b5b5c39f574094cb53cf0fe51ad077d1966cd98a21485fecc1cba89a67
|
7
|
+
data.tar.gz: 09bafc5cc6b88982b7d39720bfc68809917185831ac73176154321e169ccaaee1cf4d7088a1d84520181239050c850203b72e5da37dfa30d0f1c957d3d90f3b6
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# GIMP
|
2
2
|
|
3
3
|
Move issues between GitHub repositories.
|
4
4
|
|
@@ -7,7 +7,7 @@ Move issues between GitHub repositories.
|
|
7
7
|
$ gem install gimp
|
8
8
|
$ gimp --help
|
9
9
|
|
10
|
-
Authentication uses GitHub access tokens, go to *Edit profile > Personal access tokens* and click *Generate new token*. The default permissions are fine.
|
10
|
+
Authentication uses GitHub access tokens, go to *Your profile > Edit profile > Personal access tokens* and click *Generate new token*. The default permissions are fine.
|
11
11
|
|
12
12
|
Example usage:
|
13
13
|
|
@@ -39,11 +39,11 @@ Remember to add an entry for `.gimp` to your `.gitignore` file so you don't comm
|
|
39
39
|
|
40
40
|
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.
|
41
41
|
|
42
|
-
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 `
|
42
|
+
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 `gem 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).
|
43
43
|
|
44
44
|
## Contributing
|
45
45
|
|
46
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
46
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/gregbeech/gimp. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
47
47
|
|
48
48
|
|
49
49
|
## License
|
data/exe/gimp
CHANGED
@@ -2,45 +2,17 @@
|
|
2
2
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'gimp'
|
5
|
+
require 'gimp/options'
|
5
6
|
require 'yaml'
|
6
7
|
require 'hashie/mash'
|
7
8
|
|
8
|
-
options =
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
opts.on('-s', '--source SOURCE', 'Source repository') do |source|
|
16
|
-
options.source = source
|
17
|
-
end
|
18
|
-
opts.on('-d', '--destination DESTINATION', 'Destination repository') do |destination|
|
19
|
-
options.destination = destination
|
20
|
-
end
|
21
|
-
opts.on('-i', '--issues ISSUES', Array, 'Issue numbers') do |issues|
|
22
|
-
options.issues = issues
|
23
|
-
end
|
24
|
-
opts.on('--exclude-labels [LABELS]', Array, 'Exclude labels', ' (exclude specific labels if LABELS supplied)') do |labels|
|
25
|
-
options.labels ||= Hashie::Mash.new
|
26
|
-
options.labels.exclude = labels || true
|
27
|
-
end
|
28
|
-
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
29
|
-
options.verbose = v
|
30
|
-
end
|
31
|
-
opts.on_tail("-h", "--help", "Show this message") do
|
32
|
-
puts opts
|
33
|
-
exit
|
34
|
-
end
|
35
|
-
opts.on_tail("--version", "Show version") do
|
36
|
-
puts Gimp::VERSION
|
37
|
-
exit
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
opts.parse!
|
42
|
-
unless options.token? && options.source? && options.destination? && options.issues?
|
43
|
-
puts opts
|
9
|
+
options = Gimp::Options.new(File.exist?('.gimp') ? YAML.load_file('.gimp') : {})
|
10
|
+
options.parse!(ARGV)
|
11
|
+
if options.version?
|
12
|
+
puts Gimp::VERSION
|
13
|
+
exit
|
14
|
+
elsif options.help? || !options.valid?
|
15
|
+
puts options.usage
|
44
16
|
exit
|
45
17
|
end
|
46
18
|
|
data/gimp.gemspec
CHANGED
@@ -1,29 +1,28 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'gimp/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
6
|
+
spec.name = 'gimp'
|
8
7
|
spec.version = Gimp::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
8
|
+
spec.authors = ['Greg Beech']
|
9
|
+
spec.email = ['greg@gregbeech.com']
|
11
10
|
|
12
11
|
spec.summary = %q{GitHub Issue Moving Program}
|
13
12
|
spec.description = %q{Move issues between GitHub repos from the command line.}
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/gregbeech/gimp'
|
14
|
+
spec.license = 'MIT'
|
16
15
|
|
17
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir =
|
17
|
+
spec.bindir = 'exe'
|
19
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
21
20
|
|
22
|
-
spec.add_dependency
|
23
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency 'octokit', '~> 4.1'
|
22
|
+
spec.add_dependency 'hashie', '~> 3.4'
|
24
23
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 3.3'
|
27
|
+
spec.add_development_dependency 'gem-release', '>= 0.7'
|
29
28
|
end
|
data/lib/gimp.rb
CHANGED
@@ -5,6 +5,7 @@ module Gimp
|
|
5
5
|
class Mover
|
6
6
|
def initialize(options)
|
7
7
|
@client = Octokit::Client.new(access_token: options.token)
|
8
|
+
@options = options
|
8
9
|
@source = options.source
|
9
10
|
@destination = options.destination
|
10
11
|
@exclude_labels = options.labels.exclude if options.labels? && options.labels.exclude?
|
@@ -18,7 +19,7 @@ module Gimp
|
|
18
19
|
|
19
20
|
labels.each { |label| ensure_label(label) }
|
20
21
|
new_issue = @client.create_issue(@destination, issue.title, issue.body,
|
21
|
-
assignee: issue
|
22
|
+
assignee: new_assignee(issue),
|
22
23
|
labels: labels.map(&:name))
|
23
24
|
@client.add_comment(@destination, new_issue.number, "*Issue migrated from #{@source}##{issue.number}*")
|
24
25
|
comments.each { |comment| @client.add_comment(@destination, new_issue.number, comment_text(comment)) }
|
@@ -44,6 +45,11 @@ module Gimp
|
|
44
45
|
@known_labels << label.name
|
45
46
|
end
|
46
47
|
|
48
|
+
def new_assignee(issue)
|
49
|
+
return nil if @options.unassign? || issue.assignee.nil?
|
50
|
+
issue.assignee.login if @client.collaborator?(@destination, issue.assignee.login)
|
51
|
+
end
|
52
|
+
|
47
53
|
def comment_text(comment)
|
48
54
|
"*@#{comment.user.login} commented at #{comment.created_at}*\n\n---\n\n#{comment.body}"
|
49
55
|
end
|
data/lib/gimp/options.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
module Gimp
|
2
|
+
class Options < SimpleDelegator
|
3
|
+
def initialize(defaults)
|
4
|
+
super(@options = Hashie::Mash.new(defaults))
|
5
|
+
end
|
6
|
+
|
7
|
+
def parse!(args)
|
8
|
+
parser.parse!(args)
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
def valid?
|
13
|
+
@options.token? && @options.source? && @options.destination? && @options.issues?
|
14
|
+
end
|
15
|
+
|
16
|
+
def usage
|
17
|
+
parser.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def parser
|
23
|
+
@parser ||= OptionParser.new do |opts|
|
24
|
+
opts.banner = 'Usage: gimp [options]'
|
25
|
+
opts.on('-t', '--token ACCESS_TOKEN', 'GitHub access token') do |access_token|
|
26
|
+
@options.access_token = access_token
|
27
|
+
end
|
28
|
+
opts.on('-s', '--source SOURCE', 'Source repository') do |source|
|
29
|
+
@options.source = source
|
30
|
+
end
|
31
|
+
opts.on('-d', '--destination DESTINATION', 'Destination repository') do |destination|
|
32
|
+
@options.destination = destination
|
33
|
+
end
|
34
|
+
opts.on('-i', '--issues ISSUES', Array, 'Issue numbers') do |issues|
|
35
|
+
@options.issues = issues
|
36
|
+
end
|
37
|
+
opts.on('-u', '--unassign', 'Do not copy the existing assignee') do
|
38
|
+
@options.unassign = true
|
39
|
+
end
|
40
|
+
opts.on('--exclude-labels [LABELS]', Array, 'Exclude labels', ' (exclude specific labels if LABELS supplied)') do |labels|
|
41
|
+
@options.labels ||= Hashie::Mash.new
|
42
|
+
@options.labels.exclude = labels || true
|
43
|
+
end
|
44
|
+
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
45
|
+
@options.verbose = v
|
46
|
+
end
|
47
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
48
|
+
@options.help = true
|
49
|
+
end
|
50
|
+
opts.on_tail("--version", "Show version") do
|
51
|
+
@options.version = true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/gimp/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gimp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Beech
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
89
|
+
version: '0.7'
|
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
|
-
version: '0'
|
96
|
+
version: '0.7'
|
97
97
|
description: Move issues between GitHub repos from the command line.
|
98
98
|
email:
|
99
99
|
- greg@gregbeech.com
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- exe/gimp
|
116
116
|
- gimp.gemspec
|
117
117
|
- lib/gimp.rb
|
118
|
+
- lib/gimp/options.rb
|
118
119
|
- lib/gimp/version.rb
|
119
120
|
homepage: https://github.com/gregbeech/gimp
|
120
121
|
licenses:
|