Как можно автоматически извлекать issueKey?

Как мне сделать так, чтобы при слиянии ветки с основной веткой issueKey автоматически привязывался к задаче и оставлял комментарий от пользователя? В настоящее время этот процесс работает только в том случае, если issueKey указан напрямую, например: <br/> <pre><code>jiraComment body: 'Отправлено на тестовый', issueKey: 'ZADACHA-122'</code></pre>
  • 23 декабря 2024 г. 1:23
Ответы на вопрос 1
Для автоматического извлечения `issueKey` из имени ветки или сообщения коммита и последующего добавления комментария в задачу на Jira можно использовать несколько подходов.

### 1. Использование скриптов

Вы можете написать скрипт, который будет запускаться при слиянии ветки и извлекать `issueKey` из названия ветки. Например, если ваша ветка называется `feature/ZADACHA-122-new-feature`, то вы можете извлечь `ZADACHA-122` из ее имени.

Вот пример на Python:

```python
import re

def extract_issue_key(branch_name):
    # Регулярное выражение для извлечения issueKey
    match = re.search(r'\b[A-Z]+-\d+\b', branch_name)
    if match:
        return match.group(0)
    return None

branch_name = 'feature/ZADACHA-122-new-feature'
issue_key = extract_issue_key(branch_name)

if issue_key:
    print(f'Extracted issue key: {issue_key}')
    # Здесь добавьте код для отправки комментария к задаче на Jira
    # jiraComment(body='Отправлено на тестовый', issueKey=issue_key)
```

### 2. Настройка CI/CD

Если вы используете систему CI/CD, такую как Jenkins, GitLab CI/CD или GitHub Actions, вы можете использовать шаги для выполнения скрипта на основе имени ветки. Вот пример на GitLab CI/CD:

```yaml
stages:
  - comment

comment:
  stage: comment
  script:
    - export ISSUE_KEY=$(echo "$CI_COMMIT_REF_NAME" | grep -oP '\b[A-Z]+-\d+\b')
    - if [ ! -z "$ISSUE_KEY" ]; then curl -u <username>:<api_token> -X POST -H 'Content-Type: application/json' --data '{"body":"Отправлено на тестовый"}' "https://your-jira-instance/rest/api/2/issue/$ISSUE_KEY/comments"; fi
```

### 3. Использование вебхуков

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

### 4. Использование плагинов

Если вы используете системы, такие как JIRA, GitHub или GitLab, возможно, существуют плагины или интеграции, которые могут облегчить этот процесс, извлекая `issueKey` прямо из имен веток или сообщений коммитов и автоматически добавляя комментарии.

### Заключение

Помимо вышеупомянутых методов, вы также можете использовать комбинированный подход, чтобы адаптировать решение под ваши требования. Главное — убедиться, что ваш процесс будет надежным и поддерживаемым.
Похожие вопросы