Загрузка данных


C:\Work\wt\46>python 46.py
[OK] wrote C:\Work\wt\46\s46.openapi-probe.json
[OK] wrote C:\Work\wt\46\s46.author.compact.json
[INFO] author_login=abc.d.e
[INFO] assigned_to_before=sa-tuz1
[OK] wrote C:\Work\wt\46\s46.executor-update.attempts.json
[INFO] v2_attributes_dict_string http=200 assigned_to_after=abc.d.e matches=True
[OK] wrote C:\Work\wt\46\s46.after.compact.json
[OK] executor update worked with v2_attributes_dict_string


# s46.after.compact.json
{
  "code": "ACSAPA-6",
  "summary": "ST1",
  "description": null,
  "space": {
    "code": "ACSAPA",
    "name": "Автоматизация определения Поверхности Атаки"
  },
  "suit": {
    "code": "task",
    "name": "Задача",
    "icon": "task"
  },
  "createdBy": {
    "externalId": "Abc.D.E",
    "firstName": "Ddd",
    "lastName": "Abc",
    "middleName": "Eee",
    "login": "abc.d.e",
    "userDetails": []
  },
  "updatedBy": {
    "externalId": "Abc.D.E",
    "firstName": "Ddd",
    "lastName": "Abc",
    "middleName": "Eee",
    "login": "abc.d.e",
    "userDetails": []
  },
  "author_candidate_createdBy_login": "abc.d.e",
  "attributes": [
    {
      "code": "assigned_to",
      "name": "Исполнитель",
      "type": "user",
      "value": {
        "externalId": "Abc.D.E",
        "firstName": "Ddd",
        "lastName": "Abc",
        "middleName": "Eee",
        "login": "abc.d.e",
        "userDetails": []
      },
      "valueAsString": ""
    },
    {
      "code": "reporter",
      "name": "Автор",
      "type": "user",
      "value": {
        "externalId": "Abc.D.E",
        "firstName": "Ddd",
        "lastName": "Abc",
        "middleName": "Eee",
        "login": "abc.d.e",
        "userDetails": []
      },
      "valueAsString": ""
    },
    {
      "code": "workflow_status",
      "name": "Статус",
      "type": "workflow_status",
      "value": {
        "name": "Open",
        "code": "PN_wZbmKlgyPwHIFYZAN",
        "style": {
          "backgroundColor": "#E8EEF2",
          "iconColor": "#13181B8E",
          "colorByEdsRef": "cool"
        },
        "statusType": "pause"
      },
      "valueAsString": ""
    },
    {
      "code": "due_date",
      "name": "Контрольный срок",
      "type": "date_time",
      "value": "2026-06-29T21:00:00Z",
      "valueAsString": ""
    },
    {
      "code": "label",
      "name": "Labels",
      "type": "label",
      "value": [],
      "valueAsString": ""
    }
  ],
  "assigned_to_login": "abc.d.e",
  "reporter_login": "abc.d.e",
  "executor_update_matches_author": true,
  "executor_update_payload_shape": "v2_attributes_dict_string"
}


