Source code for NekUpload.utils.gitlab_api

import requests
from functools import lru_cache

[docs] class MissingGitlabCommit(Exception): """Exception raised when a commit is missing.""" pass
[docs] def get_single_commit(host_name:str,project_id:str,gitSHA:str) -> requests.Response: url = f"{host_name}/api/v4/projects/{project_id}/repository/commits/{gitSHA}" response = requests.get(url) #success if response.status_code == 200: return response elif response.status_code == 404: raise MissingGitlabCommit(f"GitSHA not found in GITLAB repository at {host_name}, project id: {project_id}")
#this can be an expensive function #getting thousands of items, so lru cache to remove redundant calls
[docs] @lru_cache def get_list_of_commits(host_name:str,project_id:str) -> requests.Response: url = f"{host_name}/api/v4/projects/{project_id}/repository/commits" response = requests.get(url) return response
if __name__ == "__main__": host = "https://gitlab.nektar.info" nekupload_id = 396 gitSHA = "0ee9c83e5cf0b907574cf0165977335fcf77a1ac" response = get_single_commit(host,nekupload_id,gitSHA) print(response.json())