diff --git a/src/refine.mjs b/src/refine.mjs index 5c19dc7..e297f4f 100644 --- a/src/refine.mjs +++ b/src/refine.mjs @@ -26,11 +26,13 @@ dotenv.config({path: '.env.local', override: true, quiet: true}); console.log(`Processing issue #${ticket}`); // Fetch issue - const issueRes = await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}`, { + const issueData = await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}`, { headers: {'Authorization': `token ${auth}`} - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); - const issueData = await issueRes.json(); - if(issueData.labels[0] !== 'Review/AI' || issueData.labels.length !== 1) { + }).then(async resp => { + if(resp.ok) return resp.json(); + else throw new Error(`${resp.status} ${await resp.text()}`); + }); + if(issueData.labels.length !== 1 || issueData.labels?.[0] !== 'Review/AI') { console.log('Skipping'); return process.exit(); } @@ -170,17 +172,17 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); method: 'POST', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: `{"body": "Duplicate of #${dupeId}"}` - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); + }).then(async resp => { if(!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); }); await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}/labels`, { method: 'POST', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: '{"labels":["Reviewed/Duplicate"]}' - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); + }).then(async resp => { if(!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); }); await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}`, { method: 'PATCH', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: '{"state": "closed"}' - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); + }).then(async resp => { if(!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); }); console.log('Duplicate'); return process.exit(); } @@ -190,13 +192,13 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); method: 'PATCH', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: JSON.stringify({title, body}) - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); + }).then(async resp => { if(!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); }); if(type) { // Label await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}/labels`, { method: 'POST', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: `{"labels":["Reviewed/${type[0].toUpperCase() + type.slice(1).toLowerCase()}"]}` - }).then(async resp => !resp.ok ? throw new Error(`${updateRes.status} ${await updateRes.text()}`) : null); + }).then(async resp => { if(!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); }); } console.log(`Title: ${title}\nType: ${type}\nBody:\n${body}`);