GraphQL API 머지 리퀘스트 체크리스트
GitLab GraphQL API 변경 사항이 포함된 머지 리퀘스트를 리뷰할 때 확인해야 할 기준과 절차를 설명합니다.
GitLab GraphQL API는 상당한 복잡성을 가지고 있으므로, GraphQL 변경 사항이 포함된 머지 리퀘스트는 반드시 GraphQL에 익숙한 사람이 리뷰해야 합니다. 머지 리퀘스트나 Slack의 #f_graphql 채널 에서 @gitlab-org/graphql-experts 그룹을 핑(ping)할 수 있습니다 (GitLab 팀원 전용). GraphQL 쿼리는 다음 사항에 대해 리뷰가 필요합니다: 브레이킹 체인지(breaking changes) 인가(authorization) 성능 리뷰 기준 # 다음은 전체 목록이 아닙니다. 샘플 쿼리가 포함된 설명 # 설명에 설정 지침과 함께 샘플 쿼리가 포함되어 있는지 확인하세요. 로컬 GDK 인스턴스에서 GraphiQL 을 통해 쿼리를 직접 실행해 보세요. 브레이킹 체인지 없음 (전체 지원 중단 사이클 이후가 아닌 경우) # 머지 리퀘스트에 브레이킹 체인지 가 있는지 확인하세요. 기능이 실험(experiment) 으로 표시된 경우, 지원 중단 기간 없이 즉시 브레이킹 체인지를 적용할 수 있습니다. 자세한 내용은 지원 중단 및 제거 프로세스 를 참고하세요. 멀티버전 호환성 # 멀티버전 호환성이 보장되는지 확인하세요. 일반적으로 동일한 GraphQL 기능의 프론트엔드 코드와 백엔드 코드는 동일한 릴리스에 포함될 수 없습니다. 자세한 내용은 멀티버전 호환성 을 참고하세요. 기술 문서 작성 리뷰 # 생성된 API 문서에 대한 변경 사항은 기술 문서 작성자의 리뷰가 필요합니다. 변경 로그 # 실험(experiment) 으로 표시되지 않은 공개적인 변경 사항에는 변경 로그 항목 이 필요합니다. 프레임워크 사용 # GraphQL은 많은 구성 요소가 있는 프레임워크입니다. 프레임워크를 올바르게 따르는 것이 중요합니다. 프레임워크 요소를 수동으로 호출하지 마세요. 예를 들어, 실행 중에 리졸버를 직접 인스턴스화하지 말고 프레임워크가 처리하도록 맡기세요. MyResolver.single 과 같이 리졸버를 서브클래싱할 수 있습니다 ( 리졸버 파생 참고). 더 복잡한 인수 로직에는 ready? 메서드를 사용하세요 ( resolver#ready의 올바른 사용법 참고). 더 복잡한 인수 유효성 검사에는 prepare 메서드를 사용하세요 ( 전처리(Preprocessing) 참고). 자세한 내용은 리졸버 가이드 를 참고하세요. 인가(Authorization) # 적절한 인가가 적용되었는지, 그리고 authorize :some_ability 가 스펙(spec)에서 테스트되는지 확인하세요. 자세한 내용은 인가 가이드 를 참고하세요. 성능 # 다음을 확인하세요: N+1 문제를 확인 하고 가능한 경우 최적화 를 사용하여 N+1을 제거했는지 확인하세요. 지연 로딩(laziness) 을 적절하게 사용하세요. 적절한 타입 사용 # 예를 들어: Ruby Time 및 DateTime 객체에는 TimeType 을 사용하세요. id 필드에는 Global ID를 사용하세요. 자세한 내용은 타입 을 참고하세요. 적절한 복잡도 # 쿼리 복잡도