An open API service indexing awesome lists of open source software.

https://github.com/rk0cc/dart_repourl

Alternative Uri object of representing repository URL in Git
https://github.com/rk0cc/dart_repourl

dart git http https parser repository repository-url rsync ssh uri url

Last synced: about 1 year ago
JSON representation

Alternative Uri object of representing repository URL in Git

Awesome Lists containing this project

README

          

# Alternative `Uri` object for handling Git repository URL format


Pub version
GitHub Sponsors
Unit test

There are various format of URL can be applied for fetching Git repository.
However, not every format can be simply handled by `Uri.parse` in Dart.
For example, it is possible to parse `https://git-example.com/alice/sample_text.git`
but not `git@git-example.com:alice/sample_text.git`.

```dart
// That works
final Uri httpsGit = Uri.parse("https://git-example.com/alice/sample_text.git");

// FormatException
final Uri altSsh = Uri.parse("git@git-example.com:alice/sample_text.git");
```

As a result, `RepositoryUrl` should be used rather than `Uri` which able to resolve URL that `Uri.parse` can't:

```dart
// Both worked
final RepositoryUrl httpRepo = RepositoryUrl("https://git-example.com/alice/sample_text.git");
final RepositoryUrl altSshRepo = RepositoryUrl("git@git-example.com:alice/sample_text.git");
```

More usage can be found in [example](example/main.dart);

## License

BSD-3