redminerb 0.8.3 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15c9f30f16fc1632e7870c461e94abfaf4cb9aaf
4
- data.tar.gz: b7a41abe3ddeebbf1d4629e527a66616f2e0e1d4
3
+ metadata.gz: cd0185c2de7d0faff680a3e8a2e3dfeac153b230
4
+ data.tar.gz: c56b99239805b7a73bb8abb9277bd0a8b8b93843
5
5
  SHA512:
6
- metadata.gz: 3c9cd6099fbafe3f5c778946480cd2f681ec2efad16866239f4900c81e716531480913f0e8e8a5e6a505f6e0e58c05e4760fac5895c5168ed28dd9905bd1a850
7
- data.tar.gz: a32012f49690855eb5634dadd7cf04079a88cda0cae7f4147e255e8acbb5c5d51a80199fcebc46453e506633e93531aded30e94898d3cfb9ec73c9550ade4872
6
+ metadata.gz: e44711b8c5840d5025a19cd4ea762561dfda63d553583ddba94a1df8d79779c41885c818c108bc7037327923cf727c7c8f2dd9c6a9e3017a0f3efbe44821232b
7
+ data.tar.gz: a38bb575b580d4cca4e008751e8e725137403bd85506e1b18bc0a1059b90081c927df21da1b00197fe9a72b3b8521eec30e024586c30fe122a500703944bea91
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.2.2
4
- before_install: gem install bundler -v 1.10.6
4
+ - 2.3.0
5
+ before_install: gem install bundler -v 1.11.2
data/CHANGELOG.rdoc CHANGED
@@ -1,9 +1,13 @@
1
1
  = CHANGELOG
2
+ == 0.8.4, released 2016-10-20
3
+
4
+ * Option +fixed_version_id+ added to the _issues_ command.
5
+
2
6
  == 0.8, released 2015-10-09
3
7
 
4
8
  * Users' create now asks for each param unless we use the --no-ask option
5
- * +redminerb project [show] <id>+ to see a project's info
6
- * +redminerb projects list [--name <FILTER>]+ to see our projects
9
+ * <tt>redminerb project [show] <id></tt> to see a project's info
10
+ * <tt>redminerb projects list [--name <FILTER>]</tt> to see our projects
7
11
  * +--project_id+, +assigned_to+ and +--closed+ options to filter *issues*
8
12
  * Minor fixes
9
13
 
