pinup · Dokumentation
Manager, Datenquellen, Versionierungen
Drei Register, adressiert mit den Namen, die eine Konfiguration benutzt. Ein Manager liest eine Datei und liefert Abhängigkeiten mit Byte-Ranges. Eine Datenquelle beantwortet die Releases einer Abhängigkeit. Eine Versionierung ordnet sie und schreibt den Wert um.
enabledManagersist eine geschlossene Liste: ein Manager, der dort nicht steht, läuft nichtcustom.regexmuss genannt sein, damit die Custom Manager laufen
Manager
| Name | Liest | Hinweise |
|---|---|---|
dockerfile | Dockerfile, Containerfile, *.Dockerfile | FROM, COPY --from, # syntax=; ARG-interpolierte Images; Digest-Pins bleiben oder kommen mit pinDigests |
gitlabci | .gitlab-ci.yml | image: und services: in jeder Tiefe, als String und als Objekt; include: component:-Pins (gitlab-tags auf dem Projekt der Komponente); $VAR-Tags werden als unauflösbar gemeldet, nicht geraten |
kustomize | kustomization.yaml | images: mit newTag/digest, entfernte resources und components mit ?ref=, helmCharts: |
npm | package.json, Lock-Dateien | Dependencies jeder Art, engines.node (node-version), packageManager, pnpm.overrides; Workspaces lesen und aktualisieren das Root-Lock |
composer | composer.json, composer.lock | require, require-dev, config.platform.php, Repositories vom Typ composer in Dateireihenfolge, dann Packagist; die gelockte Version ist der Ausgangspunkt eines Updates |
gomod | go.mod, go.sum | die go-Direktive (golang-version), Requires, // indirect bei einem Security-Fix; go mod tidy neben jedem Modul mit go.sum |
terraform | *.tf, .terraform.lock.hcl | required_providers, Registry-Module; ein Provider-Bump bewegt Version und Hashes im Lock mit |
terraform-version | .terraform-version | tfenvs Datei, der Wert wie geschrieben |
custom.regex | was managerFilePatterns nennen | siehe Konfiguration |
Datenquellen
| Name | Fragt | Hinweise |
|---|---|---|
docker | die /v2/-API der Registry | Tags, der Digest eines Tags beim Pinnen; Bearer-Tokens per Realm; die eigene Registry des Estates mit dem Plattform-Token, andere anonym |
gitlab-tags, gitlab-releases, gitlab-packages | die REST-API einer GitLab-Instanz | die Instanz aus der Umgebung, sofern registryUrls keine andere nennt; paginiert |
github-releases, github-tags | api.github.com | mit GITHUB_COM_TOKEN, wenn gesetzt; sonst das 60-pro-Stunde-Limit |
npm | das Paketdokument der Registry | registryUrls; deprecated als String oder Boolean |
packagist | das Composer-Repository-Protokoll | Packagist und jede Registry, die es spricht, GitLabs Gruppen-Registry mit ihrem Provider-Format eingeschlossen; Repositories in Dateireihenfolge, bis eines das Paket hat |
pypi | die JSON-API | unter dem PEP-503-Namen; ein in jeder Datei gezogenes Release ist deprecated |
node-version | nodejs.org/dist/index.json | einmal pro Prozess gelesen |
golang-version | go.dev | die Go-Toolchain |
go | der Module-Proxy, oder die Instanz für Module dort | ein go/vN-Tag in einem Unterverzeichnis eines Projekts wird über dessen Tags aufgelöst |
helm | die index.yaml eines Chart-Repositories | braucht registryUrls; der Index wird einmal pro Repository geholt |
terraform-provider, terraform-module | das Registry-Protokoll (Discovery zuerst) | OpenTofus oder HashiCorps Registry; Provider-Hashes für das Lock |
git-tags, git-refs | git ls-remote | jedes Repository, das git erreicht; git-refs für einen per Commit gepinnten Branch |
custom.* | was customDatasources deklariert | defaultRegistryUrlTemplate, format, transformTemplates; apk-Indexe (custom.wolfi und die aus PINUP_APK_VIEWS) werden nativ aus dem APKINDEX bedient |
Der Ausfall einer Datenquelle ist eine Warnung im Plan gegen diese Abhängigkeit, nie ein gescheiterter Lauf für das Repository.
Versionierungen
| Name | Ordnet | Hinweise |
|---|---|---|
semver | striktes Semver | ein führendes v bleibt, wie geschrieben |
semver-partial | Semver mit Teilversionen | 1 und 1.2 sind Ranges |
semver-coerced | alles, was wie eine Version beginnt | |
loose | führende numerische Komponenten | kein Prerelease-Begriff: 1.0.0-alpha ist hier stabil, und Satisfies ist Gleichheit |
docker | Image-Tags | Version und Kompatibilitätssegment (22-alpine3.21); ein anderes Suffix oder eine andere Komponentenzahl ist ein anderes Image, kein Update |
apk | Wolfi-/Alpine-Paketversionen | -rN-Revisionen, Epochen |
composer | Composer-Constraints | ^, ~, *, Stability-Flags, dev--Branches |
npm | npm-Ranges | ^, ~, x, ||, Bindestrich-Ranges |
node | Node.js | Semver, engines-Ranges als npm-Ranges |
go | Go-Module | v-Präfix, Pseudo-Versionen, +incompatible |
go-mod-directive | die go-Direktive | 1.27 lässt 1.27.x zu |
hashicorp | Terraform-Constraints | ~>, >=, , |
regex | regex:<muster> | benannte Gruppen major, minor, patch, prerelease, compatibility |
pep440 | Python-Versionen | Epoche, a/b/rc, .post, .dev, local; Specifier-Sets |
Eine Datenquelle nennt ihre Standard-Versionierung; das versioning einer Regel oder versioning= einer Annotation überschreibt sie.