Skip to content

Commit ce964f3

Browse files
committed
chore: stricter regex on api url. Handle on-prem
1 parent 6c6e01b commit ce964f3

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

ggshield/core/config/config.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import os
3+
import re
34
from enum import Enum
45
from pathlib import Path
56
from typing import Any, Optional, Set, Tuple
@@ -94,10 +95,10 @@ def get_instance_name_and_source(self) -> Tuple[str, ConfigSource]:
9495
- the default instance
9596
"""
9697
if self._cmdline_instance_name:
97-
if (
98-
"api" in self._cmdline_instance_name
99-
and "gitguardian" in self._cmdline_instance_name
100-
):
98+
if re.match(
99+
r"https:\/\/api(\.[a-z0-9]+)?\.gitguardian\.com",
100+
self._cmdline_instance_name,
101+
) or re.match(r"/exposed/?$", self._cmdline_instance_name):
101102
return (
102103
api_to_dashboard_url(self._cmdline_instance_name),
103104
ConfigSource.CMD_OPTION,

tests/unit/cmd/auth/test_login.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,19 @@ def test_auth_login_token_default_instance(self, monkeypatch, cli_fs_runner):
151151
("cmd_line_instance", "expected_instance"),
152152
[
153153
("https://api.gitguardian.com/v1", "https://dashboard.gitguardian.com"),
154+
("https://api.gitguardian.com", "https://dashboard.gitguardian.com"),
154155
(
155156
"https://api.eu1.gitguardian.com/v1",
156157
"https://dashboard.eu1.gitguardian.com",
157158
),
159+
(
160+
"https://gitguardian.mycorp.local/exposed/",
161+
"https://gitguardian.mycorp.local",
162+
),
163+
(
164+
"https://gitguardian.mycorp.local/exposed",
165+
"https://gitguardian.mycorp.local",
166+
),
158167
],
159168
)
160169
def test_api_instance_url(
@@ -1002,6 +1011,7 @@ def test_invalid_instance_url(self, instance_url, cli_fs_runner, monkeypatch):
10021011
[
10031012
"https://api.gitguardian.com/v1",
10041013
"https://api.eu1.gitguardian.com/v1",
1014+
"https://gitguardian.mycorp.local/exposed/",
10051015
],
10061016
)
10071017
def test_api_instance_url(self, instance_url, cli_fs_runner, monkeypatch):

0 commit comments

Comments
 (0)