gitlab 16

[GitLab] Merge Request - Squash 기본 활성화하기

개요2024.08.30-[Git] Squash - 커밋 압축하기에서 여러 개의 작은 커밋을 하나의 커밋으로 압축하는 Squash를 알아보았다.이번 글에서는 GitLab에서 Merge Request를 머지할 때 Squash 기능을 사용하는 방법을 적어둔다.  Merge Request - SquashGitLab에서 Merge Request를 할 때 Squash commits 체크박스를 체크하면 머지할 떄 압축된 커밋 하나와 머지 커밋 하나, 총 두 개의 커밋이 target branch에 추가된다.   기본 옵션 설정레포지터리 설정에서 Merge Request를 생성할 때의 Squash 관련 기본값을 설정할 수 있다. 설정할 수 있는 기본값은 아래와 같다.Do now allow : Squash 미허용. 체크 ..

Git | GitLab 2024.09.19

[GitLab] 브랜치/TAG 간 비교

개요저장소 내에서 버전 관리를 하면서 태그나 브랜치 간에 차이점을 비교하려고 한다. 예로 들어 v0.4과 v0.5 간의 차이가 발생하는 commit 목록을 확인하고 싶다.확인하는 방법에는 여러 가지가 존재하겠지만, 이 글에서는 GitLab 웹에서 확인하는 방법을 적어두려고 한다.  Compare revisionsGitLab에서느 Compare revisions(Git 리비전 비교) 기능을 사용하여 저장소 내 브랜치나 태그를 기준으로 비교할 수 있다.GitLab 공식 레포지터리를 예로 들어 최신 버전과 직전 버전을 비교해보자. 1. 레포지터리 메뉴 > Code > Compare revisions 클릭GitLab 서버 버전에 따라 메뉴 접근 경로는 달라질 수 있는 것 같다. Code가 아니라 Reposito..

Git | GitLab 2024.06.05

[GitLab] API로 원격 저장소 파일 읽기

개요 GitLab 저장소에 저장되어 있는 파일을 클론하지 않고 내용을 확인하고 싶다. 웹 요청이나 API를 통해 확인할 수 있을 것 같은데, 이 글에서는 GitLab API를 이용해 레포지터리에 저장된 파일 정보를 확인해본다. 원격지 파일 정보 확인 원격 저장소에 저장된 파일에 대한 정보는 다음의 url로 요청할 수 있다. 요청 시 원격지 프로젝트의 아이디 값과 확인할 파일의 경로를 지정해주어야 하는데, 파일에 경로에는 branch 정보도 포함되어야 한다. branch 정보는 ref 속성으로 지정한다. GET /projects/:id/repository/files/:file_path # 예시 curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api..

Git | GitLab 2024.05.09

[GitLab] API로 MR 업데이트하기

개요 2024.01.05-[GitLab] git cli로 Merge Request 생성에서 Git Push와 함께 MR 생성을 자동화할 수 있도록 CLI로 작업을 해봤는데, 이후 동작에서 이미 생성되어 있는 MR 정보를 갱신해야 할 필요가 생겼다. GitLab API를 이용해 특정 프로젝트의 MR을 찾아 업데이트하는 방법을 정리한다. 예시로 파이썬으로 구현해둔다. MR 업데이트 공식 문서에 의하면 MR을 업데이트할 때는 아래와 같은 URL에 Put 요청을 하면 된다. project의 id와 mr의 id는 필수값이고, 업데이트할 값에 해당하는 labels, assignee_id, title, description 등등의 여러 값은 필요에 맞게 전달하면 된다. PUT /projects/:id/merge_re..

Git | GitLab 2024.05.03

[GitLab] CLI로 fork 저장소 MR 생성 시 업스트림 저장소에 생성되는 문제

개요 2024.01.05-[GitLab] git cli로 Merge Request 생성에서 CLI를 이용해 MR을 생성하는 방법을 정리했다. 해당 부분을 프로그램 상에서 테스트하기 위해 공통 저장소를 Fork한 뒤, Fork 저장소로 MR 생성을 시도해보았는데……Fork 저장소가 아니라 원본(업스트림) 저장소를 대상으로 MR이 생성되는 현상을 확인했다. 원인을 파악하고 해결해본다. 원인 사실 달리 원인이 있던 것은 아니고…… push_option을 사용해 MR을 생성할 프로젝트를 지정할 수 있는 기능이 비교적 최근에 개발되었다. 아무래도 처음 merge_request 관련 옵션을 개발할 때 Fork 저장소에서 업스트림 저장소를 대상으로 MR이 생성된다는 사용자 시나리오를 생각하고 개발한 것 같다. 그 이..

