Mergify를 통한 풀 리퀘스트 자동화

4350 단어 gitproductivity
이 기사에서는 pull 요청이 정의된 기준과 일치할 때 작업을 트리거하는 pull 요청 자동화 서비스를 살펴보겠습니다.



왜 필요합니까?



우리 모두 알다시피, 개발자의 일은 풀 리퀘스트를 여는 것으로 끝나지 않습니다. 다음과 같은 많은 변수가 있습니다.

  • CI 테스트: 제발 실패하지 마세요

  • 검토자: 누구에게 내 PR 검토를 요청합니까?

  • 리베이스: 충돌!!!

  • 병합: 성공적으로 배포되기를 바랍니다
  • .

    그리고 당신이 스타트업에서 일하든 기업에서 일하든 우리가 팀을 확장함에 따라 이것은 정말 지루한 작업이 됩니다. 그렇다면 전체를 자동화하지 않는 이유는 무엇입니까? 이것이 바로 Mergify가 하는 일입니다.

    특징



    Mergify는 모든 사용 사례를 처리할 수 있었고 다음과 같은 훌륭한 기능을 제공합니다.
  • 자동 병합

  • 자동 병합 동작을 사용자 정의할 수 있으며 CI 테스트와 같은 기준이 통과하면 PR이 자동으로 병합됩니다! 이는 PR 워크플로에 많은 일관성을 제공합니다.
  • 검토자 지정

  • Github은 CODEOWNERS을 지원하지만 때로는 분기, 문서, 업데이트 등의 유효성 검사와 같이 코드에 의존하지 않을 수 있는 추가 기능이 필요합니다.
  • 병합 대기열

  • 이것은 내가 가장 좋아하는 기능이어야 합니다. 몇 번을 했는지 기억이 안 납니다.

    그러나 새로운 병합이 발생하면 한 번 작동하던 풀 리퀘스트가 메인 브랜치를 깨뜨릴 수 있습니다. 지연된 pull 요청으로 인해 프로덕션 시스템에 회귀 또는 중단이 발생할 수 있습니다.

    병합 대기열을 사용하면 병합되기 전에 기본 분기로 최신 상태가 아닌 끌어오기 요청을 업데이트하여 이 문제를 해결합니다. 업데이트는 지속적인 통합 시스템이 기본 분기의 새 코드로 풀 요청을 다시 테스트하여 잠재적 회귀를 포착하도록 합니다.

    이것은 기본적으로 수동 병합을 제거하고 중요한 pull 요청의 우선 순위를 지정하여 릴리스를 더 잘 계획하는 데 도움이 됩니다.

    병합 대기열에 대해 자세히 알아보기
  • 자동 업데이트 및 백포트

  • 이 기능은 우리의 풀 요청을 그들의 베이스 브랜치로 최신 상태로 유지하는 데 도움이 됩니다. 예를 들어 릴리스 분기에 버그 수정을 제공할 때 이것은 gitflow 패턴을 따르는 경우 매우 일반적이지만 분기를 기본 분기로 리베이스해야 할 때 충돌의 형태로 다시 나타납니다. 따라서 백포트 및 자동 업데이트는 매우 효과적이며 유지 관리되는 모든 분기에서 버그 수정을 푸시하는 데 도움이 됩니다.

    손!



    간단한 사용 사례를 데모 저장소에 통합해 보겠습니다. 풀 리퀘스트 할당 자동화를 만들 것입니다.

    설치

    먼저 Mergify에 로그인하고 Github 저장소에 대한 액세스를 허용해야 합니다. 이것은 Github 계정에 Mergify를 설치해야 합니다.



    있었다! 이것이 대시보드이며 여기에서 구성 생성, 대기열 병합, 사용량 확인, 청구 등을 수행할 수 있습니다.



    구성

    이제 구성 파일.mergify.yml을 생성해 보겠습니다.

    참고: 전체 참조를 확인하십시오.

    pull_request_rules:
      - name: assign PRs with Txt files modified to karan
        conditions:
          - files~=\.txt$
        actions:
          assign:
            add_users:
              - karanpratapsingh
    


    구성이 올바른지 확실하지 않은 경우 언제든지 대시보드에서 확인할 수 있습니다!



    동작!

    행동으로 봅시다. *.txt와 같은 work.txt 파일을 추가한 다음 pull 요청을 생성하겠습니다. 곧 우리는 Mergify가 일을 하는 것을 보게 될 것입니다!



    보시다시피 우리의 pull 요청은 Mergify 봇에 의해 사용자에게 할당되었습니다!

    하지만 잠깐, 더 있습니다!



    이것은 표면을 긁지 않습니다. Mergify로 훨씬 더 많은 것을 할 수 있습니다!



    결론



    도움이 되었기를 바랍니다. Mergify는 워크플로를 단순화하고 SDLC를 개선하는 데 도움이 되는 훌륭한 도구라고 생각합니다. 문제가 발생하면 언제든지 문의하세요!

    좋은 웹페이지 즐겨찾기