pub struct Octocrab {
pub base_url: Url,
/* private fields */
}
Expand description
The GitHub API client.
Fields§
§base_url: Url
Implementations§
Source§impl Octocrab
§Constructors
impl Octocrab
§Constructors
Sourcepub fn builder() -> OctocrabBuilder
pub fn builder() -> OctocrabBuilder
Returns a new OctocrabBuilder
.
Sourcepub fn installation(&self, id: InstallationId) -> Octocrab
pub fn installation(&self, id: InstallationId) -> Octocrab
Returns a new Octocrab
based on the current builder but
authorizing via a specific installation ID.
Typically you will first construct an Octocrab
using
OctocrabBuilder::app
to authenticate as your Github App,
then obtain an installation ID, and then pass that here to
obtain a new Octocrab
with which you can make API calls
with the permissions of that installation.
Source§impl Octocrab
§GitHub API Methods
impl Octocrab
§GitHub API Methods
Sourcepub fn actions(&self) -> ActionsHandler<'_>
pub fn actions(&self) -> ActionsHandler<'_>
Creates a new actions::ActionsHandler
for accessing information from
GitHub Actions.
Sourcepub fn current(&self) -> CurrentAuthHandler<'_>
pub fn current(&self) -> CurrentAuthHandler<'_>
Creates a current::CurrentAuthHandler
that allows you to access
information about the current authenticated user.
Sourcepub fn activity(&self) -> ActivityHandler<'_>
pub fn activity(&self) -> ActivityHandler<'_>
Creates a activity::ActivityHandler
for the current authenticated user.
Sourcepub fn apps(&self) -> AppsRequestHandler<'_>
pub fn apps(&self) -> AppsRequestHandler<'_>
Creates a new apps::AppsRequestHandler
for the currently authenticated app.
Sourcepub fn gitignore(&self) -> GitignoreHandler<'_>
pub fn gitignore(&self) -> GitignoreHandler<'_>
Creates a gitignore::GitignoreHandler
for accessing information
about gitignore
.
Sourcepub fn issues(
&self,
owner: impl Into<String>,
repo: impl Into<String>,
) -> IssueHandler<'_>
pub fn issues( &self, owner: impl Into<String>, repo: impl Into<String>, ) -> IssueHandler<'_>
Creates a issues::IssueHandler
for the repo specified at owner/repo
,
that allows you to access GitHub’s issues API.
Sourcepub fn licenses(&self) -> LicenseHandler<'_>
pub fn licenses(&self) -> LicenseHandler<'_>
Creates a licenses::LicenseHandler
.
Sourcepub fn markdown(&self) -> MarkdownHandler<'_>
pub fn markdown(&self) -> MarkdownHandler<'_>
Creates a markdown::MarkdownHandler
.
Sourcepub fn orgs(&self, owner: impl Into<String>) -> OrgHandler<'_>
pub fn orgs(&self, owner: impl Into<String>) -> OrgHandler<'_>
Creates an orgs::OrgHandler
for the specified organization,
that allows you to access GitHub’s organization API.
Sourcepub fn pulls(
&self,
owner: impl Into<String>,
repo: impl Into<String>,
) -> PullRequestHandler<'_>
pub fn pulls( &self, owner: impl Into<String>, repo: impl Into<String>, ) -> PullRequestHandler<'_>
Creates a pulls::PullRequestHandler
for the repo specified at
owner/repo
, that allows you to access GitHub’s pull request API.
Sourcepub fn repos(
&self,
owner: impl Into<String>,
repo: impl Into<String>,
) -> RepoHandler<'_>
pub fn repos( &self, owner: impl Into<String>, repo: impl Into<String>, ) -> RepoHandler<'_>
Creates a repos::RepoHandler
for the repo specified at owner/repo
,
that allows you to access GitHub’s repository API.
Sourcepub fn search(&self) -> SearchHandler<'_>
pub fn search(&self) -> SearchHandler<'_>
Creates a search::SearchHandler
that allows you to construct general queries
to GitHub’s API.
Sourcepub fn teams(&self, owner: impl Into<String>) -> TeamHandler<'_>
pub fn teams(&self, owner: impl Into<String>) -> TeamHandler<'_>
Creates a teams::TeamHandler
for the specified organization that allows
you to access GitHub’s teams API.
Sourcepub fn workflows(
&self,
owner: impl Into<String>,
repo: impl Into<String>,
) -> WorkflowsHandler<'_>
pub fn workflows( &self, owner: impl Into<String>, repo: impl Into<String>, ) -> WorkflowsHandler<'_>
Creates a workflows::WorkflowsHandler
for the specified repository that allows
you to access GitHub’s workflows API.
Sourcepub fn events(&self) -> EventsBuilder<'_>
pub fn events(&self) -> EventsBuilder<'_>
Creates an events::EventsBuilder
that allows you to access
GitHub’s events API.
Sourcepub fn gists(&self) -> GistsHandler<'_>
pub fn gists(&self) -> GistsHandler<'_>
Creates a gists::GistsHandler
that allows you to access
GitHub’s Gists API.
Sourcepub fn ratelimit(&self) -> RateLimitHandler<'_>
pub fn ratelimit(&self) -> RateLimitHandler<'_>
Creates a ratelimit::RateLimitHandler
that returns the API rate limit.
Source§impl Octocrab
§HTTP Methods
A collection of different of HTTP methods to use with Octocrab’s
configuration (Authenication, etc.). All of the HTTP methods (get
, post
,
etc.) perform some amount of pre-processing such as making relative urls
absolute, and post processing such as mapping any potential GitHub errors
into Err()
variants, and deserializing the response body.
impl Octocrab
§HTTP Methods
A collection of different of HTTP methods to use with Octocrab’s
configuration (Authenication, etc.). All of the HTTP methods (get
, post
,
etc.) perform some amount of pre-processing such as making relative urls
absolute, and post processing such as mapping any potential GitHub errors
into Err()
variants, and deserializing the response body.
This isn’t always ideal when working with GitHub’s API and as such there are
additional methods available prefixed with _
(e.g. _get
, _post
,
etc.) that perform no pre or post processing and directly return the
reqwest::Response
struct.
Sourcepub async fn post<P: Serialize + ?Sized, R: FromResponse>(
&self,
route: impl AsRef<str>,
body: Option<&P>,
) -> Result<R>
pub async fn post<P: Serialize + ?Sized, R: FromResponse>( &self, route: impl AsRef<str>, body: Option<&P>, ) -> Result<R>
Send a POST
request to route
with an optional body, returning the body
of the response.
Sourcepub async fn _post<P: Serialize + ?Sized>(
&self,
url: impl IntoUrl,
body: Option<&P>,
) -> Result<Response>
pub async fn _post<P: Serialize + ?Sized>( &self, url: impl IntoUrl, body: Option<&P>, ) -> Result<Response>
Send a POST
request with no additional pre/post-processing.
Sourcepub async fn get<R, A, P>(&self, route: A, parameters: Option<&P>) -> Result<R>
pub async fn get<R, A, P>(&self, route: A, parameters: Option<&P>) -> Result<R>
Send a GET
request to route
with optional query parameters, returning
the body of the response.
Sourcepub async fn _get<P: Serialize + ?Sized>(
&self,
url: impl IntoUrl,
parameters: Option<&P>,
) -> Result<Response>
pub async fn _get<P: Serialize + ?Sized>( &self, url: impl IntoUrl, parameters: Option<&P>, ) -> Result<Response>
Send a GET
request with no additional post-processing.
Sourcepub async fn patch<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
pub async fn patch<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
Send a PATCH
request to route
with optional query parameters,
returning the body of the response.
Sourcepub async fn _patch<B: Serialize + ?Sized>(
&self,
url: impl IntoUrl,
parameters: Option<&B>,
) -> Result<Response>
pub async fn _patch<B: Serialize + ?Sized>( &self, url: impl IntoUrl, parameters: Option<&B>, ) -> Result<Response>
Send a PATCH
request with no additional post-processing.
Sourcepub async fn put<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
pub async fn put<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
Send a PUT
request to route
with optional query parameters,
returning the body of the response.
Sourcepub async fn _put<B: Serialize + ?Sized>(
&self,
url: impl IntoUrl,
body: Option<&B>,
) -> Result<Response>
pub async fn _put<B: Serialize + ?Sized>( &self, url: impl IntoUrl, body: Option<&B>, ) -> Result<Response>
Send a PATCH
request with no additional post-processing.
Sourcepub async fn delete<R, A, P>(
&self,
route: A,
parameters: Option<&P>,
) -> Result<R>
pub async fn delete<R, A, P>( &self, route: A, parameters: Option<&P>, ) -> Result<R>
Send a DELETE
request to route
with optional query parameters,
returning the body of the response.
Sourcepub async fn _delete<P: Serialize + ?Sized>(
&self,
url: impl IntoUrl,
parameters: Option<&P>,
) -> Result<Response>
pub async fn _delete<P: Serialize + ?Sized>( &self, url: impl IntoUrl, parameters: Option<&P>, ) -> Result<Response>
Send a DELETE
request with no additional post-processing.
Sourcepub fn request_builder(
&self,
url: impl IntoUrl,
method: Method,
) -> RequestBuilder
pub fn request_builder( &self, url: impl IntoUrl, method: Method, ) -> RequestBuilder
Construct a reqwest::RequestBuilder
with the given http method. This can be executed
with execute.
let octocrab = octocrab::instance();
let url = format!("{}/events", octocrab.base_url);
let builder = octocrab::instance().request_builder(&url, reqwest::Method::GET)
.header("if-none-match", "\"73ca617c70cd2bd9b6f009dab5e2d49d\"");
let response = octocrab.execute(builder).await?;
Sourcepub async fn execute(&self, request: RequestBuilder) -> Result<Response>
pub async fn execute(&self, request: RequestBuilder) -> Result<Response>
Execute the given request
using octocrab’s Client.
Source§impl Octocrab
§Utility Methods
impl Octocrab
§Utility Methods
Sourcepub fn absolute_url(&self, url: impl AsRef<str>) -> Result<Url>
pub fn absolute_url(&self, url: impl AsRef<str>) -> Result<Url>
Returns an absolute url version of url
using the base_url
(default:
https://api.github.com
)