redminerb 0.1.0 → 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 +4 -4
- data/CHANGELOG.rdoc +7 -0
- data/README.md +18 -2
- data/lib/redminerb/cli/users.rb +11 -0
- data/lib/redminerb/client.rb +48 -3
- data/lib/redminerb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06151d01eec527cbe1bd4ffaae591261853927c5
|
4
|
+
data.tar.gz: aba32467e103b17ee396e9971ad962ee509420ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aefb44e25b2fcd44cf66bb8bd369fb0e096b1a788b6379916fbbc6d0d6031a8f0177e0337796e1463277eea016057f1fc79b097999f7ad0e5817b1da0a9103fb
|
7
|
+
data.tar.gz: 6e1b9acab0953a026a0f88614b016c4fe69239845a6d449ee05f1485025af4254c57ca1850723318d49f6b6e1cddb04a26f0502e7a8d8d58c0b71275397f791a
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
+
== 0.2, released 2015-09-17
|
2
|
+
|
3
|
+
* 'redminerb users create' to create a brand new user!
|
4
|
+
|
1
5
|
== 0.1, released 2015-09-16
|
2
6
|
|
3
7
|
* 'redminerb config' to get current config
|
4
8
|
* 'redminerb users [list]' to see current users
|
9
|
+
|
10
|
+
* 'redminerb config' to get current config
|
11
|
+
* 'redminerb users [list]' to see current users
|
data/README.md
CHANGED
@@ -34,6 +34,12 @@ Or install it yourself as:
|
|
34
34
|
|
35
35
|
## Usage
|
36
36
|
|
37
|
+
The URL of your Redmine server and your API key needs to be in your
|
38
|
+
`~/.redminerb.yml` in order to connect to its REST API. For example:
|
39
|
+
|
40
|
+
url: http://localhost:3000/
|
41
|
+
api_key: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
|
42
|
+
|
37
43
|
### Configuration (config)
|
38
44
|
|
39
45
|
To see the current configuration used by Redminerb we have the `config` command:
|
@@ -42,15 +48,25 @@ To see the current configuration used by Redminerb we have the `config` command:
|
|
42
48
|
URL: http://localhost:3000/
|
43
49
|
API-KEY: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
|
44
50
|
|
45
|
-
|
46
|
-
|
51
|
+
*NOTICE: soon will be possible to specify this values using env. vars and this
|
52
|
+
command will have more sense.*
|
47
53
|
|
48
54
|
### Users
|
49
55
|
|
56
|
+
**IMPORTANT: Be sure that you API key have the right permissions in the server.**
|
57
|
+
|
58
|
+
#### List current users
|
59
|
+
|
50
60
|
$ redminerb users # a.k.a. redminerb users list
|
51
61
|
|
52
62
|
That should give you the current users on your Redmine server, one per line.
|
53
63
|
|
64
|
+
#### Create new user
|
65
|
+
|
66
|
+
$ redminerb users create --login "wadus" --password "ultrasecret" \
|
67
|
+
--firstname="Wadux" --lastname="Wallace" \
|
68
|
+
--mail "wadus@waduxwallace.out"
|
69
|
+
|
54
70
|
## Development
|
55
71
|
|
56
72
|
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.
|
data/lib/redminerb/cli/users.rb
CHANGED
@@ -11,5 +11,16 @@ module Redminerb
|
|
11
11
|
puts [user.id, user.login, user.mail].join("\t").green
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
desc 'create', 'Creates a user.'
|
16
|
+
option :login, required: true
|
17
|
+
option :password, required: true
|
18
|
+
option :firstname, required: true
|
19
|
+
option :lastname, required: true
|
20
|
+
option :mail, required: true
|
21
|
+
def create
|
22
|
+
Redminerb.init!
|
23
|
+
puts Redminerb.client.create_user(options).green
|
24
|
+
end
|
14
25
|
end
|
15
26
|
end
|
data/lib/redminerb/client.rb
CHANGED
@@ -6,6 +6,8 @@ require 'ostruct'
|
|
6
6
|
module Redminerb
|
7
7
|
# HTTP client to communicate w/ the Redmine server.
|
8
8
|
class Client
|
9
|
+
class UnprocessableEntity < StandardError; end
|
10
|
+
|
9
11
|
attr_reader :connection
|
10
12
|
|
11
13
|
def initialize(cfg)
|
@@ -31,14 +33,57 @@ module Redminerb
|
|
31
33
|
end
|
32
34
|
end
|
33
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
|
+
|
34
54
|
private
|
35
55
|
|
36
|
-
#
|
37
|
-
# response
|
56
|
+
# Makes a GET request of the given 'path' param and returns the body of the
|
57
|
+
# response parsed as JSON.
|
38
58
|
def get_json(path)
|
39
59
|
Redminerb.init_required!
|
40
|
-
|
60
|
+
res = @connection.get(path)
|
61
|
+
JSON.parse(res.body)
|
62
|
+
rescue JSON::ParserError => e
|
63
|
+
raise e, "HTTP status code #{res.status}"
|
64
|
+
end
|
65
|
+
|
66
|
+
# Makes a POST request to 'path' with 'params' in JSON format.
|
67
|
+
def post_json(path, params)
|
68
|
+
@connection.post do |req|
|
69
|
+
req.url path
|
70
|
+
req.headers['Content-Type'] = 'application/json'
|
71
|
+
req.body = params.to_json
|
72
|
+
end
|
41
73
|
end
|
42
74
|
|
75
|
+
# It raises an exception giving the validation messages for 422 responses
|
76
|
+
def raise_error!(res)
|
77
|
+
if res.status == 422
|
78
|
+
begin
|
79
|
+
errors = JSON.parse(res.body)['errors']
|
80
|
+
rescue JSON::ParserError
|
81
|
+
errors = [res.body]
|
82
|
+
end
|
83
|
+
fail UnprocessableEntity, errors.join("\n")
|
84
|
+
else
|
85
|
+
fail StandardError, "ERROR (status code #{res.status})"
|
86
|
+
end
|
87
|
+
end
|
43
88
|
end
|
44
89
|
end
|
data/lib/redminerb/version.rb
CHANGED
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.2.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-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|