repository

package
v1.19.3 Latest Latest
Warning

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

Go to latest
Published: May 3, 2023 License: MIT Imports: 44 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(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(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 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) error

CreateDelegateHooks creates all the hooks scripts for the repo

func CreateRepository added in v1.12.0

func CreateRepository(doer, u *user_model.User, opts CreateRepoOptions) (*repo_model.Repository, error)

CreateRepository creates a repository for the user/organization.

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 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 IsForcePush added in v1.14.0

func IsForcePush(ctx context.Context, opts *PushUpdateOptions) (bool, error)

IsForcePush detect if a push is a force push

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(repo *repo_model.Repository, gitRepo *git.Repository) error

SyncReleasesWithTags synchronizes release table with repository tags

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 CreateRepoOptions added in v1.17.4

type CreateRepoOptions struct {
	Name           string
	Description    string
	OriginalURL    string
	GitServiceType api.GitServiceType
	Gitignores     string
	IssueLabels    string
	License        string
	Readme         string
	DefaultBranch  string
	IsPrivate      bool
	IsMirror       bool
	IsTemplate     bool
	AutoInit       bool
	Status         repo_model.RepositoryStatus
	TrustModel     repo_model.TrustModelType
	MirrorInterval string
}

CreateRepoOptions contains the create repository options

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
}

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 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
	// contains filtered or unexported fields
}

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  string // branch, tag or other name to push
	OldCommitID  string
	NewCommitID  string
}

PushUpdateOptions defines the push update options

func (*PushUpdateOptions) BranchName added in v1.14.0

func (opts *PushUpdateOptions) BranchName() string

BranchName returns simple branch name if it's an operation to branch

func (*PushUpdateOptions) IsBranch added in v1.14.0

func (opts *PushUpdateOptions) IsBranch() bool

IsBranch return true if it's a push to branch

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) IsTag added in v1.14.0

func (opts *PushUpdateOptions) IsTag() bool

IsTag return true if it's an operation 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

func (*PushUpdateOptions) TagName added in v1.14.0

func (opts *PushUpdateOptions) TagName() string

TagName returns simple tag name if it's an operation to a tag

Jump to

Keyboard shortcuts

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