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 피처 플래그가 활성화되어 있어야 합니다. 내부 엔드포인트 # 프로젝트 # 프로젝트 정보 가져오기 # 프로젝트의 기본 브랜치를 가져오려면 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 속성 유형 필수 여부 설명 project_id integer 예 프로젝트 ID ref string 아니요 아카이브할 Git ref (브랜치, 태그, 또는 SHA). 기본 브랜치로 기본 설정. 요청 예시: curl --header "Gitlab-Orbit-Api-Request: <json-web-token>" "https://gitlab.example.com/api/v4/internal/orbit/project/1/repository/archive?ref=main" 응답 예시: 200 응답 본문은 Workhorse를 통해 스트리밍되는 바이너리 tar.gz 아카이브입니다. 변경된 파일 경로 스트리밍 # 두 커밋 간에 변경된 파일 경로를 스트리밍하려면 GET 명령을 사용합니다. GET /internal/orbit/project/:project_id/repository/changed_paths
