본문으로 건너뛰기

Source Code Management

Cloud ZCP 플랫폼은 Gitea를 통합 도구로 사용하여 소스 코드 관리(SCM)를 위한 온프레미스 Git 솔루션입니다. Gitea와 같은 온프레미스 솔루션을 사용하면 공용 SCM 솔루션 사용과 관련된 보안 문제를 완화할 수 있습니다. Gitea는 버전 관리, 협업 및 플랫폼의 CI/CD 기능과의 통합을 위한 표준 Git 기능을 제공합니다.

ZCP 콘솔 내에서 애플리케이션을 등록할 때, Gitea(또는 다른 표준 Git 서버)의 소스 코드 리포지토리에 연결합니다. 플랫폼은 빌드 프로세스를 위해 소스 리포지토리에 접근하는 데 필요한 자격 증명(secret)을 안전하게 관리합니다. 플랫폼 내의 빌드 파이프라인은 연결된 Git 리포지토리의 특정 브랜치에서 코드를 가져오도록 구성됩니다.

Gitea 접근

ZCP 콘솔의 프로젝트 사용자 메뉴를 통해 통합된 Gitea 인스턴스에 접근할 수 있습니다: Dev Tools > Source:

Gitea에서의 귀하의 계정은 현재 로그인한 Cloud ZCP 계정에 자동으로 연결됩니다. 처음 연결할 때는 Git 명령줄 작업을 위해 특별히 비밀번호를 설정해야 할 수 있습니다(예: git pullgit push).

사용자 권한 및 역할

프로젝트 맥락 내에서 Gitea를 사용할 수 있는 권한은 ZCP 콘솔의 관리자 역할을 가진 사용자에 의해 관리됩니다.

프로젝트 구성원에 대한 접근 및 권한은 적절한 역할을 사용자에게 직접 할당하거나 필요한 역할을 보유한 그룹에 사용자를 추가하여 부여됩니다. 이러한 권한은 ZCP 내에서 정의된 역할에 연결됩니다.

사용자가 서로 다른 권한 수준의 여러 역할을 동시에 부여받는 경우, 가장 높은 권한 수준이 적용됩니다.

git-administrator 또는 git-writer와 같은 특정 역할은 Gitea의 프로젝트 조직 아래에 새로운 리포지토리를 생성하는 데 필요합니다.

조직 및 리포지토리

  • Organizations: Gitea 조직은 ZCP 콘솔의 프로젝트와 일대일로 매핑되어 자동으로 생성 및 관리됩니다. 조직 이름은 REALM-PROJECT 규칙을 따릅니다.
  • Repositories: Git 리포지토리는 애플리케이션 소스 코드의 파일과 폴더를 저장하고 관리합니다. 일반적으로 애플리케이션당 하나의 리포지토리를 생성합니다.

리포지토리 생성

리포지토리를 생성하려면 아래 단계를 따르십시오:

  1. Gitea의 조직 페이지 또는 개인 대시보드로 이동합니다.

  2. New Repository 버튼을 클릭합니다.

  1. 리포지토리 설정을 구성합니다:
  • Owner: 개인 계정 또는 프로젝트의 조직을 선택합니다(적절한 권한 필요).
  • Repository Name: 리포지토리에 대한 고유한 이름을 입력합니다.
  • Visibility: 리포지토리가 Public인지 Private인지 선택합니다. Public 리포지토리는 익명 사용자에 의해 볼 수 있습니다.
  • Description: 리포지토리에 대한 설명을 선택적으로 입력합니다.
  • Issue Labels: 문제에 대한 레이블 세트를 선택적으로 지정합니다.
  • .gitignore: 원하는 경우 언어별 .gitignore 템플릿을 선택합니다.
  • License: 코드에 대한 소프트웨어 라이센스를 선택합니다.
  • README: README 파일로 리포지토리를 초기화할지 선택합니다.
  • Initialize Repository: 생성 시 선택한 .gitignore, 라이센스 및 README 파일을 자동으로 추가하려면 이 상자를 체크합니다.
  1. Create Repository을 클릭합니다.

기본 Git 작업 (Git CLI 사용)

표준 Git 명령줄 인터페이스(CLI) 명령을 사용하여 Gitea 리포지토리와 상호작용합니다.

Git 사용자 설정

커밋하기 전에 로컬 Git 구성에 사용자 정보가 설정되어 있는지 확인합니다:

$ git config --global user.email "your_email@example.com"
$ git config --global user.name "Your Name"

리포지토리 복제

Gitea의 리포지토리 메인 페이지에서 리포지토리 URL(HTTPS 또는 SSH)을 찾아 로컬 머신에 리포지토리를 처음 다운로드합니다:

$ git clone <repository_url> 

Gitea 사용자 이름과 비밀번호(명령줄 작업을 위해 설정된)를 입력하라는 메시지가 표시됩니다.

상태 확인

작업 디렉토리와 스테이징 영역의 상태를 확인합니다:

$ git status 

수정된 파일, 추가된 파일 또는 추적되지 않은 파일이 표시됩니다.

변경 사항 스테이징

커밋하기 전에 작업 디렉토리의 변경 사항을 스테이징 영역(인덱스)에 추가합니다.

$ git add <file_name_or_path> 
# 또는 모든 변경 사항을 스테이징합니다
$ git add .

파일은 커밋에 포함되기 위해 스테이징('추적')되어야 합니다.

변경 사항 커밋

스테이징된 변경 사항을 로컬 리포지토리 기록에 기록합니다.

$ git commit -m "Your descriptive commit message" 

이것은 스냅샷을 로컬에 저장합니다; 원격 Gitea 리포지토리에는 영향을 미치지 않습니다.

변경 사항 가져오기

원격 Gitea 리포지토리에서 변경 사항을 가져와 현재 로컬 브랜치에 병합합니다. 최신 상태를 유지하기 위해 자주 수행합니다.

git pull origin <branch_name> 

변경 사항 푸시

로컬 커밋을 원격 Gitea 리포지토리에 업로드합니다:

git push origin <branch_name>

origin은 일반적으로 원격 Gitea 서버를 참조합니다. branch_name은 푸시하려는 브랜치입니다(예: master, main, develop). 캐시되지 않은 경우 자격 증명을 입력하라는 메시지가 표시됩니다.

빌드 파이프라인과 통합

Gitea에 저장된 소스 코드는 ZCP의 CI/CD 프로세스에 중심적입니다.

  • Applications 섹션에서 애플리케이션을 생성할 때 Gitea 리포지토리를 가리키는 Git 리포지토리 URL을 제공해야 합니다.
  • 빌드 중 리포지토리에 대한 안전한 접근은 애플리케이션 설정 내에서 구성된 secret을 통해 처리됩니다.
  • 각 빌드 파이프라인은 연결된 Gitea 리포지토리 내의 특정 브랜치에서 소스 코드를 체크아웃하도록 구성됩니다. 이를 통해 동일한 코드베이스에서 서로 다른 버전이나 환경(예: develop, staging, master)을 빌드할 수 있습니다.