Iterate over commits until we find something that passed CI (#494)

* Iterate over commits until we find something that passed CI

* Fix a bug
This commit is contained in:
Abhilash Raj
2021-08-25 04:27:50 -07:00
committed by GitHub
parent 4fcf037c62
commit a6d2792ee1

View File

@@ -25,14 +25,17 @@ def main():
gl = gitlab.Gitlab('https://gitlab.com/', gl_token)
project = gl.projects.get(project_name)
branch = project.branches.get(branch_name)
top_commit = project.commits.get(branch.commit['short_id'])
if top_commit.last_pipeline['status'] == 'success':
print(top_commit.short_id)
else:
exit(1)
# Find the last commit in the branch that passed the CI
# successfully and return the reference to it.
for commit in project.commits.list(ref=branch_name):
stasues = list(status.status == 'success' for status in
commit.statuses.list() if status.allow_failure == False)
if len(stasues) == 0:
continue
if all(stasues):
print(commit.short_id)
break
if __name__ == '__main__':
main()