repository

package
v1.21.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: MIT Imports: 45 Imported by: 31

Documentation

Index

Constants

View Source
const (
	EnvRepoName     = "GITEA_REPO_NAME"
	EnvRepoUsername = "GITEA_REPO_USER_NAME"
	EnvRepoID       = "GITEA_REPO_ID"
	EnvRepoIsWiki   = "GITEA_REPO_IS_WIKI"
	EnvPusherName   = "GITEA_PUSHER_NAME"
	EnvPusherEmail  = "GITEA_PUSHER_EMAIL"
	EnvPusherID     = "GITEA_PUSHER_ID"
	EnvKeyID        = "GITEA_KEY_ID" // public key ID
	EnvDeployKeyID  = "GITEA_DEPLOY_KEY_ID"
	EnvPRID         = "GITEA_PR_ID"
	EnvIsInternal   = "GITEA_INTERNAL_PUSH"
	EnvAppURL       = "GITEA_ROOT_URL"
	EnvActionPerm   = "GITEA_ACTION_PERM"
)

env keys for git hooks need

Variables

View Source
var (
	// Gitignores contains the gitiginore files
	Gitignores []string

	// Licenses contains the license files
	Licenses []string

	// Readmes contains the readme files
	Readmes []string

	// LabelTemplateFiles contains the label template files, each item has its DisplayName and Description
	LabelTemplateFiles []OptionFile
)

Functions

func AddCollaborator added in v1.17.4

func AddCollaborator(ctx context.Context, repo *repo_model.Repository, u *user_model.User) error

func CanUserDelete added in v1.17.0

func CanUserDelete(ctx context.Context, repo *repo_model.Repository, user *user_model.User) (bool, error)

CanUserDelete returns true if user could delete the repository

func CanUserForkRepo added in v1.17.0

func CanUserForkRepo(ctx context.Context, user *user_model.User, repo *repo_model.Repository) (bool, error)

CanUserForkRepo returns true if specified user can fork repository.

func CheckDaemonExportOK added in v1.17.0

func CheckDaemonExportOK(ctx context.Context, repo *repo_model.Repository) error

CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...

func CheckDelegateHooks added in v1.12.0

func CheckDelegateHooks(repoPath string) ([]string, error)

CheckDelegateHooks checks the hooks scripts for the repo

func CheckInitRepository added in v1.21.0

func CheckInitRepository(ctx context.Context, owner, name string) (err error)

func CleanUpMigrateInfo

func CleanUpMigrateInfo(ctx context.Context, repo *repo_model.Repository) (*repo_model.Repository, error)

CleanUpMigrateInfo finishes migrating repository and/or wiki with things that don't need to be done for mirrors.

func CreateDelegateHooks added in v1.12.0

func CreateDelegateHooks(repoPath string) (err error)

CreateDelegateHooks creates all the hooks scripts for the repo

func CreateRepositoryByExample added in v1.17.4

func CreateRepositoryByExample(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository, overwriteOrAdopt, isFork bool) (err error)

CreateRepositoryByExample creates a repository for the user/organization.

func CreateTemporaryPath added in v1.17.0

func CreateTemporaryPath(prefix string) (string, error)

CreateTemporaryPath creates a temporary path

func FullPushingEnvironment added in v1.17.0

func FullPushingEnvironment(author, committer *user_model.User, repo *repo_model.Repository, repoName string, prID int64) []string

FullPushingEnvironment returns an os environment to allow hooks to work on push

func GenerateGitContent added in v1.12.0

func GenerateGitContent(ctx context.Context, templateRepo, generateRepo *repo_model.Repository) error

GenerateGitContent generates git content from a template repository

func GenerateRepository added in v1.12.0

func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templateRepo *repo_model.Repository, opts GenerateRepoOptions) (_ *repo_model.Repository, err error)

GenerateRepository generates a repository from a template

func GetLicense added in v1.21.0

func GetLicense(name string, values *LicenseValues) ([]byte, error)

func InitRepoCommit added in v1.21.0

func InitRepoCommit(ctx context.Context, tmpPath string, repo *repo_model.Repository, u *user_model.User, defaultBranch string) (err error)

