Gitlab에서 MRS를 자동으로 생성하는 방법

7073 단어 gitlabshowdevpythonci
이 문서에서는 Gitlab 워크플로우 자동화를 위해 제가 작성한 gitlab-auto-mr CLI 스크립트를 사용하는 방법에 대해 설명합니다.이것은 Gitlab과 함께 사용할 수 있는 매우 간단한 스크립트입니다. Gitlab에서 프로젝트의 새 지점을 만들 때마다 통합 요청(MRS)을 자동으로 생성합니다.

(옵션) Git 기능 분기


Feel free to skip this section if you are already familar with feature branch, skip to the Gitlab Auto MR section


스크립트의 기능과 사용 방법을 소개하기 전에 왜 그것을 사용해야 하는지 살펴보자.만약 당신이 여러 사람과 함께 프로젝트를 하고 있다면, 당신은 당신의 주/생산 부서가 청결을 유지하도록 확보하고 싶습니다.한 가지 방법은 모든 사람이 기능 지점을 사용하는 것이다.따라서 프로젝트에 추가된 모든 기능에 대해 주 지점을 바탕으로 새로운 단기 지점을 만들 것입니다.그리고 통상적으로 개발자는 하나의 특성을 처리하고 지점을 주요 지점에 합병할 준비를 할 때 합병 요청을 해서 그들의 업무를 다른 사람의 업무와 통합시킨다.

이것은 변경 사항을 주 지점에 통합하기 전에 심사할 수 있음을 의미합니다.이것은 주요 지점을 유지하는 데 도움이 된다
"더 깨끗하다", 더 적은 오류가 있어야 한다. 이것은 위의 도표이다.가령 우리가 원한다면
블로그에 반응 단추를 추가합니다.우리는 feature/add-reaction-buttons라는 새로운 지점을 만들 것이다.
그리고 우리는 지점에 변경 사항을 제출할 것이다.
일반적으로 CI 파이프와 결합하면 CI 파이프는 코드에 따라 자동으로 실행됩니다.단원 테스트,linting 등 작업을 실행할 수 있습니다
정적 코드 분석.이것은 첫 번째 회고이다. 우리는 그것이 통과될 수 있도록 확보해야 한다. (그리고 녹색이다)
사람들은 심지어 우리의 코드를 심사하기 시작했다. 위의 그림과 같다.CI 파이프가 작동하면 요청을 병합하면
심사를 받다.합병 요청이 승인되면 주 지점에 합병할 수 있습니다. 저희는 새로운
우리의 코드 라이브러리의 기능은 최종적으로 생산에 배치될 것이다.그리고 우리도 우리의 낡은 지점을 삭제할 수 있다.
더 많은 정보feature branches here를 읽을 수 있습니다.

Note there are many other git flows. This can project can be used in conjunction with all which will use some form of feature branching.


CI/CD


Feel free to skip this section if you are already familiar with CI/CD, Git and Gitlab CI.


연속 통합(CI)은 일반적으로 코드 라이브러리에 통합된 모든 코드가 정상적으로 작동하도록 정의됩니다.
일반적으로 CI 파이핑이라는 그룹을 실행하는 작업과 관련됩니다.우리가 할 수 있는 일들은
코드와 실행 단위 테스트.이것은 통상적으로 Travis, Circle, 심지어 Gitlab 등의 도구를 사용하여 자동으로 완성된다.
이런 상황의 한 용례는 다른 사람들이 우리의 코드 라이브러리에 새로운 기능을 추가하고 있다는 것이다. 우리는 그것을 검사하고 싶다
여전히 유효하다.우리는 새 코드에 대한 단위 테스트를 요청할 때 자동으로 실행하는 CI 파이프를 만들 수 있습니다
(GitHub) 또는 병합 요청(Gitlab)이 열립니다.이것은 우리를 위해 많은 시간을 절약하였으며, 새로운 것을 복제할 필요가 없다
그리고 우리 기계에서 스스로 테스트를 실행한다.
CD(Continuction Design)는 일반적으로 CI 확장을 통해 새 변경 사항을 신속하게 게시할 수 있습니다.
이것은 당신의 발표 과정을 자동화하여 언제든지 응용 프로그램을 배치할 수 있음을 의미합니다
버튼을 클릭합니다.
연속 배치는 우리의 응용 프로그램을 배치할 때 인공적으로 관여할 필요가 없기 때문에 CD를 한 걸음 앞으로 밀어붙였다.
너는 더 많은 것을 읽을 수 있다 this here

