TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.12K subscribers
Post #842 3.12K
​​Jira на Github Actions
#cicd

Я тут последние несколько дней активно вникаю в тему настройки CI на Github Actions, и был удивлён, что в Jira нельзя передвинуть несколько задач одновременно, если вы каким-то образом получили этот список из вашего PR.

Ребята из Attlassian молчат, а таски двигать хочется, поэтому делюсь с вами кастомным решением.

Если посмотреть, что делается под капотом этого Action, то по сути — это вызов API и совершение парочки запросов для того, чтобы передвигуть задачку. Свой Action писать не хотелось, поэтому решил написать свою gradle таску, которая сделает всё за нас.

1️⃣ Для начала, выполните запрос:
GET https://domain.atlassian.net/rest/api/3/issue/TASK-123/transitions,
чтобы получить идентификатор колонки, в которую вам надо перекинуть задачу. Нам надо поле id, а чтобы выполнить запрос — необходимо создать пароль в настройках и авторизоваться в Headers через Base Auth.

2️⃣ Создаём таску в gradle, а в неё передаём список задач и токен для авторизации будущих запросов, например так:
def taskNumbers = project.properties['items'].split(',').toUnique()
def jiraToken = project.properties['jira_token’]
.

Лучше передать сразу base64 от нашей базовой авторизации, а сам токен хранить в secrets на вашем CI.

3️⃣ Выполняем запрос:
for(taskNumber in taskNumbers) {
def body = "{ \"transition\": { \"id\": \"$transactionId\" } }"
def req = new URL("https://domain.atlassian.net/rest/api/3/issue/TASK-$taskNumber/transitions").openConnection()
req.setRequestMethod("POST")
req.setRequestProperty("Content-Type", "application/json; charset=UTF-8")
req.setRequestProperty("Authorization", "Basic $jiraToken")
req.setDoOutput(true)
req.getOutputStream().write(body.getBytes("UTF-8"))
println "Status code: ${req.getResponseCode()} for task $taskNumber"
}


Если вы всё сделали правильно, то вы получите 204 код и ваша задача перейдёт в нужную вам колонку. 😌

Дальше можно выполнить эту таску на CI:
./gradlew moveJiraTasks -Pitems=123,456 -Pjira_token=token

Полный текст таски можно взять тут.
  • 👍 11
More from @android_live
  1. Sep 29, 2026Post #1130
  2. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  3. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  4. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
  5. Sep 25, 2026Похоже, есть что посмотреть на выходных Недавно вышло интервью с Женей Вороновым Jake Whar…
  6. Sep 15, 2026Google выкатили ARTEMIS Эта инструмент, который превращает обычный текст в реальные действ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →