Loading README.md +3 −6 Changes for README.md: 3 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -50,9 +50,9 @@ gitlab-projects-settings --reset-features 'https://gitlab.com/group/project' <!-- readme-help-start --> ```yaml usage: gitlab-projects-settings [-h] [--version] [--update-check] [--settings] [--set GROUP KEY VAL] [-t TOKEN] [--confirm] [--dry-run] [--dump] [--exclude-group] [--exclude-subgroups] [--exclude-projects] [--available-features] [--reset-features [KEEP_FEATURES]] usage: gitlab-projects-settings [-h] [--version] [--update-check] [--settings] [--set GROUP KEY VAL] [--confirm] [--dry-run] [--dump] [--exclude-group] [--exclude-subgroups] [--exclude-projects] [--available-features] [--reset-features [KEEP_FEATURES]] [--disable-features FEATURES] [--enable-features FEATURES] [--reset-members] [--set-avatar FILE] [--set-description TEXT] [--update-description] [--run-housekeeping] [--prune-unreachable-objects] Loading @@ -71,9 +71,6 @@ internal arguments: --set GROUP KEY VAL # Set settings specific 'VAL' value to [GROUP] > KEY # or unset by using 'UNSET' as 'VAL' credentials arguments: -t TOKEN # GitLab API token (default: GITLAB_TOKEN environment) common settings arguments: --confirm # Automatically confirm all removal and contents warnings --dry-run # Enable dry run mode to check without saving Loading src/cli/entrypoint.py +3 −2 Changes for src/cli/entrypoint.py: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ from ..features.gitlab import GitLabFeature from ..prints.colors import Colors from ..prints.themes import Themes from ..system.platform import Platform from ..types.environments import Environments from ..types.gitlab import ProjectFeatures from ..types.namespaces import Namespaces Loading @@ -31,7 +32,7 @@ class Entrypoint: # CLI, pylint: disable=too-many-branches,too-many-statements @staticmethod def cli(options: Namespace) -> Result: def cli(options: Namespace, environments: Environments) -> Result: # Variables group: Optional[GitLabGroup] = None Loading @@ -50,7 +51,7 @@ class Entrypoint: # GitLab client gitlab = GitLabFeature( gitlab_url, options.token, environments.value('gitlab_token'), options.dry_run, ) print(f'{Colors.BOLD} - GitLab host: ' Loading src/cli/main.py +3 −12 Changes for src/cli/main.py: 3 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ # Standard libraries from argparse import (_ArgumentGroup, _MutuallyExclusiveGroup, ArgumentParser, Namespace, RawTextHelpFormatter) from os import environ from shutil import get_terminal_size from sys import exit as sys_exit Loading Loading @@ -34,6 +33,7 @@ def main() -> None: environments = Environments() environments.group = 'environment variables' environments.add( 'gitlab_token', Bundle.ENV_GITLAB_TOKEN, 'GitLab API token environment variable', ) Loading Loading @@ -91,15 +91,6 @@ def main() -> None: 'or unset by using \'UNSET\' as \'VAL\'', ) # Arguments credentials definitions group = parser.add_argument_group('credentials arguments') group.add_argument( '-t', dest='token', default=environ.get(Bundle.ENV_GITLAB_TOKEN, ''), # help=f'GitLab API token (default: {Bundle.ENV_GITLAB_TOKEN} environment)', ) # Arguments common settings definitions group = parser.add_argument_group('common settings arguments') group.add_argument( Loading Loading @@ -332,7 +323,7 @@ def main() -> None: sys_exit(0) # Arguments validation if not options.token or not options.url_path: if not options.url_path: result = Entrypoint.Result.CRITICAL # Header Loading @@ -341,7 +332,7 @@ def main() -> None: # CLI entrypoint if result != Entrypoint.Result.CRITICAL: result = Entrypoint.cli(options) result = Entrypoint.cli(options, environments) # CLI helper else: Loading src/types/environments.py +23 −9 Changes for src/types/environments.py: 23 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # Standard libraries from os import environ from typing import List, NamedTuple from typing import Dict, List, NamedTuple # Environments class class Environments: Loading @@ -27,12 +27,12 @@ class Environments: # Members __group: str __variables: List[Variable] __variables: Dict[str, Variable] # Constructor def __init__(self) -> None: self.__group = '' self.__variables = [] self.__variables = {} # Group @property Loading @@ -45,16 +45,20 @@ class Environments: self.__group = value # Add def add(self, name: str, description: str, fallback: str = '') -> None: def add( self, key: str, name: str, description: str, fallback: str = '', ) -> None: # Append variable to list self.__variables += [ Environments.Variable( self.__variables[key] = Environments.Variable( name=name, description=description, fallback=fallback, ), ] ) # Help def help(self, help_position: int) -> str: Loading @@ -67,7 +71,7 @@ class Environments: lines += [self.__group] # Append variables for variable in self.__variables: for _, variable in self.__variables.items(): line = f' {variable.name: <{help_position - 2}}' line += f'{variable.description}' if variable.fallback: Loading @@ -76,3 +80,13 @@ class Environments: # Result return Environments.LINE_EOL.join(lines) # Value def value(self, key: str) -> str: # Get value of declared variable if key in self.__variables: return self.__variables[key].value # Fallback return '' Loading
README.md +3 −6 Changes for README.md: 3 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -50,9 +50,9 @@ gitlab-projects-settings --reset-features 'https://gitlab.com/group/project' <!-- readme-help-start --> ```yaml usage: gitlab-projects-settings [-h] [--version] [--update-check] [--settings] [--set GROUP KEY VAL] [-t TOKEN] [--confirm] [--dry-run] [--dump] [--exclude-group] [--exclude-subgroups] [--exclude-projects] [--available-features] [--reset-features [KEEP_FEATURES]] usage: gitlab-projects-settings [-h] [--version] [--update-check] [--settings] [--set GROUP KEY VAL] [--confirm] [--dry-run] [--dump] [--exclude-group] [--exclude-subgroups] [--exclude-projects] [--available-features] [--reset-features [KEEP_FEATURES]] [--disable-features FEATURES] [--enable-features FEATURES] [--reset-members] [--set-avatar FILE] [--set-description TEXT] [--update-description] [--run-housekeeping] [--prune-unreachable-objects] Loading @@ -71,9 +71,6 @@ internal arguments: --set GROUP KEY VAL # Set settings specific 'VAL' value to [GROUP] > KEY # or unset by using 'UNSET' as 'VAL' credentials arguments: -t TOKEN # GitLab API token (default: GITLAB_TOKEN environment) common settings arguments: --confirm # Automatically confirm all removal and contents warnings --dry-run # Enable dry run mode to check without saving Loading
src/cli/entrypoint.py +3 −2 Changes for src/cli/entrypoint.py: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ from ..features.gitlab import GitLabFeature from ..prints.colors import Colors from ..prints.themes import Themes from ..system.platform import Platform from ..types.environments import Environments from ..types.gitlab import ProjectFeatures from ..types.namespaces import Namespaces Loading @@ -31,7 +32,7 @@ class Entrypoint: # CLI, pylint: disable=too-many-branches,too-many-statements @staticmethod def cli(options: Namespace) -> Result: def cli(options: Namespace, environments: Environments) -> Result: # Variables group: Optional[GitLabGroup] = None Loading @@ -50,7 +51,7 @@ class Entrypoint: # GitLab client gitlab = GitLabFeature( gitlab_url, options.token, environments.value('gitlab_token'), options.dry_run, ) print(f'{Colors.BOLD} - GitLab host: ' Loading
src/cli/main.py +3 −12 Changes for src/cli/main.py: 3 added lines, 12 removed lines. Original line number Diff line number Diff line Loading @@ -3,7 +3,6 @@ # Standard libraries from argparse import (_ArgumentGroup, _MutuallyExclusiveGroup, ArgumentParser, Namespace, RawTextHelpFormatter) from os import environ from shutil import get_terminal_size from sys import exit as sys_exit Loading Loading @@ -34,6 +33,7 @@ def main() -> None: environments = Environments() environments.group = 'environment variables' environments.add( 'gitlab_token', Bundle.ENV_GITLAB_TOKEN, 'GitLab API token environment variable', ) Loading Loading @@ -91,15 +91,6 @@ def main() -> None: 'or unset by using \'UNSET\' as \'VAL\'', ) # Arguments credentials definitions group = parser.add_argument_group('credentials arguments') group.add_argument( '-t', dest='token', default=environ.get(Bundle.ENV_GITLAB_TOKEN, ''), # help=f'GitLab API token (default: {Bundle.ENV_GITLAB_TOKEN} environment)', ) # Arguments common settings definitions group = parser.add_argument_group('common settings arguments') group.add_argument( Loading Loading @@ -332,7 +323,7 @@ def main() -> None: sys_exit(0) # Arguments validation if not options.token or not options.url_path: if not options.url_path: result = Entrypoint.Result.CRITICAL # Header Loading @@ -341,7 +332,7 @@ def main() -> None: # CLI entrypoint if result != Entrypoint.Result.CRITICAL: result = Entrypoint.cli(options) result = Entrypoint.cli(options, environments) # CLI helper else: Loading
src/types/environments.py +23 −9 Changes for src/types/environments.py: 23 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # Standard libraries from os import environ from typing import List, NamedTuple from typing import Dict, List, NamedTuple # Environments class class Environments: Loading @@ -27,12 +27,12 @@ class Environments: # Members __group: str __variables: List[Variable] __variables: Dict[str, Variable] # Constructor def __init__(self) -> None: self.__group = '' self.__variables = [] self.__variables = {} # Group @property Loading @@ -45,16 +45,20 @@ class Environments: self.__group = value # Add def add(self, name: str, description: str, fallback: str = '') -> None: def add( self, key: str, name: str, description: str, fallback: str = '', ) -> None: # Append variable to list self.__variables += [ Environments.Variable( self.__variables[key] = Environments.Variable( name=name, description=description, fallback=fallback, ), ] ) # Help def help(self, help_position: int) -> str: Loading @@ -67,7 +71,7 @@ class Environments: lines += [self.__group] # Append variables for variable in self.__variables: for _, variable in self.__variables.items(): line = f' {variable.name: <{help_position - 2}}' line += f'{variable.description}' if variable.fallback: Loading @@ -76,3 +80,13 @@ class Environments: # Result return Environments.LINE_EOL.join(lines) # Value def value(self, key: str) -> str: # Get value of declared variable if key in self.__variables: return self.__variables[key].value # Fallback return ''