redminerb 0.2.3 → 0.3.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/.rubocop.yml +2 -0
- data/CHANGELOG.rdoc +5 -0
- data/README.md +62 -14
- data/lib/redminerb/cli/issues.rb +30 -0
- data/lib/redminerb/cli/users.rb +36 -29
- data/lib/redminerb/cli.rb +4 -1
- data/lib/redminerb/client.rb +8 -52
- data/lib/redminerb/issues.rb +35 -0
- data/lib/redminerb/template.rb +25 -0
- data/lib/redminerb/users.rb +55 -0
- data/lib/redminerb/version.rb +1 -1
- data/lib/redminerb.rb +6 -0
- data/redminerb.gemspec +1 -0
- data/templates/issue.erb +12 -0
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da909c714880dbb6b5574f5231f23fc6b6746212
|
4
|
+
data.tar.gz: a441ec352a81a81fae4b9ba561fedd475984607d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1950ab70ede6e2a8614098ea9137a8bb978c4999ca44baa9db5304e190561ff914294fa2aeba7539acc4467744bd0b2b6c1c92ea28b770e2db1a6b0457f96b2
|
7
|
+
data.tar.gz: e1676c311102229ef787b6a2c285925d7a2faf9f4959e64d8e9fb496e5910724bc9dfdf77f32d47efde1d3a8e1e01c9045db5413343cce6cb3629d529ceb077b
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.rdoc
CHANGED
data/README.md
CHANGED
@@ -34,8 +34,9 @@ Or install it yourself as:
|
|
34
34
|
|
35
35
|
## Usage
|
36
36
|
|
37
|
-
The URL and the API key
|
38
|
-
|
37
|
+
The URL and the API key of your Redmine REST API must be in your environment
|
38
|
+
using *REDMINERB_URL* and *REDMINERB_API_KEY*, or in the `~/.redminerb.yml` as values
|
39
|
+
of the *url* and *api_key* keys.
|
39
40
|
|
40
41
|
For example, this `~/.redminerb.yml`:
|
41
42
|
|
@@ -47,6 +48,13 @@ Would be the same as having the following in your `.bashrc`:
|
|
47
48
|
export REDMINERB_URL=http://localhost:3000/
|
48
49
|
export REDMINERB_API_KEY=69b47d74e36a6757bac5d45f8398dd23bfa8f52c
|
49
50
|
|
51
|
+
GET request on a collection ressources give us the results as indicated by the
|
52
|
+
[Redmine pagination documentation](http://www.redmine.org/projects/redmine/wiki/Rest_api#Collection-resources-and-pagination). You can use the *--limit (-l)* and *--offset (-o)* options.
|
53
|
+
|
54
|
+
For example, you can see the third user of your Redmine with:
|
55
|
+
|
56
|
+
$ redminerb users -o 3 -l 1
|
57
|
+
|
50
58
|
### Configuration (config)
|
51
59
|
|
52
60
|
To see the current configuration used by Redminerb we have the `config` command:
|
@@ -55,28 +63,35 @@ To see the current configuration used by Redminerb we have the `config` command:
|
|
55
63
|
URL: http://localhost:3000/
|
56
64
|
API-KEY: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
|
57
65
|
|
58
|
-
*NOTICE: soon will be possible to specify this values using env. vars and this
|
59
|
-
command will have more sense.*
|
60
|
-
|
61
66
|
### Users
|
62
67
|
|
63
|
-
**
|
68
|
+
The **users** command is the wrapper for part of the [Users resource](http://www.redmine.org/projects/redmine/wiki/Rest_Users) of the Redmine REST API.
|
69
|
+
|
70
|
+
**IMPORTANT: Be sure that your API key's user have the right permissions in the server.**
|
64
71
|
|
65
72
|
#### List current users
|
66
73
|
|
67
|
-
|
74
|
+
**List** is the default subcommand of the *users* command:
|
75
|
+
|
76
|
+
$ redminerb users # i.e. 'redminerb users list'
|
68
77
|
|
69
78
|
That should give you the current users on your Redmine server, one per line.
|
70
79
|
|
71
|
-
|
72
|
-
|
80
|
+
You can use the `--name` option to list users as described by the *name* filter of the API resource. The `-q` and `--query` are aliases for this option. For example:
|
81
|
+
|
82
|
+
$ redminerb users -q red # i.e. 'redminerb users list --name=red'
|
83
|
+
|
84
|
+
Will show us the users which login, first name, last name or email contains the 'red' word.
|
85
|
+
|
86
|
+
By omission *users list* gives you the ID, the login and the e-mail of the user. You can
|
87
|
+
change that using the *--fields (-f)* option, that let you specify others separated
|
73
88
|
by semicolons. For example:
|
74
89
|
|
75
|
-
$ redminerb users
|
90
|
+
$ redminerb users -f id:mail
|
76
91
|
|
77
|
-
Will return only the ID following by the user
|
92
|
+
Will return only the ID following by the user's email.
|
78
93
|
|
79
|
-
You can see all the available
|
94
|
+
You can see **all the fields available** with `redminerb users me`.
|
80
95
|
|
81
96
|
#### Show our info in the Redmine server
|
82
97
|
|
@@ -88,10 +103,43 @@ the API key used to access the Rest API (hopefully your data :).
|
|
88
103
|
|
89
104
|
#### Create new user
|
90
105
|
|
91
|
-
|
92
|
-
|
106
|
+
To create a new user we should use the *create* subcommand:
|
107
|
+
|
108
|
+
$ redminerb users create --login wadus --password="ultrasecret" \
|
109
|
+
--firstname="Wadux" --lastname Wallace \
|
93
110
|
--mail "wadus@waduxwallace.out"
|
94
111
|
|
112
|
+
The options have the following aliases (extracted from `redminerb users help create`):
|
113
|
+
|
114
|
+
l, --login=LOGIN
|
115
|
+
p, --password=PASSWORD
|
116
|
+
fn, --firstname=FIRSTNAME
|
117
|
+
ln, --lastname=LASTNAME
|
118
|
+
m, --mail=MAIL
|
119
|
+
|
120
|
+
So, the previous command is the same as the following:
|
121
|
+
|
122
|
+
$ redminerb users create -l wadus -p ultrasecret -fn Wadux -ln Wallace \
|
123
|
+
-m wadus@waduxwallace.out
|
124
|
+
|
125
|
+
#### List issues
|
126
|
+
|
127
|
+
$ redminerb issues list
|
128
|
+
|
129
|
+
#### Show an issue
|
130
|
+
|
131
|
+
Shows the info of an issue with a number or id.
|
132
|
+
|
133
|
+
$ redminerb issues [show] <number>
|
134
|
+
|
135
|
+
For example, to see the info of the issue #12532 we'd launch:
|
136
|
+
|
137
|
+
$ redminerb issues show 12539
|
138
|
+
|
139
|
+
*show* is the default subcommand, so the following order has the same output as the following:
|
140
|
+
|
141
|
+
$ redminerb issues 12539
|
142
|
+
|
95
143
|
## Development
|
96
144
|
|
97
145
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
+
require 'erb'
|
3
|
+
require_relative '../issues'
|
4
|
+
|
5
|
+
module Redminerb
|
6
|
+
module Cli
|
7
|
+
# Thor's 'issues' subcommand definition
|
8
|
+
class Issues < Thor
|
9
|
+
default_command :show
|
10
|
+
|
11
|
+
desc 'list', 'Shows open issues in our Redmine'
|
12
|
+
option :offset, aliases: :o
|
13
|
+
option :limit, aliases: :l
|
14
|
+
def list
|
15
|
+
Redminerb.init!
|
16
|
+
Redminerb::Issues.list(options).each do |issue|
|
17
|
+
puts "[#{issue.id}] ".blue + issue.subject.green
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'show <number>', 'Shows the data of the issue which id match with #<number>'
|
22
|
+
def show(issue_id)
|
23
|
+
Redminerb.init!
|
24
|
+
issue = Redminerb::Issues.read(issue_id)
|
25
|
+
template = Redminerb::Template.read(:issue)
|
26
|
+
puts ERB.new(template).result(binding)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/redminerb/cli/users.rb
CHANGED
@@ -1,35 +1,42 @@
|
|
1
1
|
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
-
|
3
|
-
# 'users' Thor subcommand definition
|
4
|
-
class Users < Thor
|
5
|
-
default_command :list
|
2
|
+
require_relative '../users'
|
6
3
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
module Redminerb
|
5
|
+
module Cli
|
6
|
+
# 'users' Thor subcommand definition
|
7
|
+
class Users < Thor
|
8
|
+
default_command :list
|
9
|
+
|
10
|
+
desc 'list', 'Shows the current users in our Redmine'
|
11
|
+
option :fields, aliases: :f, banner: 'id:login:email'
|
12
|
+
option :name, aliases: [:q, '--query'], banner: '<FILTER>'
|
13
|
+
option :offset, aliases: :o
|
14
|
+
option :limit, aliases: :l
|
15
|
+
def list
|
16
|
+
Redminerb.init!
|
17
|
+
fields = options.delete(:fields) || 'id:login:mail'
|
18
|
+
Redminerb::Users.list(options).each do |user|
|
19
|
+
puts fields.split(':').map {|f| user.send(f)}.join("\t").green
|
20
|
+
end
|
14
21
|
end
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
22
|
+
|
23
|
+
desc 'create', 'Creates a user.'
|
24
|
+
option :login, aliases: :l, required: true
|
25
|
+
option :password, aliases: :p, required: true
|
26
|
+
option :firstname, aliases: :fn, required: true
|
27
|
+
option :lastname, aliases: :ln, required: true
|
28
|
+
option :mail, aliases: :m, required: true
|
29
|
+
def create
|
30
|
+
Redminerb.init!
|
31
|
+
puts Redminerb::Users.create(options).green
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'me', 'Shows the info of the owner of the API key'
|
35
|
+
def me
|
36
|
+
Redminerb.init!
|
37
|
+
Redminerb::Users.me.each do |field, value|
|
38
|
+
puts "#{field}: ".blue + value.to_s.green
|
39
|
+
end
|
33
40
|
end
|
34
41
|
end
|
35
42
|
end
|
data/lib/redminerb/cli.rb
CHANGED
@@ -3,6 +3,7 @@ require 'thor'
|
|
3
3
|
require 'colorize'
|
4
4
|
require_relative '../redminerb'
|
5
5
|
require_relative 'cli/users'
|
6
|
+
require_relative 'cli/issues'
|
6
7
|
|
7
8
|
module Redminerb
|
8
9
|
# Thor's command class
|
@@ -19,6 +20,8 @@ module Redminerb
|
|
19
20
|
|
20
21
|
# The subcommad's classes are defined in lib/redminerb/cli
|
21
22
|
desc 'users [list]', "Manage Redmine's users"
|
22
|
-
subcommand 'users', Users
|
23
|
+
subcommand 'users', Cli::Users
|
24
|
+
desc 'issues [list]', "Manage Redmine's issues"
|
25
|
+
subcommand 'issues', Cli::Issues
|
23
26
|
end
|
24
27
|
end
|
data/lib/redminerb/client.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
2
|
require 'faraday'
|
3
3
|
require 'json'
|
4
|
-
require 'ostruct'
|
5
4
|
|
6
5
|
module Redminerb
|
7
6
|
# HTTP client to communicate w/ the Redmine server.
|
@@ -17,59 +16,15 @@ module Redminerb
|
|
17
16
|
@connection.basic_auth(cfg.api_key, cfg.api_key)
|
18
17
|
end
|
19
18
|
|
20
|
-
# Get the users of our Redmine as OpenStruct objects.
|
21
|
-
#
|
22
|
-
# Example:
|
23
|
-
# Redminerb.init!
|
24
|
-
# Redminerb.client.users.each do |user|
|
25
|
-
# puts user.firstname
|
26
|
-
# end
|
27
|
-
#
|
28
|
-
# See lib/reminerb/cli/user.rb code to see other example/s.
|
29
|
-
|
30
|
-
def users
|
31
|
-
get_json('/users.json')['users'].map do |user|
|
32
|
-
OpenStruct.new user
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# Creates a brand new user with the given params. In lib/reminerb/cli/user.rb
|
37
|
-
# you can see which ones are required (or running 'redminerb users create'
|
38
|
-
# from the command line).
|
39
|
-
#
|
40
|
-
# Example (missing required params):
|
41
|
-
# Redminerb.init!
|
42
|
-
# Redminerb.client.create_user login: 'wadus'
|
43
|
-
|
44
|
-
def create_user(params)
|
45
|
-
response = post_json('/users.json', user: params)
|
46
|
-
|
47
|
-
if response.success?
|
48
|
-
'Created'
|
49
|
-
else
|
50
|
-
raise_error! response
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# Returns a hash with the info of the user's account behind the API key that
|
55
|
-
# is used by the script to access the Redmine's REST API.
|
56
|
-
#
|
57
|
-
# Example (missing required params):
|
58
|
-
# Redminerb.init!
|
59
|
-
# me = Redminerb.client.me
|
60
|
-
# puts me['login'] + ': ' + me['mail']
|
61
|
-
|
62
|
-
def me
|
63
|
-
get_json('/users/current.json')['user']
|
64
|
-
end
|
65
|
-
|
66
|
-
private
|
67
|
-
|
68
19
|
# Makes a GET request of the given 'path' param and returns the body of the
|
69
20
|
# response parsed as JSON.
|
70
|
-
def get_json(path)
|
21
|
+
def get_json(path, params = {})
|
71
22
|
Redminerb.init_required!
|
72
|
-
res = @connection.get
|
23
|
+
res = @connection.get do |req|
|
24
|
+
req.url path
|
25
|
+
req.headers['Content-Type'] = 'application/json'
|
26
|
+
req.body = params.to_json if params.any?
|
27
|
+
end
|
73
28
|
JSON.parse(res.body)
|
74
29
|
rescue JSON::ParserError => e
|
75
30
|
raise e, "HTTP status code #{res.status}"
|
@@ -77,6 +32,7 @@ module Redminerb
|
|
77
32
|
|
78
33
|
# Makes a POST request to 'path' with 'params' in JSON format.
|
79
34
|
def post_json(path, params)
|
35
|
+
Redminerb.init_required!
|
80
36
|
@connection.post do |req|
|
81
37
|
req.url path
|
82
38
|
req.headers['Content-Type'] = 'application/json'
|
@@ -85,7 +41,7 @@ module Redminerb
|
|
85
41
|
end
|
86
42
|
|
87
43
|
# It raises an exception giving the validation messages for 422 responses
|
88
|
-
def raise_error!(res)
|
44
|
+
def self.raise_error!(res)
|
89
45
|
if res.status == 422
|
90
46
|
begin
|
91
47
|
errors = JSON.parse(res.body)['errors']
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module Redminerb
|
5
|
+
# Issues resource wrapper
|
6
|
+
class Issues
|
7
|
+
class << self
|
8
|
+
# Get Redmine's issues as OpenStruct objects.
|
9
|
+
#
|
10
|
+
# Example:
|
11
|
+
# Redminerb.init!
|
12
|
+
# Redminerb::Issues.list.each do |issue|
|
13
|
+
# puts "#{issue.id}: #{issue.subject}"
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
|
17
|
+
def list(params)
|
18
|
+
Redminerb.client.get_json('/issues.json', params)['issues'].map do |issue|
|
19
|
+
OpenStruct.new issue
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Get an issue's info as an OpenStruct object.
|
24
|
+
#
|
25
|
+
# Example:
|
26
|
+
# Redminerb.init!
|
27
|
+
# issue = Redminerb::Issues.read(34)
|
28
|
+
# puts "#{issue.id}: #{issue.subject}"
|
29
|
+
#
|
30
|
+
def read(id)
|
31
|
+
OpenStruct.new Redminerb.client.get_json("/issues/#{id}.json")['issue']
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module Redminerb
|
5
|
+
# Class to read Redminerb's ERB templates
|
6
|
+
class Template
|
7
|
+
class << self
|
8
|
+
# Returns the content of the given ERB file in the templates directory.
|
9
|
+
#
|
10
|
+
# Example:
|
11
|
+
# Redminerb::Template.read(:issue) # Returns the content of templates/issue.erb
|
12
|
+
#
|
13
|
+
|
14
|
+
def read(name)
|
15
|
+
File.read(filepath(name))
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def filepath(name)
|
21
|
+
File.join(File.dirname(__FILE__)[0..-15], 'templates', "#{name}.erb")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module Redminerb
|
5
|
+
# Users resource wrapper
|
6
|
+
class Users
|
7
|
+
class << self
|
8
|
+
# Get the users of our Redmine as OpenStruct objects.
|
9
|
+
#
|
10
|
+
# Example:
|
11
|
+
# Redminerb.init!
|
12
|
+
# Redminerb::Users.list.each do |user|
|
13
|
+
# puts user.firstname
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# See lib/reminerb/cli/user.rb code to see other example/s.
|
17
|
+
|
18
|
+
def list(params)
|
19
|
+
Redminerb.client.get_json('/users.json', params)['users'].map do |user|
|
20
|
+
OpenStruct.new user
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Creates a brand new user with the given params. In lib/reminerb/cli/user.rb
|
25
|
+
# you can see which ones are required (or running 'redminerb users create'
|
26
|
+
# from the command line).
|
27
|
+
#
|
28
|
+
# Example (that will miss required params :_(:
|
29
|
+
# Redminerb.init!
|
30
|
+
# Redminerb::Users.create login: 'wadus'
|
31
|
+
|
32
|
+
def create(params)
|
33
|
+
response = Redminerb.client.post_json('/users.json', user: params)
|
34
|
+
|
35
|
+
if response.success?
|
36
|
+
'Created'
|
37
|
+
else
|
38
|
+
Redminerb::Client.raise_error! response
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Returns a hash with the info of the user's account behind the API key that
|
43
|
+
# is used by the script to access the Redmine's REST API.
|
44
|
+
#
|
45
|
+
# Example:
|
46
|
+
# Redminerb.init!
|
47
|
+
# me = Redminerb::Users.me
|
48
|
+
# puts me['login'] + ': ' + me['mail']
|
49
|
+
|
50
|
+
def me
|
51
|
+
Redminerb.client.get_json('/users/current.json')['user']
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/redminerb/version.rb
CHANGED
data/lib/redminerb.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# Copyright (c) The Cocktail Experience S.L. (2015)
|
2
|
+
require 'terminfo'
|
2
3
|
require_relative 'redminerb/version'
|
3
4
|
require_relative 'redminerb/config'
|
4
5
|
require_relative 'redminerb/client'
|
5
6
|
require_relative 'redminerb/cli'
|
7
|
+
require_relative 'redminerb/template'
|
6
8
|
|
7
9
|
# Main module
|
8
10
|
module Redminerb
|
@@ -46,4 +48,8 @@ module Redminerb
|
|
46
48
|
def client
|
47
49
|
@client
|
48
50
|
end
|
51
|
+
|
52
|
+
def separator
|
53
|
+
@separator ||= ('-' * TermInfo.screen_columns).green
|
54
|
+
end
|
49
55
|
end
|
data/redminerb.gemspec
CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_dependency 'thor'
|
34
34
|
spec.add_dependency 'colorize'
|
35
35
|
spec.add_dependency 'faraday'
|
36
|
+
spec.add_dependency 'ruby-terminfo'
|
36
37
|
|
37
38
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
38
39
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/templates/issue.erb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= Redminerb.separator %>
|
2
|
+
<%= "[#{issue.tracker['name']}]".blue + "[#{issue.project['name']}:##{issue.id}]".green %> <%= issue.subject %>
|
3
|
+
<%= Redminerb.separator %>
|
4
|
+
Author: <%= issue.author['name'].red %>
|
5
|
+
Assigned to: <%= issue.assigned_to['name'].red %>
|
6
|
+
Status: <%= issue.status['name'].red %>
|
7
|
+
Priority: <%= issue.priority['name'].red %>
|
8
|
+
<%= Redminerb.separator %>
|
9
|
+
<%= issue.description %>
|
10
|
+
<%= Redminerb.separator %>
|
11
|
+
<%= Redminerb.config.url + "issues/#{issue.id}" %>
|
12
|
+
<%= Redminerb.separator %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redminerb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernando Garcia Samblas
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ruby-terminfo
|
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'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,11 +174,16 @@ files:
|
|
160
174
|
- exe/redminerb
|
161
175
|
- lib/redminerb.rb
|
162
176
|
- lib/redminerb/cli.rb
|
177
|
+
- lib/redminerb/cli/issues.rb
|
163
178
|
- lib/redminerb/cli/users.rb
|
164
179
|
- lib/redminerb/client.rb
|
165
180
|
- lib/redminerb/config.rb
|
181
|
+
- lib/redminerb/issues.rb
|
182
|
+
- lib/redminerb/template.rb
|
183
|
+
- lib/redminerb/users.rb
|
166
184
|
- lib/redminerb/version.rb
|
167
185
|
- redminerb.gemspec
|
186
|
+
- templates/issue.erb
|
168
187
|
homepage: http://github.com/nando/redminerb
|
169
188
|
licenses: []
|
170
189
|
metadata: {}
|