Pakkeversjoner som er hentet
Et avhengighetsfunn sier at en versjon er deklarert et sted. Pull-tellingen sier noe annet: hvilke pakkeversjoner som faktisk ble lastet ned, av hvilken forbruker, og hvor nylig. Den telles fra tilgangsloggen for registeret, så den dekker dine egne pakker i fremforges register og pakkene som organisasjonen din henter gjennom avhengighetsproxyen, inkludert pull fra CI utenfor fremforge som bruker en registerrobot.
Siden 2026-10-13 telles en nedlasting som en jobb i Forgejo Actions gjør gjennom avhengighetsproxyen, og som proxyen leverer fra bufferen sin, direkte her og lagres ikke som en hendelse i tilgangsloggen (se tilgangsloggen for registeret). Tellingen er derfor registreringen av disse nedlastingene: per UTC-døgn, pakkeversjon og repository, med kjøringene som hentet dem.
Hva som teller som en pull
En pull er en nedlasting som lyktes og som navngir en versjon: en npm-tarball, en PyPI-fil, et Maven-artefakt, en NuGet-pakke, en zip-fil for en Go-modul, en generisk fil eller en annen registerfil, eller et containerimage hentet med tagg. Dette telles ikke:
- lesing av metadata, for eksempel et npm-packument eller en PyPI simple-indeks;
- avviste forespørsler;
- nedlasting av containerlag, som bare navngir en digest.
En nedlasting som en policy i shadow-modus ville ha nektet, men slapp gjennom, teller som en pull.
Forbrukere
Hver pull tilskrives forbrukeren som tilgangsloggen registrerte:
| Type | Hvem | Navngitt med |
|---|---|---|
job | Et jobbtoken i Forgejo Actions | Jobbens repository, <owner>/<repo>. run_ids lister Actions-kjøringene som hentet versjonen |
robot | En registerrobot | Robotens navn. login inneholder botbrukeren dens |
bot | En annen systembot i fremforge | Innloggingsnavnet dens |
user | En persons token eller sesjon | Personens innloggingsnavn |
anonymous | En forespørsel uten legitimasjon | Ingenting |
Hvilke sårbarhetsvarsler som kobles på
- Versjoner hentet gjennom avhengighetsproxyen (npm, PyPI, Maven, NuGet
og Go) matches mot OSV-indeksen over sårbarhetsvarsler som proxyens
pakkepolicy evaluerer. Versjonsintervaller
evalueres, ikke bare eksakte versjoner.
sourceeradvisory_index. - Versjoner av dine egne registerpakker har de åpne funnene for den
pakkefilen, de samme funnene som pakkepolicyen leser. Avviste og
løste funn er utelatt.
sourceerpackage_findings. - Containerimager telles, men denne listen viser ingen sårbarhetsvarsler for dem. Funn i imager står på sidene for image-skanning.
I konsollen
Åpne Sikkerhet › Komponenter › Hentede versjoner i organisasjonsadministrasjonen. Siden lister de samme versjonene som API-et, med samme rekkefølge og filtre: pakkenavn, periode (i dag, eller de siste 7, 30, 90 eller 365 dagene), minste alvorlighetsgrad, økosystem, kilde (ditt eget register eller avhengighetsproxyen), forbrukertype og forbruker. Kryss av for Ta med versjoner uten kjent sårbarhetsvarsel for å se alle hentede versjoner, ikke bare de sårbare. Hver rad viser den verste alvorlighetsgraden, opptil tre sårbarhetsvarsler med en rettet versjon, antall pull per forbrukertype, de viktigste forbrukerne og når versjonen sist og først ble hentet. Linjen over tabellen sier frem til når tilgangshendelser er telt. Neste side og Første side blar gjennom listen; Export CSV laster ned alle matchende versjoner med de gjeldende filtrene, i de samme kolonnene som CSV-en fra API-et.
Lese den med API-et
Med et API-token som har components:read eller findings:read:
curl -sS -H "Authorization: Bearer $FFP_TOKEN" \
"https://frem.sh/_app/api/v1/orgs/acme/components/pulled?days=30&min_severity=high"Som standard inneholder listen bare sårbare versjoner, de mest alvorlige først og
deretter de sist hentede. Hvert element har versjonen og dens purl, den
verste severity, advisories med rettede versjoner, totalt antall
pulls, pull per forbrukertype, first_seen_at og last_seen_at, og
opptil ti consumers med egne antall og tidspunkter. En job-forbruker har også
run_ids: opptil 20 ID-er for Actions-kjøringer (GITHUB_RUN_ID) som hentet
versjonen i perioden, de nyeste først.
| Filter | Betydning |
|---|---|
days | Hvor mange UTC-døgn tilbake, i dag inkludert: 1 til 730, standard 30 |
vulnerable | true (standard) for versjoner med et åpent sårbarhetsvarsel; false for alle hentede versjoner |
min_severity | low, medium, high eller critical |
ecosystem | Pakketypen: npm, pypi, maven, nuget, go, container, … |
origin | registry (dine egne pakker) eller proxy (avhengighetsproxyen) |
name | Et pakkenavn, eksakt |
consumer_kind | job, robot, bot, user eller anonymous |
consumer | Et repository (owner/name), et robotnavn eller et innloggingsnavn |
run_id | ID-en til en Actions-kjøring (GITHUB_RUN_ID): bare versjonene den kjøringen hentet |
For å se hva ett bygg hentet, sender du med kjørings-ID-en sammen med vulnerable=false:
curl -sS -H "Authorization: Bearer $FFP_TOKEN" \
"https://frem.sh/_app/api/v1/orgs/acme/components/pulled?run_id=123456&vulnerable=false&days=7"Send en sides next_cursor som cursor for å få neste side, med de samme
filtrene, og stopp når den er null. En side inneholder opptil 500 versjoner
(limit). Legg til format=csv for å få alle matchende versjoner som CSV. En spørring som
matcher mer enn 50 000 versjoner, svarer 413 too-many-rows; snevre den inn.
Se API-referansen for den fullstendige formen.
Hvor fersk den er, og hvor lenge den beholdes
Tellingen summeres fra tilgangsloggen hver time. window.rolled_up_to
i svaret sier frem til når tilgangshendelser er telt. CI-nedlastinger
som leveres fra avhengighetsproxyens buffer, legges til etter hvert som de kommer, uten
å vente på den timevise summeringen.
Tellingen følger tilgangsloggens
oppbevaring av bevis, og slettes av den
samme daglige jobben: et døgns antall forsvinner når den nyeste nedlastingen de teller, er eldre enn
oppbevaringstiden for access_log, eller oppbevaringstiden for access_log_ci for CI-pull
gjennom avhengighetsproxyen. Så lenge en rettslig tilbakeholdelse (legal hold) gjelder, slettes ingenting.
I dataeksporten
Hver dataeksport inneholder tellingen som
metadata/pulled-versions.ndjson, én linje per UTC-døgn, pakkeversjon og
forbruker: radene som denne siden summerer. Se
Eksportskjema. Sårbarhetsvarslene er ikke i
filen: de kobles på når du leser listen, fra data om sårbarhetsvarsler som
endrer seg over tid.
Begrensninger
- En pull er ikke en utrulling. En versjon kan bli hentet av et bygg og aldri sendt ut, eller hentet én gang og bufret i måneder.
- Pull fra buffere utenfor fremforge ses ikke. Bare forespørsler som når fremforges register eller avhengighetsproxy, telles.
- Team registreres ikke. En brukers pull tilskrives brukeren.
- Kjørings-ID-er beholdes fra og med 2026-10-13. Per UTC-døgn, pakkeversjon og repository beholdes de 100 nyeste kjøringene; et repository som kjører mer enn 100 bygg om dagen som henter den samme versjonen, beholder antallet av alle pull, men bare ID-ene til de 100 nyeste kjøringene.
- Tellingen registrerer ikke hvilken jobb i en kjøring som hentet en versjon, og heller ikke det nøyaktige tidspunktet for hver pull, bare den første og den siste i døgnet.