Skip to main content

ProjectsClient

Struct ProjectsClient 

Source
pub struct ProjectsClient { /* private fields */ }
Expand description

Domain client for GitHub Projects V2 operations.

Obtained via InstallationClient::projects(). Cheap to clone (Arc-backed).

See docs/specs/interfaces/project-operations.md

Implementations§

Source§

impl ProjectsClient

Source

pub async fn list_for_org(&self, _org: &str) -> Result<Vec<ProjectV2>, ApiError>

List all Projects v2 for an organisation.

See docs/specs/interfaces/project-operations.md

Source

pub async fn list_for_user( &self, _username: &str, ) -> Result<Vec<ProjectV2>, ApiError>

List all Projects v2 for a user.

See docs/specs/interfaces/project-operations.md

Source

pub async fn get( &self, _owner: &str, _project_number: u64, ) -> Result<ProjectV2, ApiError>

Get details about a specific project.

See docs/spec/interfaces/project-operations.md

Source

pub async fn add_item( &self, owner: &str, project_number: u64, content_node_id: &str, ) -> Result<ProjectV2Item, ApiError>

Add an issue or pull request to a project.

Resolves the project node ID from owner + project_number (trying organisation first, then falling back to user), then calls the addProjectV2ItemById GraphQL mutation to attach the content.

§Arguments
  • owner - Organisation or user login name
  • project_number - Project number (unique within owner)
  • content_node_id - Node ID of the issue or pull request to add
§Returns
  • Ok(ProjectV2Item) — the newly created project item
  • Err(ApiError::NotFound) — project not found for this owner
  • Err(ApiError::AuthorizationFailed) — no write access to the project
  • Err(ApiError) — other transport or GraphQL errors
Source

pub async fn list_for_issue( &self, owner: &str, repo: &str, issue_number: u64, ) -> Result<Vec<ProjectV2>, ApiError>

Get all Projects v2 linked to a specific issue.

Queries the GitHub GraphQL API for all Projects v2 that contain the given issue. Returns an empty Vec when the issue exists but is not linked to any projects. Results are fetched in pages of 20; all pages are retrieved automatically and returned as a single combined Vec.

§Arguments
  • owner - Repository owner (organisation or user login)
  • repo - Repository name
  • issue_number - Issue number
§Returns
  • Ok(Vec<ProjectV2>) — all projects linked to the issue (may be empty)
  • Err(ApiError::NotFound) — repository or issue does not exist
  • Err(ApiError::AuthenticationFailed) — token is invalid
  • Err(ApiError) — other transport or GraphQL errors
Source

pub async fn remove_item( &self, _owner: &str, _project_number: u64, _item_id: &str, ) -> Result<(), ApiError>

Remove an item from a project.

See docs/spec/interfaces/project-operations.md

Trait Implementations§

Source§

impl Clone for ProjectsClient

Source§

fn clone(&self) -> ProjectsClient

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ProjectsClient

Source§

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

Formats the value using the given formatter. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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