@grimoire-rs/indexer 0.3.3 → 0.4.0
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/README.md +137 -2
- package/dist/ci.d.ts +6 -1
- package/dist/ci.d.ts.map +1 -1
- package/dist/ci.js +32 -1
- package/dist/ci.js.map +1 -1
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +3 -1
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/ci.d.ts.map +1 -1
- package/dist/cli/ci.js +5 -1
- package/dist/cli/ci.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +17 -3
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +8 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/ratings.d.ts +3 -0
- package/dist/cli/ratings.d.ts.map +1 -0
- package/dist/cli/ratings.js +160 -0
- package/dist/cli/ratings.js.map +1 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +47 -1
- package/dist/config.js.map +1 -1
- package/dist/enrich/index.d.ts.map +1 -1
- package/dist/enrich/index.js +74 -1
- package/dist/enrich/index.js.map +1 -1
- package/dist/ratings/budget.d.ts +16 -0
- package/dist/ratings/budget.d.ts.map +1 -0
- package/dist/ratings/budget.js +7 -0
- package/dist/ratings/budget.js.map +1 -0
- package/dist/ratings/config.d.ts +56 -0
- package/dist/ratings/config.d.ts.map +1 -0
- package/dist/ratings/config.js +86 -0
- package/dist/ratings/config.js.map +1 -0
- package/dist/ratings/marker.d.ts +105 -0
- package/dist/ratings/marker.d.ts.map +1 -0
- package/dist/ratings/marker.js +141 -0
- package/dist/ratings/marker.js.map +1 -0
- package/dist/ratings/provider.d.ts +108 -0
- package/dist/ratings/provider.d.ts.map +1 -0
- package/dist/ratings/provider.js +202 -0
- package/dist/ratings/provider.js.map +1 -0
- package/dist/ratings/provider_github.d.ts +3 -0
- package/dist/ratings/provider_github.d.ts.map +1 -0
- package/dist/ratings/provider_github.js +134 -0
- package/dist/ratings/provider_github.js.map +1 -0
- package/dist/ratings/provider_gitlab.d.ts +3 -0
- package/dist/ratings/provider_gitlab.d.ts.map +1 -0
- package/dist/ratings/provider_gitlab.js +152 -0
- package/dist/ratings/provider_gitlab.js.map +1 -0
- package/dist/ratings/provider_memory.d.ts +28 -0
- package/dist/ratings/provider_memory.d.ts.map +1 -0
- package/dist/ratings/provider_memory.js +49 -0
- package/dist/ratings/provider_memory.js.map +1 -0
- package/dist/ratings/reconcile.d.ts +47 -0
- package/dist/ratings/reconcile.d.ts.map +1 -0
- package/dist/ratings/reconcile.js +133 -0
- package/dist/ratings/reconcile.js.map +1 -0
- package/dist/ratings/seed.d.ts +60 -0
- package/dist/ratings/seed.d.ts.map +1 -0
- package/dist/ratings/seed.js +132 -0
- package/dist/ratings/seed.js.map +1 -0
- package/dist/renderer/astro/components/Catalog.d.ts +2 -0
- package/dist/renderer/astro/components/Catalog.js +64 -15
- package/dist/renderer/astro/components/Catalog.tsx +104 -17
- package/dist/renderer/astro/layouts/Base.astro +7 -0
- package/dist/renderer/astro/lib/catalog.d.ts +25 -0
- package/dist/renderer/astro/lib/catalog.js +46 -0
- package/dist/renderer/astro/lib/catalog.ts +49 -0
- package/dist/renderer/astro/pages/p/[...slug].astro +146 -3
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +101 -2
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/types.d.ts +41 -0
- package/dist/renderer/types.d.ts.map +1 -1
- package/dist/validate/adapters/http.d.ts +6 -1
- package/dist/validate/adapters/http.d.ts.map +1 -1
- package/dist/validate/adapters/http.js +5 -1
- package/dist/validate/adapters/http.js.map +1 -1
- package/package.json +1 -1
- package/templates/ci/github-pages.yml +11 -5
- package/templates/ci/github-ratings-seed.yml +88 -0
- package/templates/ci/github-ratings.yml +51 -0
- package/templates/ci/gitlab-ci.yml +3 -3
- package/templates/ci/gitlab-ratings-seed.sh +83 -0
- package/templates/ci/gitlab-ratings.yml +37 -0
- package/templates/gitignore +8 -0
|
@@ -5,8 +5,23 @@
|
|
|
5
5
|
// client bundle. The build-time payload lives in `./data.ts`; the package
|
|
6
6
|
// data itself is compiled by `src/data/` into `<outDir>/all.json`, so
|
|
7
7
|
// nothing here walks the index tree.
|
|
8
|
+
import type { CatalogPackage } from "../../types.js";
|
|
9
|
+
|
|
8
10
|
export type { CatalogPackage } from "../../types.js";
|
|
9
11
|
|
|
12
|
+
/**
|
|
13
|
+
* When a package last moved, for sorting and for the "updated" stamp.
|
|
14
|
+
*
|
|
15
|
+
* `updated` is what `enrich` derived — the artifact's own `created` when it
|
|
16
|
+
* has one, and the first build that saw the current digest when it does not.
|
|
17
|
+
* The fallback to `created` is for a sidecar written before that field
|
|
18
|
+
* existed: those records still date correctly instead of dropping into the
|
|
19
|
+
* unknown bucket on the first build after an upgrade.
|
|
20
|
+
*/
|
|
21
|
+
export function lastUpdated(p: CatalogPackage): string | undefined {
|
|
22
|
+
return p.updated ?? p.created;
|
|
23
|
+
}
|
|
24
|
+
|
|
10
25
|
// Publishing 0.10.0 also moves the rolling tags 0.10, 0 and latest, so the
|
|
11
26
|
// full tag list is mostly history. Return just the current release's chain
|
|
12
27
|
// (latest | 0 | 0.10 | 0.10.0). `tags` must already be sorted newest-first.
|
|
@@ -63,6 +78,40 @@ export function timeAgo(iso: string): string {
|
|
|
63
78
|
return RTF.format(Math.round(duration), "years");
|
|
64
79
|
}
|
|
65
80
|
|
|
81
|
+
/** A bare address, which `support.contact` is far more likely to hold than a URL. */
|
|
82
|
+
const EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
83
|
+
|
|
84
|
+
/** The only schemes a link on this site may carry. */
|
|
85
|
+
const LINK_SCHEMES = ["https:", "http:", "mailto:"];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* One registry-supplied string as an outbound href, or null.
|
|
89
|
+
*
|
|
90
|
+
* Every URL on a package page — its repository, its home page, its docs, its
|
|
91
|
+
* four support channels — is a string the index was handed by a registry it
|
|
92
|
+
* does not control, and an `href` is not made safe by escaping: `javascript:`
|
|
93
|
+
* is a perfectly well-formed attribute value that runs on click. Only the
|
|
94
|
+
* three schemes a link here can legitimately use survive; everything else
|
|
95
|
+
* renders as no link at all rather than as a live one.
|
|
96
|
+
*
|
|
97
|
+
* The raw string is returned rather than `URL.href`, so a link that was
|
|
98
|
+
* already fine is published exactly as the registry spelled it.
|
|
99
|
+
*/
|
|
100
|
+
export function externalUrl(raw: unknown): string | null {
|
|
101
|
+
if (typeof raw !== "string") return null;
|
|
102
|
+
const value = raw.trim();
|
|
103
|
+
if (value === "") return null;
|
|
104
|
+
try {
|
|
105
|
+
return LINK_SCHEMES.includes(new URL(value).protocol) ? value : null;
|
|
106
|
+
} catch {
|
|
107
|
+
// Not a URL at all. `mailto:` is only added to something that carries no
|
|
108
|
+
// scheme of its own — testing for an address first would read the
|
|
109
|
+
// `mailto:alice@acme.example` a publisher already wrote as a bare
|
|
110
|
+
// address and prefix it a second time.
|
|
111
|
+
return EMAIL.test(value) ? `mailto:${value}` : null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
66
115
|
/** `vscode://<publisher.extension>/open?repo=<ref>`, or null when disabled. */
|
|
67
116
|
export function vscodeUrl(extension: string | null, ref: string): string | null {
|
|
68
117
|
return extension ? `vscode://${extension}/open?repo=${encodeURIComponent(ref)}` : null;
|
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
// Frozen public URL: /p/<namespace>/<name>/. grim resolves against it, the
|
|
3
3
|
// VS Code deep link points at it, and search engines index it — the route
|
|
4
4
|
// shape is a contract, not an implementation detail.
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
BookOpen,
|
|
7
|
+
Bug,
|
|
8
|
+
ChevronRight,
|
|
9
|
+
FolderRoot,
|
|
10
|
+
Globe,
|
|
11
|
+
History,
|
|
12
|
+
House,
|
|
13
|
+
Image,
|
|
14
|
+
ImageOff,
|
|
15
|
+
Mail,
|
|
16
|
+
MessageCircle,
|
|
17
|
+
Scale,
|
|
18
|
+
ShieldAlert,
|
|
19
|
+
User,
|
|
20
|
+
} from "lucide-preact";
|
|
6
21
|
import Base from "../../layouts/Base.astro";
|
|
7
22
|
import VersionMenu from "../../components/VersionMenu.astro";
|
|
8
23
|
import CommandField from "../../components/CommandField.astro";
|
|
@@ -19,7 +34,10 @@ import { withBase } from "../../lib/base";
|
|
|
19
34
|
import { SHIKI_THEMES } from "../../lib/code";
|
|
20
35
|
import {
|
|
21
36
|
compareVersions,
|
|
37
|
+
externalUrl,
|
|
38
|
+
lastUpdated,
|
|
22
39
|
resolveMemberRef,
|
|
40
|
+
timeAgo,
|
|
23
41
|
versionCascade,
|
|
24
42
|
vscodeUrl,
|
|
25
43
|
type CatalogPackage,
|
|
@@ -110,6 +128,40 @@ const scopeChoices = [
|
|
|
110
128
|
{ name: "Global", command: `grim add --global ${pkg.ref}`, Icon: Globe },
|
|
111
129
|
{ name: "Project", command: addCommand, Icon: FolderRoot },
|
|
112
130
|
];
|
|
131
|
+
|
|
132
|
+
// Every outbound string on this page was handed to the index by a registry
|
|
133
|
+
// it does not control, so each one goes through the scheme allowlist before
|
|
134
|
+
// it becomes an href — the repository link included, which predates the rest
|
|
135
|
+
// of them and took the same string unchecked.
|
|
136
|
+
const repository = externalUrl(pkg.repository);
|
|
137
|
+
const homepage = externalUrl(pkg.url);
|
|
138
|
+
const documentation = externalUrl(pkg.documentation);
|
|
139
|
+
|
|
140
|
+
// Who publishes this, as one line under the summary. `vendor` is derived
|
|
141
|
+
// from the repository namespace when the publisher set none, so it is often
|
|
142
|
+
// the same string as `authors` — a set, not a join, keeps it from being
|
|
143
|
+
// printed twice.
|
|
144
|
+
const byline = [...new Set([pkg.authors, pkg.vendor].filter(Boolean))].join(" · ");
|
|
145
|
+
|
|
146
|
+
// "Get help" belongs to the *repository*, not this version: it is read off
|
|
147
|
+
// the description companion, so a maintainer moves a link without any
|
|
148
|
+
// artifact digest moving. Built here and rendered only when a channel is
|
|
149
|
+
// actually set — most repositories publish none, and a block of four dead
|
|
150
|
+
// rows is worse than no block.
|
|
151
|
+
const supportChannels = [
|
|
152
|
+
{ label: "Issue tracker", href: externalUrl(pkg.support?.issues), Icon: Bug },
|
|
153
|
+
{ label: "Chat", href: externalUrl(pkg.support?.chat), Icon: MessageCircle },
|
|
154
|
+
{ label: "Contact", href: externalUrl(pkg.support?.contact), Icon: Mail },
|
|
155
|
+
{ label: "Report a vulnerability", href: externalUrl(pkg.support?.security), Icon: ShieldAlert },
|
|
156
|
+
].filter((channel): channel is { label: string; href: string; Icon: typeof Bug } =>
|
|
157
|
+
channel.href !== null,
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
// A commit SHA is not something to read, it is something to check against a
|
|
161
|
+
// checkout. It rides as the tooltip on the date it explains rather than
|
|
162
|
+
// taking a row of its own and putting 40 hex characters in the rail.
|
|
163
|
+
const updated = lastUpdated(pkg);
|
|
164
|
+
const updatedTitle = pkg.revision ? `${updated} · revision ${pkg.revision}` : updated;
|
|
113
165
|
---
|
|
114
166
|
|
|
115
167
|
<Base title={`${title} — ${config.brand}`} description={description} image={pkg.logo}>
|
|
@@ -138,8 +190,13 @@ const scopeChoices = [
|
|
|
138
190
|
<div class="detail-head-text">
|
|
139
191
|
<h1>
|
|
140
192
|
{pkg.name} <span class={`badge kind-${pkg.kind}`}>{pkg.kind}</span>
|
|
193
|
+
{/* Skills only — every other kind reports null, and grim's own
|
|
194
|
+
surfaces show it beside the kind for the same reason: it
|
|
195
|
+
qualifies what the thing is, not what it says about itself. */}
|
|
196
|
+
{pkg.compatibility && <span class="badge compat">{pkg.compatibility}</span>}
|
|
141
197
|
</h1>
|
|
142
198
|
{description && <p class="summary">{description}</p>}
|
|
199
|
+
{byline && <p class="byline">by {byline}</p>}
|
|
143
200
|
</div>
|
|
144
201
|
</header>
|
|
145
202
|
|
|
@@ -304,19 +361,45 @@ const scopeChoices = [
|
|
|
304
361
|
<dd>{pkg.license}</dd>
|
|
305
362
|
</>
|
|
306
363
|
)}
|
|
307
|
-
{
|
|
364
|
+
{repository && (
|
|
308
365
|
<>
|
|
309
366
|
<dt>
|
|
310
367
|
<BrandMark path={repoMark} size={15} />
|
|
311
368
|
Repository
|
|
312
369
|
</dt>
|
|
313
370
|
<dd>
|
|
314
|
-
<a href={
|
|
371
|
+
<a href={repository} target="_blank" rel="noopener noreferrer">
|
|
315
372
|
source
|
|
316
373
|
</a>
|
|
317
374
|
</dd>
|
|
318
375
|
</>
|
|
319
376
|
)}
|
|
377
|
+
{homepage && (
|
|
378
|
+
<>
|
|
379
|
+
<dt>
|
|
380
|
+
<House size={15} aria-hidden="true" />
|
|
381
|
+
Homepage
|
|
382
|
+
</dt>
|
|
383
|
+
<dd>
|
|
384
|
+
<a href={homepage} target="_blank" rel="noopener noreferrer">
|
|
385
|
+
website
|
|
386
|
+
</a>
|
|
387
|
+
</dd>
|
|
388
|
+
</>
|
|
389
|
+
)}
|
|
390
|
+
{documentation && (
|
|
391
|
+
<>
|
|
392
|
+
<dt>
|
|
393
|
+
<BookOpen size={15} aria-hidden="true" />
|
|
394
|
+
Docs
|
|
395
|
+
</dt>
|
|
396
|
+
<dd>
|
|
397
|
+
<a href={documentation} target="_blank" rel="noopener noreferrer">
|
|
398
|
+
documentation
|
|
399
|
+
</a>
|
|
400
|
+
</dd>
|
|
401
|
+
</>
|
|
402
|
+
)}
|
|
320
403
|
{pkg.owner?.github && (
|
|
321
404
|
<>
|
|
322
405
|
<dt>
|
|
@@ -334,6 +417,19 @@ const scopeChoices = [
|
|
|
334
417
|
</dd>
|
|
335
418
|
</>
|
|
336
419
|
)}
|
|
420
|
+
{updated && (
|
|
421
|
+
<>
|
|
422
|
+
<dt>
|
|
423
|
+
<History size={15} aria-hidden="true" />
|
|
424
|
+
Updated
|
|
425
|
+
</dt>
|
|
426
|
+
<dd>
|
|
427
|
+
<time datetime={updated} title={updatedTitle}>
|
|
428
|
+
{timeAgo(updated) || updated}
|
|
429
|
+
</time>
|
|
430
|
+
</dd>
|
|
431
|
+
</>
|
|
432
|
+
)}
|
|
337
433
|
</dl>
|
|
338
434
|
{pkg.keywords && pkg.keywords.length > 0 && (
|
|
339
435
|
<ul class="keywords">
|
|
@@ -352,6 +448,22 @@ const scopeChoices = [
|
|
|
352
448
|
</ul>
|
|
353
449
|
)}
|
|
354
450
|
</section>
|
|
451
|
+
|
|
452
|
+
{supportChannels.length > 0 && (
|
|
453
|
+
<section class="support">
|
|
454
|
+
<h2>Get help</h2>
|
|
455
|
+
<ul>
|
|
456
|
+
{supportChannels.map(({ label, href, Icon }) => (
|
|
457
|
+
<li>
|
|
458
|
+
<Icon size={15} aria-hidden="true" />
|
|
459
|
+
<a href={href} target="_blank" rel="noopener noreferrer">
|
|
460
|
+
{label}
|
|
461
|
+
</a>
|
|
462
|
+
</li>
|
|
463
|
+
))}
|
|
464
|
+
</ul>
|
|
465
|
+
</section>
|
|
466
|
+
)}
|
|
355
467
|
</aside>
|
|
356
468
|
</div>
|
|
357
469
|
</div>
|
|
@@ -439,6 +551,37 @@ const scopeChoices = [
|
|
|
439
551
|
margin: 0.3rem 0 0;
|
|
440
552
|
color: var(--muted);
|
|
441
553
|
}
|
|
554
|
+
.byline {
|
|
555
|
+
margin: 0.35rem 0 0;
|
|
556
|
+
color: var(--muted);
|
|
557
|
+
font-size: 0.82rem;
|
|
558
|
+
}
|
|
559
|
+
/* The kind badge names a closed set of five and shouts accordingly. A
|
|
560
|
+
compatibility hint is a free string off the registry — upper-casing it
|
|
561
|
+
would misspell whatever the publisher actually wrote. */
|
|
562
|
+
.badge.compat {
|
|
563
|
+
text-transform: none;
|
|
564
|
+
letter-spacing: normal;
|
|
565
|
+
font-family: ui-monospace, "SFMono-Regular", monospace;
|
|
566
|
+
}
|
|
567
|
+
.support ul {
|
|
568
|
+
list-style: none;
|
|
569
|
+
margin: 0;
|
|
570
|
+
padding: 0;
|
|
571
|
+
display: flex;
|
|
572
|
+
flex-direction: column;
|
|
573
|
+
gap: 0.45rem;
|
|
574
|
+
}
|
|
575
|
+
.support li {
|
|
576
|
+
display: flex;
|
|
577
|
+
align-items: center;
|
|
578
|
+
gap: 0.4rem;
|
|
579
|
+
font-size: 0.9rem;
|
|
580
|
+
}
|
|
581
|
+
.support li :global(svg) {
|
|
582
|
+
flex-shrink: 0;
|
|
583
|
+
color: var(--muted);
|
|
584
|
+
}
|
|
442
585
|
.deprecated-banner {
|
|
443
586
|
margin: 0;
|
|
444
587
|
background: var(--banner-bg);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAa9D,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,+DAA+D;AAC/D,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AA4BD,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAA2B,CAAC;AACtD,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,QAA4B,CAAC;AAuU5D,sEAAsE;AACtE,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrE;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA2BtE;AAED,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/renderer/index.js
CHANGED
|
@@ -9,6 +9,9 @@ import { fileURLToPath } from "node:url";
|
|
|
9
9
|
import { build, dev } from "astro";
|
|
10
10
|
import preact from "@astrojs/preact";
|
|
11
11
|
import { resolveConfig } from "../config.js";
|
|
12
|
+
// The per-key merge, shared with the ratings producer rather than restated:
|
|
13
|
+
// both write the same file and both have to leave the other's key alone.
|
|
14
|
+
import { mergeStats, SCHEMA_VERSION, } from "../ratings/seed.js";
|
|
12
15
|
import { SHIKI_THEMES } from "./astro/lib/code.js";
|
|
13
16
|
/** Thrown when `<outDir>/all.json` is missing or malformed. */
|
|
14
17
|
export class RenderInputError extends Error {
|
|
@@ -70,6 +73,90 @@ async function readPackages(outDir) {
|
|
|
70
73
|
throw new RenderInputError(`${file}: expected a JSON array`);
|
|
71
74
|
return parsed.sort((a, b) => a.name.localeCompare(b.name));
|
|
72
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* The ratings job leaves its output here, in the index root; the render
|
|
78
|
+
* publishes it as `stats.json` beside `all.json`. Two names on purpose: the
|
|
79
|
+
* scratch copy is gitignored (it is regenerated, never committed) and the
|
|
80
|
+
* published one is the frozen URL every client reads.
|
|
81
|
+
*/
|
|
82
|
+
const STATS_SCRATCH = ".stats.json";
|
|
83
|
+
const STATS_PUBLISHED = "stats.json";
|
|
84
|
+
/** The stat key this build produces, and the name it publishes it under. */
|
|
85
|
+
const UPDATED_KEY = "updated";
|
|
86
|
+
const UPDATED_PROVIDER = "indexer";
|
|
87
|
+
/**
|
|
88
|
+
* Read `<root>/.stats.json`. Absent is the normal case — most indexes run no
|
|
89
|
+
* ratings job — and so is unreadable or malformed: the sidecar is a signal,
|
|
90
|
+
* never an input the site depends on, so nothing here may fail a build over
|
|
91
|
+
* it. A document that does not parse is also not republished.
|
|
92
|
+
*/
|
|
93
|
+
async function readStats(root) {
|
|
94
|
+
let parsed;
|
|
95
|
+
try {
|
|
96
|
+
parsed = JSON.parse(await fs.readFile(path.join(root, STATS_SCRATCH), "utf8"));
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
102
|
+
}
|
|
103
|
+
/** Join ratings onto packages by ref. A ref the sidecar omits stays unrated. */
|
|
104
|
+
function withRatings(packages, stats) {
|
|
105
|
+
const entries = stats?.entries;
|
|
106
|
+
if (!entries)
|
|
107
|
+
return packages;
|
|
108
|
+
return packages.map((p) => {
|
|
109
|
+
// A ref present but carrying only other stats, and a `rating` whose `up`
|
|
110
|
+
// is not a number, are both unrated — same as not being listed at all.
|
|
111
|
+
const up = entries[p.ref]?.rating?.up;
|
|
112
|
+
return typeof up === "number" ? { ...p, rating: { up } } : p;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The document to publish: whatever the ratings job left, plus this build's
|
|
117
|
+
* own `updated` key.
|
|
118
|
+
*
|
|
119
|
+
* Recency is the one stat the index derives from itself. `enrich` already
|
|
120
|
+
* calls `describe` per package and writes the answer into the sidecar, so
|
|
121
|
+
* every ref carries it by the time `all.json` is compiled — which makes this
|
|
122
|
+
* a local join with no network and no seed to fetch. It runs on every build,
|
|
123
|
+
* including one that never ran a ratings job at all.
|
|
124
|
+
*
|
|
125
|
+
* `mergeStats` is the same per-key merge the ratings producer uses, and for
|
|
126
|
+
* the same reason: a run owns its own key and carries every other one
|
|
127
|
+
* forward untouched, so a build cannot empty a published rating and a
|
|
128
|
+
* ratings run cannot empty a published date.
|
|
129
|
+
*
|
|
130
|
+
* `schema_version` and `generated_at` are carried over rather than
|
|
131
|
+
* re-stamped. The ratings job stamped this document, and re-stamping it here
|
|
132
|
+
* would make the published bytes differ on every rebuild of an unchanged
|
|
133
|
+
* index — a fresh stamp is taken only when there was no document to carry.
|
|
134
|
+
*/
|
|
135
|
+
function publishedStats(packages, stats) {
|
|
136
|
+
const fresh = {};
|
|
137
|
+
for (const p of packages) {
|
|
138
|
+
if (typeof p.updated === "string" && p.updated !== "")
|
|
139
|
+
fresh[p.ref] = { at: p.updated };
|
|
140
|
+
}
|
|
141
|
+
// Nothing published and nothing to publish. An index whose packages all
|
|
142
|
+
// predate the `updated` field keeps behaving exactly as it did.
|
|
143
|
+
if (!stats && Object.keys(fresh).length === 0)
|
|
144
|
+
return null;
|
|
145
|
+
const seed = {
|
|
146
|
+
providers: (stats?.providers ?? {}),
|
|
147
|
+
entries: (stats?.entries ?? {}),
|
|
148
|
+
};
|
|
149
|
+
const merged = mergeStats(seed, UPDATED_KEY, UPDATED_PROVIDER, fresh);
|
|
150
|
+
return {
|
|
151
|
+
schema_version: typeof stats?.schema_version === "number" ? stats.schema_version : SCHEMA_VERSION,
|
|
152
|
+
// RFC 3339 UTC to the second — the shape `statsDocument` writes and every
|
|
153
|
+
// fixture pins.
|
|
154
|
+
generated_at: typeof stats?.generated_at === "string"
|
|
155
|
+
? stats.generated_at
|
|
156
|
+
: new Date().toISOString().replace(/\.\d+Z$/, "Z"),
|
|
157
|
+
...merged,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
73
160
|
async function exists(target) {
|
|
74
161
|
return fs.access(target).then(() => true, () => false);
|
|
75
162
|
}
|
|
@@ -202,14 +289,18 @@ async function stage(root, outDir, srcDir) {
|
|
|
202
289
|
*/
|
|
203
290
|
async function resolveInputs(opts) {
|
|
204
291
|
const config = resolveConfig(opts.config);
|
|
205
|
-
const
|
|
292
|
+
const sidecar = await readStats(opts.root);
|
|
293
|
+
const packages = withRatings(await readPackages(opts.outDir), sidecar);
|
|
294
|
+
// Downstream of the join, because the `updated` it publishes is read off
|
|
295
|
+
// the packages themselves.
|
|
296
|
+
const stats = publishedStats(packages, sidecar);
|
|
206
297
|
const css = await readCustomCss(opts.root, config.customCss);
|
|
207
298
|
// A site on GitHub/GitLab *project* Pages lives under a path segment, and
|
|
208
299
|
// `site` is the only place that fact is recorded. Its path becomes Astro's
|
|
209
300
|
// `base` — which covers everything Astro emits itself — and the same value
|
|
210
301
|
// reaches the hand-written URLs through `astro/lib/base.ts`. Domain-rooted
|
|
211
302
|
// sites yield "/", Astro's own default, so nothing about them moves.
|
|
212
|
-
return { config, packages, css, base: new URL(config.site).pathname };
|
|
303
|
+
return { config, packages, css, stats, base: new URL(config.site).pathname };
|
|
213
304
|
}
|
|
214
305
|
/**
|
|
215
306
|
* Everything Astro is told, for one run. Build and dev share it verbatim —
|
|
@@ -248,6 +339,14 @@ function inlineConfig(opts, staged, { config, packages, css, base }) {
|
|
|
248
339
|
/** Render the catalog site from `<outDir>/all.json` into `outDir`. */
|
|
249
340
|
export async function buildSite(opts) {
|
|
250
341
|
const inputs = await resolveInputs(opts);
|
|
342
|
+
// Before `stage`, and that is the whole trick: `outDir` is its last
|
|
343
|
+
// `public/` layer, which is the only reason a file sitting there survives
|
|
344
|
+
// Astro emptying `outDir` — the same route `all.json` already takes.
|
|
345
|
+
// Upstream of here, `compileIndex` has already `rmSync`'d `outDir`, so
|
|
346
|
+
// publishing any earlier writes into a directory about to be deleted.
|
|
347
|
+
if (inputs.stats) {
|
|
348
|
+
await fs.writeFile(path.join(opts.outDir, STATS_PUBLISHED), `${JSON.stringify(inputs.stats)}\n`);
|
|
349
|
+
}
|
|
251
350
|
const staged = await stage(opts.root, opts.outDir);
|
|
252
351
|
const astro = inlineConfig(opts, staged, inputs);
|
|
253
352
|
// Astro routes its server build through `<cwd>/.astro/` whenever `outDir`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer/types.d.ts
CHANGED
|
@@ -18,6 +18,47 @@ export interface CatalogPackage extends IndexRecord {
|
|
|
18
18
|
replacedBy?: string;
|
|
19
19
|
tags?: string[];
|
|
20
20
|
logo?: string;
|
|
21
|
+
/** Publishing commit SHA, `-dirty` suffixed from a dirty tree. Never shown raw. */
|
|
22
|
+
revision?: string;
|
|
23
|
+
/** Maintainer. Only present when the artifact was authored or published with git. */
|
|
24
|
+
authors?: string;
|
|
25
|
+
/** Distributing organization; grim derives it from the repo namespace when unset. */
|
|
26
|
+
vendor?: string;
|
|
27
|
+
/** Project home page. */
|
|
28
|
+
url?: string;
|
|
29
|
+
/** Documentation URL. */
|
|
30
|
+
documentation?: string;
|
|
31
|
+
/** A skill's editor/runtime hint. Absent for every other kind. */
|
|
32
|
+
compatibility?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Where to get help, from the description companion's manifest. Every
|
|
35
|
+
* channel is optional and the object itself is absent for a repository
|
|
36
|
+
* publishing no companion — the "Get help" block renders only when at
|
|
37
|
+
* least one channel is set, which for most repositories is never.
|
|
38
|
+
*/
|
|
39
|
+
support?: {
|
|
40
|
+
issues?: string;
|
|
41
|
+
chat?: string;
|
|
42
|
+
contact?: string;
|
|
43
|
+
security?: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* When this artifact last moved, as an RFC 3339 timestamp — its own
|
|
47
|
+
* `created` (a commit date, stable per digest) when it has one, and
|
|
48
|
+
* otherwise the first build that saw the current digest. Written by
|
|
49
|
+
* `enrich`, joined into the published `stats.json` at build time.
|
|
50
|
+
*/
|
|
51
|
+
updated?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Upvotes joined from the `stats.json` sidecar at build time. Absent means
|
|
54
|
+
* **unrated**, and never zero: an index that publishes no sidecar, a ref the
|
|
55
|
+
* sidecar omits, and a ref carrying other stats but no `rating` are the same
|
|
56
|
+
* absence, and none of them is an error. The site is anonymous — it is built
|
|
57
|
+
* once for everyone — so this is a count and never a "you voted" state.
|
|
58
|
+
*/
|
|
59
|
+
rating?: {
|
|
60
|
+
up: number;
|
|
61
|
+
};
|
|
21
62
|
}
|
|
22
63
|
/**
|
|
23
64
|
* The build-time payload `buildSite` injects through Vite `define`. Read it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -15,7 +15,12 @@ export interface HttpResponse {
|
|
|
15
15
|
body: string;
|
|
16
16
|
header(name: string): string;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
/** Everything past a plain GET. Omitted leaves `fetch`'s own defaults. */
|
|
19
|
+
export interface RequestOptions {
|
|
20
|
+
method?: string;
|
|
21
|
+
body?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function request(url: string, headers?: Record<string, string>, options?: RequestOptions): Promise<HttpResponse>;
|
|
19
24
|
/** `request` plus a `JSON.parse` that yields `null` instead of throwing. */
|
|
20
25
|
export declare function requestJson(url: string, headers?: Record<string, string>): Promise<{
|
|
21
26
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,QAAS,CAAC;AACjC,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AA4BD,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,QAAS,CAAC;AACjC,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AA4BD,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAwBvB;AAED,4EAA4E;AAC5E,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ5C"}
|
|
@@ -37,11 +37,15 @@ async function readCapped(response, cap) {
|
|
|
37
37
|
}
|
|
38
38
|
return Buffer.concat(chunks).toString("utf8");
|
|
39
39
|
}
|
|
40
|
-
export async function request(url, headers = {}) {
|
|
40
|
+
export async function request(url, headers = {}, options = {}) {
|
|
41
41
|
const none = { status: 0, body: "", header: () => "" };
|
|
42
42
|
try {
|
|
43
43
|
const response = await fetch(url, {
|
|
44
44
|
headers: { "User-Agent": USER_AGENT, ...headers },
|
|
45
|
+
// Both `undefined` for a two-argument call, which is what `fetch` sees
|
|
46
|
+
// when neither is passed — the existing GET call sites are untouched.
|
|
47
|
+
method: options.method,
|
|
48
|
+
body: options.body,
|
|
45
49
|
// ponytail: redirects are refused, not followed. If a real registry ever
|
|
46
50
|
// needs one, re-run the host policy on the Location and follow one hop.
|
|
47
51
|
redirect: "manual",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sCAAsC;AAEtC;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;AAS9C,KAAK,UAAU,UAAU,CACvB,QAAkB,EAClB,GAAW;IAEX,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;YACzB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ name: pages
|
|
|
7
7
|
|
|
8
8
|
on:
|
|
9
9
|
push:
|
|
10
|
-
branches: [{{defaultBranch}}]
|
|
10
|
+
branches: [{{defaultBranch}}]{{githubRatingsSchedule}}
|
|
11
11
|
workflow_dispatch:
|
|
12
12
|
|
|
13
13
|
# Default-deny at the top; every job pays for exactly what it needs.
|
|
@@ -19,7 +19,7 @@ concurrency:
|
|
|
19
19
|
|
|
20
20
|
jobs:
|
|
21
21
|
build:
|
|
22
|
-
runs-on: ubuntu-latest
|
|
22
|
+
runs-on: ubuntu-latest{{githubRatingsBuildKeys}}
|
|
23
23
|
permissions:
|
|
24
24
|
contents: read
|
|
25
25
|
steps:
|
|
@@ -40,12 +40,17 @@ jobs:
|
|
|
40
40
|
# here, in the job that publishes the site.
|
|
41
41
|
- name: Install
|
|
42
42
|
run: npm ci --ignore-scripts
|
|
43
|
-
|
|
43
|
+
|
|
44
|
+
# Ahead of the build, not after it: it only resolves this repository's
|
|
45
|
+
# Pages URL and sets outputs, and a step that runs before the build - the
|
|
46
|
+
# ratings seed - cross-checks `site` against that URL before it reads the
|
|
47
|
+
# published sidecar.
|
|
48
|
+
- id: pages
|
|
49
|
+
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
|
|
50
|
+
{{githubEnrichSteps}}{{githubRatingsSeedSteps}}
|
|
44
51
|
- name: Build index
|
|
45
52
|
run: npm run build
|
|
46
53
|
|
|
47
|
-
- uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
|
|
48
|
-
|
|
49
54
|
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
|
|
50
55
|
with:
|
|
51
56
|
path: dist
|
|
@@ -62,3 +67,4 @@ jobs:
|
|
|
62
67
|
steps:
|
|
63
68
|
- id: deployment
|
|
64
69
|
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
|
|
70
|
+
{{githubRatingsJob}}
|