소스 코드 - Gitaly Touch Points

RPCs

Gitaly는 Gitaly 클러스터에서 실행되는 git 바이너리를 감싸는 래퍼입니다. Go 원격 프로시저 호출(RPC)을 사용하여 git 저장소를 저장하는 파일 시스템에 대한 관리된 액세스를 제공합니다. 다른 기능으로는 액세스 최적화, 캐싱, 파일 시스템에 대한 형태의 페이징이 있습니다.

포괄적인 Gitaly 기여자를 위한 초보자 가이드는 Gitaly에 업데이트를 수행하는 데 초점을 맞추고 있으며, Gitaly 코드를 이해하는 데 많은 통찰을 제공합니다.

GitLab의 다른 부분에서 Gitaly에 대한 모든 액세스는 Create: 소스 코드 엔드포인트를 통해 이루어집니다.

Commit 모델

Gitaly로 부터의 호출 후 git commit 정보가 메모리에 저장됩니다. 이 정보는 Ruby Commit 모델에 의해 래핑되며, 이 모델은 Gitlab::Git::Commit을 감싸는 것입니다.

Commit 모델은 ActiveRecord 객체처럼 작동하지만 PostgreSQL 백엔드를 갖고 있지 않습니다. 대신 Gitaly RPC로 매핑됩니다.