Document toolboxDocument toolbox

0. gitea


1. gitea 개요

gitea는 gitlab, github 등 과 같이 웹상에서 형상관리도구인 git을 관리할 수 있는 도구입니다.

gitea 특징

  • 쉬운 설치

  • 크로스 플랫폼

  • 가벼움

  • 오픈소스

2. gitea 사용

web UI 접속

KeyCloak 등 연동되어 있는 경우 OIDC PROVIDER를 통해 로그인 하며, LOCAL DB 통해서 gitea로 바로 로그인 할 수 있습니다. (ex. URL: https://gitea.k8s.test.playce.cloud )

  • gitea 메인 화면

  • gitea 로그인 화면

Repository 생성

  • 메인화면에서 맨위 + 기호를 눌러 새 저장소를 클릭합니다.

  • 소유자 및 저장소 이름을 입력합니다.

    • 소유자 추가는 아래 조직 설정 매뉴얼을 참고합니다.

    • 저장소 이름은 영문자, 숫자, 대시('-'), 밑줄('_') 과 점('.') 만 입력 가능합니다.

  • 저장소 만들기를 클릭하면 저장소가 생성 되며 화면에 표시됩니다.

  • git을 통해 소스 코드를 push하면 소스코드가 추가된 것을 확인할 수 있습니다.

Branch 생성

  • 저장소-코드-브랜치 화면으로 이동하여 branch 생성 버튼을 클릭합니다.

    • Web UI 상에서는 기존 branch를 기반으로 신규 branch가 생성되며 빈 branch는 git 명령을 통해 생성합니다.

  • 브런치명을 입력하고 Create Branach 버튼을 클릭합니다.

  • 신규 branch가 생성되며 생성된 branch로 자동 전환됩니다.

조직 설정

  • 조직을 생성하여 조직별로 저장소를 관리할 수 있습니다.

  • 메인화면에서 맨위 + 기호를 눌러 새로운 조직을 클릭합니다.

  • 조직 이름을 입력하고 가시성, 권한을 선택합니다.

    • 조직 이름은 영문자, 숫자, 대시('-'), 밑줄('_') 과 점('.') 만 입력 가능합니다.

    • 가시성

      • Public: 공용으로 모든 사용자에게 표시

      • Limited: 로그인한 사용자에게만 표시

      • Private: 조직에 포함된 사용자에게만 표시

    • 권한: 레포지토리 관리자가 조직에 속한 팀에 권한을 추가/삭제 할 수 있습니다.

User 생성 및 할당

사용자 생성

  • 매인화면-계정-사이트 관리 화면으로 이동하여 사용자 계정 탭으로 이동합니다.

  • 사용자 계정 생성 버튼을 클릭하여 신규 사용자를 추가합니다.

  • 사용자명, 이메일 주소 및 비밀번호를 입력하고 사용자 계성 생성 버튼을 클릭합니다.

    • 인증소스: 로컬 또는 OIDC 등을 선택하여 관련된 DB에 사용자를 생성할 수 가 있습니다.

    • User visibility: 해당 사용자의 표시 정보를 설정합니다.

      • public: 모든 사용자에게 표시

      • limited: 로그인한 사용자에게만 표시

      • private: 해당 사용자가 포함되어 있는 조직 구성원에게만 표시

  • 리스트에 추가된 사용자가 표시됩니다.

사용자 수정

  • 사용자 리스트에서 수정하기 버튼을 눌러 사용자 정보를 수정할 수 있습니다.

  • 사용자 정보를 수정한 후 사용자 계정 갱신을 클릭합니다.

    • 로그인 비활성화: 해당 사용자는 로그인 할 수 없음

    • 관리자: 사용자에게 관리자 권한을 부여

    • Is Restricted: 접근 제한을 설정하여 사용자에게 권한이 부여된 저장소만 접근이 가능

조직에 사용자 추가

  • 조직-팀으로 이동하여 새 팀 버튼을 클릭합니다.

  • 팀 이름 및 옵션을 설정하고 팀 만들기 버튼을 클릭합니다.

    • Repository access

      • Special repositories: 팀에 명시적으로 추가된 리포지토리에만 액세스 가능

      • All repositories: 모든 레파지토리에 엑세스 가능

      • Create repositories: 새로운 레파지토리 생성 권한을 가지며, 생성자는 관리자 권한이 부여됨

    • 권한

      • General Access: 권한 테이블에 설정된 권한만 획득

      • 관리자 액세스: 레파지토리를 추가할 수 있으며, 공동 작업자를 추가할 수 있음

  • 사용자를 검색하여 팀 구성원으로 추가할 수 있습니다.

  • 저장소 접근 권한이 생겨 팀 구성원의 저장소 목록에 표시됩니다.

Webhook

webhook을 설정하여 commit, pull request 등의 이벤트가 발생할 때, 특정 URL로 정보를 전송할 수 있습니다.
매뉴얼에서는 tekton trigger와 연동하는 webhook 설정을 설명합니다.

Webhook 생성

  • 레파지토리 화면에서 설정을 클릭합니다.

  • 웹훅 탭으로 이동하여 webhook 추가 버튼을 클릭하여 이벤트 정보를 전송할 서비스를 선택합니다.

  • 대상 URL, 트리거 정보를 입력 Webhook 추가 버튼을 클릭합니다.

  • 사용자 정의 이벤트로 옵션을 변경하여 특정 상황에 대한 트리거를 선택할 수 있습니다.

  • 웹훅이 추가되면 URL 정보가 리스트로 표시됩니다.

Webhook 연결 테스트

  • 웹훅 리스트에서 웹훅을 선택하여 전달 시험 버튼을 클릭하면 테스트를 수행 할 수 있습니다.

  • 전달 시험 결과가 최근의 Deliveries 테이블에 표시됩니다.

  • 해당 결과를 클릭하면 상세 정보를 확인할 수 있습니다.

Pull Request

branch 간 머지 시 충돌을 최소화하기 위해 Pull Request 기능을 사용합니다.
Pull Request를 생성하면 사용자 리뷰를 거쳐 branch 머지를 수행하게 됩니다.

Pull Request 생성하기

  • 레파지토리 화면에서 새 풀 리퀘스트 버튼을 클릭합니다.

  • 병합할 branch와 가져올 branch를 선택합니다.
    변경사항이 있을 경우 커밋 정보가 표시되며 새 풀 리퀘스트 버튼이 활성화 됩니다.

  • Pull Request 정보를 입력하고 Pull Request 생성 버튼을 클릭합니다.
    담당자 지정된 경우 담장자가 최종 승인 후 branch 머지가 수행됩니다.(담당자 지정이 없을 경우 관리자 권한이 있는 사용자가 수행이 가능합니다.)

  • Pull Request가 생성되면 저장소에 포함된 사용자가 정보를 확인할 수 있습니다.

코드 리뷰하기

  • 파일 변경됨 탭으로 이동하여 코드 리뷰를 진행할 수 있습니다.

  • 코드 리뷰 완료 후 승인 버튼을 클릭하여 리뷰를 완료합니다.

Pull Request 승인하기

  • 리뷰 정보가 Pull Request 화면에 표시되며, 머지 버튼이 활성화 됩니다.(리뷰어 선택이 없거나 gitea 설정에 따라 리뷰없이 바로 머지가 가능할 수 있습니다.)

  • 정보를 입력후 머진 버튼을 클릭하면 Pull Request가 완료됩니다.

  • Pull Request 정보를 커밋 리스트에서 확인할 수 있습니다.

3. gitea 기술 자료

https://docs.gitea.io/en-us/

https://git-scm.com/docs

4. gitea 릴리즈 노트

https://github.com/go-gitea/gitea/releases