Skip to main content

Module clone

Module clone 

Source
Expand description

smart HTTP からの clone (sans-io の状態機械)。

HTTP client は持たない。呼び出し側は next_request() が返す request を repository URL に対して送り、response body を on_response() に渡す。 これを request が無くなるまで繰り返し、finish() で結果を取り出す。

GET  <url>/info/refs?service=git-upload-pack   (capability advertisement)
POST <url>/git-upload-pack                     (ls-refs)
POST <url>/git-upload-pack                     (fetch)

いずれの request にも Git-Protocol: version=2 header を付けること。

Structs§

Clone
CloneOptions
CloneOutcome
clone の結果。bundle::write にそのまま渡せる。

Enums§

Request
呼び出し側が送るべき HTTP request。path は repository URL からの相対。

Constants§

INFO_REFS_PATH
capability advertisement の要求先 (repository URL からの相対 path)。
PROTOCOL_HEADER
全 request に付ける header。
REQUEST_CONTENT_TYPE
POST body の Content-Type。
UPLOAD_PACK_PATH
command の要求先 (repository URL からの相対 path)。