@@ -199,46 +199,61 @@ jobs:
199199 pull_number: prNumber
200200 });
201201
202- const additions = pr.data.additions;
203- const deletions = pr.data.deletions;
202+ const additions = pr.data.additions ?? 0 ;
203+ const deletions = pr.data.deletions ?? 0 ;
204204 const totalChanges = additions + deletions;
205205
206206 console.log(`PR has ${additions} additions and ${deletions} deletions (${totalChanges} total changes)`);
207207
208208 // Determine size label based on total changes
209209 let sizeLabel = '';
210- if (totalChanges <= 10) {
210+ if (Number.isFinite(totalChanges) && totalChanges <= 10) {
211211 sizeLabel = 'size/XS';
212- } else if (totalChanges <= 50) {
212+ } else if (Number.isFinite(totalChanges) && totalChanges <= 50) {
213213 sizeLabel = 'size/S';
214- } else if (totalChanges <= 200) {
214+ } else if (Number.isFinite(totalChanges) && totalChanges <= 200) {
215215 sizeLabel = 'size/M';
216- } else if (totalChanges <= 500) {
216+ } else if (Number.isFinite(totalChanges) && totalChanges <= 500) {
217217 sizeLabel = 'size/L';
218- } else {
218+ } else if (Number.isFinite(totalChanges)) {
219219 sizeLabel = 'size/XL';
220220 }
221221
222+ if (!sizeLabel) {
223+ console.log('Skipping size label: could not compute change stats');
224+ return;
225+ }
226+
222227 console.log(`Applying size label: ${sizeLabel}`);
223228
224229 // Remove any existing size labels first
225230 const currentLabels = await github.rest.issues.listLabelsOnIssue({
226231 owner: context.repo.owner,
227232 repo: context.repo.repo,
228- issue_number: prNumber
233+ issue_number: prNumber,
234+ per_page: 100
229235 });
230236
231237 const sizeLabelsToRemove = currentLabels.data
232238 .map(label => label.name)
233239 .filter(name => name.startsWith('size/'));
234240
235241 for (const label of sizeLabelsToRemove) {
236- await github.rest.issues.removeLabel({
237- owner: context.repo.owner,
238- repo: context.repo.repo,
239- issue_number: prNumber,
240- name: label
241- });
242+ try {
243+ await github.rest.issues.removeLabel({
244+ owner: context.repo.owner,
245+ repo: context.repo.repo,
246+ issue_number: prNumber,
247+ name: label
248+ });
249+ } catch (e) {
250+ const status = e.status ?? e.response?.status;
251+ if (status === 404) {
252+ console.log(`Label already absent, skipping remove: ${label}`);
253+ } else {
254+ throw e;
255+ }
256+ }
242257 }
243258
244259 // Apply the new size label
0 commit comments