data/CONTRIBUTORS.md ADDED
@@ -0,0 +1,7 @@
1
+ redminerb contributors
2
+ ======================
3
+
4
+ * **[Jesús Sayar](https://github.com/jesus-sayar)**
5
+
6
+ * Fix parse not succeed responses
7
+ * Add *fixed_version_id* option in **issues** command
data/README.md CHANGED
@@ -18,40 +18,50 @@ Work in progress with RDD[1]: README > Spec > Implementation
18
18
 
19
19
  ## Installation
20
20
 
21
- Add this line to your application's Gemfile:
22
-
23
- ```ruby
24
- gem 'redminerb'
25
- ```
26
-
27
- And then execute:
21
+ $ gem install redminerb
28
22
 
29
- $ bundle
23
+ ## Usage
30
24
 
31
- Or install it yourself as:
25
+ redminerb [COMMAND] [SUBCOMMAND|<id>]
32
26
 
33
- $ gem install redminerb
27
+ Behind the scenes `redminerb` uses the gem Thor, so calling it without params is the same as asking for help:
34
28
 
35
- ## Usage
29
+ $ redminerb
30
+ Commands:
31
+ redminerb config # Shows this session current configuration
32
+ redminerb help [COMMAND] # Describe available commands or one specific command
33
+ redminerb issues [list|<id>] # Manage Redmine's issues
34
+ redminerb projects [list|<id>] # Manage Redmine's projects
35
+ redminerb users [list|<id>] # Manage Redmine's users
36
36
 
37
37
  In order to use `redminerb` the URL and the API key of your Redmine REST API must be available in one of the following places:
38
38
 
39
- 1. **In your environment**: using *REDMINERB_URL* and *REDMINERB_API_KEY* env. vars.
40
- 2. **In `~/.redminerb.yml`**: as values of *url* and *api_key*.
39
+ 1. **In your environment**: using *REDMINERB_URL* and *REDMINERB_API_KEY* environment variables.
40
+ 2. **In `~/.redminerb.yml`**: as values of *url* and *api_key* keys.
41
41
 
42
42
  For example, this `~/.redminerb.yml`:
43
43
 
44
- url: http://localhost:3000/
44
+ url: https://redmine.ruby-lang.org/
45
45
  api_key: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
46
46
 
47
47
  Would be the same as having the following in your environment (declared in `~/.bashrc`, for example):
48
48
 
49
- export REDMINERB_URL=http://localhost:3000/
49
+ export REDMINERB_URL=https://redmine.ruby-lang.org/
50
50
  export REDMINERB_API_KEY=69b47d74e36a6757bac5d45f8398dd23bfa8f52c
51
51
 
52
- If both present **environment variables have priority**.
52
+ If both present **environment variables have priority** (remember that you can remove them from the environment running `unset NAME-OF-VARIABLE`).
53
53
 
54
- As a general rule, the `list` subcomand is the one assumed when omitted, but if a number is given instead of a subcomand, then the `show` subcommand will be call using that number as param. For example `redminerb users 1` will show us the info of the first user of our Redmine. Notice that also the singular can be used for the command, which is nice for these cases (i.e. `redminerb user 1`, thanks Thor!)
54
+ As **a general rule**, the `list` subcommand is the one assumed when omitted, but if a number is given then the `show` subcommand will be call using that number as param. For example, `redminerb issues` will show us the **list** of the last issues availables for our user, and `redminerb issue 11962` will **show** us the info of the the issue with id number 11962 (notice that also the singular, *issue* here, can be used as the command, which sounds more natural for this feature -thanks Thor!)
55
+
56
+ You can find your API key on your account page in Redmine ( /my/account ) when logged in, on the right-hand pane of the default layout.
57
+
58
+ ### Configuration (config)
59
+
60
+ To see the current configuration used by Redminerb run the `config` command:
61
+
62
+ $ redminerb config
63
+ URL: https://redmine.ruby-lang.org/
64
+ API-KEY: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
55
65
 
56
66
  ### Pagination
57
67
 
@@ -70,28 +80,26 @@ Because `list` is the default subcommand for the `users` command.
70
80
 
71
81
  ### Custom ERB templates
72
82
 
73
- The output of **a single resource** obtained with **the `show` subcommand can be customized creating the corresponding `.erb` file** in the *.redminerb/templates* directory. In the template we can access to the resource using its generic name, e.g. `user` or `issue`.
83
+ The output of **a single resource** obtained with **the `show` subcommand can be customized creating the corresponding `.erb` file** in the `.redminerb/templates` directory. The `.redminerb` directory will be searched **first in the current directory and then in your home directory**.
74
84
 
75
- The default templates could be found in the *templates* directory.
85
+ Into the template we access the resource using its generic name (`user`, `issue`, `project`...). The default templates used by *redminerb* and other examples could be found in the *templates* directory of this repository.
76
86
 
77
- For example, to customize the output of an issue, we write the following content in the `.redminerb/issue.erb` file:
87
+ For example, to customize the output of an issue, we write the following content in the `.redminerb/templates/issue.erb` file:
78
88
 
79
89
  Number: <%= issue.id %>
80
90
  Title: <%= issue.subject %>
81
91
 
82
- The *.redminerb* directory will be search **in the current directory first**, and then in **your home directory**.
83
-
84
- We can also create other templates and use them through **the `--template` option**. For example:
92
+ We can also create a template to be used only when asked through **the `--template` option**. For example:
85
93
 
86
- $ redminerb users show 34 --template user_in_a_box
94
+ $ redminerb user show 34 --template user_in_a_box
87
95
 
88
- Will use the file `.redminerb/user_in_a_box.erb` as template, whose content could be the following:
96
+ Will use the file `.redminerb/templates/user_in_a_box.erb` as template, whose content could be the following:
89
97
 
90
98
  <%= Redminerb.top %>
91
99
  <%= Redminerb.line user.login %>
92
100
  <%= Redminerb.bottom %>
93
101
 
94
- That would give us an output similar to this:
102
+ ...which will give us an output similar to this:
95
103
 
96
104
  ┌────────────────────────────────────┐
97
105
  │ roger.williams │
@@ -105,21 +113,11 @@ As you can see Redminerb give us also **some functions to draw** its output usin
105
113
  * **Redminerb.line** *string*: content into the box (i.e. `│ Example │`).
106
114
  * **Redminerb.separator**: a line from left to right (like *middle* wo/ box borders).
107
115
 
108
- Have fun with them!
109
-
110
- ### Configuration (config)
111
-
112
- To see the current configuration used by Redminerb we have the `config` command:
113
-
114
- $ redminerb config
115
- URL: http://localhost:3000/
116
- API-KEY: 69b47d74e36a6757bac5d45f8398dd23bfa8f52c
117
-
118
116
  ### Users
119
117
 
120
118
  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.
121
119
 
122
- **IMPORTANT: Be sure that your API key's user have the right permissions in the server.**
120
+ **IMPORTANT: This is an admin command so be sure that your API key's user have that permission in the Redmine server. Otherwise a 403 exception will be thrown.**
123
121
 
124
122
  #### List current users
125
123
 
@@ -184,7 +182,7 @@ The **issues** command is the wrapper for part of the [Issues resource](http://w
184
182
 
185
183
  #### List issues
186
184
 
187
- $ redminerb issues [list] [--closed|-c] [--project_id|-p <id>] [--assigned_to_id|-a <id>]
185
+ $ redminerb issues [list] [--closed|-c] [--project_id|-p <id>] [--assigned_to_id|-a <id>] [--fixed_version_id|-v <id>]
188
186
 
189
187
  Examples:
190
188
 
data/Rakefile CHANGED
@@ -12,4 +12,4 @@ Rake::TestTask.new(:spec) do |t|
12
12
  t.verbose = true
13
13
  end
14
14
 
15
- task default: [:spec, :rubocop]
15
+ task default: [:spec]
data/TODO.md ADDED
@@ -0,0 +1 @@
1
+ * Format output w/ [terminal-table](https://github.com/tj/terminal-table) (recommended by @jsayar)
@@ -10,11 +10,12 @@ module Redminerb
10
10
  # rubocop:disable Metrics/AbcSize
11
11
  # (disabled to let the "closed" option be managed here)
12
12
  desc 'list', 'Shows open issues in our Redmine'
13
- option :offset, aliases: :o
14
- option :limit, aliases: :l
15
- option :closed, aliases: :c, type: :boolean
16
- option :assigned_to_id, aliases: :a
17
- option :project_id, aliases: :p
13
+ option :offset, aliases: :o
14
+ option :limit, aliases: :l
15
+ option :closed, aliases: :c, type: :boolean
16
+ option :assigned_to_id, aliases: :a
17
+ option :project_id, aliases: :p
18
+ option :fixed_version_id, aliases: :v
18
19
  def list(issue_id = nil)
19
20
  if issue_id
20
21
  show(issue_id)
@@ -39,10 +39,10 @@ module Redminerb
39
39
  def get_json(path, params = {})
40
40
  Redminerb.init_required!
41
41
  res = _get(path, params)
42
- if res.status == 404
43
- fail Redminerb::NotFoundError, path
44
- else
42
+ if res.success?
45
43
  JSON.parse(res.body)
44
+ else
45
+ fail StandardError, "ERROR (status code #{res.status})"
46
46
  end
47
47
  rescue JSON::ParserError => e
48
48
  raise e, "HTTP status code #{res.status}"
@@ -1,4 +1,4 @@
1
1
  # Copyright (c) The Cocktail Experience S.L. (2015)
2
2
  module Redminerb
3
- VERSION = '0.8.3'
3
+ VERSION = '0.8.4'
4
4
  end
data/redminerb.gemspec CHANGED
@@ -42,7 +42,7 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency 'minitest'
43
43
  spec.add_development_dependency 'climate_control' # fake ENV
44
44
  spec.add_development_dependency 'minitest-vcr'
45
- spec.add_development_dependency 'webmock'
45
+ spec.add_development_dependency 'webmock', '= 1.24.6'
46
46
 
47
47
  spec.add_development_dependency 'rubocop'
48
48
 
@@ -4,11 +4,11 @@
4
4
  Redminerb.line("[#{issue.tracker.name}][#{issue.project.name}:##{issue.id}] #{issue.subject}"),
5
5
  Redminerb.middle,
6
6
  [
7
- "Author: #{issue.author.name}",
8
- "Assigned to: #{issue.assigned_to.name}",
9
- "Status: #{issue.status.name}",
10
- "Priority: #{issue.priority.name}"
11
- ].map{|l| Redminerb.line l },
7
+ issue.author ? "Author: #{issue.author.name}" : nil,
8
+ issue.assigned_to ? "Assigned to: #{issue.assigned_to.name}" : nil,
9
+ issue.status ? "Status: #{issue.status.name}" : nil,
10
+ issue.priority ? "Priority: #{issue.priority.name}" : nil
11
+ ].compact.map{|l| Redminerb.line l },
12
12
  Redminerb.middle,
13
13
  issue.description.lines.map {|raw_line| Redminerb.line raw_line.chomp },
14
14
  Redminerb.middle,
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.8.3
4
+ version: 0.8.4
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-10-26 00:00:00.000000000 Z
11
+ date: 2016-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: webmock
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: 1.24.6
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: '0'
166
+ version: 1.24.6
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rubocop
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -192,8 +192,8 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
- description: |2
196
- Redminerb is a command-line tool to speak with a Redmine server using its REST API.
195
+ description: " Redminerb is a command-line tool to speak with a Redmine server
196
+ using its REST API.\n"
197
197
  email:
198
198
  - fernando.garcia@the-cocktail.com
199
199
  executables:
@@ -206,11 +206,13 @@ files:
206
206
  - ".travis.yml"
207
207
  - CHANGELOG.rdoc
208
208
  - CODE_OF_CONDUCT.md
209
+ - CONTRIBUTORS.md
209
210
  - Gemfile
210
211
  - LICENCE.txt
211
212
  - LICENSE.txt
212
213
  - README.md
213
214
  - Rakefile
215
+ - TODO.md
214
216
  - bin/console
215
217
  - bin/setup
216
218
  - exe/redminerb
@@ -251,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
253
  version: '0'
252
254
  requirements: []
253
255
  rubyforge_project:
254
- rubygems_version: 2.4.5.1
256
+ rubygems_version: 2.5.1
255
257
  signing_key:
256
258
  specification_version: 4
257
259
  summary: Redminerb is a command-line Redmine client.