Struct Octocrab

Source
pub struct Octocrab {
    pub base_url: Url,
    /* private fields */
}
Expand description

The GitHub API client.

Fields§

§base_url: Url

Implementations§

Source§

impl Octocrab

§Constructors

Source

pub fn builder() -> OctocrabBuilder

Returns a new OctocrabBuilder.

Source

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

Source

pub fn actions(&self) -> ActionsHandler<'_>

Creates a new actions::ActionsHandler for accessing information from GitHub Actions.

Source

pub fn current(&self) -> CurrentAuthHandler<'_>

Creates a current::CurrentAuthHandler that allows you to access information about the current authenticated user.

Source

pub fn activity(&self) -> ActivityHandler<'_>

Creates a activity::ActivityHandler for the current authenticated user.

Source

pub fn apps(&self) -> AppsRequestHandler<'_>

Creates a new apps::AppsRequestHandler for the currently authenticated app.

Source

pub fn gitignore(&self) -> GitignoreHandler<'_>

Creates a gitignore::GitignoreHandler for accessing information about gitignore.

Source

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.

Source

pub fn licenses(&self) -> LicenseHandler<'_>

Source

pub fn markdown(&self) -> MarkdownHandler<'_>

Source

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.

Source

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.

Source

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.

Source

pub fn search(&self) -> SearchHandler<'_>

Creates a search::SearchHandler that allows you to construct general queries to GitHub’s API.

Source

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.

Source

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.

Source

pub fn events(&self) -> EventsBuilder<'_>

Creates an events::EventsBuilder that allows you to access GitHub’s events API.

Source

pub fn gists(&self) -> GistsHandler<'_>

Creates a gists::GistsHandler that allows you to access GitHub’s Gists API.

Source

pub fn ratelimit(&self) -> RateLimitHandler<'_>

Creates a ratelimit::RateLimitHandler that returns the API rate limit.

Source§

impl Octocrab

§GraphQL API.

Source

pub async fn graphql<R: FromResponse>( &self, body: &(impl Serialize + ?Sized), ) -> Result<R>

Sends a graphql query to GitHub, and deserialises the response from JSON.

let response: serde_json::Value = octocrab::instance()
    .graphql("query { viewer { login }}")
    .await?;
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.

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.

Source

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.

Source

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.

Source

pub async fn get<R, A, P>(&self, route: A, parameters: Option<&P>) -> Result<R>
where A: AsRef<str>, P: Serialize + ?Sized, R: FromResponse,

Send a GET request to route with optional query parameters, returning the body of the response.

Source

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.

Source

pub async fn patch<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
where A: AsRef<str>, B: Serialize + ?Sized, R: FromResponse,

Send a PATCH request to route with optional query parameters, returning the body of the response.

Source

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.

Source

pub async fn put<R, A, B>(&self, route: A, body: Option<&B>) -> Result<R>
where A: AsRef<str>, B: Serialize + ?Sized, R: FromResponse,

Send a PUT request to route with optional query parameters, returning the body of the response.

Source

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.

Source

pub async fn delete<R, A, P>( &self, route: A, parameters: Option<&P>, ) -> Result<R>
where A: AsRef<str>, P: Serialize + ?Sized, R: FromResponse,

Send a DELETE request to route with optional query parameters, returning the body of the response.

Source

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.

Source

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?;
Source

pub async fn execute(&self, request: RequestBuilder) -> Result<Response>

Execute the given request using octocrab’s Client.

Source§

impl Octocrab

§Utility Methods

Source

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)

Source

pub async fn get_page<R: DeserializeOwned>( &self, url: &Option<Url>, ) -> Result<Option<Page<R>>>

A convenience method to get a page of results (if present).

Source

pub async fn all_pages<R: DeserializeOwned>( &self, page: Page<R>, ) -> Result<Vec<R>>

A convenience method to get all the results starting at a given page.

Trait Implementations§

Source§

impl Clone for Octocrab

Source§

fn clone(&self) -> Octocrab

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Octocrab

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Octocrab

Defaults for Octocrab:

  • base_url: https://api.github.com
  • auth: None
  • client: reqwest client with the octocrab user agent.
Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more