From be07c99c5aa8b3d29ed0b5177eafbad925a390fa Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Fri, 3 Nov 2023 17:35:58 -0700 Subject: [PATCH] fix(cli): add ability to disable SSL verification Add a `--no-ssl-verify` option to disable SSL verification Closes: #2714 --- gitlab/cli.py | 15 +++++++++++++-- tests/unit/test_cli.py | 7 +++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gitlab/cli.py b/gitlab/cli.py index 062b74bf2..2687f1fd7 100644 --- a/gitlab/cli.py +++ b/gitlab/cli.py @@ -194,14 +194,25 @@ def _get_base_parser(add_help: bool = True) -> argparse.ArgumentParser: required=False, default=os.getenv("GITLAB_URL"), ) - parser.add_argument( + + ssl_verify_group = parser.add_mutually_exclusive_group() + ssl_verify_group.add_argument( "--ssl-verify", help=( - "Whether SSL certificates should be validated. [env var: GITLAB_SSL_VERIFY]" + "Path to a CA_BUNDLE file or directory with certificates of trusted CAs. " + "[env var: GITLAB_SSL_VERIFY]" ), required=False, default=os.getenv("GITLAB_SSL_VERIFY"), ) + ssl_verify_group.add_argument( + "--no-ssl-verify", + help="Disable SSL verification", + required=False, + dest="ssl_verify", + action="store_false", + ) + parser.add_argument( "--timeout", help=( diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py index bd7231707..3c227a67d 100644 --- a/tests/unit/test_cli.py +++ b/tests/unit/test_cli.py @@ -106,6 +106,13 @@ def test_base_parser(): assert args.verbose assert args.gitlab == "gl_id" assert args.config_file == ["foo.cfg", "bar.cfg"] + assert args.ssl_verify is None + + +def test_no_ssl_verify(): + parser = cli._get_base_parser() + args = parser.parse_args(["--no-ssl-verify"]) + assert args.ssl_verify is False def test_v4_parse_args():