Files
pi-kit/skills/jira-workflow/SKILL.md

5.1 KiB
Raw Blame History

name, description
name description
jira-workflow Используй, когда нужно работать с корпоративным трекером задач (Jira) — прочитать тикет по ключу, добавить комментарий, приложить ссылку на MR, разобраться в статусах и переходах. Применяй при упоминании ключей задач, «тикет», «задача в трекере», «переведи в статус», а также в командах /bugfix и /feature.

Работа с трекером задач (Jira)

Скилл описывает, как читать и обновлять задачи в нашем трекере через REST API.

Откуда берутся адрес и токен

Никогда не хардкодь и не спрашивай их отдельно — они уже есть в окружении.

  • Базовый адрес трекера — из переменной окружения TRACKER_URL. Если она не задана, возьми адрес трекера из корпоративного контекста сессии (его инжектит расширение company-context).
  • Токен доступа — из переменной окружения JIRA_TOKEN (personal access token).
  • Токен в команды и логи не подставляй в открытом виде — скрипты читают его из окружения сами.

Для создания merge request в GitLab дополнительно нужен GITLAB_TOKEN (токен с scope api); хост и путь проекта скрипт определяет из git remote origin (или GITLAB_HOST) — адреса не хардкодятся.

Быстрая проверка окружения:

: "${TRACKER_URL:?установи TRACKER_URL или возьми адрес из корпоративного контекста}"
: "${JIRA_TOKEN:?установи JIRA_TOKEN (personal access token трекера)}"

Готовые скрипты

Все скрипты лежат в scripts/ и читают TRACKER_URL и JIRA_TOKEN из окружения:

  • ./scripts/get-issue.sh <KEY> — получить тикет (поля summary, status, description).
  • ./scripts/add-comment.sh <KEY> "<текст>" — добавить комментарий.
  • ./scripts/link-mr.sh <KEY> "<url-MR>" ["<заголовок>"] — приложить ссылку на MR (добавляется комментарием со ссылкой; при доступном remote link API — см. TODO в скрипте).
  • ./scripts/create-mr.sh "<title>" [target] [source] [jira-key] — создать merge request в GitLab (по текущей ветке), вывести его URL и, если передан jira-key и заданы TRACKER_URL/JIRA_TOKEN, автоматически приложить ссылку к тикету.

Пример:

./scripts/get-issue.sh PROJ-123
./scripts/add-comment.sh PROJ-123 "Начал работу, воспроизвёл баг"
./scripts/link-mr.sh PROJ-123 "https://<git-host>/ai/foo/-/merge_requests/42" "Fix PROJ-123"

# создать MR из текущей ветки в main и сразу привязать к тикету:
GITLAB_TOKEN=... ./scripts/create-mr.sh "Fix PROJ-123: NPE" main "" PROJ-123

Флаги окружения create-mr.sh: GITLAB_TOKEN (обязателен), GITLAB_HOST (override хоста), MR_PUSH=0 (не пушить ветку), MR_DRY_RUN=1 (показать запрос без вызова API). MR из защищённой/релизной ветки (main/master/release-*) скрипт создавать откажется.

Соглашения

  • Формат ключей задач: вида PROJ-123 (буквенный префикс проекта + номер). <!-- TODO: перечислить реальные префиксы проектов -->
  • Статусы и переходы: To Do → In Progress → Review → Done.
  • Кто и когда меняет статус: разработчик переводит тикет: в In Progress — при старте работы; в Review — при выставлении MR (в тикет добавляется ссылка на MR); в Done — после мержа.
  • Что писать в комментарии: при старте — кратко о начале работы; при готовности — ссылку на MR (используй create-mr.sh, который сразу приложит ссылку, либо link-mr.sh).

Полезное

  • ID переходов статуса можно получить через GET /rest/api/2/issue/<KEY>/transitions, выполнить переход — POST туда же с {"transition":{"id":"<id>"}}.
  • Если API возвращает 401/403 — проверь JIRA_TOKEN и права. Не логируй сам токен.