uploadPack method

  1. @override
Future<GitServiceResponse> uploadPack(
  1. GitServedRepositoryId repository,
  2. Stream<List<int>> request, {
  3. required GitProtocolParameters protocol,
})
override

Answers one stateless RPC of repository by launching git upload-pack --stateless-rpc on the resolved git directory and writing request into its standard input.

Implementation

@override
Future<GitServiceResponse> uploadPack(
  GitServedRepositoryId repository,
  Stream<List<int>> request, {
  required GitProtocolParameters protocol,
}) async {
  final String gitDir = await _gitDirOf(repository);
  final List<String> arguments = <String>[
    'upload-pack',
    '--stateless-rpc',
    gitDir,
  ];
  final GitLaunchedProcess process = await _launch(arguments, protocol);
  final ProcessUploadPackExchange exchange = ProcessUploadPackExchange(
    process: process,
    arguments: arguments,
    inactivityTimeout: _inactivityTimeout,
    bufferBytes: _bufferBytes,
  );
  unawaited(exchange.pumpRequest(request));
  return exchange;
}