# Планирование создания проблем

Вы можете использовать GitHub Actions для создания проблемы на регулярной основе для таких вопросов, как ежедневные собрания или квартальные проверки.

## Введение

В этом руководстве показано, как GitHub CLI регулярно создавать проблему. Например, вы можете создавать проблему каждую неделю и использовать ее в качестве повестки дня для собрания команды. Дополнительные сведения см. в GitHub CLIразделе [Использование GitHub CLI в рабочих процессах](/ru/actions/how-tos/write-workflows/choose-what-workflows-do/use-github-cli).

В руководстве сначала вы создайте файл рабочего процесса, использующий файл GitHub CLIрабочего процесса. Затем вы настроите рабочий процесс в соответствии с вашими потребностями.

## Создание рабочего процесса

1. Выберите репозиторий, в котором вы хотите применить этот рабочий процесс управления проектами. Вы можете использовать существующий репозиторий, к которому у вас есть доступ для записи, или создать репозиторий. Дополнительные сведения о создании репозитория см. в разделе [Создание репозитория](/ru/repositories/creating-and-managing-repositories/creating-a-new-repository).

2. В репозитории создайте файл с именем `.github/workflows/YOUR_WORKFLOW.yml`, где `YOUR_WORKFLOW` — это любое имя на ваш выбор. Это файл рабочего процесса. Дополнительные сведения о создании новых файлов на сайте GitHub см. в разделе [Создание новых файлов](/ru/repositories/working-with-files/managing-files/creating-new-files).

3. Скопируйте следующее содержимое YAML в файл рабочего процесса.

   ```yaml copy
   name: Weekly Team Sync
   on:
     schedule:
       - cron: 20 07 * * 1

   jobs:
     create_issue:
       name: Create team sync issue
       runs-on: ubuntu-latest
       permissions:
         issues: write
       steps:
         - name: Create team sync issue
           run: |
             if [[ $CLOSE_PREVIOUS == true ]]; then
               previous_issue_number=$(gh issue list \
                 --label "$LABELS" \
                 --json number \
                 --jq '.[0].number')
               if [[ -n $previous_issue_number ]]; then
                 gh issue close "$previous_issue_number"
                 gh issue unpin "$previous_issue_number"
               fi
             fi
             new_issue_url=$(gh issue create \
               --title "$TITLE" \
               --assignee "$ASSIGNEES" \
               --label "$LABELS" \
               --body "$BODY")
             if [[ $PINNED == true ]]; then
               gh issue pin "$new_issue_url"
             fi
           env:
             GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
             GH_REPO: ${{ github.repository }}
             TITLE: Team sync
             ASSIGNEES: monalisa,doctocat,hubot
             LABELS: weekly sync,docs-team
             BODY: |
               ### Agenda

               - [ ] Start the recording
               - [ ] Check-ins
               - [ ] Discussion points
               - [ ] Post the recording

               ### Discussion Points
               Add things to discuss below

               - [Work this week](https://github.com/orgs/github/projects/3)
             PINNED: false
             CLOSE_PREVIOUS: false
   ```

4. Настройте параметры в файле рабочего процесса.
   * Измените значение для `on.schedule`, чтобы определить время выполнения рабочего процесса. В приведенном выше примере рабочий процесс будет запускаться каждый день в 7:20 (в формате UTC). Дополнительные сведения о запланированных рабочих процессах см. в разделе [События, инициирующие рабочие процессы](/ru/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule).
   * Измените значение `ASSIGNEES` списка имен пользователей GitHub , которые нужно назначить проблеме.
   * В качестве значения для `LABELS` укажите список меток, которые вы хотите применить к проблеме.
   * Измените значение `TITLE` на желаемый заголовок проблемы.
   * Измените значение `BODY` на желаемый текст проблемы. С помощью символа `|` можно использовать для этого параметра многострочное значение.
   * Если вы хотите закрепить эту проблему в репозитории, задайте для `PINNED` значение `true`. Дополнительные сведения о закрепленных проблемах см. в разделе [Закрепление проблемы в репозитории](/ru/issues/tracking-your-work-with-issues/administering-issues/pinning-an-issue-to-your-repository).
   * Если вы хотите закрывать предыдущую проблему, созданную этим рабочим процессом, при каждом создании новой проблемы, задайте для `CLOSE_PREVIOUS` значение `true`. Рабочий процесс закроет последнюю проблему с метками, определенными в поле `labels`. Чтобы случайно не закрыть не ту проблему, используйте уникальную метку или сочетание меток.

5. Зафиксируйте файл рабочего процесса в ветви по умолчанию вашего репозитория. Дополнительные сведения см. в разделе [Создание новых файлов](/ru/repositories/working-with-files/managing-files/creating-new-files).

## Ожидаемые результаты

На основе параметра `schedule` (например, каждый понедельник в 7:20 UTC) рабочий процесс будет создавать новую проблему с назначенными участниками, метками, заголовком и текстом, которые вы указали. Если для `PINNED` задано значение `true`, рабочий процесс закрепит проблему в репозитории. Если для `CLOSE_PREVIOUS` задано значение true, рабочий процесс закроет последнюю проблему с соответствующими метками.

> \[!NOTE]
> Событие `schedule` может быть отложено в периоды высокой нагрузки рабочих процессов GitHub Actions. К периодам высокой загрузки относится начало каждого часа. Если загрузка достаточно высока, некоторые задания в очереди могут быть удалены. Чтобы уменьшить вероятность задержки, запланируйте выполнение рабочего процесса в другое время часа.

Чтобы периодически отслеживать выполнение рабочего процесса, можно просматривать историю его выполнений. Дополнительные сведения см. в разделе [Просмотр журнала выполнения рабочего процесса](/ru/actions/how-tos/monitor-workflows/view-workflow-run-history).

## Следующие шаги

* Дополнительные сведения о дополнительных действиях, которые можно сделать с GitHub CLIпомощью шаблона проблемы, см. в [`gh issue create` документации](https://cli.github.com/manual/gh_issue_create).
* [Поиск GitHub Marketplace](https://github.com/marketplace?category=\&type=actions\&verification=\&query=schedule+issue) для действий, связанных с запланированными проблемами.