feat(jira-workflow): add GitLab create-mr.sh helper
- creates a merge request via GitLab API (curl + GITLAB_TOKEN, PRIVATE-TOKEN header) - derives host + project path from git remote origin (or GITLAB_HOST); no hardcoded URLs - refuses to open an MR from a protected source branch; MR_PUSH/MR_DRY_RUN toggles - optionally attaches the MR link to a Jira ticket via link-mr.sh - verified parsing for ssh (scp-form) and https remotes incl. nested namespaces
This commit is contained in:
@@ -17,6 +17,9 @@ description: Используй, когда нужно работать с ко
|
||||
- **Токен доступа** — из переменной окружения `JIRA_TOKEN` (personal access token).
|
||||
- Токен в команды и логи не подставляй в открытом виде — скрипты читают его из окружения сами.
|
||||
|
||||
Для создания merge request в GitLab дополнительно нужен `GITLAB_TOKEN` (токен с scope `api`);
|
||||
хост и путь проекта скрипт определяет из `git remote origin` (или `GITLAB_HOST`) — адреса не хардкодятся.
|
||||
|
||||
Быстрая проверка окружения:
|
||||
|
||||
```bash
|
||||
@@ -32,6 +35,9 @@ 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`, автоматически приложить ссылку к тикету.
|
||||
|
||||
Пример:
|
||||
|
||||
@@ -39,8 +45,15 @@ description: Используй, когда нужно работать с ко
|
||||
./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/*`) скрипт создавать откажется.
|
||||
|
||||
## Соглашения
|
||||
|
||||
<!-- TODO: заполнить реальными значениями компании -->
|
||||
|
||||
Reference in New Issue
Block a user