redminerb 0.8.3 → 0.8.4
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/.travis.yml +2 -1
- data/CHANGELOG.rdoc +6 -2
- data/CONTRIBUTORS.md +7 -0
- data/README.md +36 -38
- data/Rakefile +1 -1
- data/TODO.md +1 -0
- data/lib/redminerb/cli/issues.rb +6 -5
- data/lib/redminerb/client.rb +3 -3
- data/lib/redminerb/version.rb +1 -1
- data/redminerb.gemspec +1 -1
- data/templates/issue_boxie.erb +5 -5
- metadata +11 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cd0185c2de7d0faff680a3e8a2e3dfeac153b230
         | 
| 4 | 
            +
              data.tar.gz: c56b99239805b7a73bb8abb9277bd0a8b8b93843
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e44711b8c5840d5025a19cd4ea762561dfda63d553583ddba94a1df8d79779c41885c818c108bc7037327923cf727c7c8f2dd9c6a9e3017a0f3efbe44821232b
         | 
| 7 | 
            +
              data.tar.gz: a38bb575b580d4cca4e008751e8e725137403bd85506e1b18bc0a1059b90081c927df21da1b00197fe9a72b3b8521eec30e024586c30fe122a500703944bea91
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        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 | 
            -
            *  | 
| 6 | 
            -
            *  | 
| 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
    
    
    
        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 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
            ```ruby
         | 
| 24 | 
            -
            gem 'redminerb'
         | 
| 25 | 
            -
            ```
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            And then execute:
         | 
| 21 | 
            +
                $ gem install redminerb
         | 
| 28 22 |  | 
| 29 | 
            -
             | 
| 23 | 
            +
            ## Usage
         | 
| 30 24 |  | 
| 31 | 
            -
             | 
| 25 | 
            +
                redminerb [COMMAND] [SUBCOMMAND|<id>]
         | 
| 32 26 |  | 
| 33 | 
            -
             | 
| 27 | 
            +
            Behind the scenes `redminerb` uses the gem Thor, so calling it without params is the same as asking for help:
         | 
| 34 28 |  | 
| 35 | 
            -
             | 
| 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*  | 
| 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:  | 
| 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= | 
| 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 | 
| 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  | 
| 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 | 
            -
             | 
| 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  | 
| 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 | 
            -
             | 
| 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:  | 
| 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
    
    
    
        data/TODO.md
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            * Format output w/ [terminal-table](https://github.com/tj/terminal-table) (recommended by @jsayar)
         | 
    
        data/lib/redminerb/cli/issues.rb
    CHANGED
    
    | @@ -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, | 
| 14 | 
            -
                  option :limit, | 
| 15 | 
            -
                  option :closed, | 
| 16 | 
            -
                  option :assigned_to_id, | 
| 17 | 
            -
                  option :project_id, | 
| 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)
         | 
    
        data/lib/redminerb/client.rb
    CHANGED
    
    | @@ -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. | 
| 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}"
         | 
    
        data/lib/redminerb/version.rb
    CHANGED
    
    
    
        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 |  | 
    
        data/templates/issue_boxie.erb
    CHANGED
    
    | @@ -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. | 
| 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:  | 
| 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:  | 
| 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:  | 
| 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:  | 
| 196 | 
            -
             | 
| 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. | 
| 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.
         |