# s46.author.compact.json
{
  "code": "ACSAPA-6",
  "summary": "ST1",
  "description": null,
  "space": {
    "code": "ACSAPA",
    "name": "Автоматизация определения Поверхности Атаки"
  },
  "suit": {
    "code": "task",
    "name": "Задача",
    "icon": "task"
  },
  "createdBy": {
    "externalId": "Abc.D.E",
    "firstName": "Ddd",
    "lastName": "Abc",
    "middleName": "Eee",
    "login": "abc.d.e",
    "userDetails": []
  },
  "updatedBy": {
    "externalId": "Abc.D.E",
    "firstName": "Ddd",
    "lastName": "Abc",
    "middleName": "Eee",
    "login": "abc.d.e",
    "userDetails": []
  },
  "author_candidate_createdBy_login": "abc.d.e",
  "attributes": [
    {
      "code": "assigned_to",
      "name": "Исполнитель",
      "type": "user",
      "value": {
        "externalId": "sa-tuz1",
        "firstName": "sa-tuz1",
        "lastName": "sa-tuz1",
        "middleName": null,
        "login": "sa-tuz1",
        "userDetails": []
      },
      "valueAsString": ""
    },
    {
      "code": "reporter",
      "name": "Автор",
      "type": "user",
      "value": {
        "externalId": "Abc.D.E",
        "firstName": "Ddd",
        "lastName": "Abc",
        "middleName": "Eee",
        "login": "abc.d.e",
        "userDetails": []
      },
      "valueAsString": ""
    },
    {
      "code": "workflow_status",
      "name": "Статус",
      "type": "workflow_status",
      "value": {
        "name": "Open",
        "code": "PN_wZbmKlgyPwHIFYZAN",
        "style": {
          "backgroundColor": "#E8EEF2",
          "iconColor": "#13181B8E",
          "colorByEdsRef": "cool"
        },
        "statusType": "pause"
      },
      "valueAsString": ""
    },
    {
      "code": "due_date",
      "name": "Контрольный срок",
      "type": "date_time",
      "value": "2026-06-29T21:00:00Z",
      "valueAsString": ""
    },
    {
      "code": "label",
      "name": "Labels",
      "type": "label",
      "value": [],
      "valueAsString": ""
    }
  ],
  "assigned_to_login": "sa-tuz1",
  "reporter_login": "abc.d.e"
}


# s46.executor-update.attempts.json
[
  {
    "name": "v2_attributes_dict_string",
    "path": "rest/api/unit/v2/update/ACSAPA-6",
    "http_status": 200,
    "ok": true,
    "matches": true,
    "request_body": {
      "attributes": {
        "assigned_to": "abc.d.e"
      }
    },
    "body": {
      "id": "ACSAPA-6"
    },
    "assigned_to_after": "abc.d.e"
  }
]


