Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 0 additions & 45 deletions guards/github-guard/rust-guard/src/labels/backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,6 @@ fn set_cached_repo_visibility(repo_id: &str, is_private: bool) {
}
}

fn get_cached_owner_is_org(repo_id: &str) -> Option<bool> {
repo_owner_type_cache()
.lock()
.ok()
.and_then(|cache| cache.get(repo_id).copied())
}

fn set_cached_owner_is_org(repo_id: &str, is_org: bool) {
if let Ok(mut cache) = repo_owner_type_cache().lock() {
cache.insert(repo_id.to_string(), is_org);
Expand Down Expand Up @@ -271,21 +264,6 @@ pub fn is_repo_private_with_callback(
get_cached_repo_visibility(&repo_id)
}

/// Check whether a repository is owned by an organization (vs a personal account).
/// This is determined from the `owner.type` field in the search_repositories response,
/// which is cached alongside repo visibility during `is_repo_private` calls.
///
/// Returns:
/// - `Some(true)` if the owner is an Organization
/// - `Some(false)` if the owner is a User (personal account)
/// - `None` if the owner type could not be determined
pub fn is_repo_org_owned(owner: &str, repo: &str) -> Option<bool> {
if owner.is_empty() || repo.is_empty() {
return None;
}
let repo_id = format!("{}/{}", owner, repo);
get_cached_owner_is_org(&repo_id)
}

/// Fetch pull request facts used for integrity derivation.
pub fn get_pull_request_facts_with_callback(
Expand Down Expand Up @@ -1217,12 +1195,6 @@ mod tests {

// --- Owner type (org vs user) tests ---

fn clear_owner_type_cache_for_tests() {
if let Ok(mut cache) = repo_owner_type_cache().lock() {
cache.clear();
}
}

#[test]
fn test_owner_type_from_repo_object_org() {
let item = serde_json::json!({
Expand Down Expand Up @@ -1309,23 +1281,6 @@ mod tests {
});
assert_eq!(extract_owner_is_org(&response, "myorg/myrepo"), None);
}

#[test]
fn test_is_repo_org_owned_uses_cache() {
clear_owner_type_cache_for_tests();
set_cached_owner_is_org("cached-org/repo", true);
assert_eq!(is_repo_org_owned("cached-org", "repo"), Some(true));

set_cached_owner_is_org("cached-user/repo", false);
assert_eq!(is_repo_org_owned("cached-user", "repo"), Some(false));
clear_owner_type_cache_for_tests();
}

#[test]
fn test_is_repo_org_owned_empty_args() {
assert_eq!(is_repo_org_owned("", "repo"), None);
assert_eq!(is_repo_org_owned("owner", ""), None);
}
}

fn repo_visibility_from_items(value: &Value, repo_id: &str) -> Option<bool> {
Expand Down
Loading