pub struct Client { /* private fields */ }
Expand description
Represents a Gitea client.
This struct is the main way to interact with the Gitea API. It provides methods for creating repositories, getting repositories, deleting repositories, and listing a repo’s commits.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(base_url: impl ToString, auth: Auth<impl ToString>) -> Self
pub fn new(base_url: impl ToString, auth: Auth<impl ToString>) -> Self
Creates a new Gitea client with the given base URL and personal token.
NOTE: The base URL MUST not include the /api/v1
path and should not contain any trailing
slashes. For example, https://gitea.example.com
is a valid base URL, but
https://gitea.example.com/
or https://gitea.example.com/api/v1
are not.
pub fn repos(&self, owner: impl ToString, repo: impl ToString) -> Repos
Sourcepub fn migrate_repo(
&self,
clone_addr: impl ToString,
repo_name: impl ToString,
) -> MigrateRepoBuilder
pub fn migrate_repo( &self, clone_addr: impl ToString, repo_name: impl ToString, ) -> MigrateRepoBuilder
Migrates a repository from another service to Gitea.
This will create a new repository in Gitea with the same name as the repository in the source service and copy all the data from the source repository to the new repository. The source repository will not be modified.
Gitea supports pull-mirrors, which will keep the new repository in sync with the source repository. This is useful if you want to keep the new repository up-to-date with the source repository.
§Example
let client = Client::new("https://gitea.example.com", Auth::Token("your-token"));
let repo = client
.migrate_repo("https://example.git.com/owner/repo", "repo")
.mirror(true)
.mirror_interval("1h")
.send(&client)
.await
.unwrap();
This will create a new repository in Gitea with the name repo
and copy all the data from
the repository at https://example.git.com/owner/repo
to the new repository. The new
repository will be kept in sync with the source repository every hour.
pub fn issues(&self, owner: impl ToString, repo: impl ToString) -> Issues
pub fn pulls(&self, owner: impl ToString, repo: impl ToString) -> Pulls
pub fn search(&self) -> Search
pub fn user(&self) -> User
pub fn users(&self, username: impl ToString) -> Users
pub fn orgs(&self, name: impl ToString) -> Orgs
Sourcepub fn delete(&self, path: impl Display) -> RequestBuilder
pub fn delete(&self, path: impl Display) -> RequestBuilder
Creates a new DELETE-request builder with the given path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub fn patch(&self, path: impl Display) -> RequestBuilder
pub fn patch(&self, path: impl Display) -> RequestBuilder
Creates a new PATCH-request builder with the given path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub fn post(&self, path: impl Display) -> RequestBuilder
pub fn post(&self, path: impl Display) -> RequestBuilder
Creates a new POST-request builder with the given path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub fn get(&self, path: impl Display) -> RequestBuilder
pub fn get(&self, path: impl Display) -> RequestBuilder
Creates a new POST-request builder with the given path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub fn put(&self, path: impl Display) -> RequestBuilder
pub fn put(&self, path: impl Display) -> RequestBuilder
Creates a new PUT-request builder with the given path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub fn request_base(&self, method: Method, path: impl Display) -> RequestBuilder
pub fn request_base(&self, method: Method, path: impl Display) -> RequestBuilder
Creates a new request builder with the given method and path.
You may use this method to talk to the Gitea API directly if you need to.
path
will be prefixed with {base_url}/api/v1/
before the request is sent.
Sourcepub async fn make_request(&self, req: Request) -> Result<Response>
pub async fn make_request(&self, req: Request) -> Result<Response>
Sends a request and checks the response for errors. You may use this method to talk to the Gitea API directly if you need to. This method will return a TeatimeError if the request fails. NOTE: This method is not recommended for general use. Use the more specific methods provided by the Client struct if they exist. You are responsible for providing the correct Model for the response.
Sourcepub async fn parse_response<T: DeserializeOwned>(
&self,
res: Response,
) -> Result<T>
pub async fn parse_response<T: DeserializeOwned>( &self, res: Response, ) -> Result<T>
Parses a json response into a given model. You may use this method to talk to the Gitea API directly if you need to. This method will return a TeatimeError if the response cannot be deserialized. NOTE: This method is not recommended for general use. Use the more specific methods provided by the Client struct if they exist. You are responsible for providing the correct Model for the response.