Skip to main content

카드가 프로젝트(클래식) 열에 추가되면 레이블 제거

프로젝트(클래식)의 특정 열에 이슈 또는 끌어오기 요청이 추가되면 GitHub Actions을(를) 사용하여 레이블을 자동으로 제거할 수 있습니다.

소개

이 자습서에서는 조건과 함께 actions/github-script 작업을 사용하여 프로젝트(클래식)의 특정 열에 추가된 문제 및 끌어오기 요청에서 레이블을 제거하는 방법을 보여 줍니다. 예를 들어 프로젝트 카드를 Done 열로 이동할 때 needs review 레이블을 제거할 수 있습니다.

자습서에서는 먼저 actions/github-script 작업을 사용하는 워크플로 파일을 만듭니다. 그런 다음 필요에 맞게 워크플로를 사용자 지정합니다.

워크플로 만들기

  1. 이 프로젝트 관리 워크플로를 적용할 리포지토리를 선택합니다. 쓰기 권한이 있는 기존 리포지토리를 사용하거나 새 리포지토리를 만들 수 있습니다. 리포지토리를 만드는 자세한 내용은 “새 리포지토리 만들기”를 참조하세요.

  2. 리포지토리에 속한 프로젝트(클래식)를 선택합니다. 이 워크플로는 사용자 또는 조직에 속한 프로젝트에서 사용할 수 없습니다. 기존 프로젝트(클래식)를 사용하거나 새 프로젝트(클래식)를 만들 수 있습니다. 프로젝트 만들기에 대한 자세한 내용은 "project (classic) 만들기"을(를) 참조하세요.

  3. 리포지토리에서 YOUR_WORKFLOW를 선택한 이름으로 바꾸는 .github/workflows/YOUR_WORKFLOW.yml 파일을 만듭니다. 워크플로 파일입니다. 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를 해당 위치로 이동된 문제 및 끌어오기 요청의 레이블을 해제하려는 열의 ID로 바꿉니다.

      열 ID를 찾으려면 프로젝트(클래식)(으)로 이동합니다. 열 제목 옆에 있는 을 클릭한 다음 [열 복사 링크] 를 클릭합니다. 열 ID는 복사된 링크의 끝에 있는 숫자입니다. 예를 들어 24687531https://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 값을, 지정된 열로 옮겨지는 이슈 또는 끌어오기에서 제거하고자 하는 레이블 이름으로 바꿉니다. 레이블에 대한 자세한 내용은 "레이블 관리"을(를) 참조하세요.

  6. 워크플로 파일을 리포지토리의 기본 분기에 커밋합니다. 자세한 내용은 "새 파일 만들기"을 참조하세요.

워크플로 테스트

리포지토리의 프로젝트(클래식)에 있는 프로젝트 카드가 이동할 때마다 이 워크플로가 실행됩니다. 카드가 이슈 또는 끌어오기 요청이고 지정한 열로 이동된 경우, 워크플로는 이슈 또는 끌어오기 요청에서 지정된 레이블을 제거합니다. 메모인 카드는 영향을 받지 않습니다.

프로젝트(클래식)의 이슈를 대상 열로 이동하여 워크플로를 테스트합니다.

  1. 리포지토리에서 이슈를 엽니다. 자세한 내용은 "문제 만들기"을(를) 참조하세요.
  2. 워크플로에서 제거하려는 레이블로 이슈에 레이블을 지정합니다. 자세한 내용은 "레이블 관리"을(를) 참조하세요.
  3. 워크플로 파일에서 지정한 프로젝트(클래식) 열에 이슈를 추가합니다. 자세한 내용은 "자세한 내용은 project (classic)에 이슈 및 끌어오기 요청 추가를 참조하세요."을(를) 참조하세요.
  4. 프로젝트에 문제를 추가하여 트리거된 워크플로 실행을 보려면 워크플로 실행 기록을 확인합니다. 자세한 내용은 "워크플로 실행 기록 보기"을(를) 참조하세요.
  5. 워크플로가 완료되면 프로젝트 열에 추가한 이슈에서 지정된 레이블이 제거되어야 합니다.

다음 단계

  • actions/github-script 작업으로 수행할 수 있는 추가 작업(예: 반응 추가)에 대한 자세한 내용은 actions/github-script 작업 설명서를 참조하세요.
  • GitHub 검색을 통해 이 작업을 사용하는 워크플로의 예를 확인합니다.