Sha256: 85577dd18bbe2baf4a7faeb24d411d176122a9d77b35073a4dbf1a794f745eef

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

module Brief
  module Handlers
    class GithubIssue < Base
      def prepare!
        @prepared ||= begin
                        if github_api_issue.present?
                          element.issue_url = github_api_issue.url
                          element.issue_number = github_api_issue.number
                        else
                          element.issue_url = create_in_github_api.url
                          element.issue_number = github_api_issue.number
                        end

                        element
                      end
      end

      def create_in_github_api
        issues_api.create_object(body: body, title: title, milestone: milestone)
      end

      def body
        element.content
      end

      def milestone
        parent && parent.milestone_number
      end

      def issues_api refresh=false
        Brief.repository_issues.tap do |api|
          refresh ? api.refresh : api
        end
      end

      def github_api_issue
        issues_api(true).all.detect {|issue| issue.title == title }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brief-0.0.5 lib/brief/handlers/github_issue.rb
brief-0.0.4 lib/brief/handlers/github_issue.rb
brief-0.0.3 lib/brief/handlers/github_issue.rb
brief-0.0.2 lib/brief/handlers/github_issue.rb