checkGithubOrigin method

Future<bool> checkGithubOrigin({
  1. required Directory workspaceDir,
  2. required String repositoryUrl,
  3. Future<ProcessResult> processRun(
    1. String,
    2. List<String>, {
    3. String? workingDirectory,
    })?,
})

Check if the dependency exists on github

Implementation

Future<bool> checkGithubOrigin({
  required Directory workspaceDir,
  required String repositoryUrl,
  Future<ProcessResult> Function(
    String,
    List<String>, {
    String? workingDirectory,
  })? processRun,
}) async {
  processRun ??= Process.run;

  final result = await processRun(
    'git',
    ['ls-remote', repositoryUrl, 'origin'],
    workingDirectory: workspaceDir.path,
  );

  // coverage:ignore-start
  if (result.exitCode == 128) {
    return false;
  } else if (result.exitCode != 0) {
    throw Exception(
        'Error while running "git ls-remote $repositoryUrl origin".\n'
        'Exit code: ${result.exitCode}\n'
        'Error: ${result.stderr}\n');
  } else {
    return true;
  }
  // coverage:ignore-end
}