@@ -103,6 +103,11 @@ jobs:
103103 n.__typename === 'ProjectV2ItemFieldDateValue' && n.field?.id === fieldId
104104 )?.date || null;
105105
106+ const getText = (item, fieldId) =>
107+ item.fieldValues.nodes.find(n =>
108+ n.__typename === 'ProjectV2ItemFieldTextValue' && n.field?.id === fieldId
109+ )?.text || null;
110+
106111 const getStatusName = (item) => {
107112 const n = item.fieldValues.nodes.find(n =>
108113 n.__typename === 'ProjectV2ItemFieldSingleSelectValue' && n.field?.id === statusFieldId
@@ -169,25 +174,15 @@ jobs:
169174 }
170175 }
171176
172- const pickLastTwoSegments = (textOrUrl ) => {
173- if (!textOrUrl ) return '';
177+ const lastTwoFromUrl = (url ) => {
178+ if (!url ) return '';
174179 try {
175- const urlObj = new URL(textOrUrl );
176- const segs = urlObj .pathname.split('/').filter(Boolean);
180+ const u = new URL(url );
181+ const segs = u .pathname.split('/').filter(Boolean);
177182 if (segs.length >= 2) return `${segs[segs.length - 2]}/${segs[segs.length - 1]}/`;
178183 if (segs.length === 1) return `${segs[0]}/`;
179184 return '';
180- } catch {
181- const m = (textOrUrl.match(/https?:\/\/[^\s)'"<>]+/i) || [])[0];
182- if (!m) return '';
183- try {
184- const u = new URL(m);
185- const segs = u.pathname.split('/').filter(Boolean);
186- if (segs.length >= 2) return `${segs[segs.length - 2]}/${segs[segs.length - 1]}/`;
187- if (segs.length === 1) return `${segs[0]}/`;
188- return '';
189- } catch { return ''; }
190- }
185+ } catch { return ''; }
191186 };
192187
193188 // Movement counters & log
0 commit comments