summaryrefslogtreecommitdiff
path: root/doc/development/architecture.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/architecture.md')
-rw-r--r--doc/development/architecture.md25
1 files changed, 15 insertions, 10 deletions
diff --git a/doc/development/architecture.md b/doc/development/architecture.md
index 32626c19298..061e910a6d0 100644
--- a/doc/development/architecture.md
+++ b/doc/development/architecture.md
@@ -563,18 +563,23 @@ sequenceDiagram
participant Git on server
Note left of Git on client: git fetch
- Git on client->>SSH server: git fetch-pack
- SSH server-->>AuthorizedKeysCommand: gitlab-shell-authorized-keys-check git AAAA...
- AuthorizedKeysCommand-->>Rails: GET /internal/api/authorized_keys?key=AAAA...
+ Git on client->>+SSH server: ssh git fetch-pack request
+ SSH server->>+AuthorizedKeysCommand: gitlab-shell-authorized-keys-check git AAAA...
+ AuthorizedKeysCommand->>+Rails: GET /internal/api/authorized_keys?key=AAAA...
Note right of Rails: Lookup key ID
- Rails-->>SSH server: 200 OK, command="gitlab-shell upload-pack key_id=1"
- SSH server-->>GitLab Shell: gitlab-shell upload-pack key_id=1
- GitLab Shell-->>Rails: GET /internal/api/allowed?action=upload_pack&key_id=1
+ Rails-->>-AuthorizedKeysCommand: 200 OK, command="gitlab-shell upload-pack key_id=1"
+ AuthorizedKeysCommand-->>-SSH server: command="gitlab-shell upload-pack key_id=1"
+ SSH server->>+GitLab Shell: gitlab-shell upload-pack key_id=1
+ GitLab Shell->>+Rails: GET /internal/api/allowed?action=upload_pack&key_id=1
Note right of Rails: Auth check
- Rails-->>GitLab Shell: 200 OK, { gitaly: ... }
- GitLab Shell-->>Gitaly: SSHService.SSHUploadPack bidirectional request
- Gitaly-->>Git on server: git upload-pack
- Git on server->>Git on client: SSHService.SSHUploadPack bidirectional response
+ Rails-->>-GitLab Shell: 200 OK, { gitaly: ... }
+ GitLab Shell->>+Gitaly: SSHService.SSHUploadPack request
+ Gitaly->>+Git on server: git upload-pack request
+ Note over Git on client,Git on server: Bidirectional communication between Git client and server
+ Git on server-->>-Gitaly: git upload-pack response
+ Gitaly -->>-GitLab Shell: SSHService.SSHUploadPack response
+ GitLab Shell-->>-SSH server: gitlab-shell upload-pack response
+ SSH server-->>-Git on client: ssh git fetch-pack response
```
The `git push` operation is very similar, except `git receive-pack` is used