Class: WTBuildHelpers::JIRA::JiraInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/jira.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site, username, password) ⇒ JiraInfo

Returns a new instance of JiraInfo.



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jira.rb', line 22

def initialize(site, username, password)
    @site = site
    @username = username
    @password = password
    
    auth_token = Base64.strict_encode64("#{username}:#{password}")
    base_url = File.join(site, '/rest/api/2')
    headers = { "Authorization" => "Basic #{auth_token}",
                "Content-Type" => "application/json", }
    @client = RestClient::Resource.new(base_url, :headers => headers)
end

Instance Attribute Details

#build_complete_transition_idObject (readonly)

Returns the value of attribute build_complete_transition_id.



18
19
20
# File 'lib/jira.rb', line 18

def build_complete_transition_id
  @build_complete_transition_id
end

#clientObject (readonly)

Returns the value of attribute client.



20
21
22
# File 'lib/jira.rb', line 20

def client
  @client
end

#fixed_in_build_field_idObject (readonly)

Returns the value of attribute fixed_in_build_field_id.



17
18
19
# File 'lib/jira.rb', line 17

def fixed_in_build_field_id
  @fixed_in_build_field_id
end

Instance Method Details

#update_build_complete_transition(issue_key) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/jira.rb', line 54

def update_build_complete_transition(issue_key)
    begin
        fields_resource = "issue/#{issue_key}/transitions"
    
        response = @client[fields_resource].get
    
        response_json = JSON.parse(response.body)
        transitions = response_json["transitions"]
        build_complete_transition = transitions.find do |transition|
            transition["name"] == "Build Complete"
        end
    
        if build_complete_transition
            @build_complete_transition_id = build_complete_transition["id"]
        end
    rescue RestClient::Exception => e
        puts "Error code #{e.response.code} attempting to find Build Complete transition"
    end
end

#update_fixed_in_buildObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/jira.rb', line 34

def update_fixed_in_build()
    # Find the Fixed In Build field
    begin
        response = @client['field'].get()

        fields = JSON.parse(response.body);
        fixed_field = fields.find do |field|
            field["name"] == "Fixed In Build"
        end
    
        if fixed_field
            @fixed_in_build_field_id = fixed_field["id"]
        else
            puts "Could not find 'Fixed In Build' field on supplied JIRA instance. Are you using WillowTree's JIRA? Does your user have access to the project?"
        end
    rescue RestClient::Exception => e
        puts "Error code #{e.response.code} attempting to find Fixed In Build field"
    end 
end