feat: enhance print_credentials

This commit is contained in:
HugoPBrito committed 2024-11-27 13:54:58 +01:00
1 parent b50ac49a7e
commit 6b7fa9ac4e
1 file changed
+26 -15
+26 -15
View File
@@ -1,6 +1,7 @@
import os import os
import environ import environ
from colorama import Fore, Style
from github import Auth, Github, GithubIntegration from github import Auth, Github, GithubIntegration
from prowler.config.config import ( from prowler.config.config import (
@@ -10,6 +11,7 @@ from prowler.config.config import (
) )
from prowler.lib.logger import logger from prowler.lib.logger import logger
from prowler.lib.mutelist.mutelist import Mutelist from prowler.lib.mutelist.mutelist import Mutelist
from prowler.lib.utils.utils import print_boxes
from prowler.providers.common.models import Audit_Metadata from prowler.providers.common.models import Audit_Metadata
from prowler.providers.common.provider import Provider from prowler.providers.common.provider import Provider
from prowler.providers.github.exceptions.exceptions import ( from prowler.providers.github.exceptions.exceptions import (
@@ -89,12 +91,7 @@ class GithubProvider(Provider):
github_app_key, github_app_key,
) )
self._identity = self.setup_identity( self._identity = self.setup_identity()
personal_access_token,
oauth_app_token,
github_app_id,
github_app_key,
)
# Audit Config # Audit Config
if config_content: if config_content:
@@ -246,8 +243,6 @@ class GithubProvider(Provider):
id=app_id, id=app_id,
) )
logger.error(credentials)
return credentials return credentials
except Exception as error: except Exception as error:
@@ -261,10 +256,6 @@ class GithubProvider(Provider):
def setup_identity( def setup_identity(
self, self,
personal_access_token: str = None,
oauth_app_token: str = None,
github_app_id: int = 0,
github_app_key: str = None,
) -> GithubIdentityInfo | GithubAppIdentityInfo: ) -> GithubIdentityInfo | GithubAppIdentityInfo:
""" """
Returns the GitHub identity information Returns the GitHub identity information
@@ -281,7 +272,7 @@ class GithubProvider(Provider):
credentials = self.session credentials = self.session
try: try:
if personal_access_token or oauth_app_token: if credentials.token:
auth = Auth.Token(credentials.token) auth = Auth.Token(credentials.token)
g = Github(auth=auth) g = Github(auth=auth)
try: try:
@@ -298,7 +289,7 @@ class GithubProvider(Provider):
original_exception=error, original_exception=error,
) )
elif github_app_id and github_app_key: elif credentials.id != 0 and credentials.key:
auth = Auth.AppAuth(credentials.id, credentials.key) auth = Auth.AppAuth(credentials.id, credentials.key)
gi = GithubIntegration(auth=auth) gi = GithubIntegration(auth=auth)
try: try:
@@ -321,4 +312,24 @@ class GithubProvider(Provider):
) )
def print_credentials(self): def print_credentials(self):
print(f"You are using a {self.auth_method} as authentication method.") """
Prints the GitHub credentials.
Usage:
>>> self.print_credentials()
"""
if isinstance(self.identity, GithubIdentityInfo):
report_lines = [
f"GitHub Account: {Fore.YELLOW}{self.identity.account_name}{Style.RESET_ALL}",
f"GitHub Account ID: {Fore.YELLOW}{self.identity.account_id}{Style.RESET_ALL}",
f"Authentication Method: {Fore.YELLOW}{self.auth_method}{Style.RESET_ALL}",
]
elif isinstance(self.identity, GithubAppIdentityInfo):
report_lines = [
f"GitHub App ID: {Fore.YELLOW}{self.identity.app_id}{Style.RESET_ALL}",
f"Authentication Method: {Fore.YELLOW}{self.auth_method}{Style.RESET_ALL}",
]
report_title = (
f"{Style.BRIGHT}Using the GitHub credentials below:{Style.RESET_ALL}"
)
print_boxes(report_lines, report_title)