git_interface.pack

Methods for using commands relating to git packs

git_interface.pack.advertise_pack(git_repo, pack_type)

Used to advertise packs between remote and client.

Parameters:
  • git_repo (Path | str) – Path to the repo

  • pack_type (str) – The pack-type (‘git-upload-pack’ or ‘git-receive-pack’)

Returns:

The buffered output stream as a AsyncGenerator

Return type:

AsyncGenerator[bytes, None]

git_interface.pack.exchange_pack(git_repo, pack_type, input_stream)

Used to exchange packs between client and remote.

Parameters:
  • git_repo (Path | str) – Path to the repo

  • pack_type (str) – The pack-type (‘git-upload-pack’ or ‘git-receive-pack’)

  • input_stream (AsyncGenerator[bytes, None]) – The buffered input stream

Returns:

The buffered output stream as a AsyncGenerator

Return type:

AsyncGenerator[bytes, None]

async git_interface.pack.ssh_pack_exchange(git_repo, pack_type, stdin)

Used to handle git pack exchange for a ssh connection.

param git_repo:

Path to the repo

param pack_type:

The pack-type (‘git-upload-pack’ or ‘git-receive-pack’)

param stdin:

Input to feed from client

yield:

Output to send to client

Parameters:
  • git_repo (Path | str)

  • pack_type (str)

  • stdin (AsyncGenerator[bytes, None])

Return type:

AsyncGenerator[bytes, None]