Skip to content

Instantly share code, notes, and snippets.

@sae13
Created April 20, 2025 14:17
Show Gist options
  • Save sae13/255d7b9397b001c179197277b3a45102 to your computer and use it in GitHub Desktop.
Save sae13/255d7b9397b001c179197277b3a45102 to your computer and use it in GitHub Desktop.
delete git artifacts
import httpx
git_address = 'https://gitlab.com'
token = 'glpat-N_Akkbhqgs8pqvX'
header = {"Authorization": f'Bearer {token}'}
client = httpx.Client(headers=header, timeout=100)
commerce_project_id = 82
sales_project_id = 7
def get_projects(page_number=0):
projects = []
res = client.get(f"{git_address}/api/v4/projects/?per_page=100&page={page_number}")
response = res.json()
if len(response) > 0:
projects += response
projects += get_projects(page_number + 1)
return projects
def get_jobs(project_id: int, page_number: int = 0):
_jobs = []
res = client.get(f"{git_address}/api/v4/projects/{project_id}/jobs?per_page=100&page={page_number}")
response = res.json()
if len(response) > 0:
_jobs += response
_jobs += get_jobs(project_id, page_number + 1)
return _jobs
def delete_jobs_of_project(project_id):
j = get_jobs(project_id=project_id)
for i in j:
if len(i['artifacts']) == 0:
continue
res3 = client.delete(f"{git_address}/api/v4/projects/{project_id}/jobs/{i['id']}/artifacts/")
print(res3.status_code, i['id'])
if __name__ == '__main__':
projects = get_projects()
for p in projects:
delete_jobs_of_project(p['id'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment