{{ template "repo-avatar" (dict "IconURL" .Repository.IconURL "RepositoryName" .Repository.Name "IsOwner" .IsOwner) }}
{{ .Owner.Handle }} {{ .Repository.Name }}
{{ if .Repository.Description }}{{ .Repository.Description }}
{{ end }}
{{ if .StatsAvailable }}
{{ template "star" (dict "IsStarred" .IsStarred "StarCount" .Stats.StarCount "Interactive" true "Handle" .Owner.Handle "Repository" .Repository.Name "IsAuthenticated" (ne .User nil)) }}
{{ template "pull-count" (dict "PullCount" .Stats.PullCount) }}
{{ else }}
{{/* Stats query failed — show a subdued indicator rather
than zeros that could be mistaken for real counts. */}}
{{ icon "alert-circle" "size-4 inline" }} Stats unavailable
{{ end }}
{{ if .TagCount }}
{{ icon "tag" "size-4" }} {{ .TagCount }}
{{ end }}
{{ if and .StatsAvailable .Stats.LastPush }}
Updated {{ timeAgoShort (derefTime .Stats.LastPush) }}
{{ end }}
{{ if or .Repository.Licenses .Repository.SourceURL .Repository.DocumentationURL .Repository.Version }}
{{ if .Repository.Version }}
{{ .Repository.Version }}
{{ end }}
{{ if .Repository.Licenses }}
{{ range parseLicenses .Repository.Licenses }}
{{ if .IsValid }}
{{ .SPDXID }}
{{ else }}
{{ .Name }}
{{ end }}
{{ end }}
{{ end }}
{{ if .Repository.SourceURL }}
{{ icon "external-link" "size-3" }} Source
{{ end }}
{{ if .Repository.DocumentationURL }}
{{ icon "book-open" "size-3" }} Docs
{{ end }}
{{ end }}
{{ icon "tag" "size-6 text-base-content/60" }}
{{ if gt (len .AllTags) 1 }}
{{ end }}
{{/* Platform / attestation badges live INSIDE repo-tag-section
so they re-render with each tag swap. Putting them here
would freeze them at the page's initial-load tag. */}}