Gå til hovedinnhold

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:

TypeHvemNavngitt med
jobEt jobbtoken i Forgejo ActionsJobbens repository, <owner>/<repo>. run_ids lister Actions-kjøringene som hentet versjonen
robotEn registerrobotRobotens navn. login inneholder botbrukeren dens
botEn annen systembot i fremforgeInnloggingsnavnet dens
userEn persons token eller sesjonPersonens innloggingsnavn
anonymousEn forespørsel uten legitimasjonIngenting

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. source er advisory_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. source er package_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.

FilterBetydning
daysHvor mange UTC-døgn tilbake, i dag inkludert: 1 til 730, standard 30
vulnerabletrue (standard) for versjoner med et åpent sårbarhetsvarsel; false for alle hentede versjoner
min_severitylow, medium, high eller critical
ecosystemPakketypen: npm, pypi, maven, nuget, go, container, …
originregistry (dine egne pakker) eller proxy (avhengighetsproxyen)
nameEt pakkenavn, eksakt
consumer_kindjob, robot, bot, user eller anonymous
consumerEt repository (owner/name), et robotnavn eller et innloggingsnavn
run_idID-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.