참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
소개
이 자습서에서는 조건과 함께 actions/github-script
작업을 사용하여 프로젝트(클래식)의 특정 열에 추가된 문제 및 끌어오기 요청에서 레이블을 제거하는 방법을 보여 줍니다. 예를 들어 프로젝트 카드를 Done
열로 이동할 때 needs review
레이블을 제거할 수 있습니다.
자습서에서는 먼저 actions/github-script
작업을 사용하는 워크플로 파일을 만듭니다. 그런 다음 필요에 맞게 워크플로를 사용자 지정합니다.
워크플로 만들기
-
이 프로젝트 관리 워크플로를 적용할 리포지토리를 선택합니다. 쓰기 권한이 있는 기존 리포지토리를 사용하거나 새 리포지토리를 만들 수 있습니다. 리포지토리를 만드는 자세한 내용은 “새 리포지토리 만들기”를 참조하세요.
-
리포지토리에 속한 프로젝트(클래식)를 선택합니다. 이 워크플로는 사용자 또는 조직에 속한 프로젝트에서 사용할 수 없습니다. 기존 프로젝트(클래식)를 사용하거나 새 프로젝트(클래식)를 만들 수 있습니다. 프로젝트 만들기에 대한 자세한 내용은 "project (classic) 만들기"을(를) 참조하세요.
-
리포지토리에서
YOUR_WORKFLOW
를 선택한 이름으로 바꾸는.github/workflows/YOUR_WORKFLOW.yml
파일을 만듭니다. 워크플로 파일입니다. 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
를 해당 위치로 이동된 문제 및 끌어오기 요청의 레이블을 해제하려는 열의 ID로 바꿉니다.열 ID를 찾으려면 프로젝트(클래식)(으)로 이동합니다. 열 제목 옆에 있는 을 클릭한 다음 [열 복사 링크] 를 클릭합니다. 열 ID는 복사된 링크의 끝에 있는 숫자입니다. 예를 들어
24687531
은https://github.com/octocat/octo-repo/projects/1#column-24687531
의 열 ID입니다.둘 이상의 레이블에 대해 작업하려면 조건을
||
로 구분합니다. 예를 들어if github.event.project_card.column_id == '12345678' || github.event.project_card.column_id == '87654321'
은 프로젝트 카드가12345678
열 또는87654321
열에 추가될 때마다 작동합니다. 열이 다른 프로젝트(클래식)에 있을 수 있습니다. -
github.rest.issues.removeLabel()
함수의name
값을, 지정된 열로 옮겨지는 이슈 또는 끌어오기에서 제거하고자 하는 레이블 이름으로 바꿉니다. 레이블에 대한 자세한 내용은 "레이블 관리"을(를) 참조하세요.
-
-
워크플로 파일을 리포지토리의 기본 분기에 커밋합니다. 자세한 내용은 "새 파일 만들기"을 참조하세요.
워크플로 테스트
리포지토리의 프로젝트(클래식)에 있는 프로젝트 카드가 이동할 때마다 이 워크플로가 실행됩니다. 카드가 이슈 또는 끌어오기 요청이고 지정한 열로 이동된 경우, 워크플로는 이슈 또는 끌어오기 요청에서 지정된 레이블을 제거합니다. 메모인 카드는 영향을 받지 않습니다.
프로젝트(클래식)의 이슈를 대상 열로 이동하여 워크플로를 테스트합니다.
- 리포지토리에서 이슈를 엽니다. 자세한 내용은 "문제 만들기"을(를) 참조하세요.
- 워크플로에서 제거하려는 레이블로 이슈에 레이블을 지정합니다. 자세한 내용은 "레이블 관리"을(를) 참조하세요.
- 워크플로 파일에서 지정한 프로젝트(클래식) 열에 이슈를 추가합니다. 자세한 내용은 "자세한 내용은 project (classic)에 이슈 및 끌어오기 요청 추가를 참조하세요."을(를) 참조하세요.
- 프로젝트에 문제를 추가하여 트리거된 워크플로 실행을 보려면 워크플로 실행 기록을 확인합니다. 자세한 내용은 "워크플로 실행 기록 보기"을(를) 참조하세요.
- 워크플로가 완료되면 프로젝트 열에 추가한 이슈에서 지정된 레이블이 제거되어야 합니다.
다음 단계
actions/github-script
작업으로 수행할 수 있는 추가 작업(예: 반응 추가)에 대한 자세한 내용은actions/github-script
작업 설명서를 참조하세요.- GitHub 검색을 통해 이 작업을 사용하는 워크플로의 예를 확인합니다.