Git | GitLab 2024.05.02

[GitLab] 프로젝트 ID 확인하기

개요GitLab API를 이용해 프로젝트에 대한 작업이 필요한데, 일반적으로 프로젝트에 대한 작업은 프로젝트 ID를 지정하게끔 되어 있는 것 같다. 이 글에서는 GitLab 프로젝트 ID를 확인하는 방법에 대해 적어둔다.  웹에서 확인프로젝트 ID는 웹에서 간단하게 확인할 수 있다. 버전에 따라 위치는 다르지만 GitLab 프로젝트의 메인 페이지에서 확인할 수 있다.또는 프로젝트의 General Settings 페이지에서 확인할 수도 있다.   API로 확인GitLab API를 통해서도 확인할 수 있다.사실 이 글에서 기록해두려고 했던 바가 이 방법이다. 조금 더 정확하게는 프로젝트의 네임스페이스와 이름을 가지고 프로젝트 ID를 찾는 방법을 적어둔다.https:///api/v4/groups//projec..

Git | GitLab 2024.04.25

[GitLab] git cli로 Merge Request 생성

개요 로컬 GitLab 레포지터리에서 발생한 수정 사항을 원격지에 Push 하고 싶다. Branch 전략에 의해 master/main 브랜치에 직접 push하는 게 아니라 Merge Request를 통해 수정 사항을 반영하려고 하는데, 이 과정을 자동화할 수 있었으면 한다. 혹시 Git CLI 등으로 MR을 생성할 수 있는지, 어떻게 하는지 정리한다. git push -o 구글링과 공식 문서에 의하면 Git 2.10 이상 GitLab 11.10부터 push 명령에 옵션을 추가하여 MR을 생성할 수 있다고 한다. git push --push-option= # 또는 git push -o 사용할 수 있는 옵션은 여러가지인데 MR 생성과 설정에 대한 기본적인 옵션 정도만 살펴봤다. git push \ -o me..

Git | GitLab 2024.01.30

[GitLab] Mirroring repositories - LFS objects are missing 에러

개요GitLab 저장소 백업을 위해 GitLab의 Mirroing repositories 기능을 이용해 다른 GitLab 저장소로 Push하고 있는데, 아래와 같은 LFS objects are missing 에러 메세지와 함께 Push에 실패했다.13:close stream to gitaly-ruby: rpc error: code = Unknown desc = Gitlab::Git::CommandError: remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all". To http://gitlab.example/root/test.git ! [remote rejected] ..

Git | GitLab 2022.10.23

[GitLab] 버전 확인

GitLab 공식 문서를 참조하기 위해 서비스의 버전을 확인해보고자 한다. GitLab 버전을 확인할 수 있는 방법을 몇 가지 정리해둔다. 방법 1. 도움말 페이지 접속 웹으로 버전 확인할 GitLab에 로그인한 뒤 도움말 페이지를 접근하면 해당 GitLab의 버전을 확인할 수 있다. help 페이지는 오른쪽 상단의 드롭다운 메뉴 또는 GitLab의 EXTERNAL_URL 끝에 /help를 붙여 접근할 수 있다. 예시 ) https://gitlab.com/help 2. API 사용 GitLab API를 사용하여 버전을 확인할 수 있다. API를 사용할 때에는 액세스 토큰이 필요하다. curl --header "PRIVATE-TOKEN: YOUR ACCESS TOKEN" http://GITLAB.URL.C..

Git | GitLab 2022.05.07

[GitLab] Admin 계정으로 Push하기

보통 GitLab에서 Admin 계정으로 저장소를 생성해서 commit/push를 할 일은 없을 거라고 생각하지만…… 개인적으로 설치해서 혼자 사용하는 저장소인 경우에는 귀찮음을 이유로 계정 관리에 소홀할 수 있을 것 같다. 그래서 이 글에서는 Admin 계정으로 원격 gitlab 저장소에 push 하는 방법을 정리하려고 한다. 일반 사용자 계정을 이용하는 것과 다른 점은 없다. 방법 1. 사용자 설정 git commit 하고 push를 하기 위해서는 먼저 로컬 저장소에 사용자 설정을 해주어야 한다. 로컬 저장소 설정 확인 git config --list 로컬 저장소 사용자 설정 global 설정을 하는 건 적절하지 않을 것 같으므로 해당 저장소에서만 유효하도록 --local 옵션을 주어 설정했다. gi..

Git | GitLab 2022.05.03
1 2