Skip to content
Prev Previous commit
Filter abandoned pr to last hour since closed
  • Loading branch information
markphillips100 committed Jun 24, 2025
commit 5d3c1f8b75a44874267f395f65973eb63de8a39c
4 changes: 2 additions & 2 deletions src/orchestrators/azdo_cicd_orchestrator.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def _update_pr_task(self, is_successful, pr_num, is_alive=True):
planurl = pr_task['planurl']
projectid = pr_task['projectid']
planid = pr_task['planid']
url = f'{planurl}{projectid}/_apis/distributedtask/hubs/build/plans/{planid}/events?api-version=2.0-preview.1'
url = f'{planurl}{projectid}/_apis/distributedtask/hubs/build/plans/{planid}/events?api-version=7.1'
data = {
'name': "TaskCompleted",
'taskId': pr_task['taskid'],
Expand All @@ -84,7 +84,7 @@ def _plan_already_completed(self, pr_task):
planurl = pr_task['planurl']
projectid = pr_task['projectid']
planid = pr_task['planid']
url = f'{planurl}{projectid}/_apis/distributedtask/hubs/build/plans/{planid}'
url = f'{planurl}{projectid}/_apis/distributedtask/hubs/build/plans/{planid}?api-version=7.1'

response = requests.get(url=url, headers=self.headers)
# Throw appropriate exception if request failed
Expand Down
9 changes: 8 additions & 1 deletion src/repositories/azdo_git_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,17 @@ def get_pr_metadata(self, pr_num):
# Returns an array of PR dictionaries with an optional status filter
# pr_status values: https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/get%20pull%20requests?view=azure-devops-rest-6.0#pullrequeststatus
def get_prs(self, pr_status):
from datetime import datetime, timedelta, timezone

pr_status_param = ''
if pr_status:
pr_status_param = f'searchCriteria.status={pr_status}&'
url = f'{self.pr_repository_api}/pullRequests?{pr_status_param}api-version=6.0'
if pr_status == "abandoned":
# Calculate minTime as 1 hour ago in UTC, formatted as ISO 8601
min_time = (datetime.now(timezone.utc) - timedelta(hours=1)).strftime('%Y-%m-%dT%H:%M:%SZ')
pr_status_param += f'searchCriteria.minTime={min_time}&searchCriteria.queryTimeRangeType=closed&'

url = f'{self.pr_repository_api}/pullRequests?{pr_status_param}api-version=7.1'

logging.debug(f'get_prs: url: {url}')
response = requests.get(url=url, headers=self.headers)
Expand Down