본문으로 건너뛰기

주요 개념

Codeflow에서 사용하는 핵심 리소스와 권한 체계를 설명합니다.

리포지토리

리포지토리(Repository)는 소스 코드와 설정 파일을 저장하고 관리하는 기본 단위입니다. 사용자는 리포지토리를 생성하여 프로젝트 단위로 코드를 관리할 수 있으며, 커밋을 통해 코드 변경 이력을 기록할 수 있습니다. 또한, 브랜치를 활용하여 기능 개발, 테스트, 배포 등 다양한 작업을 분리하여 관리할 수 있으며, 안정적인 코드 관리 환경을 제공합니다.

용어설명
커밋(Commit)리포지토리에 반영한 코드 변경 사항의 기록입니다. 변경 내용, 작성자, 커밋 일시 등의 정보가 포함됩니다.
브랜치(Branch)코드 변경을 독립적으로 작업하고 관리하기 위한 분기 단위입니다. 기존 브랜치의 최신 커밋 또는 특정 커밋을 기준으로 생성할 수 있습니다.
기본 브랜치(Default branch)리포지토리의 기준이 되는 브랜치입니다.
콘솔에서 리포지토리를 생성할 때 기본값은 main이며, 워크플로우 파일은 기본 브랜치의 파일을 기준으로 적용됩니다.
태그(Tag)특정 커밋을 기준으로 버전이나 배포 시점을 식별하기 위한 기준점입니다.
브랜치와 달리 작업 흐름을 분리하기보다 특정 커밋을 표시하는 용도로 사용합니다.

리포지토리, 브랜치, 태그 생성 및 관리 방법은 리포지토리 생성 및 관리, 브랜치 생성 및 관리, 태그 생성 및 관리를 참고하세요.

풀 리퀘스트

풀 리퀘스트(Pull Request, PR)는 코드 변경 사항에 대한 검토와 병합을 위한 협업 기능입니다. 사용자는 특정 브랜치에서 작업한 내용을 풀 리퀘스트로 생성하여 팀원에게 공유하고, 리뷰 및 승인 과정을 거쳐 코드를 병합할 수 있습니다. 이를 통해 코드 품질을 유지하고, 협업 과정에서 발생할 수 있는 오류를 사전에 방지할 수 있습니다.

용어설명
기준 브랜치풀 리퀘스트의 변경 사항이 최종적으로 병합될 대상 브랜치입니다.
작업 브랜치병합하려는 변경 사항이 포함된 브랜치입니다.
리뷰어풀 리퀘스트의 변경 사항을 검토하고 승인, 반려 또는 리뷰 취소를 수행하는 사용자입니다.
승인 규칙풀 리퀘스트를 병합하기 위해 충족해야 하는 리뷰어 승인 조건으로 리포지토리에서 단일 승인 또는 전체 합의 규칙을 설정할 수 있습니다.
상태풀 리퀘스트의 진행 여부를 나타냅니다. OPEN, CLOSED 상태로 구분됩니다.
승인 상태리뷰어의 검토 결과를 나타냅니다. Pending, Approved, Merged, Canceled, Rejected 상태로 구분됩니다.

풀 리퀘스트 생성, 검토, 병합 방법은 풀 리퀘스트 생성 및 관리를 참고하세요.

워크플로우

워크플로우(Workflow)는 빌드, 테스트 등 반복적인 작업을 자동으로 실행하기 위한 작업 정의 단위입니다. 코드 푸시와 같은 이벤트 또는 사용자의 수동 실행을 기준으로 워크플로우를 구성하여 작업을 실행할 수 있습니다. 또한, 실행 결과와 로그, 상태 정보를 통해 작업 이력을 확인할 수 있어 성공 여부를 판단하고 오류 발생 시 빠르게 대응할 수 있습니다. 이를 통해 개발 과정의 반복 작업을 줄이고 운영 가시성을 높일 수 있습니다.

용어설명
워크플로우 파일실행할 작업을 정의하는 YAML 파일입니다.
기본 브랜치의 .codeflow/workflows 경로에 .yml 또는 .yaml 형식으로 저장합니다.
워크플로우 실행 이력워크플로우 실행 결과와 로그를 확인하기 위한 기록입니다.
실행 결과는 Succeeded, Failed, Running, Queued, Canceled 상태로 구분됩니다.
러너(Runner)워크플로우를 실제로 실행하는 실행 환경입니다. Codeflow는 Self-hosted runner(자체 호스팅 러너) 구성을 지원합니다.

워크플로우 실행에 필요한 리포지토리 단위 설정은 콘솔의 액션 설정 탭에서 관리합니다.

설정설명
리포지토리 토큰러너를 리포지토리에 등록하기 위한 인증 키이며, 러너 등록 시 사용됩니다.
리포지토리 변수워크플로우에서 반복적으로 사용하는 값을 미리 정의하여 재사용하는 설정입니다.

워크플로우 파일 실행, 로그 확인, 이력 관리는 워크플로우 관리에서, 러너 등록 및 리포지토리 변수 관리는 액션 설정에서 확인할 수 있습니다.

IAM 역할 관리

Codeflow는 IAM(Identity and Access Management)의 역할 기반 액세스 제어(Role-Based Access Control, RBAC)를 따릅니다. Codeflow 리소스는 프로젝트 하위에서 관리되며, 프로젝트 역할과 Codeflow 서비스 역할에 따라 접근 권한이 부여됩니다.

  • 프로젝트 관리자프로젝트 멤버는 프로젝트 내 Codeflow 리소스를 생성, 조회, 수정, 삭제할 수 있습니다.
  • 프로젝트 리더는 프로젝트 내 Codeflow 리소스를 조회할 수 있습니다.
  • Codeflow 리소스에 대한 권한만 별도로 부여하려면 Codeflow 매니저 또는 Codeflow 뷰어 서비스 역할을 사용할 수 있습니다. Codeflow 매니저는 모든 Codeflow 리소스를 생성, 조회, 수정, 삭제할 수 있으며, Codeflow 뷰어는 모든 Codeflow 리소스를 조회할 수 있습니다.
주의
  • Codeflow 매니저 역할만 부여받은 경우, 풀 리퀘스트를 생성할 수는 있지만 리뷰어 지정 시 사용자 목록을 조회할 수 없습니다. 사용자 목록 조회를 위해서는 프로젝트 리더 이상 또는 IAM 프로젝트 관리자 권한이 추가로 필요합니다.

프로젝트 역할의 권한 범위는 프로젝트 역할에서, Codeflow 서비스 역할의 권한 범위는 서비스 역할에서 확인할 수 있습니다. 사용자 또는 그룹에 역할을 할당하는 방법은 역할 할당 및 변경을 참고하세요.

권한프로젝트 관리자
(Admin)   
프로젝트 멤버
(Member)   
프로젝트 리더
(Reader)   
Codeflow 매니저
(Manager)   
Codeflow 뷰어
(Viewer)
프로젝트 멤버 관리
리포지토리 생성  
리포지토리 삭제  
리포지토리 설정  
리포지토리 조회  
풀 리퀘스트 생성  
풀 리퀘스트 조회