Some checks failed
cache-seeder / prune (push) Has been skipped
cache-seeder / frontend (push) Failing after 3s
cache-seeder / python (push) Failing after 3s
cache-seeder / gobuild (push) Failing after 4s
cache-seeder / lint (bindata, lint-backend) (push) Failing after 3s
giteabot backport / giteabot (push) Has been skipped
giteabot / giteabot (push) Has been skipped
cache-prune / prune (push) Has been skipped
release-nightly-snapcraft / build-and-publish (ubuntu-24.04) (push) Has been cancelled
release-nightly-snapcraft / build-and-publish (ubuntu-24.04-arm) (push) Has been cancelled
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
cron-renovate / cron-renovate (push) Has been skipped
50 lines
949 B
Go
50 lines
949 B
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package audit
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"gitea.dev/modules/setting"
|
|
"gitea.dev/modules/util"
|
|
)
|
|
|
|
// EntityRef is a denormalized reference persisted at record time.
|
|
type EntityRef struct {
|
|
Type ScopeType `json:"type"`
|
|
ID int64 `json:"id,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
}
|
|
|
|
func (r EntityRef) DisplayName() string {
|
|
if r.Name != "" {
|
|
return r.Name
|
|
}
|
|
if r.Type == ScopeSystem {
|
|
return "System"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (r EntityRef) HomeLink() string {
|
|
switch r.Type {
|
|
case ScopeUser, ScopeOrganization:
|
|
if r.Name == "" {
|
|
return ""
|
|
}
|
|
return setting.AppSubURL + "/" + url.PathEscape(r.Name)
|
|
case ScopeRepository:
|
|
if r.Name == "" {
|
|
return ""
|
|
}
|
|
return setting.AppSubURL + "/" + util.PathEscapeSegments(r.Name)
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func (r EntityRef) HasLink() bool {
|
|
return r.HomeLink() != "" && r.ID > 0
|
|
}
|