@@ -72836,6 +72836,7 @@ const exec_1 = __nccwpck_require__(5236);
7283672836const io = __nccwpck_require__(4994);
7283772837const os = __nccwpck_require__(857);
7283872838const path = __nccwpck_require__(6928);
72839+ const semver_1 = __nccwpck_require__(2088);
7283972840function makeOpt(ref) {
7284072841 return { cwd: path.join(os.tmpdir(), `xmake-git-${ref}`) };
7284172842}
@@ -72850,25 +72851,38 @@ async function lsRemote(repo) {
7285072851 });
7285172852 const data = { heads: {}, tags: {}, pull: {} };
7285272853 out.split('\n').forEach((line) => {
72853- const [ref, tag] = line.trim().split('\t');
72854- if (ref && (tag === null || tag === void 0 ? void 0 : tag.startsWith('refs/'))) {
72855- const tagPath = tag.split('/').splice(1);
72856- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72857- let ldata = data; // eslint-disable-line @typescript-eslint/no-unsafe-assignment
72858- for (let i = 0; i < tagPath.length - 1; i++) {
72859- const seg = tagPath[i];
72860- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
72861- if (typeof ldata[seg] === 'object') {
72862- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
72863- ldata = ldata[seg]; // eslint-disable-line @typescript-eslint/no-unsafe-assignment
72854+ const [ref, path] = line.trim().split('\t');
72855+ if (ref && (path === null || path === void 0 ? void 0 : path.startsWith('refs/'))) {
72856+ const tagPath = path.split('/').splice(1);
72857+ switch (tagPath[0]) {
72858+ case 'heads': {
72859+ // refs/heads/copilot/fix-6807
72860+ const head = tagPath.slice(1).join('/');
72861+ data.heads[head] = ref;
72862+ break;
7286472863 }
72865- else {
72866- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
72867- ldata = ldata[seg] = {};
72864+ case 'pull': {
72865+ // refs/pull/11/head
72866+ // refs/pull/11/merge
72867+ const pr = Number(tagPath[1]);
72868+ if (!data.pull[pr]) {
72869+ data.pull[pr] = {};
72870+ }
72871+ data.pull[pr][tagPath[2]] = ref;
72872+ break;
7286872873 }
72874+ case 'tags': {
72875+ // refs/tags/preview
72876+ // refs/tags/v3.0.3
72877+ const tag = tagPath.slice(1).join('/');
72878+ if ((0, semver_1.valid)(tag)) {
72879+ data.tags[tag] = ref;
72880+ }
72881+ break;
72882+ }
72883+ default:
72884+ break;
7286972885 }
72870- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
72871- ldata[tagPath[tagPath.length - 1]] = ref;
7287272886 }
7287372887 });
7287472888 return data;
0 commit comments