InitRepoCommit temporarily changes with work directory.

func InitializeLabels added in v1.17.0

func InitializeLabels(ctx context.Context, id int64, labelTemplate string, isOrg bool) error

InitializeLabels adds a label set to a repository using a template

func InternalPushingEnvironment added in v1.17.0

func InternalPushingEnvironment(doer *user_model.User, repo *repo_model.Repository) []string

InternalPushingEnvironment returns an os environment to switch off hooks on push It is recommended to avoid using this unless you are pushing within a transaction or if you absolutely are sure that post-receive and pre-receive will do nothing We provide the full pushing-environment for other hook providers

func LoadRepoConfig added in v1.17.0

func LoadRepoConfig() error

LoadRepoConfig loads the repository config

func LoadTemplateLabelsByDisplayName added in v1.19.1

func LoadTemplateLabelsByDisplayName(displayName string) ([]*label.Label, error)

LoadTemplateLabelsByDisplayName loads a label template by its display name

func LocalCopyPath added in v1.17.0

func LocalCopyPath() string

LocalCopyPath returns the local repository temporary copy path.

func MigrateRepositoryGitData

func MigrateRepositoryGitData(ctx context.Context, u *user_model.User,
	repo *repo_model.Repository, opts migration.MigrateOptions,
	httpTransport *http.Transport,
) (*repo_model.Repository, error)

MigrateRepositoryGitData starts migrating git related data after created migrating repository

func PushUpdateAddTag added in v1.12.0

func PushUpdateAddTag(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, tagName, sha1, refname string) error

PushUpdateAddTag must be called for any push actions to add tag

func PushingEnvironment added in v1.17.0

func PushingEnvironment(doer *user_model.User, repo *repo_model.Repository) []string

PushingEnvironment returns an os environment to allow hooks to work on push

func RemoveTemporaryPath added in v1.17.0

func RemoveTemporaryPath(basePath string) error

RemoveTemporaryPath removes the temporary path

func StoreMissingLfsObjectsInRepository added in v1.15.0

func StoreMissingLfsObjectsInRepository(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, lfsClient lfs.Client) error

StoreMissingLfsObjectsInRepository downloads missing LFS objects

func SyncReleasesWithTags

func SyncReleasesWithTags(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository) error

SyncReleasesWithTags synchronizes release table with repository tags

func SyncRepoBranches added in v1.21.0

func SyncRepoBranches(ctx context.Context, repoID, doerID int64) (int64, error)

SyncRepoBranches synchronizes branch table with repository branches

func SyncRepoBranchesWithRepo added in v1.21.0

func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, doerID int64) (int64, error)

func UpdateRepoSize added in v1.17.0

func UpdateRepoSize(ctx context.Context, repo *repo_model.Repository) error

UpdateRepoSize updates the repository size, calculating it using getDirectorySize

func UpdateRepository added in v1.17.0

func UpdateRepository(ctx context.Context, repo *repo_model.Repository, visibilityChanged bool) (err error)

UpdateRepository updates a repository with db context

func WikiRemoteURL added in v1.13.0

func WikiRemoteURL(ctx context.Context, remote string) string

WikiRemoteURL returns accessible repository URL for wiki if exists. Otherwise, it returns an empty string.

Types

type GenerateRepoOptions added in v1.17.0

type GenerateRepoOptions struct {
	Name            string
	DefaultBranch   string
	Description     string
	Private         bool
	GitContent      bool
	Topics          bool
	GitHooks        bool
	Webhooks        bool
	Avatar          bool
	IssueLabels     bool
	ProtectedBranch bool
}

GenerateRepoOptions contains the template units to generate

func (GenerateRepoOptions) IsValid added in v1.17.0

func (gro GenerateRepoOptions) IsValid() bool

IsValid checks whether at least one option is chosen for generation

type GiteaTemplate added in v1.17.0

type GiteaTemplate struct {
	Path    string
	Content []byte
	// contains filtered or unexported fields
}

GiteaTemplate holds information about a .gitea/template file

func (GiteaTemplate) Globs added in v1.17.0

