Script: Remove older issues in the failed-composes tracker
Signed-off-by: Samyak Jain <samyak.jn11@gmail.com>
This commit is contained in:
parent
18fe117f24
commit
4333378be6
1 changed files with 75 additions and 0 deletions
75
scripts/misc/failed_composes_cleanup.py
Normal file
75
scripts/misc/failed_composes_cleanup.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/python3
|
||||
#
|
||||
# failed_composes_cleanup.py - A utility to clean all the older issues in the releng/failed-compose tracker.
|
||||
#
|
||||
#
|
||||
# Authors:
|
||||
# Samyak Jain <samyak.jn11@gmail.com>
|
||||
# Copyright (C) 2024 Red Hat Inc,
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
import requests
|
||||
|
||||
API_TOKEN = 'YOUR_API_TOKEN'
|
||||
|
||||
def get_open_issues(repo):
|
||||
base_url = 'https://pagure.io/api/0/'
|
||||
endpoint = f'{repo}/issues'
|
||||
url = base_url + endpoint
|
||||
|
||||
# Include API token in headers for authentication
|
||||
headers = {'Authorization': f'token {API_TOKEN}'}
|
||||
|
||||
open_issues = []
|
||||
page = 1
|
||||
while True:
|
||||
# Make the GET request to retrieve open issues for the current page
|
||||
params = {'page': page}
|
||||
response = requests.get(url, headers=headers, params=params)
|
||||
|
||||
# Check if the request was successful
|
||||
if response.status_code == 200:
|
||||
page_issues = response.json()['issues']
|
||||
open_issues.extend(issue['id'] for issue in page_issues if issue['status'] == 'Open')
|
||||
# Check if there are more pages
|
||||
if not page_issues:
|
||||
break
|
||||
else:
|
||||
page += 1
|
||||
else:
|
||||
print(f"Failed to retrieve open issues for {repo}.")
|
||||
print(f"Response: {response.text}")
|
||||
return []
|
||||
|
||||
return open_issues
|
||||
|
||||
def close_pagure_issue(repo, issue_id, close_status=None):
|
||||
base_url = 'https://pagure.io/api/0/'
|
||||
endpoint = f'{repo}/issue/{issue_id}/status'
|
||||
url = base_url + endpoint
|
||||
|
||||
# Include API token in headers for authentication
|
||||
headers = {'Authorization': f'token {API_TOKEN}'}
|
||||
|
||||
# Set the new status of the issue
|
||||
payload = {'status': 'Closed'}
|
||||
|
||||
# Make the POST request to change the status of the issue
|
||||
response = requests.post(url, headers=headers, data=payload)
|
||||
|
||||
# Check if the request was successful
|
||||
if response.status_code == 200:
|
||||
print(f"Issue #{issue_id} closed successfully.")
|
||||
else:
|
||||
print(f"Failed to close issue #{issue_id}.")
|
||||
print(f"Response: {response.text}")
|
||||
|
||||
repo = 'releng/failed-composes'
|
||||
# Get list of open issues
|
||||
open_issues = get_open_issues(repo)
|
||||
|
||||
print("Open Issues:", open_issues)
|
||||
#
|
||||
# Close each open issue
|
||||
for issue_id in open_issues:
|
||||
close_pagure_issue(repo, issue_id)
|
||||
Loading…
Add table
Add a link
Reference in a new issue