DEV Community

Cover image for How to generate a list of compliance labels for all your gitlab repos
Arijus Gilbrantas
Arijus Gilbrantas

Posted on

How to generate a list of compliance labels for all your gitlab repos

Install pip install python-gitlab then run the script. It generates csv which includes full_path, http_url_to_repo and compliance_frameworks.

generate.py

from gitlab import Gitlab
import csv

gitlab_token = "<<my_token>>"
root_group_name = "<<group_name>>>"
output_file_name = "gitlab_compliancy_labels.csv"

gl = Gitlab(private_token=gitlab_token)
gl.auth()
# gl.enable_debug()

with open(output_file_name, "w", newline="") as csvfile:
    writer = csv.writer(csvfile, delimiter=",", quotechar="|", quoting=csv.QUOTE_MINIMAL)

    group = gl.groups.get(root_group_name)
    projects = group.projects.list(archived=0, order_by="path", include_subgroups=True, all=True)
    writer.writerow(["path", "git_url", "compliance_frameworks"])
    for project in projects:
        compliance_frameworks = project.attributes.get("compliance_frameworks")
        name = project.attributes.get("namespace")["full_path"]
        git_url = project.attributes.get("http_url_to_repo")
        writer.writerow([name, git_url, "|".join(compliance_frameworks)])
Enter fullscreen mode Exit fullscreen mode

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs