Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Удаление метки при добавлении карточки в столбец доски проекта

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

Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.

Введение

В этом руководстве показано, как использовать actions/github-script действие вместе с условным для удаления метки из проблем и запросов на вытягивание, которые добавляются в определенный столбец в доска проекта. Например, можно удалять метку needs review при перемещении карточки проекта в столбец Done.

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

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

  1. Выберите репозиторий, в котором вы хотите применить этот рабочий процесс управления проектами. Вы можете использовать существующий репозиторий, к которому у вас есть доступ для записи, или создать репозиторий. Дополнительные сведения о создании репозитория см. в разделе Создание репозитория.

  2. Выберите доска проекта, который принадлежит репозиторию. Этот рабочий процесс нельзя использовать с проектами, принадлежащими пользователям или организациям. Можно использовать существующий доска проекта или создать новый доска проекта. Дополнительные сведения о создании проекта см. в разделе Создание компонента "project board".

  3. В репозитории создайте файл с именем .github/workflows/YOUR_WORKFLOW.yml, где YOUR_WORKFLOW — это любое имя на ваш выбор. Это файл рабочего процесса. Дополнительные сведения о создании новых файлов на GitHub см. в разделе Создание новых файлов.

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

    YAML
    name: Remove a label
    on:
      project_card:
        types:
          - moved
    jobs:
      remove_label:
        if: github.event.project_card.column_id == '12345678'
        runs-on: ubuntu-latest
        permissions:
          issues: write
          pull-requests: write
        steps:
          - uses: actions/github-script@v6
            with:
              script: |
                // this gets the number at the end of the content URL, which should be the issue/PR number
                const issue_num = context.payload.project_card.content_url.split('/').pop()
                github.rest.issues.removeLabel({
                  issue_number: issue_num,
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  name: ["needs review"]
                })
  5. Настройте параметры в файле рабочего процесса.

    • В github.event.project_card.column_id == '12345678' замените 12345678 на идентификатор столбца, в котором нужно удалять метки из проблем и запросов на вытягивание, перемещаемых в этот столбец.

      Чтобы найти идентификатор столбца, перейдите к доска проекта. Рядом с заголовком столбца щелкните и щелкните Копировать ссылку на столбец. Идентификатор столбца — это номер в конце скопированной ссылки. Например, 24687531 — это идентификатор столбца для https://github.com/octocat/octo-repo/projects/1#column-24687531.

      Если вы хотите выполнять действия сразу с несколькими столбцами, перечислите условия через ||. Например, условие if github.event.project_card.column_id == '12345678' || github.event.project_card.column_id == '87654321' будет выполняться при каждом добавлении карточки проекта в столбец 12345678 или в столбец 87654321. Столбцы могут находиться на разных досках проектов.

    • Измените значение в name github.rest.issues.removeLabel() функции на имя метки, которую нужно удалить из проблем или запросов на вытягивание, которые перемещаются в указанные столбцы. Дополнительные сведения о метках см. в разделе Управление метками.

  6. Зафиксируйте файл рабочего процесса в ветви по умолчанию вашего репозитория. Дополнительные сведения см. в разделе Создание новых файлов.

Тестирование рабочего процесса

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

Протестируйте рабочий процесс, переместив проблему в доска проекта в целевой столбец.

  1. Откройте проблему в репозитории. Дополнительные сведения см. в разделе Создание проблемы.
  2. Пометка проблемы меткой, которую требуется удалить рабочим процессом. Дополнительные сведения см. в разделе Управление метками.
  3. Добавьте проблему в столбец доска проекта, указанный в файле рабочего процесса. Дополнительные сведения см. в разделе Добавление проблем и запросов на вытягивание в project board.
  4. Чтобы увидеть выполнение рабочего процесса, который запускается при добавлении проблемы в проект, просмотрите журнал выполнений рабочего процесса. Дополнительные сведения см. в разделе Просмотр истории выполнения рабочего процесса.
  5. После завершения рабочего процесса у проблемы, добавленной в столбец проекта, должна быть удалена указанная метка.

Дальнейшие действия