mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-29 14:54:30 +00:00
feat(github): add members_can_delete_repositories to organization service
- Add members_can_delete_repositories field to Org model - Extract members_can_delete_repositories setting from GitHub API - Improve organization/repository argument handling in provider - Deduplicate organizations and repositories lists
This commit is contained in:
1 parent
4128d6ab78
commit
804528be8f
2 files changed
+23
-2
No files matched your search
@@ -238,6 +238,21 @@ class Provider(ABC):
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
elif "github" in provider_class_name.lower():
|
||||
orgs=[]
|
||||
repos=[]
|
||||
|
||||
if getattr(arguments, "organization", None):
|
||||
orgs.extend(arguments.organization)
|
||||
if getattr(arguments, "organizations", None):
|
||||
orgs.extend(arguments.organizations)
|
||||
if getattr(arguments, "repository", None):
|
||||
repos.extend(arguments.repository)
|
||||
if getattr(arguments, "repositories", None):
|
||||
repos.extend(arguments.repositories)
|
||||
|
||||
orgs=list(dict.fromkeys(orgs))
|
||||
repos=list(dict.fromkeys(repos))
|
||||
|
||||
provider_class(
|
||||
personal_access_token=arguments.personal_access_token,
|
||||
oauth_app_token=arguments.oauth_app_token,
|
||||
@@ -245,8 +260,8 @@ class Provider(ABC):
|
||||
github_app_id=arguments.github_app_id,
|
||||
mutelist_path=arguments.mutelist_file,
|
||||
config_path=arguments.config_file,
|
||||
repositories=arguments.repository,
|
||||
organizations=arguments.organization,
|
||||
repositories=repos,
|
||||
organizations=orgs,
|
||||
)
|
||||
elif "googleworkspace" in provider_class_name.lower():
|
||||
provider_class(
|
||||
|
||||
@@ -76,6 +76,7 @@ class Organization(GithubService):
|
||||
id=user.id,
|
||||
name=user.login,
|
||||
mfa_required=None, # Users don't have MFA requirements like orgs
|
||||
members_can_delete_repositories=None,
|
||||
is_verified=None,
|
||||
)
|
||||
logger.info(
|
||||
@@ -189,6 +190,9 @@ class Organization(GithubService):
|
||||
repo_creation_settings["members_allowed_repository_creation_type"] = (
|
||||
_extract_flag("members_allowed_repository_creation_type", str)
|
||||
)
|
||||
members_can_delete_repositories = _extract_flag(
|
||||
"members_can_delete_repositories", bool
|
||||
)
|
||||
|
||||
base_permission_raw = _extract_flag("default_repository_permission", str)
|
||||
base_permission = (
|
||||
@@ -201,6 +205,7 @@ class Organization(GithubService):
|
||||
id=org.id,
|
||||
name=org.login,
|
||||
mfa_required=require_mfa,
|
||||
members_can_delete_repositories=members_can_delete_repositories,
|
||||
members_can_create_repositories=repo_creation_settings[
|
||||
"members_can_create_repositories"
|
||||
],
|
||||
@@ -227,6 +232,7 @@ class Org(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
mfa_required: Optional[bool] = False
|
||||
members_can_delete_repositories: Optional[bool] = None
|
||||
members_can_create_repositories: Optional[bool] = None
|
||||
members_can_create_public_repositories: Optional[bool] = None
|
||||
members_can_create_private_repositories: Optional[bool] = None
|
||||
|
||||
Reference in new issue
Block a user