spcd/cd/projects.py
Marc Beninca 033898ccc0
Some checks failed
/ job (push) Failing after 14m50s
prj/str
2024-06-10 21:10:51 +02:00

38 lines
889 B
Python

"""CI projects."""
from __future__ import annotations
import os
from pathlib import Path
from urllib.parse import urljoin
GROUP_AND_NAME = [
"GITHUB_REPOSITORY",
"CI_PROJECT_PATH",
]
SERVER_URL = [
"GITHUB_SERVER_URL",
"CI_SERVER_URL",
]
class Projects:
def __init__(self: Projects) -> None:
self.environment = os.environ
# group, name
for variable in GROUP_AND_NAME:
if value := self.environment.get(variable, None):
path = Path(value)
self.group = str(path.parent)
self.name = path.name
# url
for variable in SERVER_URL:
if value := self.environment.get(variable, None):
self.url = urljoin(value, self.group)
def __str__(self: Projects) -> str:
return """\
group = {self.group}
name = {self.name}
url = {self.url}
"""