Получение нулевого ключа проекта в веб-перехватчике Jira Cloud App sprint_started

Я разрабатываю надстройку Jira Cloud, которая будет получать события, связанные со спринтом:

  "modules": {
    "webhooks": [
      {
        "event": "sprint_started",
        "url": "/sprints/started?project={project.key}&id={project.id}"
      },
      {
        "event": "sprint_closed",
        "url": "/sprints/closed?project={project.key}&id={project.id}"
      }

Как описано в документации, я использовал заполнители {project.key } и {project.id}, чтобы получить информацию о проекте, в котором произошло событие.

Это контроллер, который вызывается:

    @PostMapping(value = ["/started", "/closed"])
    fun sprintEvent(@AuthenticationPrincipal hostUser: AtlassianHostUser, @RequestParam project: String, @RequestParam id: String, @RequestBody body: Map<String, Any>): Mono<Void> {

Однако и проект, и идентификатор равны нулю

То же самое для событий issue работает гладко, получая ключ проекта:

  "modules": {
    "webhooks": [
      {
        "event": "jira:issue_created",
        "url": "/issues/created?project={project.key}&issue={issue.key}"
      },
    @PostMapping(value = ["/created", "/updated"])
    fun issueEvent(@AuthenticationPrincipal hostUser: AtlassianHostUser, @RequestParam project: String, @RequestParam issue: String, @RequestBody body: Map<String, Any>): Mono<Void> {

В чем проблема со спринтерскими забегами?


person codependent    schedule 09.01.2021    source источник


Ответы (1)


Кажется, существует ограничение, при котором эти свойства недоступны в контексте события спринта.

Мой обходной путь был:

  1. Получить идентификатор доски:
val boardId = (body["sprint"] as Map<String, Any?>)["originBoardId"] as Int
  1. Получите всю информацию о доске с помощью клиента atlassian rest:
val board = atlassianHostRestClients.authenticatedAsAddon().getForObject("/rest/agile/1.0/board/{boardId}", Map::class.java, boardId) as Map<String, *>`
  1. Извлеките оттуда ключ проекта:
val projectKey = (board["location"] as Map<String, *>)["projectKey"] as String
person codependent    schedule 13.01.2021