code-provenance 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/github.d.ts +8 -0
- package/dist/github.js +70 -0
- package/dist/github.js.map +1 -1
- package/dist/resolver.js +32 -1
- package/dist/resolver.js.map +1 -1
- package/package.json +1 -1
- package/src/github.ts +78 -0
- package/src/resolver.ts +31 -0
package/dist/github.d.ts
CHANGED
|
@@ -35,6 +35,14 @@ export declare function resolveGhcrDigestViaPackages(owner: string, packageName:
|
|
|
35
35
|
* Find the commit for a GHCR image's :latest tag.
|
|
36
36
|
*/
|
|
37
37
|
export declare function resolveGhcrLatestViaPackages(owner: string, packageName: string): Promise<PackageVersionResult | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Search GHCR package versions for a tag matching a prefix.
|
|
40
|
+
* e.g., tagPrefix='10.11' matches '10.11.16-jammy'.
|
|
41
|
+
*/
|
|
42
|
+
export declare function findGhcrVersionByTagPrefix(owner: string, packageName: string, tagPrefix: string): Promise<{
|
|
43
|
+
repo: string;
|
|
44
|
+
versionTag: string;
|
|
45
|
+
} | null>;
|
|
38
46
|
/**
|
|
39
47
|
* Try to find the GitHub repo for a Docker Hub image.
|
|
40
48
|
*/
|
package/dist/github.js
CHANGED
|
@@ -251,6 +251,76 @@ export async function resolveGhcrDigestViaPackages(owner, packageName, digest) {
|
|
|
251
251
|
export async function resolveGhcrLatestViaPackages(owner, packageName) {
|
|
252
252
|
return findGhcrPackageVersion(owner, packageName, { matchTag: "latest" });
|
|
253
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Search GHCR package versions for a tag matching a prefix.
|
|
256
|
+
* e.g., tagPrefix='10.11' matches '10.11.16-jammy'.
|
|
257
|
+
*/
|
|
258
|
+
export async function findGhcrVersionByTagPrefix(owner, packageName, tagPrefix) {
|
|
259
|
+
const headers = githubHeaders();
|
|
260
|
+
if (!headers.Authorization)
|
|
261
|
+
return null;
|
|
262
|
+
for (const entityType of ["orgs", "users"]) {
|
|
263
|
+
const pkgBase = `https://api.github.com/${entityType}/${owner}/packages/container/${packageName}`;
|
|
264
|
+
let pkgResp;
|
|
265
|
+
try {
|
|
266
|
+
pkgResp = await fetch(pkgBase, {
|
|
267
|
+
headers,
|
|
268
|
+
signal: AbortSignal.timeout(10000),
|
|
269
|
+
});
|
|
270
|
+
if (pkgResp.status === 403)
|
|
271
|
+
return null;
|
|
272
|
+
if (!pkgResp.ok)
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const pkgData = (await pkgResp.json());
|
|
279
|
+
const fullName = pkgData.repository?.full_name;
|
|
280
|
+
if (!fullName)
|
|
281
|
+
continue;
|
|
282
|
+
let url = `${pkgBase}/versions?per_page=100`;
|
|
283
|
+
let bestMatch = null;
|
|
284
|
+
let bestVersion = null;
|
|
285
|
+
try {
|
|
286
|
+
while (url) {
|
|
287
|
+
const resp = await fetch(url, {
|
|
288
|
+
headers,
|
|
289
|
+
signal: AbortSignal.timeout(10000),
|
|
290
|
+
});
|
|
291
|
+
if (!resp.ok)
|
|
292
|
+
break;
|
|
293
|
+
const versions = (await resp.json());
|
|
294
|
+
for (const version of versions) {
|
|
295
|
+
const tags = version.metadata?.container?.tags ?? [];
|
|
296
|
+
for (const tag of tags) {
|
|
297
|
+
if (!tag.startsWith(tagPrefix))
|
|
298
|
+
continue;
|
|
299
|
+
const rest = tag.slice(tagPrefix.length);
|
|
300
|
+
if (rest !== "" && rest[0] !== "." && rest[0] !== "-")
|
|
301
|
+
continue;
|
|
302
|
+
const verStr = tag.split("-")[0]; // strip OS suffix
|
|
303
|
+
const parts = verStr.split(".").map(Number);
|
|
304
|
+
if (parts.some(isNaN))
|
|
305
|
+
continue;
|
|
306
|
+
if (bestVersion === null ||
|
|
307
|
+
compareVersions(parts, bestVersion) > 0) {
|
|
308
|
+
bestVersion = parts;
|
|
309
|
+
bestMatch = { repo: fullName, versionTag: tag };
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
url = parseNextLink(resp.headers.get("link"));
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
// continue
|
|
318
|
+
}
|
|
319
|
+
if (bestMatch)
|
|
320
|
+
return bestMatch;
|
|
321
|
+
}
|
|
322
|
+
return null;
|
|
323
|
+
}
|
|
254
324
|
/**
|
|
255
325
|
* Try to find the GitHub repo for a Docker Hub image.
|
|
256
326
|
*/
|
package/dist/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
package/dist/resolver.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fetchOciLabels } from "./registry.js";
|
|
2
|
-
import { resolveTagToCommit, inferRepoFromDockerhub, resolveGhcrDigestViaPackages, resolveGhcrLatestViaPackages, getLatestReleaseCommit, getLatestCommit, getBranchCommit, } from "./github.js";
|
|
2
|
+
import { resolveTagToCommit, inferRepoFromDockerhub, resolveGhcrDigestViaPackages, resolveGhcrLatestViaPackages, getLatestReleaseCommit, getLatestCommit, getBranchCommit, findGhcrVersionByTagPrefix, } from "./github.js";
|
|
3
3
|
const COMMIT_SHA_RE = /^[0-9a-f]{40,}$/;
|
|
4
4
|
const DIGEST_RE = /^sha256:[0-9a-f]{64}$/;
|
|
5
5
|
function isResolvableTag(tag) {
|
|
@@ -106,6 +106,37 @@ export async function resolveImage(service, ref) {
|
|
|
106
106
|
return result;
|
|
107
107
|
}
|
|
108
108
|
result.steps.push(`[3/5] No branch '${ref.tag}' found`);
|
|
109
|
+
// Try GHCR cross-lookup: search for a matching package version tag
|
|
110
|
+
if (ref.registry === "docker.io" && process.env.GITHUB_TOKEN) {
|
|
111
|
+
const ghcrOwner = ref.namespace === "library" ? ref.name : ref.namespace;
|
|
112
|
+
result.steps.push(`[3/5] Trying GHCR package '${ghcrOwner}/${ref.name}' for tag prefix '${ref.tag}'`);
|
|
113
|
+
const ghcrMatch = await findGhcrVersionByTagPrefix(ghcrOwner, ref.name, ref.tag);
|
|
114
|
+
if (ghcrMatch) {
|
|
115
|
+
const matchedTag = ghcrMatch.versionTag;
|
|
116
|
+
result.repo = `https://github.com/${ghcrMatch.repo}`;
|
|
117
|
+
result.steps.push(`[3/5] GHCR prefix match: '${matchedTag}' in ${ghcrMatch.repo}`);
|
|
118
|
+
// Try OCI labels on the matched GHCR image for a commit
|
|
119
|
+
const ghcrRef = {
|
|
120
|
+
registry: "ghcr.io", namespace: ghcrOwner, name: ref.name,
|
|
121
|
+
tag: matchedTag, raw: `ghcr.io/${ghcrOwner}/${ref.name}:${matchedTag}`,
|
|
122
|
+
};
|
|
123
|
+
const ghcrLabels = await fetchOciLabels(ghcrRef);
|
|
124
|
+
const revision = ghcrLabels["org.opencontainers.image.revision"];
|
|
125
|
+
if (revision) {
|
|
126
|
+
result.steps.push(`[3/5] OCI labels on GHCR image: revision=${revision.slice(0, 12)}`);
|
|
127
|
+
result.commit = revision;
|
|
128
|
+
result.commit_url = `${result.repo}/commit/${revision}`;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
result.steps.push(`[3/5] No commit in OCI labels, matched version: ${matchedTag}`);
|
|
132
|
+
}
|
|
133
|
+
result.status = "resolved";
|
|
134
|
+
result.resolution_method = "ghcr_cross_lookup";
|
|
135
|
+
result.confidence = "approximate";
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
result.steps.push("[3/5] No GHCR package match found");
|
|
139
|
+
}
|
|
109
140
|
result.status = "repo_found_tag_not_matched";
|
|
110
141
|
return result;
|
|
111
142
|
}
|
package/dist/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/github.ts
CHANGED
|
@@ -315,6 +315,84 @@ export async function resolveGhcrLatestViaPackages(
|
|
|
315
315
|
return findGhcrPackageVersion(owner, packageName, { matchTag: "latest" });
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
+
/**
|
|
319
|
+
* Search GHCR package versions for a tag matching a prefix.
|
|
320
|
+
* e.g., tagPrefix='10.11' matches '10.11.16-jammy'.
|
|
321
|
+
*/
|
|
322
|
+
export async function findGhcrVersionByTagPrefix(
|
|
323
|
+
owner: string,
|
|
324
|
+
packageName: string,
|
|
325
|
+
tagPrefix: string
|
|
326
|
+
): Promise<{ repo: string; versionTag: string } | null> {
|
|
327
|
+
const headers = githubHeaders();
|
|
328
|
+
if (!headers.Authorization) return null;
|
|
329
|
+
|
|
330
|
+
for (const entityType of ["orgs", "users"]) {
|
|
331
|
+
const pkgBase = `https://api.github.com/${entityType}/${owner}/packages/container/${packageName}`;
|
|
332
|
+
|
|
333
|
+
let pkgResp: Response;
|
|
334
|
+
try {
|
|
335
|
+
pkgResp = await fetch(pkgBase, {
|
|
336
|
+
headers,
|
|
337
|
+
signal: AbortSignal.timeout(10000),
|
|
338
|
+
});
|
|
339
|
+
if (pkgResp.status === 403) return null;
|
|
340
|
+
if (!pkgResp.ok) continue;
|
|
341
|
+
} catch {
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
const pkgData = (await pkgResp.json()) as any;
|
|
346
|
+
const fullName: string | undefined = pkgData.repository?.full_name;
|
|
347
|
+
if (!fullName) continue;
|
|
348
|
+
|
|
349
|
+
let url: string | null = `${pkgBase}/versions?per_page=100`;
|
|
350
|
+
let bestMatch: { repo: string; versionTag: string } | null = null;
|
|
351
|
+
let bestVersion: number[] | null = null;
|
|
352
|
+
|
|
353
|
+
try {
|
|
354
|
+
while (url) {
|
|
355
|
+
const resp = await fetch(url, {
|
|
356
|
+
headers,
|
|
357
|
+
signal: AbortSignal.timeout(10000),
|
|
358
|
+
});
|
|
359
|
+
if (!resp.ok) break;
|
|
360
|
+
|
|
361
|
+
const versions = (await resp.json()) as any[];
|
|
362
|
+
|
|
363
|
+
for (const version of versions) {
|
|
364
|
+
const tags: string[] = version.metadata?.container?.tags ?? [];
|
|
365
|
+
for (const tag of tags) {
|
|
366
|
+
if (!tag.startsWith(tagPrefix)) continue;
|
|
367
|
+
const rest = tag.slice(tagPrefix.length);
|
|
368
|
+
if (rest !== "" && rest[0] !== "." && rest[0] !== "-") continue;
|
|
369
|
+
|
|
370
|
+
const verStr = tag.split("-")[0]; // strip OS suffix
|
|
371
|
+
const parts = verStr.split(".").map(Number);
|
|
372
|
+
if (parts.some(isNaN)) continue;
|
|
373
|
+
|
|
374
|
+
if (
|
|
375
|
+
bestVersion === null ||
|
|
376
|
+
compareVersions(parts, bestVersion) > 0
|
|
377
|
+
) {
|
|
378
|
+
bestVersion = parts;
|
|
379
|
+
bestMatch = { repo: fullName, versionTag: tag };
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
url = parseNextLink(resp.headers.get("link"));
|
|
385
|
+
}
|
|
386
|
+
} catch {
|
|
387
|
+
// continue
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (bestMatch) return bestMatch;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
return null;
|
|
394
|
+
}
|
|
395
|
+
|
|
318
396
|
/**
|
|
319
397
|
* Try to find the GitHub repo for a Docker Hub image.
|
|
320
398
|
*/
|
package/src/resolver.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
getLatestReleaseCommit,
|
|
9
9
|
getLatestCommit,
|
|
10
10
|
getBranchCommit,
|
|
11
|
+
findGhcrVersionByTagPrefix,
|
|
11
12
|
} from "./github.js";
|
|
12
13
|
|
|
13
14
|
const COMMIT_SHA_RE = /^[0-9a-f]{40,}$/;
|
|
@@ -126,6 +127,36 @@ export async function resolveImage(
|
|
|
126
127
|
return result;
|
|
127
128
|
}
|
|
128
129
|
result.steps.push(`[3/5] No branch '${ref.tag}' found`);
|
|
130
|
+
// Try GHCR cross-lookup: search for a matching package version tag
|
|
131
|
+
if (ref.registry === "docker.io" && process.env.GITHUB_TOKEN) {
|
|
132
|
+
const ghcrOwner = ref.namespace === "library" ? ref.name : ref.namespace;
|
|
133
|
+
result.steps.push(`[3/5] Trying GHCR package '${ghcrOwner}/${ref.name}' for tag prefix '${ref.tag}'`);
|
|
134
|
+
const ghcrMatch = await findGhcrVersionByTagPrefix(ghcrOwner, ref.name, ref.tag);
|
|
135
|
+
if (ghcrMatch) {
|
|
136
|
+
const matchedTag = ghcrMatch.versionTag;
|
|
137
|
+
result.repo = `https://github.com/${ghcrMatch.repo}`;
|
|
138
|
+
result.steps.push(`[3/5] GHCR prefix match: '${matchedTag}' in ${ghcrMatch.repo}`);
|
|
139
|
+
// Try OCI labels on the matched GHCR image for a commit
|
|
140
|
+
const ghcrRef = {
|
|
141
|
+
registry: "ghcr.io", namespace: ghcrOwner, name: ref.name,
|
|
142
|
+
tag: matchedTag, raw: `ghcr.io/${ghcrOwner}/${ref.name}:${matchedTag}`,
|
|
143
|
+
};
|
|
144
|
+
const ghcrLabels = await fetchOciLabels(ghcrRef);
|
|
145
|
+
const revision = ghcrLabels["org.opencontainers.image.revision"];
|
|
146
|
+
if (revision) {
|
|
147
|
+
result.steps.push(`[3/5] OCI labels on GHCR image: revision=${revision.slice(0, 12)}`);
|
|
148
|
+
result.commit = revision;
|
|
149
|
+
result.commit_url = `${result.repo}/commit/${revision}`;
|
|
150
|
+
} else {
|
|
151
|
+
result.steps.push(`[3/5] No commit in OCI labels, matched version: ${matchedTag}`);
|
|
152
|
+
}
|
|
153
|
+
result.status = "resolved";
|
|
154
|
+
result.resolution_method = "ghcr_cross_lookup";
|
|
155
|
+
result.confidence = "approximate";
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
result.steps.push("[3/5] No GHCR package match found");
|
|
159
|
+
}
|
|
129
160
|
result.status = "repo_found_tag_not_matched";
|
|
130
161
|
return result;
|
|
131
162
|
}
|