From 2b4f4bea95abe97a05646ef02ed7b873d8faa1fa Mon Sep 17 00:00:00 2001 From: "Andoni A." <14891798+andoniaf@users.noreply.github.com> Date: Mon, 26 May 2025 12:23:11 +0200 Subject: [PATCH] fix: dont return findings if we cannot check members list --- .../organization_members_inactive.py | 41 ++++++++++--------- .../organization/organization_service.py | 1 + 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/prowler/providers/github/services/organization/organization_members_inactive/organization_members_inactive.py b/prowler/providers/github/services/organization/organization_members_inactive/organization_members_inactive.py index 86514f3de4..72ccb62c65 100644 --- a/prowler/providers/github/services/organization/organization_members_inactive/organization_members_inactive.py +++ b/prowler/providers/github/services/organization/organization_members_inactive/organization_members_inactive.py @@ -28,32 +28,33 @@ class organization_members_inactive(Check): current_time = datetime.now(timezone.utc) for org in organization_client.organizations.values(): - report = CheckReportGithub(metadata=self.metadata(), resource=org) + if org.members is not None: + report = CheckReportGithub(metadata=self.metadata(), resource=org) - inactive_members = [] + inactive_members = [] - for member in org.members: - is_inactive = False + for member in org.members: + is_inactive = False - if member.last_activity is None: - is_inactive = True - else: - time_since_activity = current_time - member.last_activity - if time_since_activity > inactivity_threshold: + if member.last_activity is None: is_inactive = True + else: + time_since_activity = current_time - member.last_activity + if time_since_activity > inactivity_threshold: + is_inactive = True - if is_inactive: - inactive_members.append(member.login) + if is_inactive: + inactive_members.append(member.login) - if inactive_members: - report.status = "FAIL" - report.status_extended = f"Organization {org.name} has {len(inactive_members)} inactive members: {', '.join(inactive_members[:5])}{'...' if len(inactive_members) > 5 else ''}" - else: - report.status = "PASS" - report.status_extended = ( - f"Organization {org.name} has no inactive members detected" - ) + if inactive_members: + report.status = "FAIL" + report.status_extended = f"Organization {org.name} has {len(inactive_members)} inactive members: {', '.join(inactive_members[:5])}{'...' if len(inactive_members) > 5 else ''}" + else: + report.status = "PASS" + report.status_extended = ( + f"Organization {org.name} has no inactive members detected" + ) - findings.append(report) + findings.append(report) return findings diff --git a/prowler/providers/github/services/organization/organization_service.py b/prowler/providers/github/services/organization/organization_service.py index 9ac4cea597..c6d6105988 100644 --- a/prowler/providers/github/services/organization/organization_service.py +++ b/prowler/providers/github/services/organization/organization_service.py @@ -70,6 +70,7 @@ class Organization(GithubService): logger.error( f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) + members = None return members