Gitlab Auto MR


Gitlab CI에서 실행되는 간단한 CLI 스크립트를 만들었습니다. 새 브랜치를 만들 때마다 자동으로 병합 요청이 생성됩니다.
그래서 너는 이런 것을 가질 수 있다.
stages:
  - pre

create:merge-request:
  image: registry.gitlab.com/gitlab-automation-toolkit/gitlab-auto-mr
  stage: pre
  except:
    - master
    - tags
  script:
    - gitlab_auto_mr -t master -c WIP -d .gitlab/merge_request_templates/merge_request.md -r -s --use-issue-name
이 도구를 사용하려면 GitLab API에 대한 액세스를 나타내는 개인 액세스 토큰을 만들어야 합니다.당신은 이 점을 어떻게 하는지 알 수 있습니다 here.위의 예에서 나는 CI/CD 변수의 개인 영패를 GITLAB_PRIVATE_TOKEN 로 설정했지만, 전송 --private-token 매개 변수로 바꿀 수도 있습니다.
registry.gitlab.com/gitlab-automation-toolkit/gitlab-auto-mr 이 Docker 이미지를 사용하는 경우 cli 도구는 이미
모든 의존항을 미리 설치했다.그렇지 않으면 수동으로 설치할 수도 있습니다.pip install gitlab-auto-mr .
이 특정 작업은 호스트라고 불리지 않는 분기에서만 실행됩니다.이것은 except 조항 때문이다
우리는 위에서 정의한다.따라서 새 피쳐 브랜치를 생성할 때만 실행해야 합니다.그것은 새로운 합병 요청을 만들 것이다
새 브랜치와 마스터 브랜치 사이에 없는 경우생성할 대상 브랜치
병합 요청은 -t 옵션으로 설정되며 이 예에서는 -t master 입니다.예를 들어, 소스 브랜치 -> 대상 브랜치입니다.
다음으로, 우리는 WIP로 모든 새로운 합병 요청을 추가합니다. WIP는 -c WIP 매개 변수로 설정됩니다. 그 중에서 WIP는 일반적으로Work in progress 그래서 다른 개발자들은 우리의 MR을 심사하지 말라는 것을 알고 있다. 왜냐하면 그것은 아직 준비가 되지 않았기 때문이다.다음으로, 이 도구는 당신을 허용합니다
전송-d을 통해 파일 경로를 제공하고 사용할 통합 요청 템플릿을 지정합니다.이 예에서.gitlab/merge_request_templates/merge_request.md 이렇게 보입니다.
# Description

<!-- please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. -->

## Type

- [ ] Bug Fix
- [ ] Improvement
- [ ] New Feature

Fixes #<!-- Issue Number -->
마지막 몇 가지 옵션은 다음과 같습니다.
  • -r: MR 승인 후 소스 브랜치(우리의 기능 브랜치) 삭제
  • -s: 제출을 단일 제출로 압축하여 각 기능 지점은 단일 제출로 주 지점에 표시됩니다
  • --use-issue-name: feature/#6 같은 동작을 설정하고 실행하면 id가 6인 문제를 검색하고 탭과 이정표 등 정보를 추출합니다. 그리고 이 정보를 이 MR에 분배하면 MR here 예시를 볼 수 있습니다.
  • 이 도구를 사용하면 사용 가능한 옵션의 전체 목록을 얻을 수 있습니다
    #211 is here .

    항목 페이지 부록

  • 본 프로젝트의 최초 영감은 this other project
  • post
  • Project Page
  • An example project
  • Example MRs created with this tool
  • 좋은 웹페이지 즐겨찾기