Skip to content

Commit af9b565

Browse files
authored
Merge pull request #10590 from Turbo87/membership-fns
Extract `GitHubTeamMembership::is_active()` and `GitHubOrgMembership::is_active_admin()` fns
2 parents c313d87 + ab5d171 commit af9b565

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

crates/crates_io_github/src/lib.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,24 @@ pub struct GitHubTeamMembership {
206206
pub state: String,
207207
}
208208

209+
impl GitHubTeamMembership {
210+
pub fn is_active(&self) -> bool {
211+
self.state == "active"
212+
}
213+
}
214+
209215
#[derive(Debug, Deserialize)]
210216
pub struct GitHubOrgMembership {
211217
pub state: String,
212218
pub role: String,
213219
}
214220

221+
impl GitHubOrgMembership {
222+
pub fn is_active_admin(&self) -> bool {
223+
self.state == "active" && self.role == "admin"
224+
}
225+
}
226+
215227
#[derive(Debug, Deserialize, Clone, Eq, Hash, PartialEq)]
216228
pub struct GitHubPublicKey {
217229
pub key_identifier: String,

src/models/team.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ async fn is_gh_org_owner(
217217
token: &AccessToken,
218218
) -> Result<bool, GitHubError> {
219219
let membership = gh_client.org_membership(org_id, gh_login, token).await?;
220-
Ok(membership.is_some_and(|m| m.state == "active" && m.role == "admin"))
220+
Ok(membership.is_some_and(|m| m.is_active_admin()))
221221
}
222222

223223
async fn team_with_gh_id_contains_user(
@@ -236,5 +236,5 @@ async fn team_with_gh_id_contains_user(
236236

237237
// There is also `state: pending` for which we could possibly give
238238
// some feedback, but it's not obvious how that should work.
239-
Ok(membership.is_some_and(|m| m.state == "active"))
239+
Ok(membership.is_some_and(|m| m.is_active()))
240240
}

0 commit comments

Comments
 (0)