Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/vendor/jira/jira_api.rb')
-rw-r--r--qa/qa/vendor/jira/jira_api.rb48
1 files changed, 41 insertions, 7 deletions
diff --git a/qa/qa/vendor/jira/jira_api.rb b/qa/qa/vendor/jira/jira_api.rb
index 64af824418d..15039ac244e 100644
--- a/qa/qa/vendor/jira/jira_api.rb
+++ b/qa/qa/vendor/jira/jira_api.rb
@@ -7,6 +7,9 @@ module QA
include Scenario::Actable
include Support::API
+ DEFAULT_ISSUE_SUMMARY = 'REST ye merry gentlemen.'
+ DEFAULT_ISSUE_DESCRIPTION = 'Creating of an issue using project keys and issue type names using the REST API'
+
def base_url
host = QA::Runtime::Env.jira_hostname || 'localhost'
@@ -18,27 +21,58 @@ module QA
end
def fetch_issue(issue_key)
- response = get("#{api_url}/issue/#{issue_key}", user: Runtime::Env.jira_admin_username, password: Runtime::Env.jira_admin_password)
+ response = get("#{api_url}/issue/#{issue_key}",
+ user: Runtime::Env.jira_admin_username,
+ password: Runtime::Env.jira_admin_password)
parse_body(response)
end
- def create_issue(jira_project_key)
+ def create_project(project_key = "GL#{SecureRandom.hex(4)}".upcase)
+ payload = {
+ key: project_key,
+ name: "Project #{project_key}",
+ description: "New Project #{project_key}",
+ lead: Runtime::Env.jira_admin_username,
+ projectTypeKey: 'software'
+ }
+ response = post(
+ "#{api_url}/project",
+ payload.to_json,
+ headers: { 'Content-Type' => 'application/json' },
+ user: Runtime::Env.jira_admin_username,
+ password: Runtime::Env.jira_admin_password)
+
+ returned_project_key = parse_body(response)[:key]
+
+ QA::Runtime::Logger.debug("Created JIRA project with key: '#{project_key}'")
+
+ returned_project_key
+ end
+
+ def create_issue(
+ jira_project_key,
+ issue_type: 'Bug',
+ summary: DEFAULT_ISSUE_SUMMARY,
+ description: DEFAULT_ISSUE_DESCRIPTION
+ )
payload = {
fields: {
project: {
key: jira_project_key
},
- summary: 'REST ye merry gentlemen.',
- description: 'Creating of an issue using project keys and issue type names using the REST API',
+ summary: summary,
+ description: description,
issuetype: {
- name: 'Bug'
+ name: issue_type
}
}
}
- response = post("#{api_url}/issue",
- payload.to_json, headers: { 'Content-Type': 'application/json' },
+ response = post(
+ "#{api_url}/issue",
+ payload.to_json,
+ headers: { 'Content-Type': 'application/json' },
user: Runtime::Env.jira_admin_username,
password: Runtime::Env.jira_admin_password)