parseGitHubRepository function

String? parseGitHubRepository(
  1. String input
)

Parse a GitHub repository string or URL.

Implementation

String? parseGitHubRepository(String input) {
  final trimmed = input.trim();

  final parsed = parseGitRemote(trimmed);
  if (parsed != null) {
    if (parsed.host != 'github.com') return null;
    return '${parsed.owner}/${parsed.name}';
  }

  // Check "owner/repo" format
  if (!trimmed.contains('://') &&
      !trimmed.contains('@') &&
      trimmed.contains('/')) {
    final parts = trimmed.split('/');
    if (parts.length == 2 && parts[0].isNotEmpty && parts[1].isNotEmpty) {
      final repo = parts[1].replaceAll(RegExp(r'\.git$'), '');
      return '${parts[0]}/$repo';
    }
  }

  return null;
}