GitLab CE 8.4 연동
Cremit과 Gitlab CE 8.4를 연동하려면 우션 스캔을위한 Cremit용 계정을 GitLab에서 생성해야 합니다.
1. GitLab 계정 생성
- GitLab 8.4 인스턴스에 관리자로 로그인합니다.
- 'Admin Area'로 이동합니다.
- 'New User'를 선택합니다.
- 크리밋용 계정 정보를 입력합니다 (예: username: cremit-scanner, email: cremit-scanner@example.com).
- 'Create user' 버튼을 클릭합니다.
2. 권한 설정
- 스캔할 프로젝트나 그룹에 크리밋 계정을 추가합니다.
- 권한은 프로젝트의 코드를 스캔할 수 있도록 Repoter로 설정합니다.
- 'Add users to group(project)'를 클릭합니다.
권한 자동 설정 스크립트
모든 프로젝트에 동일한 권한을 일괄적으로 추가하려면 다음 Python 스크립트를 사용하세요. 이 스크립트는 특정 유저에게 모든 인터널, 퍼블릭 프로젝트의 Repoter 권한을 부여합니다.
준비 사항
-
Python 설치: 시스템에 Python이 설치되어 있어야 합니다.
-
requests 모듈 설치:
$ pip install requests
스크립트 설정
-
아래 스크립트를 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. 크리밋에 연동 하기
- 크리밋용 계정으로 로그인합니다.
- 좌측 메뉴에서 'Profile Settings'를 클릭합니다.
- 좌측 메뉴에서 'Account'를 클릭합니다.
- Reset Private token 섹션에 입력되어 있는 토큰을 복사합니다.
- Cremit 에 로그인합니다.
- 좌측 메뉴에 Integration을 클릭합니다.
- 'New'를 클릭합니다.
- 'Gitlab'을 클릭합니다.
- 필수 정보를 입력해주세요.
Host: Gitlab 인스턴스의 호스트 이름을 입력합니다.
Access Token: 이전에 복사해놓은 Private Token을 입력합니다.
Label: Integration을 식별할 수 있도록 label을 입력합니다.
- Submit을 클릭하여 통합을 완료합니다.