@grimoire-rs/indexer 0.2.2 → 0.3.1
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 +59 -18
- package/dist/ci.d.ts +149 -0
- package/dist/ci.d.ts.map +1 -0
- package/dist/ci.js +338 -0
- package/dist/ci.js.map +1 -0
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +3 -9
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/ci.d.ts +6 -0
- package/dist/cli/ci.d.ts.map +1 -0
- package/dist/cli/ci.js +43 -0
- package/dist/cli/ci.js.map +1 -0
- package/dist/cli/dev.d.ts +7 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/dev.js +57 -0
- package/dist/cli/dev.js.map +1 -0
- package/dist/cli/init.d.ts +18 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +584 -100
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +71 -10
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/out_dir.d.ts +11 -0
- package/dist/cli/out_dir.d.ts.map +1 -0
- package/dist/cli/out_dir.js +30 -0
- package/dist/cli/out_dir.js.map +1 -0
- package/dist/cli/validate.d.ts +1 -0
- package/dist/cli/validate.d.ts.map +1 -1
- package/dist/cli/validate.js +47 -1
- package/dist/cli/validate.js.map +1 -1
- package/dist/renderer/astro/components/BrandMark.js +0 -1
- package/dist/renderer/astro/components/Catalog.js +0 -1
- package/dist/renderer/astro/lib/base.js +0 -1
- package/dist/renderer/astro/lib/catalog.js +0 -1
- package/dist/renderer/astro/lib/code.js +0 -1
- package/dist/renderer/astro/lib/data.js +0 -1
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +16 -0
- package/dist/renderer/index.js.map +1 -1
- package/dist/templates.d.ts +12 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +40 -0
- package/dist/templates.js.map +1 -0
- package/dist/validate/adapters/files.d.ts.map +1 -1
- package/dist/validate/adapters/files.js +13 -3
- package/dist/validate/adapters/files.js.map +1 -1
- package/dist/validate/index.js +17 -2
- package/dist/validate/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/README.md +115 -19
- package/templates/ci/github-automerge.yml +36 -0
- package/templates/ci/github-enrich.yml +27 -0
- package/templates/ci/github-pages.yml +64 -0
- package/templates/ci/github-publish.yml +89 -0
- package/templates/ci/github-validate.yml +157 -0
- package/templates/ci/github-verify-ci.yml +47 -0
- package/templates/ci/gitlab-ci.yml +149 -0
- package/templates/ci/gitlab-enrich.sh +26 -0
- package/templates/ci/gitlab-publish.yml +50 -0
- package/templates/ci/gitlab-verify.yml +16 -0
- package/templates/ci/header.txt +19 -0
- package/templates/gitattributes +4 -0
- package/templates/gitignore +7 -2
- package/templates/package.json +18 -0
- package/templates/publish.toml +2 -2
- package/dist/renderer/astro/components/BrandMark.d.ts.map +0 -1
- package/dist/renderer/astro/components/BrandMark.js.map +0 -1
- package/dist/renderer/astro/components/Catalog.d.ts.map +0 -1
- package/dist/renderer/astro/components/Catalog.js.map +0 -1
- package/dist/renderer/astro/lib/base.d.ts.map +0 -1
- package/dist/renderer/astro/lib/base.js.map +0 -1
- package/dist/renderer/astro/lib/catalog.d.ts.map +0 -1
- package/dist/renderer/astro/lib/catalog.js.map +0 -1
- package/dist/renderer/astro/lib/code.d.ts.map +0 -1
- package/dist/renderer/astro/lib/code.js.map +0 -1
- package/dist/renderer/astro/lib/data.d.ts.map +0 -1
- package/dist/renderer/astro/lib/data.js.map +0 -1
- package/templates/github-pages.yml +0 -24
- package/templates/github-validate.yml +0 -51
- package/templates/gitlab-ci.yml +0 -13
- package/templates/reusable/gitlab-index-ci.yml +0 -125
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{{header}}
|
|
2
|
+
# Contribution gate for pull requests against this index.
|
|
3
|
+
#
|
|
4
|
+
# Exit 0 = eligible for auto-merge, non-zero = manual review required, so this
|
|
5
|
+
# job's success IS the gate. To enforce it, require the status check named
|
|
6
|
+
# `validate` in branch protection - the job key below is the context name, so
|
|
7
|
+
# renaming the job moves the required context with it, and requiring a context
|
|
8
|
+
# that never reports blocks every pull request forever.
|
|
9
|
+
#
|
|
10
|
+
# `pull_request_target` is deliberate and safe HERE, and only because of what
|
|
11
|
+
# this job does: it runs the renderer this repository has locked, against the
|
|
12
|
+
# TRUSTED base checkout, and reads the pull-request head as DATA ONLY in a
|
|
13
|
+
# separate directory - nothing in it is executed, imported, installed, or
|
|
14
|
+
# interpolated into a command. GitHub always runs the base branch's copy of a
|
|
15
|
+
# `pull_request_target` workflow, so a contributor editing this file in their
|
|
16
|
+
# pull request does not change the gate that judges it.
|
|
17
|
+
#
|
|
18
|
+
# The `npm ci` below installs the BASE checkout's package-lock.json, in the
|
|
19
|
+
# base directory. That lock is maintainer-committed and reviewed like any
|
|
20
|
+
# other file here. NEVER install, run, or `cd` into `pr-tree/`, and never add
|
|
21
|
+
# a `run:` step that touches it - that would execute contributor code with a
|
|
22
|
+
# token. `--ignore-scripts` holds the line one step further: the gate needs
|
|
23
|
+
# nothing a dependency lifecycle script provides.
|
|
24
|
+
#
|
|
25
|
+
# Do not widen `permissions:`.
|
|
26
|
+
#
|
|
27
|
+
# This gate covers third-party contributions. It does NOT cover an announce
|
|
28
|
+
# your own CI makes (the `--with-skills` layout, where this repo publishes into
|
|
29
|
+
# its own index): GitHub runs no workflows on a pull request opened with
|
|
30
|
+
# `secrets.GITHUB_TOKEN`, so `grim publish --announce` from CI lands an
|
|
31
|
+
# effectively ungated pull request - review it by hand. That pull request also
|
|
32
|
+
# needs "Allow GitHub Actions to create and approve pull requests"
|
|
33
|
+
# (Settings -> Actions) turned on, off by default; without it grim only pushes
|
|
34
|
+
# the branch and reports `outcome: "branch-pushed"`. Enabling it lets any
|
|
35
|
+
# workflow in this repo approve pull requests too, so weigh it against your
|
|
36
|
+
# branch protection.
|
|
37
|
+
name: validate
|
|
38
|
+
|
|
39
|
+
on:
|
|
40
|
+
pull_request_target:
|
|
41
|
+
paths:
|
|
42
|
+
- "index/**"
|
|
43
|
+
- index-policy.json
|
|
44
|
+
|
|
45
|
+
permissions: {}
|
|
46
|
+
|
|
47
|
+
# One gate run per pull request. Superseding a run cancels it, and a cancelled
|
|
48
|
+
# run is not a success - so nothing downstream of the gate can act on a verdict
|
|
49
|
+
# about a head that has already been replaced.
|
|
50
|
+
concurrency:
|
|
51
|
+
group: grim-indexer-validate-${{ github.event.pull_request.number }}
|
|
52
|
+
cancel-in-progress: true
|
|
53
|
+
|
|
54
|
+
jobs:
|
|
55
|
+
validate:
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
permissions:
|
|
58
|
+
contents: read
|
|
59
|
+
pull-requests: read
|
|
60
|
+
steps:
|
|
61
|
+
# Trusted: the committed state the pull request proposes to change.
|
|
62
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
63
|
+
with:
|
|
64
|
+
persist-credentials: false
|
|
65
|
+
|
|
66
|
+
# Untrusted: the pull-request head, as data. `persist-credentials: false`
|
|
67
|
+
# keeps a token out of the tree the contributor controls.
|
|
68
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
69
|
+
with:
|
|
70
|
+
ref: ${{ github.event.pull_request.head.sha }}
|
|
71
|
+
path: pr-tree
|
|
72
|
+
persist-credentials: false
|
|
73
|
+
|
|
74
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
75
|
+
with:
|
|
76
|
+
node-version: "{{nodeVersion}}"
|
|
77
|
+
cache: npm
|
|
78
|
+
|
|
79
|
+
- name: Install
|
|
80
|
+
run: npm ci --ignore-scripts
|
|
81
|
+
|
|
82
|
+
# Changed paths come from the API, not from a diff of the untrusted tree,
|
|
83
|
+
# and they reach the gate through a FILE - never through argv. They are
|
|
84
|
+
# attacker-controlled strings: appending them to the command line let a
|
|
85
|
+
# pull request that added an empty file named `-h` short-circuit the
|
|
86
|
+
# parser and exit 0, which this job's contract reads as "eligible for
|
|
87
|
+
# auto-merge". Do not reintroduce `xargs` here.
|
|
88
|
+
#
|
|
89
|
+
# EVERY changed path is passed through - no path filter, no status
|
|
90
|
+
# filter. Rejecting an out-of-bounds path is the gate's first job, and it
|
|
91
|
+
# ownership-checks a deletion before allowing it, so anything dropped
|
|
92
|
+
# here is dropped from the decision this job's exit code authorizes.
|
|
93
|
+
# Filtering to `^index/` would let a pull request that adds a valid entry
|
|
94
|
+
# and edits a workflow pass; filtering out `removed` would let one that
|
|
95
|
+
# adds its own entry and deletes a stranger's pass.
|
|
96
|
+
#
|
|
97
|
+
# The count cross-check is the same argument applied to pagination:
|
|
98
|
+
# `pulls/{n}/files` stops at 3000 files, so without it a large enough
|
|
99
|
+
# pull request pushes its interesting paths past the cap and the gate
|
|
100
|
+
# authorizes a change it never saw.
|
|
101
|
+
- name: Collect changed paths
|
|
102
|
+
env:
|
|
103
|
+
GH_TOKEN: ${{ github.token }}
|
|
104
|
+
REPO: ${{ github.repository }}
|
|
105
|
+
PR: ${{ github.event.pull_request.number }}
|
|
106
|
+
run: |
|
|
107
|
+
set -euo pipefail
|
|
108
|
+
files="repos/${REPO}/pulls/${PR}/files"
|
|
109
|
+
|
|
110
|
+
# ONE fetch, then every derivation from that one snapshot. Reading
|
|
111
|
+
# the endpoint once per derivation reads a mutable resource: a push
|
|
112
|
+
# landing between two calls left the count describing one head and
|
|
113
|
+
# the path list another, so the check certified a list it had never
|
|
114
|
+
# counted. `--paginate` emits one array per page; `-s add` makes them
|
|
115
|
+
# one array.
|
|
116
|
+
gh api --paginate "${files}" | jq -s 'add' > records.json
|
|
117
|
+
|
|
118
|
+
# Count RECORDS. The check exists because `pulls/{n}/files` stops at
|
|
119
|
+
# 3000 files - without it a large enough pull request pushes its
|
|
120
|
+
# interesting paths past the cap and the gate authorizes a change it
|
|
121
|
+
# never saw.
|
|
122
|
+
records=$(jq 'length' records.json)
|
|
123
|
+
declared=$(gh api "repos/${REPO}/pulls/${PR}" --jq '.changed_files')
|
|
124
|
+
if [ "${records}" -ne "${declared}" ]; then
|
|
125
|
+
echo "::error::collected ${records} of ${declared} changed files" \
|
|
126
|
+
"- the gate cannot judge what it cannot see"
|
|
127
|
+
exit 1
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
# A rename must contribute BOTH names, so a record that claims to be
|
|
131
|
+
# one without naming its source is refused rather than silently
|
|
132
|
+
# contributing only its destination - which is precisely the hole
|
|
133
|
+
# below closes.
|
|
134
|
+
orphans=$(jq '[.[] | select((.status == "renamed" or .status == "copied")
|
|
135
|
+
and ((.previous_filename // "") == ""))] | length' records.json)
|
|
136
|
+
if [ "${orphans}" -ne 0 ]; then
|
|
137
|
+
echo "::error::${orphans} renamed file(s) arrived with no previous_filename" \
|
|
138
|
+
"- the source path cannot be checked"
|
|
139
|
+
exit 1
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
# BOTH names of a rename. The API reports a rename as one record
|
|
143
|
+
# whose `filename` is the destination and whose `previous_filename`
|
|
144
|
+
# is the source; taking only the destination let a pull request copy
|
|
145
|
+
# a stranger's entry into its own namespace and delete the original,
|
|
146
|
+
# with the deletion never presented to the gate and no ownership
|
|
147
|
+
# check ever run on the victim's namespace.
|
|
148
|
+
jq -r '.[] | .filename, (.previous_filename // empty)' records.json > changed.txt
|
|
149
|
+
|
|
150
|
+
- name: Validate contribution
|
|
151
|
+
env:
|
|
152
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
153
|
+
run: |
|
|
154
|
+
set -euo pipefail
|
|
155
|
+
npm run validate -- \
|
|
156
|
+
--forge github --root . --pr-tree pr-tree --changed-from changed.txt
|
|
157
|
+
{{githubAutoMergeJob}}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{{header}}
|
|
2
|
+
# Fail closed when a generated CI file is hand-edited: this job re-renders from
|
|
3
|
+
# index.config.json and diffs against what is committed. Fix drift by running
|
|
4
|
+
# `npm run ci` locally and committing the result.
|
|
5
|
+
#
|
|
6
|
+
# It runs under `pull_request`, so it needs no secrets and never checks out a
|
|
7
|
+
# trusted token. That also means a fork's copy of this file is what runs on
|
|
8
|
+
# that fork's pull request - the guard is a maintenance check on the
|
|
9
|
+
# repository's own history, not a trust boundary. The contribution gate
|
|
10
|
+
# (validate.yml) is the trust boundary, and it rejects any pull request that
|
|
11
|
+
# touches a path outside `index/<host>/<namespace>/<package>/`.
|
|
12
|
+
name: verify-ci
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
pull_request:
|
|
16
|
+
paths:
|
|
17
|
+
{{verifyPaths}}
|
|
18
|
+
push:
|
|
19
|
+
branches: [{{defaultBranch}}]
|
|
20
|
+
paths:
|
|
21
|
+
{{verifyPaths}}
|
|
22
|
+
|
|
23
|
+
permissions: {}
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
verify-ci:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
permissions:
|
|
29
|
+
contents: read
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
32
|
+
with:
|
|
33
|
+
persist-credentials: false
|
|
34
|
+
|
|
35
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
36
|
+
with:
|
|
37
|
+
node-version: "{{nodeVersion}}"
|
|
38
|
+
cache: npm
|
|
39
|
+
|
|
40
|
+
# Rendering needs no build toolchain, so nothing here runs a dependency's
|
|
41
|
+
# lifecycle script.
|
|
42
|
+
- name: Install
|
|
43
|
+
run: npm ci --ignore-scripts
|
|
44
|
+
|
|
45
|
+
# Exits 65 on drift; the hint names the stale path and never its contents.
|
|
46
|
+
- name: Check the committed CI matches index.config.json
|
|
47
|
+
run: npm run ci:check
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{{header}}
|
|
2
|
+
# Builds this index for GitLab Pages and gates merge requests.
|
|
3
|
+
|
|
4
|
+
stages:
|
|
5
|
+
- test
|
|
6
|
+
- deploy
|
|
7
|
+
|
|
8
|
+
# `npm ci` installs exactly package-lock.json, so which renderer runs is a
|
|
9
|
+
# reviewed fact in this repository rather than a resolution on the runner.
|
|
10
|
+
default:
|
|
11
|
+
image: node:{{nodeVersion}}-alpine
|
|
12
|
+
cache:
|
|
13
|
+
key:
|
|
14
|
+
files:
|
|
15
|
+
- package-lock.json
|
|
16
|
+
paths:
|
|
17
|
+
- .npm/
|
|
18
|
+
- .npm-gate/
|
|
19
|
+
|
|
20
|
+
# Contribution gate. Exit 0 = eligible for auto-merge, non-zero = manual
|
|
21
|
+
# review required, so this job's status IS the gate.
|
|
22
|
+
#
|
|
23
|
+
# The gate must judge the change against the COMMITTED policy, not the policy
|
|
24
|
+
# the merge request proposes - otherwise a contributor allowlists their own
|
|
25
|
+
# registry host in the same merge request. So the target branch is checked out
|
|
26
|
+
# into a sibling worktree and passed as `--root`, with the merge-request head
|
|
27
|
+
# passed as `--pr-tree` and read as data only.
|
|
28
|
+
#
|
|
29
|
+
# The gate installs and runs from `../.gate-base`, the target branch's worktree -
|
|
30
|
+
# never from the merge request's own checkout. Otherwise the contributor
|
|
31
|
+
# supplies the lockfile that decides which validator judges them, and
|
|
32
|
+
# `--ignore-scripts` alone does not fix that: the package it installs is still
|
|
33
|
+
# theirs to choose. `--ignore-scripts` stays anyway, one layer further in.
|
|
34
|
+
#
|
|
35
|
+
# RESIDUAL, and it is not fixable from this file. Two ways, both structural:
|
|
36
|
+
#
|
|
37
|
+
# 1. The merge request supplies its own `.gitlab-ci.yml`, so a contributor
|
|
38
|
+
# can delete this job outright.
|
|
39
|
+
# 2. GitLab runs a FORK merge request's pipeline in the source project, so
|
|
40
|
+
# `origin` is the fork. `origin/<target>` is then the fork's copy of the
|
|
41
|
+
# target branch, which means `../.gate-base` - and the `index-policy.json` and
|
|
42
|
+
# `package-lock.json` read from it - are contributor-controlled for a
|
|
43
|
+
# fork merge request. The `../.gate-base` install above is therefore defence in
|
|
44
|
+
# depth for same-project branches, not a trust boundary for forks.
|
|
45
|
+
#
|
|
46
|
+
# Enforce it instance-side - a compliance pipeline, a required merge check, or
|
|
47
|
+
# protected-branch approval rules - or treat the GitLab gate as advisory. The
|
|
48
|
+
# GitHub gate has no equivalent gap: `pull_request_target` always runs the base
|
|
49
|
+
# branch's copy of the workflow, against the base checkout.
|
|
50
|
+
grim-indexer:validate:
|
|
51
|
+
stage: test
|
|
52
|
+
variables:
|
|
53
|
+
GIT_DEPTH: 0
|
|
54
|
+
rules:
|
|
55
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
56
|
+
# The job image is picked for npm, and `node:*-alpine` ships no git - but
|
|
57
|
+
# this job diffs the merge request against its target branch, so git is not
|
|
58
|
+
# optional. GitLab's runner clones with a separate helper image, so nothing
|
|
59
|
+
# else puts git in here. Install it for whichever package manager the image
|
|
60
|
+
# has.
|
|
61
|
+
#
|
|
62
|
+
# The trailing check is the load-bearing part: the gate's contract is
|
|
63
|
+
# "exit 0 = eligible for auto-merge", so a missing or failed-to-install tool
|
|
64
|
+
# must fail the job, never silently skip validation.
|
|
65
|
+
before_script:
|
|
66
|
+
- |
|
|
67
|
+
set -eu
|
|
68
|
+
if ! command -v git >/dev/null 2>&1; then
|
|
69
|
+
if command -v apk >/dev/null 2>&1; then
|
|
70
|
+
apk add --no-cache git
|
|
71
|
+
elif command -v apt-get >/dev/null 2>&1; then
|
|
72
|
+
apt-get update -qq && apt-get install -y -qq --no-install-recommends git
|
|
73
|
+
fi
|
|
74
|
+
fi
|
|
75
|
+
command -v git >/dev/null 2>&1 || {
|
|
76
|
+
echo "grim-indexer: the gate needs git, and this image has none" >&2
|
|
77
|
+
exit 1
|
|
78
|
+
}
|
|
79
|
+
script:
|
|
80
|
+
- |
|
|
81
|
+
set -eu
|
|
82
|
+
git fetch --quiet origin "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
|
|
83
|
+
# `../.gate-base` sits outside $CI_PROJECT_DIR, which is the part GitLab
|
|
84
|
+
# cleans. A leftover from an earlier run makes `git worktree add` fail
|
|
85
|
+
# and, under `set -eu`, fails the job permanently - fail-closed, but the
|
|
86
|
+
# shape that gets a gate switched off rather than fixed.
|
|
87
|
+
#
|
|
88
|
+
# The leading dot is load-bearing. `..` is the NAMESPACE directory,
|
|
89
|
+
# shared with every sibling project on this runner, and a GitLab project
|
|
90
|
+
# path must start with a letter or a digit - so no project can be named
|
|
91
|
+
# `.gate-base` and this `rm -rf` can never reach somebody else's
|
|
92
|
+
# checkout. It was `../base` for one revision, which a group holding a
|
|
93
|
+
# project called `base` would have had wiped on every gate run.
|
|
94
|
+
rm -rf ../.gate-base
|
|
95
|
+
git worktree prune
|
|
96
|
+
git worktree add --detach ../.gate-base "origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
|
|
97
|
+
# Every changed path, with no pathspec and no diff filter: rejecting an
|
|
98
|
+
# out-of-bounds path is the gate's first job, and it ownership-checks a
|
|
99
|
+
# deletion before allowing it. Narrowing to `-- index` would let a merge
|
|
100
|
+
# request that adds a valid entry and edits this very file pass; dropping
|
|
101
|
+
# `D` would let one that deletes a stranger's entry pass.
|
|
102
|
+
#
|
|
103
|
+
# `--no-renames` is load-bearing. Git reports a rename as the DESTINATION
|
|
104
|
+
# path only, so copying a stranger's metadata.json into your own
|
|
105
|
+
# namespace and deleting the original was detected as a rename, the
|
|
106
|
+
# deletion never reached the gate, and no ownership check ever ran on the
|
|
107
|
+
# victim's namespace. With this flag both sides are listed.
|
|
108
|
+
#
|
|
109
|
+
# NEVER add `-C`. Copy detection re-collapses the pair to the
|
|
110
|
+
# destination in either flag order, which puts the hole straight back.
|
|
111
|
+
#
|
|
112
|
+
# `-z` and `--changed-from` keep these attacker-controlled strings off
|
|
113
|
+
# the command line and out of the shell's hands entirely: a path named
|
|
114
|
+
# `-h` used to make the parser print help and exit 0, which this job's
|
|
115
|
+
# contract reads as "eligible for auto-merge".
|
|
116
|
+
git diff -z --name-only --no-renames \
|
|
117
|
+
"$CI_MERGE_REQUEST_DIFF_BASE_SHA" HEAD > "$CI_PROJECT_DIR/changed.txt"
|
|
118
|
+
# Installed and run from the trusted target branch, never from the
|
|
119
|
+
# merge request's own lockfile. Its own cache directory, because the
|
|
120
|
+
# shared one is a path the merge request can commit into.
|
|
121
|
+
cd ../.gate-base
|
|
122
|
+
rm -rf "$CI_PROJECT_DIR/.npm-gate"
|
|
123
|
+
npm ci --cache "$CI_PROJECT_DIR/.npm-gate" --prefer-offline --ignore-scripts
|
|
124
|
+
npm run validate -- \
|
|
125
|
+
--forge gitlab --root . --pr-tree "$CI_PROJECT_DIR" \
|
|
126
|
+
--changed-from "$CI_PROJECT_DIR/changed.txt"
|
|
127
|
+
{{gitlabVerifyJob}}
|
|
128
|
+
# GitLab Pages serves whatever the `pages` job leaves in `public/`.
|
|
129
|
+
pages:
|
|
130
|
+
stage: deploy
|
|
131
|
+
rules:
|
|
132
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
133
|
+
before_script:
|
|
134
|
+
- npm ci --cache .npm --prefer-offline --ignore-scripts
|
|
135
|
+
script:
|
|
136
|
+
- |
|
|
137
|
+
set -eu
|
|
138
|
+
{{gitlabEnrichScript}}
|
|
139
|
+
# Built into `dist/`, then moved. Building straight into `public/` was a
|
|
140
|
+
# data-loss bug: the compile step clears its output directory first, so it
|
|
141
|
+
# deleted this index's own committed asset layer (logo, favicon) before
|
|
142
|
+
# the renderer ever read it. `dist/` already contains those assets by the
|
|
143
|
+
# time this runs, so the replacement is complete.
|
|
144
|
+
- npm run build
|
|
145
|
+
- rm -rf public && mv dist public
|
|
146
|
+
artifacts:
|
|
147
|
+
paths:
|
|
148
|
+
- public
|
|
149
|
+
{{gitlabPublishJob}}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# The index stores pointers; README, changelog, logo and version list all
|
|
2
|
+
# live in the registry, and grim is what reads a registry. Best-effort by
|
|
3
|
+
# design - a registry outage degrades the site to pointers-only rather
|
|
4
|
+
# than blocking a deploy, so the failure is logged and the build
|
|
5
|
+
# continues. Set `"enrich": false` in the `ci` block to drop this block.
|
|
6
|
+
#
|
|
7
|
+
# Nothing is committed and no token is involved: the sidecars live only
|
|
8
|
+
# in this job's workspace, which is why this needs no CI variables.
|
|
9
|
+
if command -v apk >/dev/null 2>&1; then
|
|
10
|
+
apk add --no-cache curl tar
|
|
11
|
+
elif command -v apt-get >/dev/null 2>&1; then
|
|
12
|
+
apt-get update -qq && apt-get install -y -qq --no-install-recommends curl tar ca-certificates
|
|
13
|
+
fi
|
|
14
|
+
# Alpine is musl; everything else here is glibc.
|
|
15
|
+
if [ -f /etc/alpine-release ]; then libc=musl; else libc=gnu; fi
|
|
16
|
+
# Resolved from `ci.grimVersion` when this file was rendered, so there is
|
|
17
|
+
# no version branch left to take at run time.
|
|
18
|
+
base="{{grimReleaseBase}}"
|
|
19
|
+
tarball="grimoire-$(uname -m)-unknown-linux-$libc.tar.gz"
|
|
20
|
+
tmp="$(mktemp -d)"
|
|
21
|
+
( cd "$tmp" \
|
|
22
|
+
&& curl -fsSL --proto '=https' --tlsv1.2 -O "$base/$tarball" -O "$base/$tarball.sha256" \
|
|
23
|
+
&& sha256sum -c "$tarball.sha256" \
|
|
24
|
+
&& tar -xzf "$tarball" -C /usr/local/bin --strip-components=1 "${tarball%.tar.gz}/grim" ) \
|
|
25
|
+
&& npm run enrich \
|
|
26
|
+
|| echo "warning: enrich failed - building without READMEs, logos and version lists"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
# Publishes this project's own packages, then announces them into the index
|
|
3
|
+
# beside them - the combined layout `grim-indexer init --with-skills`
|
|
4
|
+
# scaffolds. `publish.toml` says what gets pushed and where; the `ci.publish`
|
|
5
|
+
# key in index.config.json says when.
|
|
6
|
+
#
|
|
7
|
+
# Registry credentials default to this project's own GitLab container registry
|
|
8
|
+
# through the job token, so the common case needs no secret. Publishing
|
|
9
|
+
# anywhere else is two CI/CD variables and no edit to this generated file:
|
|
10
|
+
# GRIM_REGISTRY_HOST and GRIM_REGISTRY_USER, plus a masked GRIM_REGISTRY_TOKEN.
|
|
11
|
+
#
|
|
12
|
+
# The announce needs a token that can open a merge request: set
|
|
13
|
+
# GRIM_ANNOUNCE_TOKEN (a project access token with `api` scope is enough,
|
|
14
|
+
# since the index it announces into is this same project). Without it the
|
|
15
|
+
# packages publish and the announce stops - `CI_JOB_TOKEN` can carry the git
|
|
16
|
+
# push but cannot open the merge request.
|
|
17
|
+
grim-indexer:publish:
|
|
18
|
+
stage: deploy
|
|
19
|
+
rules:
|
|
20
|
+
{{gitlabPublishRule}}
|
|
21
|
+
variables:
|
|
22
|
+
REGISTRY: $CI_REGISTRY
|
|
23
|
+
REGISTRY_USER: gitlab-ci-token
|
|
24
|
+
REGISTRY_TOKEN: $CI_JOB_TOKEN
|
|
25
|
+
before_script:
|
|
26
|
+
# `node:*-alpine` ships neither curl nor git, and this job needs both: one
|
|
27
|
+
# to fetch the release, one to push the announce branch.
|
|
28
|
+
- apk add --no-cache curl git tar || apt-get update && apt-get install -y curl git tar
|
|
29
|
+
# Pinned by `ci.grimVersion`, resolved when this file was rendered, and
|
|
30
|
+
# checksum-verified before it runs.
|
|
31
|
+
- |
|
|
32
|
+
set -eu
|
|
33
|
+
base="{{grimReleaseBase}}"
|
|
34
|
+
tarball="grimoire-$(uname -m)-unknown-linux-gnu.tar.gz"
|
|
35
|
+
cd "$(mktemp -d)"
|
|
36
|
+
curl -fsSL --proto '=https' --tlsv1.2 \
|
|
37
|
+
-O "${base}/${tarball}" -O "${base}/${tarball}.sha256"
|
|
38
|
+
sha256sum -c "${tarball}.sha256"
|
|
39
|
+
tar -xzf "${tarball}" --strip-components=1 -C /usr/local/bin --wildcards '*/grim'
|
|
40
|
+
cd "$CI_PROJECT_DIR"
|
|
41
|
+
grim --version
|
|
42
|
+
script:
|
|
43
|
+
# Skip-existing is the default, so a re-run over unchanged versions is a
|
|
44
|
+
# no-op and only a bumped version pushes.
|
|
45
|
+
- |
|
|
46
|
+
set -eu
|
|
47
|
+
printf '%s' "${GRIM_REGISTRY_TOKEN:-$REGISTRY_TOKEN}" | grim login \
|
|
48
|
+
"${GRIM_REGISTRY_HOST:-$REGISTRY}" -u "${GRIM_REGISTRY_USER:-$REGISTRY_USER}" \
|
|
49
|
+
--password-stdin --allow-insecure-store
|
|
50
|
+
grim publish --announce
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
# Fail closed when a generated CI file is hand-edited: this job re-renders from
|
|
3
|
+
# index.config.json and diffs against what is committed. Fix drift by running
|
|
4
|
+
# `npm run ci` locally and committing the result.
|
|
5
|
+
grim-indexer:verify-ci:
|
|
6
|
+
stage: test
|
|
7
|
+
rules:
|
|
8
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
9
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
10
|
+
before_script:
|
|
11
|
+
# Rendering needs no build toolchain, so nothing here runs a dependency's
|
|
12
|
+
# lifecycle script.
|
|
13
|
+
- npm ci --cache .npm --prefer-offline --ignore-scripts
|
|
14
|
+
script:
|
|
15
|
+
# Exits 65 on drift; the hint names the stale path and never its contents.
|
|
16
|
+
- npm run ci:check
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated by @grimoire-rs/indexer - DO NOT EDIT.
|
|
2
|
+
#
|
|
3
|
+
# This file is rendered from the `ci` block of index.config.json and committed
|
|
4
|
+
# to this repository, which owns and runs it. To change what CI does, change
|
|
5
|
+
# the config and re-render:
|
|
6
|
+
#
|
|
7
|
+
# npm run ci
|
|
8
|
+
#
|
|
9
|
+
# The version that renders it is the one in package-lock.json, so CI runs
|
|
10
|
+
# `npm ci` and never fetches a floating release. Bump the dependency the
|
|
11
|
+
# ordinary npm way, then re-render.
|
|
12
|
+
#
|
|
13
|
+
# The `verify-ci` job re-renders and diffs on every push and pull request, so a
|
|
14
|
+
# hand-edit fails CI rather than silently forking. Action pins are excluded
|
|
15
|
+
# from that diff - Renovate may bump `uses: owner/action@<ref>` freely.
|
|
16
|
+
#
|
|
17
|
+
# To own these files by hand instead, set `"allowManualEdits": true` in the
|
|
18
|
+
# `ci` block: the guard is then not emitted, and CI fixes stop arriving by
|
|
19
|
+
# re-render.
|
package/templates/gitignore
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
# Build output of `grim-indexer build`.
|
|
2
2
|
dist/
|
|
3
3
|
|
|
4
|
-
# NOT ignored: `public/` is this index's own asset layer
|
|
4
|
+
# NOT ignored: `public/` is this index's own asset layer - the logo and
|
|
5
5
|
# favicon `index.config.json` names live there, and the build copies it into
|
|
6
6
|
# `dist/`. Ignoring it means the site references files the deploy never had.
|
|
7
7
|
|
|
8
|
-
# Renderer scratch dir
|
|
8
|
+
# Renderer scratch dir - removed on a clean build, left behind by a killed one.
|
|
9
9
|
.index-*/
|
|
10
10
|
|
|
11
11
|
node_modules/
|
|
12
|
+
.npm/
|
|
13
|
+
|
|
14
|
+
# NOT ignored: `package-lock.json` is what pins the renderer this index builds
|
|
15
|
+
# and validates with. Committing it is what makes `npm ci` in CI reproducible.
|
|
16
|
+
|
|
12
17
|
.DS_Store
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{name}}",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "{{titleJson}}, a Grimoire package index.",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"dev": "grim-indexer dev",
|
|
9
|
+
"build": "grim-indexer build",
|
|
10
|
+
"enrich": "grim-indexer enrich",
|
|
11
|
+
"validate": "grim-indexer validate",
|
|
12
|
+
"ci": "grim-indexer ci",
|
|
13
|
+
"ci:check": "grim-indexer ci --check"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@grimoire-rs/indexer": "^{{version}}"
|
|
17
|
+
}
|
|
18
|
+
}
|
package/templates/publish.toml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# `grim publish` manifest
|
|
1
|
+
# `grim publish` manifest - this repo holds both its own skills (under
|
|
2
2
|
# `skills/`) and the index that lists them, the combined layout
|
|
3
3
|
# `grim-indexer init --with-skills` scaffolds.
|
|
4
4
|
#
|
|
@@ -18,7 +18,7 @@ version = "0.1.0"
|
|
|
18
18
|
# do not own.
|
|
19
19
|
#
|
|
20
20
|
# `repository` is this repo's https clone URL. `namespace` is the
|
|
21
|
-
# `index/<host>/<namespace>/` your entries land under
|
|
21
|
+
# `index/<host>/<namespace>/` your entries land under - the contribution gate
|
|
22
22
|
# refuses a namespace whose forge owner is not you. A literal `REPLACE-ME`
|
|
23
23
|
# means the scaffold had nothing to derive it from: `--announce` then stops
|
|
24
24
|
# with "cannot derive the index host" rather than announcing anywhere.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrandMark.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/components/BrandMark.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,gCAM7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrandMark.js","sourceRoot":"","sources":["../../../../src/renderer/astro/components/BrandMark.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;AAEtC;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAmC;IAC5E,OAAO,CACL,cAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,iBAAc,MAAM,YACpE,eAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAE,IAAI,GAAI,GACjC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Catalog.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/components/Catalog.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA+K5E,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,QAAQ,EACR,eAAe,GAChB,EAAE;IACD,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,gCAkcA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Catalog.js","sourceRoot":"","sources":["../../../../src/renderer/astro/components/Catalog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/base.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/base.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sCAAsC;AAStC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7D,wEAAwE;IACxE,qBAAqB;IACrB,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/catalog.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWpF;AAID,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa5D;AAcD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS3C;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE9E;AAUD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAChD,MAAM,GAAG,IAAI,CAYf;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAgBtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/code.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY;;;CAA0D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/code.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sCAAsC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/data.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,eAAO,MAAM,IAAI,EAAE,YAAgC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/renderer/astro/lib/data.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sCAAsC;AAUtC,MAAM,CAAC,MAAM,IAAI,GAAiB,iBAAiB,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Builds this index and deploys it to GitHub Pages.
|
|
2
|
-
#
|
|
3
|
-
# Deliberately a thin caller: the job logic lives in a reusable workflow
|
|
4
|
-
# grim-indexer owns, so upgrades arrive by bumping the pinned ref below
|
|
5
|
-
# instead of re-scaffolding this repo over your edits. Renovate's
|
|
6
|
-
# `github-actions` manager bumps it for you.
|
|
7
|
-
name: pages
|
|
8
|
-
|
|
9
|
-
on:
|
|
10
|
-
push:
|
|
11
|
-
branches: [main]
|
|
12
|
-
workflow_dispatch:
|
|
13
|
-
|
|
14
|
-
permissions: {}
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
pages:
|
|
18
|
-
uses: grimoire-rs/indexer/.github/workflows/index-pages.yml@{{ref}}
|
|
19
|
-
permissions:
|
|
20
|
-
contents: read
|
|
21
|
-
pages: write
|
|
22
|
-
id-token: write
|
|
23
|
-
with:
|
|
24
|
-
grim-indexer-version: "{{version}}"
|