본문으로 건너뛰기

GitLab CE 8.4 연동

Cremit과 Gitlab CE 8.4를 연동하려면 우션 스캔을위한 Cremit용 계정을 GitLab에서 생성해야 합니다.

1. GitLab 계정 생성

  1. GitLab 8.4 인스턴스에 관리자로 로그인합니다.
  2. 'Admin Area'로 이동합니다.
  3. 'New User'를 선택합니다.
  4. 크리밋용 계정 정보를 입력합니다 (예: username: cremit-scanner, email: cremit-scanner@example.com).
  5. 'Create user' 버튼을 클릭합니다.

2. 권한 설정

  1. 스캔할 프로젝트나 그룹에 크리밋 계정을 추가합니다.
  2. 권한은 프로젝트의 코드를 스캔할 수 있도록 Repoter로 설정합니다.
  3. 'Add users to group(project)'를 클릭합니다.

권한 자동 설정 스크립트

모든 프로젝트에 동일한 권한을 일괄적으로 추가하려면 다음 Python 스크립트를 사용하세요. 이 스크립트는 특정 유저에게 모든 인터널, 퍼블릭 프로젝트의 Repoter 권한을 부여합니다.

준비 사항

  1. Python 설치: 시스템에 Python이 설치되어 있어야 합니다.

  2. requests 모듈 설치:

    $ pip install requests

스크립트 설정

  1. 아래 스크립트를 invite_group_to_all_visible_repositories.py 파일로 저장하세요:

    NEXT_PAGE_PATTERN = re.compile("<([^<>]+)>; rel=\"next\"")
    def get_projects():
    projects = []
    response = get(f"{host}/api/v3/projects/all?order_by=id&sort=asc", headers=headers)
    projects.extend(response.json())

    if "Link" in response.headers:
    match_result = NEXT_PAGE_PATTERN.search(response.headers["Link"])
    if(match_result):
    next_page_url = match_result[1]
    else:
    next_page_url = None
    else:
    next_page_url = None

    while next_page_url:
    response = get(next_page_url, headers=headers)
    if "Link" in response.headers:
    match_result = NEXT_PAGE_PATTERN.search(response.headers["Link"])
    if(match_result):
    next_page_url = match_result[1]
    else:
    next_page_url = None
    else:
    next_page_url = None
    projects.extend(response.json())

    return projects

    payload = {
    "user_id": user_id,
    "access_level": 20
    }

    for project in get_projects():
    project_id = project["id"]
    project_name = project["name"]
    share_proejct_endpoint = host + f"/api/v3/projects/{project_id}/members"

    response = post(share_proejct_endpoint, json=payload, headers=headers)
    if response.status_code == 201:
    print(f"user {user_name} is joined to {project_name}")

스크립트 실행

터미널에서 다음 명령어를 실행하세요:

$ python invite_group_to_all_visible_repositories.py {GitLab 호스트} {PRIVATE TOKEN}

<GitLab 호스트>: GitLab 인스턴스의 URL (예: https://gitlab.example.com)
<PRIVATE TOKEN>: GitLab 개인 액세스 토큰

3. 크리밋에 연동 하기

  1. 크리밋용 계정으로 로그인합니다.
  2. 좌측 메뉴에서 'Profile Settings'를 클릭합니다.
  3. 좌측 메뉴에서 'Account'를 클릭합니다.
  4. Reset Private token 섹션에 입력되어 있는 토큰을 복사합니다.
  5. Cremit 에 로그인합니다.
  6. 좌측 메뉴에 Integration을 클릭합니다.
  7. 'New'를 클릭합니다.
  8. 'Gitlab'을 클릭합니다.
  9. 필수 정보를 입력해주세요.
    Host: Gitlab 인스턴스의 호스트 이름을 입력합니다.
    Access Token: 이전에 복사해놓은 Private Token을 입력합니다.
    Label: Integration을 식별할 수 있도록 label을 입력합니다.
  10. Submit을 클릭하여 통합을 완료합니다.