API Jira: как использовать и интегрировать
API Jira - это набор программных интерфейсов и методов, которые позволяют взаимодействовать с системой управления проектами Jira путем использования программного кода. При помощи API Jira разработчики могут создавать приложения, интегрированные с Jira, автоматизировать процессы или изменять существующие функциональные возможности.
API Jira доступен для использования через REST API и Java API.
REST API - это стандартный протокол передачи данных, позволяющий получать информацию из Jira и отправлять данные обратно. Его можно использовать для выполнения различных операций, например, создания, чтения или обновления задач (issues), рабочих процессов (workflows), проектов и других элементов Jira.
Примеры кода использования REST API в Python для создания новой задачи и добавления комментария:
import requests
import json
# Сначала нужно получить авторизационный токен
url = "https://jira.example.com/rest/auth/1/session"
data = {'username': 'username', 'password': 'password'}
response = requests.post(url, headers={"Content-Type": "application/json"}, json=data)
json_data = json.loads(response.text)
auth_token = json_data['session']['value']
# Затем создаем новую задачу
url = "https://jira.example.com/rest/api/2/issue/"
data = {
"fields": {
"project":
{
"key": "TEST"
},
"summary": "Test issue created by API",
"description": "Creating new issue using Jira API",
"issuetype": {
"name": "Bug"
}
}
}
headers = {"Content-Type": "application/json", "Authorization": f"Cookie: JSESSIONID={auth_token}"}
response = requests.post(url, headers=headers, json=data)
print(response.text)
# Добавляем комментарий к задаче
url = "https://jira.example.com/rest/api/2/issue/TEST-123/comments"
data = {"body": "API comment"}
headers = {"Content-Type": "application/json", "Authorization": f"Cookie: JSESSIONID={auth_token}"}
response = requests.post(url, headers=headers, json=data)
print(response.text)
Java API - это библиотека Java для взаимодействия с Jira. Он предоставляет более высокоуровневый способ работы с Jira, чем REST API, и упрощает разработку приложений, интегрированных с Jira.
Примеры кода использования Java API для получения списка задач и обновления задачи:
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
// Подключаемся к Jira
JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
URI jiraServerUri = new URI("https://jira.example.com");
JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "user", "password");
// Получаем список задач
Promise issuesPromise = restClient.getSearchClient().searchJql("project=TEST");
SearchResult searchResult = issuesPromise.get();
for (Issue issue : searchResult.getIssues()) {
System.out.println(issue.getKey() + " " + issue.getSummary());
}
// Обновляем статус задачи
String issueKey = "TEST-123";
Issue issue = restClient.getIssueClient().getIssue(issueKey).get();
restClient.getIssueClient().transition(issue.getTransitions().iterator().next().getToStatus(), issue).get();