프로젝트

Github labels github action으로 설정하기

ImNM 2022. 8. 12. 15:50

조직을 운영하다보면 조직 설정에 Repository부분에서 라벨을 공통으로 설정할 수 있다.

하지만 이 설정이후에 새로만드는 Repostiory에만 적용이된다는점!

 

만약 이미 레포를 만든상태라면 일일히... 설정을 다시해줘야한다.

 

나는 고스락 프로젝트 레포 3개를 일일히 바꿔야했는데...  이거 설정하는 방법이 없나 하고 알아본 결과

(사실 알아볼시간에 일일히 적용했으면 시간아꼈음 ㅋ ) 

 

GitHub - micnncim/action-label-syncer: GitHub Action to sync GitHub labels in the declarative way

GitHub Action to sync GitHub labels in the declarative way - GitHub - micnncim/action-label-syncer: GitHub Action to sync GitHub labels in the declarative way

github.com

누가이미 github action으로 만들어둬서 적용하는 방법에대해 포스팅 하려고한다

 

얻어갈 수 있는 부분

  • {조직}/.github  로 조직설명등 액션돌릴수 있는 레포설정
  • 깃헙 액션으로 yml파일로 기술한 라벨 설정을 여러 레포에 적용하기
  • on : workflow_dispatch 내가 원할때 버튼눌러서 액션 트리거 하기

 

.github  레포 설정


 

GitHub - Gosrock/.github: readMe

readMe. Contribute to Gosrock/.github development by creating an account on GitHub.

github.com

위 레포지토리 처럼 .github 이름으로 레포지토리를 만들면 스페셜 레포지토리라고 

아래 사진처럼 조직 오버뷰에 소개 페이지를 만들수 있다.!

 

프로파일 폴더밑에 README를 만들면끝!

profile/README.md 

 

오늘 우리는 이런용도로 만들어진 .github 레포지토리에 github 액션을 설정할 것이다.

 

필요 준비물 굴러다니는? github 계정 토큰!이 필요합니다!

본인 프로필드가셔서 어세스토큰 뽑아주세요 권한은 아마 레포 수정가능? 기능 까지 넣어야합니다.

 

.github/labels.yml 라벨 설정


- color: 0052CC
  description: "[이슈 대상] 외부 API"
  name: "For: API"
- color: 0052CC
  description: "[이슈대상] 배포에 관한 이슈"
  name: "For: Deploy"
- color: 0052CC
  description: "[이슈 대상] HTML, CSS"
  name: "For: Markup/UX"
- color: 0052CC
  description: "[이슈 대상] models, DB"
  name: "For: Models/DB"
- color: 0052CC
  description: "[이슈 대상] Client-Side"
  name: "For: Script"
- color: 0052CC
  description: "[이슈 대상] API, 모델, 뷰를 제외한 백엔드 로직"
  name: "For: Utils"
- color: 0052CC
  description: "[이슈 대상] views"
  name: "For: Views"

- color: FBCA04
  description: "[이슈 상태] 장기 미해결"
  name: "Status: ICE BOX"
- color: FBCA04
  description: "[이슈 상태] 작업 중 (임시 PR 등)"
  name: "Status: WIP"

- color: D93F0B
  description: "[이슈 상태] 긴급 해결 요망"
  name: "Status: URGENT"

- color: 0E8A16
  description: "[이슈 목적] 프로덕션 코드 수정 외의 문서, 패키지 매니저, 환경 수정"
  name: "Type: Docs/Chore"
- color: 0E8A16
  description: "[이슈 목적] 버그, 애러 수정"
  name: "Type: Errors/Bugs"
- color: 0E8A16
  description: "[이슈 목적] 새로운 기능 추가"
  name: "Type: Feature"
- color: 0E8A16
  description: "[이슈 목적] 프로덕션 코드 리팩토링"
  name: "Type: Refactor"
- color: 0E8A16
  description: "[이슈 목적] 테스트 코드 추가, 수정"
  name: "Type: Test"

라벨정의를 yml파일로 정의합니다.!

color는 라벨색깔

description은 라벨설명

name은 라벨 타이틀을 의미합니다.

 

이렇게 기술해두시면 다른데 복사해서 붙여넣기 할때도편해요!

액션을 돌릴 때 yml 파일을 읽어들여서 돌립니다

 

.github/workflows/label-setting.yml 액션설정


name: Sync labels
on: workflow_dispatch
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: micnncim/action-label-syncer@v1.3.0
        with:
          repository: |
            Gosrock/Ticket-Front-22th
            Gosrock/Ticket-Backend-22th
            Gosrock/Ticket-Deploy-22th
            Gosrock/Ticket-Admin-22th
            Gosrock/.github
          token: ${{ secrets.PERSONAL_TOKEN }}

간단합니당

라밸 싱커 액션으로 위에서 라벨 yml파일을 읽어드립니다. default위치는 .github/labels.yml 이에요!

그리고 이 싱커를 쓰는이유!

personal_token이 접근권한이있는 여러 레포지토리에 한번에 적용할수 있다는점!

 


적용후

라벨이 남아있으면 직접레포가서 라벨 지워주세요

주의점은 각 레포지토레이 이미라벨이있는경우 한번돌리고나서 한개씩 남아있는 버그가 있는데
적용할 각레포지토리의 라벨을 모두 없애셔야합니다!

 

그리고 on : workflow_dispatch 로 돌리는데 이는

저렇게 저 Run workflow 버튼을 누르면 액션을 직접 트리거 시킬수있어요!

 

요렇게 간단하게 이미 만들어진 레포에 라벨을 손쉽게 적용하는 방법을 알아보았습니다!

 

 

이렇게 이쁘게 라벨달아서 사용해보세요 ㅎㅎ