issue-beaver 0.2.0 → 0.2.1
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.
    
        data/.issuebeaver.yml
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            dir: lib
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            Issue Beaver
         | 
| 2 2 | 
             
            ============
         | 
| 3 3 |  | 
| 4 | 
            -
            **This is work in progress**
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
             * **Issue Beaver** scans your project's source code for comments containing *TODO*.
         | 
| 7 5 |  | 
| 8 6 | 
             
             * **Issue Beaver** automatically creates new issues on Github for each TODO comment it finds.
         | 
| @@ -11,7 +9,29 @@ Issue Beaver | |
| 11 9 |  | 
| 12 10 | 
             
            The goal is to provide simple and lightweight tracking of low-level technical issues (TODOs) and make the project's progress more transparent for people who don't want to read the source code.
         | 
| 13 11 |  | 
| 14 | 
            -
             | 
| 12 | 
            +
            Usage
         | 
| 13 | 
            +
            =====
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            * Install
         | 
| 16 | 
            +
            ```sh
         | 
| 17 | 
            +
            gem install issue-beaver
         | 
| 18 | 
            +
            ```
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            * Search for todos in the ```app``` directory. Only files in the Git repository are accessed, ever.
         | 
| 21 | 
            +
            ```sh
         | 
| 22 | 
            +
            issuebeaver find app
         | 
| 23 | 
            +
            ```
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            * See what todos are new, modified or closed?
         | 
| 26 | 
            +
            ```sh
         | 
| 27 | 
            +
            issuebeaver status
         | 
| 28 | 
            +
            ```
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            * Open new issues, update issues that have been modified, close issues that have been removed.
         | 
| 31 | 
            +
            ```sh
         | 
| 32 | 
            +
            issuebeaver commit
         | 
| 33 | 
            +
            ```
         | 
| 34 | 
            +
             | 
| 15 35 |  | 
| 16 36 | 
             
            Configuration
         | 
| 17 37 | 
             
            -------------
         | 
| @@ -19,20 +39,20 @@ Configuration | |
| 19 39 | 
             
            ### Repository
         | 
| 20 40 | 
             
            Issue beaver tries to use the Github repository specified in **remote.origin** of your local git repository for storing the issues. If you want to use a different repository (e.g. that of your own fork) you can set the **issuebeaver.repository** config variable:
         | 
| 21 41 |  | 
| 22 | 
            -
            ```
         | 
| 42 | 
            +
            ```sh
         | 
| 23 43 | 
             
            git config issuebeaver.repository eckardt/issue-beaver
         | 
| 24 44 | 
             
            ```
         | 
| 25 45 |  | 
| 26 46 | 
             
            ### Github login
         | 
| 27 47 | 
             
            If you don't want to be asked for your Github login you can set the **github.user** config variable. Your Github password won't be stored.
         | 
| 28 48 |  | 
| 29 | 
            -
            ```
         | 
| 49 | 
            +
            ```sh
         | 
| 30 50 | 
             
            git config github.user eckardt
         | 
| 31 51 | 
             
            ```
         | 
| 32 52 |  | 
| 33 53 | 
             
            ### Issue labels
         | 
| 34 54 | 
             
            You can specify a list of labels that should be used for issues created by Issue Beaver. Make sure to create the labels for your repository using Github Issues' *Manage Labels* feature, otherwise Issue Beaver will fail.
         | 
| 35 55 |  | 
| 36 | 
            -
            ```
         | 
| 56 | 
            +
            ```sh
         | 
| 37 57 | 
             
            git config issuebeaver.labels todo,@high
         | 
