| #! /usr/bin/env python3 |
| |
| """ |
| Download the lockfile.yml produced by a CI pipeline, specified by the GitLab |
| server, full name of the meta-arm project, and the refspec that was executed. |
| |
| For example, |
| $ ./download-lockfile.py https://gitlab.com/ rossburton/meta-arm master |
| |
| SPDX-FileCopyrightText: Copyright 2023 Arm Limited and Contributors |
| SPDX-License-Identifier: GPL-2.0-only |
| """ |
| |
| import argparse |
| import gitlab |
| import io |
| import zipfile |
| |
| parser = argparse.ArgumentParser() |
| parser.add_argument("server", help="GitLab server name") |
| parser.add_argument("project", help="meta-arm project name") |
| parser.add_argument("refspec", help="Branch/commit") |
| args = parser.parse_args() |
| |
| gl = gitlab.Gitlab(args.server) |
| project = gl.projects.get(args.project) |
| artefact = project.artifacts.download(ref_name=args.refspec, job="update-repos") |
| |
| z = zipfile.ZipFile(io.BytesIO(artefact)) |
| z.extract("lockfile.yml") |
| print("Fetched lockfile.yml") |