repository

package
v0.19.4 Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: MIT Imports: 45 Imported by: 0

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

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

func CanUserDelete

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

CanUserDelete returns true if user could delete the repository

func CanUserForkRepo

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

CanUserForkRepo returns true if specified user can fork repository.

func CheckDaemonExportOK

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

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

func CheckDelegateHooks

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

func CreateDelegateHooks(repoPath string) error

CreateDelegateHooks creates all the hooks scripts for the repo

func CreateRepository

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

CreateRepository creates a repository for the user/organization.

func CreateRepositoryByExample

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

func CreateTemporaryPath(prefix string) (string, error)

CreateTemporaryPath creates a temporary path

func FullPushingEnvironment

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

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

GenerateGitContent generates git content from a template repository

func GenerateRepository

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

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

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

func LoadRepoConfig() error

LoadRepoConfig loads the repository config

func LoadTemplateLabelsByDisplayName

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

LoadTemplateLabelsByDisplayName loads a label template by its display name

func LocalCopyPath

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

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

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

func RemoveTemporaryPath(basePath string) error

RemoveTemporaryPath removes the temporary path

func StoreMissingLfsObjectsInRepository

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

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

UpdateRepoSize updates the repository size, calculating it using getDirectorySize

func UpdateRepository

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

UpdateRepository updates a repository with db context

func WikiRemoteURL

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

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

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

func (gro GenerateRepoOptions) IsValid() bool

IsValid checks whether at least one option is chosen for generation

type GiteaTemplate

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

GiteaTemplate holds information about a .gitea/template file

func (GiteaTemplate) Globs

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

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

type OptionFile

type OptionFile struct {
	DisplayName string
	Description string
}

type PushCommit

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

func CommitToPushCommit(commit *git.Commit) *PushCommit

CommitToPushCommit transforms a git.Commit to PushCommit type.

type PushCommits

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

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

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

func NewPushCommits

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

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

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

func (opts *PushUpdateOptions) BranchName() string

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

func (*PushUpdateOptions) IsBranch

func (opts *PushUpdateOptions) IsBranch() bool

IsBranch return true if it's a push to branch

func (*PushUpdateOptions) IsDelBranch

func (opts *PushUpdateOptions) IsDelBranch() bool

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

func (*PushUpdateOptions) IsDelRef

func (opts *PushUpdateOptions) IsDelRef() bool

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

func (*PushUpdateOptions) IsDelTag

func (opts *PushUpdateOptions) IsDelTag() bool

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

func (*PushUpdateOptions) IsNewBranch

func (opts *PushUpdateOptions) IsNewBranch() bool

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

func (*PushUpdateOptions) IsNewRef

func (opts *PushUpdateOptions) IsNewRef() bool

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

func (*PushUpdateOptions) IsNewTag

func (opts *PushUpdateOptions) IsNewTag() bool

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

func (*PushUpdateOptions) IsTag

func (opts *PushUpdateOptions) IsTag() bool

IsTag return true if it's an operation to a tag

func (*PushUpdateOptions) IsUpdateBranch

func (opts *PushUpdateOptions) IsUpdateBranch() bool

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

func (*PushUpdateOptions) IsUpdateRef

func (opts *PushUpdateOptions) IsUpdateRef() bool

IsUpdateRef return true if it's an update operation

func (*PushUpdateOptions) RefName

func (opts *PushUpdateOptions) RefName() string

RefName returns simple name for ref

func (*PushUpdateOptions) RepoFullName

func (opts *PushUpdateOptions) RepoFullName() string

RepoFullName returns repo full name

func (*PushUpdateOptions) TagName

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