majuna/app/terraform/block/bridge_gitlab.py

29 lines
1.2 KiB
Python

from flask import current_app
from gitlab import Gitlab
from app.terraform.block.bridge_reachability import BlockBridgeReachabilityAutomation
class BlockBridgeGitlabAutomation(BlockBridgeReachabilityAutomation):
"""
Automation task to import bridge reachability results from Gitlab.
"""
short_name = "block_bridge_gitlab"
description = "Import bridge reachability results from Gitlab"
frequency = 30
def fetch(self) -> None:
self._lines = list()
credentials = {"private_token": current_app.config["GITLAB_TOKEN"]}
if "GITLAB_URL" in current_app.config:
credentials["url"] = current_app.config["GITLAB_URL"]
gitlab = Gitlab(**credentials)
project = gitlab.projects.get(current_app.config["GITLAB_BRIDGE_PROJECT"])
for vantage_point in current_app.config["GITHUB_BRIDGE_VANTAGE_POINTS"]:
contents = project.files.get(
file_path=f"recentResult_{vantage_point}",
ref=current_app.config["GITLAB_BRIDGE_BRANCH"],
)
# Decode the base64 first, then decode the UTF-8 string
self._lines.extend(contents.decode().decode("utf-8").splitlines())