Введение
В этом руководстве показано, как использовать actions/github-script
действие вместе с условным способом удаления метки из проблем и запросов на вытягивание, добавленных в определенный столбец в project (классическая модель). Например, можно удалять метку needs review
при перемещении карточки проекта в столбец Done
.
В этом руководстве вы сначала создадите файл рабочего процесса, использующий действие actions/github-script
. Затем вы настроите рабочий процесс в соответствии с вашими потребностями.
Создание рабочего процесса
-
Выберите репозиторий, в котором вы хотите применить этот рабочий процесс управления проектами. Вы можете использовать существующий репозиторий, к которому у вас есть доступ для записи, или создать репозиторий. Дополнительные сведения о создании репозитория см. в разделе "Создание репозитория".
-
Выберите project (классическая модель), принадлежащих репозиторию. Этот рабочий процесс нельзя использовать с проектами, принадлежащими пользователям или организациям. Вы можете использовать существующие данные project (классическая модель), или создать новый объект project (классическая модель). Дополнительные сведения о создании проекта см. в разделе "Создание компонента "project (classic)"".
-
В репозитории создайте файл с именем
.github/workflows/YOUR_WORKFLOW.yml
, гдеYOUR_WORKFLOW
— это любое имя на ваш выбор. Это файл рабочего процесса. Дополнительные сведения о создании новых файлов на сайте GitHub см. в разделе "Создание новых файлов". -
Скопируйте следующее содержимое 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"] })
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"] })
-
Настройте параметры в файле рабочего процесса.
-
В
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()
функции на имя метки, которую требуется удалить из проблем или запросов на вытягивание, которые перемещаются в указанные столбцы. Дополнительные сведения о метках см. в разделе "Управление метками".
-
-
Зафиксируйте файл рабочего процесса в ветви по умолчанию вашего репозитория. Дополнительные сведения см. в разделе Создание новых файлов.
Тестирование рабочего процесса
Каждый раз, когда проект карта на project (классическая модель) в репозитории перемещается, этот рабочий процесс будет выполняться. Если карта является проблемой или запросом на вытягивание и перемещается в указанный столбец, рабочий процесс удаляет указанную метку из проблемы или запроса на вытягивание. Карточки, представляющие собой примечания, останутся без изменений.
Проверьте рабочий процесс, переместив проблему на project (классическая модель) в целевой столбец.
- Откройте проблему в репозитории. Дополнительные сведения см. в разделе Создание проблемы.
- Пометка проблемы с меткой, которую требуется удалить рабочий процесс. Дополнительные сведения см. в разделе Управление метками.
- Добавьте проблему в столбец project (классическая модель), указанный в файле рабочего процесса. Дополнительные сведения см. в разделе Добавление проблем и запросов на вытягивание в project (classic).
- Чтобы увидеть выполнение рабочего процесса, который запускается при добавлении проблемы в проект, просмотрите журнал выполнений рабочего процесса. Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.
- После завершения рабочего процесса проблема, добавленная в столбец проекта, должна быть удалена указанная метка.
Следующие шаги
- Дополнительные сведения о дополнительных действиях, которые можно сделать с действием
actions/github-script
, см. вactions/github-script
документации по действию. - Выполните поиск в GitHub, чтобы найти примеры рабочих процессов, использующих это действие.