승인 규칙 개발 가이드라인
머지 리퀘스트 승인 규칙의 백엔드 설계와 데이터 모델, 컨트롤러, 서비스, 플로우 등 구현 전반을 설명합니다.
이 문서는 머지 리퀘스트 승인 규칙 과 관련된 모든 기능의 백엔드 설계 및 플로우를 설명합니다. 이 문서는 기여자들이 코드 설계를 더 쉽게 이해하고, 기능과 구현이 발전함에 따라 개선할 수 있는 부분을 파악하는 데 도움을 주기 위해 작성되었습니다. 구현 세부 사항이 너무 많이 포함되지 않도록 의도적으로 작성되었는데, 이는 세부 사항이 자주 변경될 수 있기 때문입니다. 코드 자체가 그런 내용을 더 잘 설명해 줍니다. 여기서 언급되는 컴포넌트들은 승인 규칙 기능이 동작하기 위한 애플리케이션의 주요 구성 요소입니다. 이 문서는 살아있는 문서로, 이 문서에서 다루는 코드베이스 부분이 변경되거나 제거되거나 새로운 컴포넌트가 추가될 때 그에 맞게 업데이트되어야 합니다. 데이터 모델 # %%{init: { "fontFamily": "GitLab Sans" }}%% erDiagram accTitle: Approval rules data model accDescr: Entity relationship diagram of approval rules Project ||--o{ MergeRequest: " " Project ||--o{ ApprovalProjectRule: " " ApprovalProjectRule }o--o{ User: " " ApprovalProjectRule }o--o{ Group: " " ApprovalProjectRule }o--o{ ProtectedBranch: " " MergeRequest ||--|| ApprovalState: " " ApprovalState ||--o{ ApprovalWrappedRule: " " MergeRequest ||--o{ Approval: " " MergeRequest ||--o{ ApprovalMergeRequestRule: " " ApprovalMergeRequestRule }o--o{ User: " " ApprovalMergeRequestRule }o--o{ Group: " " ApprovalMergeRequestRule ||--o| ApprovalProjectRule: " " Project와 MergeRequest # Project 와 MergeRequest 모델은 ee/app/models/ee/project.rb 와 ee/app/models/ee/merge_request.rb 에 정의되어 있습니다. 승인 규칙이 EE 전용 기능이기 때문에 이 모델들은 EE가 아닌 버전을 확장합니다. 머지 리퀘스트 승인과 관련된 연관관계 및 기타 관련 내용이 여기에 정의되어 있습니다. ApprovalState # %%{init: { "fontFamily": "GitLab Sans" }}%% erDiagram accTitle: ApprovalState accDescr: Entity relationship diagram between MergeRequest and ApprovalState MergeRequest ||--|| ApprovalState: " " ApprovalState 클래스는 ee/app/models