Вызов Python для поиска JIRA Rest Api не возвращает созданные поля (Дата) или разрешения

#python #json #jira #jira-rest-api

Вопрос:

Тестирование с использованием python для вызова api rest для извлечения дефектов/ошибок из моего экземпляра jira. Используя код, указанный в api_docs, я составил этот запрос:

 payload = json.dumps( {
 
  "jql": "issuetype in (Bug,Defect) AND CreatedDate >= 2021\u002f01\u002f01",
  "maxResults": 1,
  #"fieldsByKeys": false,
  "fields": [
   "summary",
   "assignee",
   "reporter",
   "status",
   "resolution"
   "created",
   "updated"
  ],
  "startAt": 0
} )
 

Вызов выполнен успешно, за исключением того, что он возвращает все поля, кроме created и resolution . Я /rest/api/3/field следил за тем, чтобы поле было написано правильно, и это было так. Также пытался заглавными Created буквами .

 {
    "id": "created",
    "name": "Created",
    "custom": false,
    "orderable": false,
    "navigable": true,
    "searchable": true,
    "clauseNames": ["created",
    "createdDate"],
    "schema": {
        "type": "datetime",
        "system": "created"
    }
}
 

Пример вывода API:

 {
    "expand": "names,schema",
    "issues": [
        {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "fields": {
                "assignee": null,
                "reporter": example,
                "status": example,
                "summary": "DEFECT: Test 1",
                "updated": "2021-03-07T11:14:31.000-0500"
            },
            "id": "123456",
            "key": "Example-4",
            "self": "example_link"
        }
    ],
    "maxResults": 1,
    "startAt": 0,
    "total": 100
} 
 

В качестве альтернативы, когда я оставляю fields поле пустым, я получаю все поля, включая created и resolution . Однако я не хочу этого делать, так как у нас есть сотни пользовательских полей, которые также загружаются.

Ответ №1:

Я вижу опечатку в вашем примере кода. Вы пропускаете запятую после поля разрешения. Ваш код должен быть:

 payload = json.dumps( {
 
  "jql": "issuetype in (Bug,Defect) AND CreatedDate >= 2021\u002f01\u002f01",
  "maxResults": 1,
  "fields": [
   "summary",
   "assignee",
   "reporter",
   "status",
   "resolution", # Note the comma here
   "created",
   "updated"
  ],
  "startAt": 0
} )
 

Комментарии:

1. Блестяще, в этом, конечно, и была проблема. Спасибо!