From 6d355582999347e4d6a1cf174747bc0b5fa4bfeb Mon Sep 17 00:00:00 2001 From: jalr Date: Thu, 14 Jun 2018 20:29:18 +0200 Subject: [PATCH] Fix python-gitlab not sorting jobs by id --- security-scanner/security_scanner/gitlab.py | 12 +++++++----- security-scanner/security_scanner/main.py | 3 +-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/security-scanner/security_scanner/gitlab.py b/security-scanner/security_scanner/gitlab.py index fc587b8..71097a8 100644 --- a/security-scanner/security_scanner/gitlab.py +++ b/security-scanner/security_scanner/gitlab.py @@ -17,16 +17,18 @@ class GitLab: def getLastSuccessfulJob(self, ref, name): pipelines = self._project.pipelines.list() - successful_master_jobs = [] + last_successful_job = None for pipeline in pipelines: jobs = pipeline.jobs.list() for job in jobs: if job.ref == ref and job.attributes['name'] == name and job.attributes['status'] == 'success': - successful_master_jobs.append(job) + if last_successful_job is not None: + if job.attributes['id'] > last_successful_job.attributes['id']: + last_successful_job = job + else: + last_successful_job = job - job = successful_master_jobs[-1] - - return job + return last_successful_job def downloadArtifact(self, job, sourcePath, destPath): job_id = job.attributes['id'] diff --git a/security-scanner/security_scanner/main.py b/security-scanner/security_scanner/main.py index 27a46e1..8e1a543 100644 --- a/security-scanner/security_scanner/main.py +++ b/security-scanner/security_scanner/main.py @@ -29,9 +29,8 @@ def checkDebianDistro(distro): return result def main(argv): + gitlab = GitLab() for distro in argv[1:]: - #for distro in ['stretch']: - gitlab = GitLab() job = gitlab.getLastSuccessfulJob('master', 'squashfs_master') gitlab.downloadArtifact(job, 'images/debian-' + distro + '.dpkg-list', 'debian-' + distro + '.dpkg-list') if checkDebianDistro(distro) > 0: