Struct octocrab::orgs::OrgHandler
source · pub struct OrgHandler<'octo> { /* private fields */ }
Expand description
A client to GitHub’s organization API.
Created with Octocrab::orgs
.
Implementations§
source§impl<'octo> OrgHandler<'octo>
impl<'octo> OrgHandler<'octo>
sourcepub async fn add_or_update_membership(
&self,
username: impl AsRef<str>,
role: Option<Role>
) -> Result<MembershipInvitation>
pub async fn add_or_update_membership( &self, username: impl AsRef<str>, role: Option<Role> ) -> Result<MembershipInvitation>
Add or update organization membership
Note
- Only authenticated organization owners can add a member to the organization or update the member’s role.
- If the authenticated user is adding a member to the organization, the invited user will receive an email inviting them to the organization. The user’s membership status will be pending until they accept the invitation.
- Authenticated users can update a user’s membership by passing the role parameter. If the authenticated user changes a member’s role to admin, the affected user will receive an email notifying them that they’ve been made an organization owner. If the authenticated user changes an owner’s role to member, no email will be sent.
let invitation = octocrab.orgs("owner").add_or_update_membership("ferris", None).await?;
sourcepub async fn check_membership(&self, username: impl AsRef<str>) -> Result<bool>
pub async fn check_membership(&self, username: impl AsRef<str>) -> Result<bool>
Check if a user is, publicly or privately, a member of the organization.
assert!(octocrab.orgs("owner").check_membership("ferris").await?);
sourcepub async fn get(&self) -> Result<Organization>
pub async fn get(&self) -> Result<Organization>
Get an organization
To see many of the organization response values, you need to be an
authenticated organization owner with the admin:org
scope. When the
value of two_factor_requirement_enabled
is true, the organization
requires all members, billing managers, and outside collaborators to
enable two-factor authentication.
let org = octocrab.orgs("owner").get().await?;
sourcepub fn list_repos(&self) -> ListReposBuilder<'_, '_>
pub fn list_repos(&self) -> ListReposBuilder<'_, '_>
List repos for the specified organization.
use octocrab::params;
// Get the least active repos belonging to `owner`.
let page = octocrab::instance()
.orgs("owner")
.list_repos()
// Optional Parameters
.repo_type(params::repos::Type::Sources)
.sort(params::repos::Sort::Pushed)
.direction(params::Direction::Descending)
.per_page(25)
.page(5u32)
// Send the request.
.send()
.await?;
sourcepub fn events(&self) -> ListOrgEventsBuilder<'_, '_>
pub fn events(&self) -> ListOrgEventsBuilder<'_, '_>
List events on this organization.
Takes an optional etag which allows for efficient polling. Here is a quick example to poll a organization’s events.
let mut etag = None;
loop {
let response: Etagged<Page<Event>> = octocrab::instance()
.orgs("owner")
.events()
.etag(etag)
.send()
.await?;
if let Some(page) = response.value {
// do something with the page ...
} else {
println!("No new data received, trying again soon");
}
etag = response.etag;
// add a delay before the next iteration
}
sourcepub async fn create_hook(&self, hook: Hook) -> Result<Hook>
pub async fn create_hook(&self, hook: Hook) -> Result<Hook>
Creates a new webhook for the specified organization.
§Notes
Only authorized users or apps can modify organization webhooks.
§Examples
use octocrab::models::hooks::{Hook, Config as HookConfig, ContentType as HookContentType};
let config = HookConfig {
url: "https://example.com".to_string(),
content_type: Some(HookContentType::Json),
insecure_ssl: None,
secret: None
};
let hook = Hook {
name: "web".to_string(),
config,
..Hook::default()
};
let hook = octocrab.orgs("owner").create_hook(hook).await?;
sourcepub fn list_members(&self) -> ListOrgMembersBuilder<'_, '_>
pub fn list_members(&self) -> ListOrgMembersBuilder<'_, '_>
sourcepub fn secrets(&self) -> OrgSecretsHandler<'_>
pub fn secrets(&self) -> OrgSecretsHandler<'_>
Handle secrets on the organizaton