BigW Consortium Gitlab

jira_service_helper.rb 4.37 KB
Newer Older
Drew Blessing committed
1
module JiraServiceHelper
2
  JIRA_URL = "http://jira.example.net".freeze
3 4
  JIRA_API = JIRA_URL + "/rest/api/2"

Drew Blessing committed
5 6
  def jira_service_settings
    properties = {
7 8
      title: "JIRA tracker",
      url: JIRA_URL,
9 10
      project_key: "JIRA",
      jira_issue_transition_id: '1'
Drew Blessing committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
    }

    jira_tracker.update_attributes(properties: properties, active: true)
  end

  def jira_issue_comments
    "{\"startAt\":0,\"maxResults\":11,\"total\":11,
      \"comments\":[{\"self\":\"http://0.0.0.0:4567/rest/api/2/issue/10002/comment/10609\",
      \"id\":\"10609\",\"author\":{\"self\":\"http://0.0.0.0:4567/rest/api/2/user?username=gitlab\",
      \"name\":\"gitlab\",\"emailAddress\":\"gitlab@example.com\",
      \"avatarUrls\":{\"16x16\":\"http://0.0.0.0:4567/secure/useravatar?size=xsmall&avatarId=10122\",
      \"24x24\":\"http://0.0.0.0:4567/secure/useravatar?size=small&avatarId=10122\",
      \"32x32\":\"http://0.0.0.0:4567/secure/useravatar?size=medium&avatarId=10122\",
      \"48x48\":\"http://0.0.0.0:4567/secure/useravatar?avatarId=10122\"},
      \"displayName\":\"GitLab\",\"active\":true},
      \"body\":\"[Administrator|http://localhost:3000/u/root] mentioned JIRA-1 in Merge request of [gitlab-org/gitlab-test|http://localhost:3000/gitlab-org/gitlab-test/merge_requests/2].\",
      \"updateAuthor\":{\"self\":\"http://0.0.0.0:4567/rest/api/2/user?username=gitlab\",\"name\":\"gitlab\",\"emailAddress\":\"gitlab@example.com\",
      \"avatarUrls\":{\"16x16\":\"http://0.0.0.0:4567/secure/useravatar?size=xsmall&avatarId=10122\",
      \"24x24\":\"http://0.0.0.0:4567/secure/useravatar?size=small&avatarId=10122\",
      \"32x32\":\"http://0.0.0.0:4567/secure/useravatar?size=medium&avatarId=10122\",
      \"48x48\":\"http://0.0.0.0:4567/secure/useravatar?avatarId=10122\"},\"displayName\":\"GitLab\",\"active\":true},
      \"created\":\"2015-02-12T22:47:07.826+0100\",
      \"updated\":\"2015-02-12T22:47:07.826+0100\"},
     {\"self\":\"http://0.0.0.0:4567/rest/api/2/issue/10002/comment/10700\",
        \"id\":\"10700\",\"author\":{\"self\":\"http://0.0.0.0:4567/rest/api/2/user?username=gitlab\",
        \"name\":\"gitlab\",\"emailAddress\":\"gitlab@example.com\",
        \"avatarUrls\":{\"16x16\":\"http://0.0.0.0:4567/secure/useravatar?size=xsmall&avatarId=10122\",
        \"24x24\":\"http://0.0.0.0:4567/secure/useravatar?size=small&avatarId=10122\",
        \"32x32\":\"http://0.0.0.0:4567/secure/useravatar?size=medium&avatarId=10122\",
        \"48x48\":\"http://0.0.0.0:4567/secure/useravatar?avatarId=10122\"},\"displayName\":\"GitLab\",\"active\":true},
        \"body\":\"[Administrator|http://localhost:3000/u/root] mentioned this issue in [a commit of h5bp/html5-boilerplate|http://localhost:3000/h5bp/html5-boilerplate/commit/2439f77897122fbeee3bfd9bb692d3608848433e].\",
        \"updateAuthor\":{\"self\":\"http://0.0.0.0:4567/rest/api/2/user?username=gitlab\",\"name\":\"gitlab\",\"emailAddress\":\"gitlab@example.com\",
        \"avatarUrls\":{\"16x16\":\"http://0.0.0.0:4567/secure/useravatar?size=xsmall&avatarId=10122\",
        \"24x24\":\"http://0.0.0.0:4567/secure/useravatar?size=small&avatarId=10122\",
        \"32x32\":\"http://0.0.0.0:4567/secure/useravatar?size=medium&avatarId=10122\",
        \"48x48\":\"http://0.0.0.0:4567/secure/useravatar?avatarId=10122\"},\"displayName\":\"GitLab\",\"active\":true},
        \"created\":\"2015-04-01T03:45:55.667+0200\",
        \"updated\":\"2015-04-01T03:45:55.667+0200\"
      }
      ]}"
  end

53 54 55 56 57 58
  def jira_project_url
    JIRA_API + "/project/#{jira_tracker.project_key}"
  end

  def jira_api_comment_url(issue_id)
    JIRA_API + "/issue/#{issue_id}/comment"
Drew Blessing committed
59 60
  end

61 62 63 64
  def jira_api_remote_link_url(issue_id)
    JIRA_API + "/issue/#{issue_id}/remotelink"
  end

65 66
  def jira_api_transition_url(issue_id)
    JIRA_API + "/issue/#{issue_id}/transitions"
Drew Blessing committed
67 68 69
  end

  def jira_api_test_url
70 71 72 73 74 75 76 77 78 79 80 81 82
    JIRA_API + "/myself"
  end

  def jira_issue_url(issue_id)
    JIRA_API + "/issue/#{issue_id}"
  end

  def stub_jira_urls(issue_id)
    WebMock.stub_request(:get, jira_project_url)
    WebMock.stub_request(:get, jira_api_comment_url(issue_id)).to_return(body: jira_issue_comments)
    WebMock.stub_request(:get, jira_issue_url(issue_id))
    WebMock.stub_request(:get, jira_api_test_url)
    WebMock.stub_request(:post, jira_api_comment_url(issue_id))
83
    WebMock.stub_request(:post, jira_api_remote_link_url(issue_id))
84
    WebMock.stub_request(:post, jira_api_transition_url(issue_id))
Drew Blessing committed
85 86
  end
end