Orbit 내부 API
지식 그래프 서비스에서 사용하는 Orbit 내부 API에 대해 설명합니다.
Orbit 내부 API는 지식 그래프 서비스에서 사용됩니다. 이 API는 다른 소비자가 사용할 수 없습니다. 이 문서는 GitLab 코드베이스에서 작업하는 사람들을 위한 것입니다. 새 엔드포인트 추가 # API 엔드포인트는 적절한 인증 및 권한 부여를 통해 기본적으로 외부에서 접근 가능해야 합니다. 새로운 내부 엔드포인트를 추가하기 전에, API가 더 넓은 GitLab 커뮤니티에 이점을 줄 수 있는지, 외부에서 접근 가능하게 만들 수 있는지 고려하세요. Orbit API는 요청이 사용자 토큰이 아닌 서비스 수준 JWT 토큰으로 인증되고 내부 로드 밸런서를 통해서만 접근 가능해야 하기 때문에 내부 엔드포인트를 사용합니다. 인증 # 이러한 엔드포인트는 모두 지식 그래프의 JWT 인증을 사용하여 인증됩니다. JWT를 사용하여 인증하려면 클라이언트가: 지식 그래프 JWT 서명 시크릿을 읽습니다. 서명 키를 사용하여 gkg-indexer: 주체 접두사로 JSON Web Token ( JWT )을 생성합니다. Gitlab-Orbit-Api-Request 헤더에 JWT를 전달합니다. 모든 엔드포인트는 knowledge_graph_infra 피처 플래그가 활성화되어 있어야 합니다. 지식 그래프 서비스가 이 엔드포인트를 호출하면, 요청은 인증된 사용자 컨텍스트에서 실행됩니다. 그 결과, 프로젝트 감사 이벤트 에는 인덱서 활동에 의해 트리거되었지만 직접적인 사용자 액션이 아닌 저장소 작업(예: repository_download_operation )을 수행하는 인증된 사용자가 표시될 수 있습니다. 내부 엔드포인트 # 프로젝트 # 프로젝트 정보 가져오기 # 프로젝트의 기본 브랜치를 가져오려면 GET 명령을 사용합니다. GET /internal/orbit/project/:project_id/info 요청 예시: curl --header "Gitlab-Orbit-Api-Request: <json-web-token>" "https://gitlab.example.com/api/v4/internal/orbit/project/1/info" 응답 예시: { "project_id" : 1 , "default_branch" : "main" } 저장소 # 저장소 아카이브 다운로드 # 지정된 ref에서 프로젝트 저장소의 tar.gz 아카이브를 다운로드하려면 GET 명령을 사용합니다. GET /internal/orbit/project/:project_id/repository/archive Attribute Type Required Description project_id integer yes ID of the project ref string no Git ref to archive (branch, tag, or SHA). Defaults to the default branch. 요청 예시: curl --header "Gitlab-Orbit-Api-Request: <json-web-token>" "https://gitlab.example.com/api/v4/in