Skip to main content

Удаление метки при добавлении карта в столбец project (классическая модель)

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

Введение

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

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

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

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

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

  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 на идентификатор столбца, в котором нужно удалять метки из проблем и запросов на вытягивание, перемещаемых в этот столбец.

      Чтобы найти идентификатор столбца, перейдите к данным project (классическая модель). Рядом с заголовком столбца щелкните и нажмите кнопку "Копировать ссылку столбца". Идентификатор столбца — это номер в конце скопированной ссылки. Например, 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. Зафиксируйте файл рабочего процесса в ветви по умолчанию вашего репозитория. Дополнительные сведения см. в разделе Создание новых файлов.

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

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

Проверьте рабочий процесс, переместив проблему на project (классическая модель) в целевой столбец.

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

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

  • Дополнительные сведения о дополнительных действиях, которые можно сделать с действием actions/github-script , см. в actions/github-script документации по действию.
  • Выполните поиск в GitHub, чтобы найти примеры рабочих процессов, использующих это действие.