feat: apply search release plans atomically (Closes #817)
CI / lint (pull_request) Successful in 1m43s
CI / build-release (pull_request) Successful in 6s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-14 09:57:15 +00:00
1 parent 9a24aff537
commit 53539e0cdf
5 files changed
+184 -25

No files matched your search

+6 -13
View File
@@ -169,21 +169,14 @@
queue:async (confirmed, context) => {
const issuePath = 'api/v1/repos/' + confirmed.repository.split('/').map(encodeURIComponent).join('/') +
'/issues/' + encodeURIComponent(confirmed.number);
const milestone = await fetchJson(issuePath + '/milestone', {
const releasePlan = await fetchJson(issuePath + '/release-plan', {
method:'PATCH', headers:{Accept:'application/json','Content-Type':'application/json'},
body:JSON.stringify({milestone_id:context.milestone_id}),
body:JSON.stringify({milestone_id:context.milestone_id, due_date:context.due_date || null}),
});
if (milestone?.number !== confirmed.number || milestone?.milestone?.id !== context.milestone_id) {
throw new Error('Issue milestone was not confirmed.');
}
if (context.due_date) {
const deadline = await fetchJson(issuePath + '/due-date', {
method:'PATCH', headers:{Accept:'application/json','Content-Type':'application/json'},
body:JSON.stringify({due_date:context.due_date}),
});
if (deadline?.number !== confirmed.number || deadline?.due_date !== context.due_date) {
throw new Error('Issue due date was not confirmed.');
}
if (releasePlan?.number !== confirmed.number ||
releasePlan?.milestone?.id !== context.milestone_id ||
(context.due_date && releasePlan?.due_date !== context.due_date)) {
throw new Error('Issue release plan was not confirmed.');
}
return 'queued';
},