| 38 58 | 
             
            ```
         | 
| @@ -33,7 +33,9 @@ module IssueBeaver | |
| 33 33 | 
             
                      github_repo = repo_name
         | 
| 34 34 | 
             
                    else
         | 
| 35 35 | 
             
                      url = @git.config["#{repo_name}.url"]
         | 
| 36 | 
            -
                       | 
| 36 | 
            +
                      match = url.match(/git@github\.com:([^\.]+)\.git/) ||
         | 
| 37 | 
            +
                              url.match(/https?:\/\/github\.com\/([^\.]+)\/?/)
         | 
| 38 | 
            +
                      github_repo = match[1] if url
         | 
| 37 39 | 
             
                    end
         | 
| 38 40 | 
             
                    github_repo
         | 
| 39 41 | 
             
                  end
         | 
| @@ -50,7 +50,7 @@ module IssueBeaver | |
| 50 50 | 
             
                    @unmatched_issues ||=
         | 
| 51 51 | 
             
                      Enumerator.new do |yielder|
         | 
| 52 52 | 
             
                        @issues.to_a.each do |issue|
         | 
| 53 | 
            -
                          next if merged_issues.to_a.map | 
| 53 | 
            +
                          next if merged_issues.to_a.map{|issue| issue.attributes.number }.compact.include? issue.number
         | 
| 54 54 | 
             
                          issue.mark_for_closing if @repo.is_ahead?(issue.commit)
         | 
| 55 55 | 
             
                          yielder << issue
         | 
| 56 56 | 
             
                        end
         | 
    
        data/lib/issue_beaver/runner.rb
    CHANGED
    
    | @@ -16,7 +16,7 @@ module IssueBeaver | |
| 16 16 |  | 
| 17 17 |  | 
| 18 18 | 
             
                def find(*args)
         | 
| 19 | 
            -
                   | 
| 19 | 
            +
                  load_config(args)
         | 
| 20 20 |  | 
| 21 21 | 
             
                  if todo_comments.all.any?
         | 
| 22 22 | 
             
                    _list_status(todo_comments.all)
         | 
| @@ -27,7 +27,7 @@ module IssueBeaver | |
| 27 27 |  | 
| 28 28 |  | 
| 29 29 | 
             
                def status(*args)
         | 
| 30 | 
            -
                   | 
| 30 | 
            +
                  load_config(args)
         | 
| 31 31 | 
             
                  issues = merger(github_issues.all, todo_comments.all).changed
         | 
| 32 32 | 
             
                  if issues.any?
         | 
| 33 33 | 
             
                    _list_status(issues)
         | 
| @@ -38,7 +38,7 @@ module IssueBeaver | |
| 38 38 |  | 
| 39 39 |  | 
| 40 40 | 
             
                def diff(*args)
         | 
| 41 | 
            -
                   | 
| 41 | 
            +
                  load_config(args)
         | 
| 42 42 | 
             
                  issues = merger(github_issues.all, todo_comments.all).changed
         | 
| 43 43 | 
             
                  if issues.any?
         | 
| 44 44 | 
             
                    _list_diff(issues)
         | 
| @@ -49,7 +49,7 @@ module IssueBeaver | |
| 49 49 |  | 
| 50 50 |  | 
| 51 51 | 
             
                def commit(*args)
         | 
| 52 | 
            -
                   | 
| 52 | 
            +
                  load_config(args)
         | 
| 53 53 | 
             
                  issues = merger(github_issues.all, todo_comments.all).changed
         | 
| 54 54 | 
             
                  issues.each do |issue|
         | 
| 55 55 | 
             
                    issue.save
         | 
| @@ -129,7 +129,7 @@ module IssueBeaver | |
| 129 129 | 
             
                  Models::GithubIssue.use_repository(Models::GithubIssueRepository.new(
         | 
| 130 130 | 
             
                    repo(config).slug,
         | 
| 131 131 | 
             
                    repo(config).github_user,
         | 
| 132 | 
            -
                     | 
| 132 | 
            +
                    config['github_password'],
         | 
| 133 133 | 
             
                    {:labels => repo(config).labels})) 
         | 
| 134 134 | 
             
                  Models::GithubIssue
         | 
| 135 135 | 
             
                end
         | 
| @@ -165,6 +165,19 @@ module IssueBeaver | |
| 165 165 | 
             
                end
         | 
| 166 166 |  | 
| 167 167 |  | 
| 168 | 
            +
                def load_config(args)
         | 
| 169 | 
            +
                  options = args[1..-1]
         | 
| 170 | 
            +
                  return unless options
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                  if p_option_index = options.find_index('-p')
         | 
| 173 | 
            +
                    config['github_password'] = options[p_option_index + 1]
         | 
| 174 | 
            +
                    2.times{ options.delete_at(p_option_index) }
         | 
| 175 | 
            +
                  end
         | 
| 176 | 
            +
             | 
| 177 | 
            +
                  config['dir'] = dir(options[0]) if options[0]
         | 
| 178 | 
            +
                end
         | 
| 179 | 
            +
             | 
| 180 | 
            +
             | 
| 168 181 | 
             
                def dir(path)
         | 
| 169 182 | 
             
                  File.absolute_path(path)
         | 
| 170 183 | 
             
                end
         | 
    
        data/lib/issue_beaver/version.rb
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 1 | 
             
            module IssueBeaver
         | 
| 2 | 
            -
              VERSION = '0.2. | 
| 3 | 
            -
            end
         | 
| 2 | 
            +
              VERSION = '0.2.1'
         | 
| 3 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: issue-beaver
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-10- | 
| 12 | 
            +
            date: 2012-10-18 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: treetop
         | 
| @@ -195,6 +195,7 @@ executables: | |
| 195 195 | 
             
            extensions: []
         | 
| 196 196 | 
             
            extra_rdoc_files: []
         | 
| 197 197 | 
             
            files:
         | 
| 198 | 
            +
            - .issuebeaver.yml
         | 
| 198 199 | 
             
            - .rspec
         | 
| 199 200 | 
             
            - Gemfile
         | 
| 200 201 | 
             
            - README.md
         |