Skip to content

Commit 35f2076

Browse files
committed
fix: P2 issue 25
Signed-off-by: habeck <habeck@us.ibm.com>
1 parent e144812 commit 35f2076

3 files changed

Lines changed: 24 additions & 13 deletions

File tree

cpex/tools/catalog.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ class PluginCatalog:
5050
def __init__(self) -> None:
5151
"""Utility for creating the catalog from one or more monorepos."""
5252
settings = get_catalog_settings()
53-
self.github_api = os.environ.get("PLUGINS_GITHUB_API", settings.PLUGINS_GITHUB_API)
54-
self.github_token = os.environ.get("PLUGINS_GITHUB_TOKEN", None)
55-
self.monorepos = os.environ.get("PLUGINS_REPO_URLS", settings.PLUGINS_REPO_URLS or "").split(",")
56-
self.plugin_folder = os.environ.get("PLUGINS_FOLDER", settings.PLUGINS_FOLDER)
57-
self.catalog_folder = os.environ.get("PLUGINS_CATALOG_FOLDER", settings.PLUGINS_CATALOG_FOLDER)
53+
self.github_api = settings.GITHUB_API
54+
self.github_token = settings.GITHUB_TOKEN
55+
self.monorepos = settings.REPO_URLS.split(",")
56+
self.plugin_folder = settings.FOLDER
57+
self.catalog_folder = settings.CATALOG_FOLDER
5858
self.manifests: list[PluginManifest] = []
5959
# Only create Auth.Token if a token is provided to avoid errors with None
6060
self.auth = Auth.Token(self.github_token) if self.github_token else None

cpex/tools/settings.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,22 @@
2323
class CatalogSettings(BaseSettings):
2424
"""Catalog settings."""
2525

26-
PLUGINS_GITHUB_TOKEN: str | None = Field(
26+
model_config = SettingsConfigDict(env_prefix="PLUGINS_", env_file=".env", env_file_encoding="utf-8", extra="ignore")
27+
28+
GITHUB_TOKEN: str | None = Field(
2729
default=None, description="The github token for accessing the plugins repositories"
2830
)
29-
PLUGINS_GITHUB_API: str | None = Field(default="api.github.com", description="api.github.com")
30-
PLUGINS_REPO_URLS: str = Field(
31+
GITHUB_API: str | None = Field(default="api.github.com", description="api.github.com")
32+
REPO_URLS: str = Field(
3133
default="https://github.com/ibm/cpex-plugins", description="The url of the plugins repositories comma separated"
3234
)
33-
PLUGINS_REGISTRY_FOLDER: str | None = Field(
35+
REGISTRY_FOLDER: str | None = Field(
3436
default="data", description="The folder where the plugin registry is located (r/w)"
3537
)
36-
PLUGINS_CATALOG_FOLDER: str = Field(
38+
CATALOG_FOLDER: str = Field(
3739
default="plugin-catalog", description="The folder where the plugin catalog is located (r/w)"
3840
)
39-
PLUGINS_FOLDER: str = Field(default="plugins", description="The folder where the plugins are located (r/w)")
40-
model_config = SettingsConfigDict(env_prefix="PLUGINS_", env_file=".env", env_file_encoding="utf-8", extra="ignore")
41+
FOLDER: str = Field(default="plugins", description="The folder where the plugins are located (r/w)")
4142

4243

4344
def get_catalog_settings() -> CatalogSettings:

tests/unit/cpex/tools/test_catalog.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,17 @@ class TestPluginCatalogInit:
6262
def test_init_with_defaults(self):
6363
"""Test initialization with default environment variables."""
6464
with (
65-
patch.dict("os.environ", {"PLUGINS_GITHUB_TOKEN": "test_token"}, clear=True),
65+
patch.dict(
66+
"os.environ",
67+
{
68+
"PLUGINS_GITHUB_TOKEN": "test_token",
69+
"PLUGINS_GITHUB_API": "api.github.com",
70+
"PLUGINS_REPO_URLS": "https://github.com/ibm/cpex-plugins",
71+
"PLUGINS_FOLDER": "plugins",
72+
"PLUGINS_CATALOG_FOLDER": "plugin-catalog",
73+
},
74+
clear=True,
75+
),
6676
patch("cpex.tools.catalog.Github"),
6777
):
6878
catalog = PluginCatalog()

0 commit comments

Comments
 (0)