Expand description
ghrepo
extracts a GitHub repository’s owner & name from various GitHub
URL formats (or just from a string of the form OWNER/REPONAME
or
REPONAME
), and the resulting object provides properties for going in
reverse to determine the possible URLs. Also included is a struct for
performing a couple useful inspections on local Git repositories, including
determining the corresponding GitHub owner & repository name.
§Features
The ghrepo
crate has the following optional features:
-
cli
— Adds dependencies needed by theghrepo
binary. This is enabled by default, but if you are usingghrepo
as a library, it is recommended that you remove it by disabling default features. -
serde
— Enables serializing & deserializing theGHRepo
type withserde
§Example
let repo = GHRepo::new("octocat", "repository")?;
assert_eq!(repo.owner(), "octocat");
assert_eq!(repo.name(), "repository");
assert_eq!(repo.to_string(), "octocat/repository");
assert_eq!(repo.html_url(), "https://github.com/octocat/repository");
let repo2 = GHRepo::from_str("octocat/repository")?;
assert_eq!(repo, repo2);
let repo3 = GHRepo::from_str("https://github.com/octocat/repository")?;
assert_eq!(repo, repo3);
Structs§
- A container for a GitHub repository spec, consisting of a repository owner and a repository name (sometimes also called the “repo” component).
- A local Git repository.
Enums§
- Error returned when a
LocalRepo
method fails - Error returned when trying to construct a
GHRepo
with invalid arguments or parse an invalid repository spec
Functions§
- Test whether a string is a valid repository name.
- Test whether a string is a valid GitHub user login or organization name.
- Test whether a string is a valid repository specifier/full name of the form
{owner}/{name}
.