# s46.openapi-probe.json
[
  {
    "path": "v3/api-docs",
    "http_status": 200,
    "is_openapi": false
  },
  {
    "path": "v3/api-docs/swagger-config",
    "http_status": 200,
    "is_openapi": false
  },
  {
    "path": "v2/api-docs",
    "http_status": 200,
    "is_openapi": false
  },
  {
    "path": "api-docs",
    "http_status": 200,
    "is_openapi": true,
    "openapi": "3.1.0",
    "title": "sbertrack",
    "version": "35.2.0-16eff094b8",
    "selected_path_count": 36,
    "selected_paths": [
      {
        "path": "/rest/api/unit/v3/{filter}/find",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск с фильтром расширенной информации по юниту"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v3/find",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск с фильтром расширенной информации по юниту"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v3/find/tql",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Постраничный запрос на поиск юнитов с помощью TQL без вычисления кол-ва записей"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v3/count",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Возвращает кол-во юнитов по заданному условию фильтрации"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v2/{filter}/find",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск с фильтром расширенной информации по юниту"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v2/find/tql",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск с помощью TQL расширенной информации по юниту"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v2/clone",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Клонирует задачу",
            "description": "Клонирует задачу"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v1/clone",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Клонирует задачу",
            "description": "Клонирует задачу"
          }
        ]
      },
      {
        "path": "/rest/api/suit/v2/create",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Создает тип юнита"
          }
        ]
      },
      {
        "path": "/rest/api/suit/v1/create",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Создает тип юнита"
          }
        ]
      },
      {
        "path": "/rest/api/plugin/suit/v1/put",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Устанавливает новый типа юнита в систему"
          }
        ]
      },
      {
        "path": "/rest/api/notification/schema/v1/create",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Создает новую схему нотификаций",
            "description": "Создает новую схему нотификаций"
          }
        ]
      },
      {
        "path": "/rest/api/export/v1",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Инициализация выгрузки данных",
            "description": "Создаёт задачу на выгрузку данных в указанный формат (например, .xlsx). Возвращает идентификатор и начальный статус (PENDING) задачи."
          }
        ]
      },
      {
        "path": "/rest/api/attr/v1/search",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Выдает отфильтрованный по наименованию список доступных кастомных атрибутов",
            "description": "Выдает отфильтрованный по наименованию список доступных кастомных атрибутов"
          }
        ]
      },
      {
        "path": "/extension/plugin/v2/rest/api/swtr_tms_plugin/v1/link/test_cycle/player",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Получение списка прилинкованных тест-кейсов и актуальных прогонов к циклу"
          }
        ]
      },
      {
        "path": "/extension/plugin/v2/rest/api/scrum_board_plugin/v3/sprint/unit/find",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск задач в спринте",
            "description": "Поиск задач в спринте без вычисления количества записей"
          }
        ]
      },
      {
        "path": "/extension/plugin/v2/rest/api/scrum_board_plugin/v3/sprint/unit/find/composite",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск задач в спринте",
            "description": "Поиск задач в спринте без вычисления количества записей"
          }
        ]
      },
      {
        "path": "/extension/plugin/v2/rest/api/scrum_board_plugin/v3/backlog/unit/find",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Поиск задач в бэклоге пространства",
            "description": "Поиск задач в бэклоге пространства без вычисления кол-ва записей"
          }
        ]
      },
      {
        "path": "/extension/plugin/v2/rest/api/scrum_board_plugin/v1/assignee/story-points",
        "descriptions": [
          {
            "method": "POST",
            "summary": "Получение статистики относительной сложности по исполнителям и типам wf статусов",
            "description": "Информация об относительной сложности юнитов, сгруппированная по пользователям и типам статусов воркфлоу"
          }
        ]
      },
      {
        "path": "/rest/api/validator/v1/event/{validator_code}/put/{validator_event_code}",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Добавление события для валидатора"
          }
        ]
      },
      {
        "path": "/rest/api/validator/v0/update/{validator_code}",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Изменение валидатора"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v2/update/{code}",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Обновляет существующую задачу по его коду"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v1/update/{code}",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Обновляет существующую задачу по ее коду",
            "description": "Обновляет существующую задачу по ее коду"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v1/update/{code}/space",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Перемещает задачу в пространство",
            "description": "Перемещает задачу в пространство"
          }
        ]
      },
      {
        "path": "/rest/api/suit/v1/update/{code}",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Обновляет тип юнита"
          }
        ]
      },
      {
        "path": "/rest/api/notification/schema/v1/update",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Обновляет существующую схему нотификаций",
            "description": "Обновляет существующую схему нотификаций"
          }
        ]
      },
      {
        "path": "/rest/api/notification/schema/v1/group/change",
        "descriptions": [
          {
            "method": "PATCH",
            "summary": "Обновляет группы пользователей, привязанные к схеме нотификаций",
            "description": "Обновляет группы пользователей, привязанные к схеме нотификаций"
          }
        ]
      },
      {
        "path": "/rest/api/validator/v1/{validator_code}",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Описание валидатора"
          }
        ]
      },
      {
        "path": "/rest/api/unit/v2/{code}",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Получение юнита с атрибутами по его коду"
          }
        ]
      },
      {
        "path": "/rest/api/structure/v1/{structure}",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Описание структуры"
          }
        ]
      },
      {
        "path": "/rest/api/structure/v1/{structure}/level/{level}",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Описание уровня структуры"
          }
        ]
      },
      {
        "path": "/rest/api/notification/schema/v1/{code}",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Ищет схему нотификаций по ее коду",
            "description": "Ищет схему нотификаций по ее коду"
          }
        ]
      },
      {
        "path": "/rest/api/notification/event/v1",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Ищет все события нотификаций",
            "description": "Ищет все события нотификаций"
          }
        ]
      },
      {
        "path": "/rest/api/attr/v1/find",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Выдает список всех доступных кастомных атрибутов",
            "description": "Выдает список всех доступных кастомных атрибутов"
          }
        ]
      },
      {
        "path": "/rest/api/attr/v1/findAll",
        "descriptions": [
          {
            "method": "GET",
            "summary": "Выдает список всех доступных атрибутов (базовых, кастомных и вычисляемых)"
          }
        ]
      },
      {
        "path": "/rest/api/validator/v1/event/{validator_code}/delete/{validator_event_code}",
        "descriptions": [
          {
            "method": "DELETE",
            "summary": "Удаление события для валидатора"
          }
        ]
      }
    ]
  },
  {
    "path": "openapi.json",
    "http_status": 200,
    "is_openapi": false
  },
  {
    "path": "swagger.json",
    "http_status": 200,
    "is_openapi": false
  },
  {
    "path": "swagger-resources",
    "http_status": 200,
    "is_openapi": false
  }
]