func (gt GiteaTemplate) Globs() []glob.Glob

Globs parses the .gitea/template globs or returns them if they were already parsed

type LicenseValues added in v1.21.0

type LicenseValues struct {
	Owner string
	Email string
	Repo  string
	Year  string
}

type OptionFile added in v1.19.1

type OptionFile struct {
	DisplayName string
	Description string
}

type PushCommit added in v1.12.0

type PushCommit struct {
	Sha1           string
	Message        string
	AuthorEmail    string
	AuthorName     string
	CommitterEmail string
	CommitterName  string
	Timestamp      time.Time
}

PushCommit represents a commit in a push operation.

func CommitToPushCommit added in v1.12.0

func CommitToPushCommit(commit *git.Commit) *PushCommit

CommitToPushCommit transforms a git.Commit to PushCommit type.

type PushCommits added in v1.12.0

type PushCommits struct {
	Commits    []*PushCommit
	HeadCommit *PushCommit
	CompareURL string
	Len        int
}

PushCommits represents list of commits in a push operation.

func GitToPushCommits added in v1.16.0

func GitToPushCommits(gitCommits []*git.Commit) *PushCommits

GitToPushCommits transforms a list of git.Commits to PushCommits type.

func NewPushCommits added in v1.12.0

func NewPushCommits() *PushCommits

NewPushCommits creates a new PushCommits object.

func (pc *PushCommits) AvatarLink(ctx context.Context, email string) string

AvatarLink tries to match user in database with e-mail in order to show custom avatar, and falls back to general avatar link.

func (*PushCommits) ToAPIPayloadCommits added in v1.12.0

func (pc *PushCommits) ToAPIPayloadCommits(ctx context.Context, repoPath, repoLink string) ([]*api.PayloadCommit, *api.PayloadCommit, error)

ToAPIPayloadCommits converts a PushCommits object to api.PayloadCommit format. It returns all converted commits and, if provided, the head commit or an error otherwise.

type PushUpdateOptions added in v1.14.0

type PushUpdateOptions struct {
	PusherID     int64
	PusherName   string
	RepoUserName string
	RepoName     string
	RefFullName  git.RefName // branch, tag or other name to push
	OldCommitID  string
	NewCommitID  string
}

PushUpdateOptions defines the push update options

func (*PushUpdateOptions) IsDelBranch added in v1.14.0

func (opts *PushUpdateOptions) IsDelBranch() bool

IsDelBranch return true if it's a deletion to a branch

func (*PushUpdateOptions) IsDelRef added in v1.14.0

func (opts *PushUpdateOptions) IsDelRef() bool

IsDelRef return true if it's a deletion to a branch or tag

func (*PushUpdateOptions) IsDelTag added in v1.14.0

func (opts *PushUpdateOptions) IsDelTag() bool

IsDelTag return true if it's a deletion to a tag

func (*PushUpdateOptions) IsNewBranch added in v1.14.0

func (opts *PushUpdateOptions) IsNewBranch() bool

IsNewBranch return true if it's the first-time push to a branch

func (*PushUpdateOptions) IsNewRef added in v1.14.0

func (opts *PushUpdateOptions) IsNewRef() bool

IsNewRef return true if it's a first-time push to a branch, tag or etc.

func (*PushUpdateOptions) IsNewTag added in v1.14.0

func (opts *PushUpdateOptions) IsNewTag() bool

IsNewTag return true if it's a creation to a tag

func (*PushUpdateOptions) IsUpdateBranch added in v1.14.0

func (opts *PushUpdateOptions) IsUpdateBranch() bool

IsUpdateBranch return true if it's not the first push to a branch

func (*PushUpdateOptions) IsUpdateRef added in v1.14.0

func (opts *PushUpdateOptions) IsUpdateRef() bool

IsUpdateRef return true if it's an update operation

func (*PushUpdateOptions) RefName added in v1.14.0

func (opts *PushUpdateOptions) RefName() string

RefName returns simple name for ref

func (*PushUpdateOptions) RepoFullName added in v1.14.0

func (opts *PushUpdateOptions) RepoFullName() string

RepoFullName returns repo full name

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL