Documentation ¶
Index ¶
- Variables
- func AddDeletedBranch(ctx context.Context, repoID int64, branchName, commit string, ...) error
- func CheckLFSAccessForRepo(ctx context.Context, ownerID int64, repo *repo_model.Repository, ...) error
- func CopyLFS(ctx context.Context, newRepo, oldRepo *repo_model.Repository) error
- func CountLFSLockByRepoID(ctx context.Context, repoID int64) (int64, error)
- func CountLFSMetaObjects(ctx context.Context, repoID int64) (int64, error)
- func DeleteProtectedBranch(ctx context.Context, repoID, id int64) (err error)
- func DeleteProtectedTag(ctx context.Context, pt *ProtectedTag) error
- func ExistsLFSObject(ctx context.Context, oid string) (bool, error)
- func FindAllMatchedBranches(ctx context.Context, gitRepo *git.Repository, ruleName string) ([]string, error)
- func FindRepoRecentCommitStatusContexts(ctx context.Context, repoID int64, before time.Duration) ([]string, error)
- func GetLatestCommitStatusForPairs(ctx context.Context, repoIDsToLatestCommitSHAs map[int64]string, ...) (map[int64][]*CommitStatus, error)
- func GetNextCommitStatusIndex(ctx context.Context, repoID int64, sha string) (int64, error)
- func GetRepoLFSSize(ctx context.Context, repoID int64) (int64, error)
- func InsertProtectedTag(ctx context.Context, pt *ProtectedTag) error
- func IsBranchProtected(ctx context.Context, repoID int64, branchName string) (bool, error)
- func IsErrLFSFileLocked(err error) bool
- func IsErrLFSLockAlreadyExist(err error) bool
- func IsErrLFSLockNotExist(err error) bool
- func IsErrLFSUnauthorizedAction(err error) bool
- func IsRuleNameSpecial(ruleName string) bool
- func IsUserAllowedModifyTag(ctx context.Context, pt *ProtectedTag, userID int64) (bool, error)
- func IsUserAllowedToControlTag(ctx context.Context, tags []*ProtectedTag, tagName string, userID int64) (bool, error)
- func IsUserMergeWhitelisted(ctx context.Context, protectBranch *ProtectedBranch, userID int64, ...) bool
- func IsUserOfficialReviewer(ctx context.Context, protectBranch *ProtectedBranch, user *user_model.User) (bool, error)
- func IterateLFSMetaObjectsForRepo(ctx context.Context, repoID int64, ...) error
- func IterateRepositoryIDsWithLFSMetaObjects(ctx context.Context, f func(ctx context.Context, repoID, count int64) error) error
- func LFSAutoAssociate(ctx context.Context, metas []*LFSMetaObject, user *user_model.User, ...) error
- func LFSObjectAccessible(ctx context.Context, user *user_model.User, oid string) (bool, error)
- func MarkLFSMetaObject(ctx context.Context, id int64) error
- func NewCommitStatus(ctx context.Context, opts NewCommitStatusOptions) error
- func RemoveDeletedBranchByID(ctx context.Context, repoID, id int64) (err error)
- func RemoveDeletedBranchByName(ctx context.Context, repoID int64, branch string) error
- func RemoveLFSMetaObjectByOid(ctx context.Context, repoID int64, oid string) (int64, error)
- func RemoveLFSMetaObjectByOidFn(ctx context.Context, repoID int64, oid string, fn func(count int64) error) (int64, error)
- func RemoveOldDeletedBranches(ctx context.Context, olderThan time.Duration)
- func RemoveTeamIDFromProtectedBranch(ctx context.Context, p *ProtectedBranch, teamID int64) error
- func RemoveUserIDFromProtectedBranch(ctx context.Context, p *ProtectedBranch, userID int64) error
- func RenameBranch(ctx context.Context, repo *repo_model.Repository, from, to string, ...) (err error)
- func UpdateProtectBranch(ctx context.Context, repo *repo_model.Repository, ...) (err error)
- func UpdateProtectedTag(ctx context.Context, pt *ProtectedTag) error
- type CommitStatus
- func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus
- func GetCommitStatuses(ctx context.Context, repo *repo_model.Repository, sha string, ...) ([]*CommitStatus, int64, error)
- func GetLatestCommitStatus(ctx context.Context, repoID int64, sha string, listOptions db.ListOptions) ([]*CommitStatus, int64, error)
- type CommitStatusIndex
- type CommitStatusOptions
- type DeletedBranch
- type ErrLFSFileLocked
- type ErrLFSLockAlreadyExist
- type ErrLFSLockNotExist
- type ErrLFSUnauthorizedAction
- type IterateLFSMetaObjectsForRepoOptions
- type LFSLock
- func CreateLFSLock(ctx context.Context, repo *repo_model.Repository, lock *LFSLock) (*LFSLock, error)
- func DeleteLFSLockByID(ctx context.Context, id int64, repo *repo_model.Repository, u *user_model.User, ...) (*LFSLock, error)
- func GetLFSLock(ctx context.Context, repo *repo_model.Repository, path string) (*LFSLock, error)
- func GetLFSLockByID(ctx context.Context, id int64) (*LFSLock, error)
- func GetLFSLockByRepoID(ctx context.Context, repoID int64, page, pageSize int) ([]*LFSLock, error)
- func GetTreePathLock(ctx context.Context, repoID int64, treePath string) (*LFSLock, error)
- type LFSMetaObject
- type LFSTokenResponse
- type NewCommitStatusOptions
- type ProtectedBranch
- func GetFirstMatchProtectedBranchRule(ctx context.Context, repoID int64, branchName string) (*ProtectedBranch, error)
- func GetProtectedBranchRuleByID(ctx context.Context, repoID, ruleID int64) (*ProtectedBranch, error)
- func GetProtectedBranchRuleByName(ctx context.Context, repoID int64, ruleName string) (*ProtectedBranch, error)
- func (protectBranch *ProtectedBranch) CanUserPush(ctx context.Context, user *user_model.User) bool
- func (protectBranch *ProtectedBranch) GetProtectedFilePatterns() []glob.Glob
- func (protectBranch *ProtectedBranch) GetUnprotectedFilePatterns() []glob.Glob
- func (protectBranch *ProtectedBranch) IsProtectedFile(patterns []glob.Glob, path string) bool
- func (protectBranch *ProtectedBranch) IsUnprotectedFile(patterns []glob.Glob, path string) bool
- func (protectBranch *ProtectedBranch) LoadRepo(ctx context.Context) (err error)
- func (protectBranch *ProtectedBranch) Match(branchName string) bool
- func (protectBranch *ProtectedBranch) MergeBlockedByProtectedFiles(changedProtectedFiles []string) bool
- type ProtectedBranchRules
- type ProtectedTag
- type RenamedBranch
- type SignCommitWithStatuses
- type WhitelistOptions
Constants ¶
This section is empty.
Variables ¶
var ErrBranchIsProtected = errors.New("branch is protected")
var ErrLFSObjectNotExist = db.ErrNotExist{Resource: "LFS Meta object"}
ErrLFSObjectNotExist is returned from lfs models functions in order to differentiate between database and missing object errors.
Functions ¶
func AddDeletedBranch ¶
func AddDeletedBranch(ctx context.Context, repoID int64, branchName, commit string, deletedByID int64) error
AddDeletedBranch adds a deleted branch to the database
func CheckLFSAccessForRepo ¶
func CheckLFSAccessForRepo(ctx context.Context, ownerID int64, repo *repo_model.Repository, mode perm.AccessMode) error
CheckLFSAccessForRepo check needed access mode base on action
func CopyLFS ¶
func CopyLFS(ctx context.Context, newRepo, oldRepo *repo_model.Repository) error
CopyLFS copies LFS data from one repo to another
func CountLFSLockByRepoID ¶
CountLFSLockByRepoID returns a count of all LFSLocks associated with a repository.
func CountLFSMetaObjects ¶
CountLFSMetaObjects returns a count of all LFSMetaObjects associated with a repository
func DeleteProtectedBranch ¶
DeleteProtectedBranch removes ProtectedBranch relation between the user and repository.
func DeleteProtectedTag ¶
func DeleteProtectedTag(ctx context.Context, pt *ProtectedTag) error
DeleteProtectedTag deletes a protected tag by ID
func ExistsLFSObject ¶ added in v1.17.4
ExistsLFSObject checks if a provided Oid exists within the DB
func FindAllMatchedBranches ¶ added in v1.19.0
func FindAllMatchedBranches(ctx context.Context, gitRepo *git.Repository, ruleName string) ([]string, error)
FindAllMatchedBranches find all matched branches
func FindRepoRecentCommitStatusContexts ¶
func FindRepoRecentCommitStatusContexts(ctx context.Context, repoID int64, before time.Duration) ([]string, error)
FindRepoRecentCommitStatusContexts returns repository's recent commit status contexts
func GetLatestCommitStatusForPairs ¶ added in v1.20.0
func GetLatestCommitStatusForPairs(ctx context.Context, repoIDsToLatestCommitSHAs map[int64]string, listOptions db.ListOptions) (map[int64][]*CommitStatus, error)
GetLatestCommitStatusForPairs returns all statuses with a unique context for a given list of repo-sha pairs
func GetNextCommitStatusIndex ¶
GetNextCommitStatusIndex retried 3 times to generate a resource index
func GetRepoLFSSize ¶
GetRepoLFSSize return a repository's lfs files size
func InsertProtectedTag ¶
func InsertProtectedTag(ctx context.Context, pt *ProtectedTag) error
InsertProtectedTag inserts a protected tag to database
func IsBranchProtected ¶ added in v1.19.0
IsBranchProtected checks if branch is protected
func IsErrLFSFileLocked ¶
IsErrLFSFileLocked checks if an error is a ErrLFSFileLocked.
func IsErrLFSLockAlreadyExist ¶
IsErrLFSLockAlreadyExist checks if an error is a ErrLFSLockAlreadyExist.
func IsErrLFSLockNotExist ¶
IsErrLFSLockNotExist checks if an error is a ErrLFSLockNotExist.
func IsErrLFSUnauthorizedAction ¶
IsErrLFSUnauthorizedAction checks if an error is a ErrLFSUnauthorizedAction.
func IsRuleNameSpecial ¶ added in v1.19.0
IsRuleNameSpecial return true if it contains special character
func IsUserAllowedModifyTag ¶
IsUserAllowedModifyTag returns true if the user is allowed to modify the tag
func IsUserAllowedToControlTag ¶
func IsUserAllowedToControlTag(ctx context.Context, tags []*ProtectedTag, tagName string, userID int64) (bool, error)
IsUserAllowedToControlTag checks if a user can control the specific tag. It returns true if the tag name is not protected or the user is allowed to control it.
func IsUserMergeWhitelisted ¶
func IsUserMergeWhitelisted(ctx context.Context, protectBranch *ProtectedBranch, userID int64, permissionInRepo access_model.Permission) bool
IsUserMergeWhitelisted checks if some user is whitelisted to merge to this branch
func IsUserOfficialReviewer ¶
func IsUserOfficialReviewer(ctx context.Context, protectBranch *ProtectedBranch, user *user_model.User) (bool, error)
IsUserOfficialReviewer check if user is official reviewer for the branch (counts towards required approvals)
func IterateLFSMetaObjectsForRepo ¶ added in v1.17.4
func IterateLFSMetaObjectsForRepo(ctx context.Context, repoID int64, f func(context.Context, *LFSMetaObject, int64) error, opts *IterateLFSMetaObjectsForRepoOptions) error
IterateLFSMetaObjectsForRepo provides a iterator for LFSMetaObjects per Repo
func IterateRepositoryIDsWithLFSMetaObjects ¶ added in v1.19.0
func IterateRepositoryIDsWithLFSMetaObjects(ctx context.Context, f func(ctx context.Context, repoID, count int64) error) error
IterateRepositoryIDsWithLFSMetaObjects iterates across the repositories that have LFSMetaObjects
func LFSAutoAssociate ¶
func LFSAutoAssociate(ctx context.Context, metas []*LFSMetaObject, user *user_model.User, repoID int64) error
LFSAutoAssociate auto associates accessible LFSMetaObjects
func LFSObjectAccessible ¶
LFSObjectAccessible checks if a provided Oid is accessible to the user
func MarkLFSMetaObject ¶ added in v1.19.0
MarkLFSMetaObject updates the updated time for the provided LFSMetaObject
func NewCommitStatus ¶
func NewCommitStatus(ctx context.Context, opts NewCommitStatusOptions) error
NewCommitStatus save commit statuses into database
func RemoveDeletedBranchByID ¶
RemoveDeletedBranchByID removes a deleted branch from the database
func RemoveDeletedBranchByName ¶
RemoveDeletedBranchByName removes all deleted branches
func RemoveLFSMetaObjectByOid ¶
RemoveLFSMetaObjectByOid removes a LFSMetaObject entry from database by its OID. It may return ErrLFSObjectNotExist or a database error.
func RemoveLFSMetaObjectByOidFn ¶ added in v1.17.4
func RemoveLFSMetaObjectByOidFn(ctx context.Context, repoID int64, oid string, fn func(count int64) error) (int64, error)
RemoveLFSMetaObjectByOidFn removes a LFSMetaObject entry from database by its OID. It may return ErrLFSObjectNotExist or a database error. It will run Fn with the current count within the transaction
func RemoveOldDeletedBranches ¶
RemoveOldDeletedBranches removes old deleted branches
func RemoveTeamIDFromProtectedBranch ¶ added in v1.19.0
func RemoveTeamIDFromProtectedBranch(ctx context.Context, p *ProtectedBranch, teamID int64) error
RemoveTeamIDFromProtectedBranch remove all team ids from protected branch options
func RemoveUserIDFromProtectedBranch ¶ added in v1.19.0
func RemoveUserIDFromProtectedBranch(ctx context.Context, p *ProtectedBranch, userID int64) error
RemoveUserIDFromProtectedBranch remove all user ids from protected branch options
func RenameBranch ¶
func RenameBranch(ctx context.Context, repo *repo_model.Repository, from, to string, gitAction func(isDefault bool) error) (err error)
RenameBranch rename a branch
func UpdateProtectBranch ¶
func UpdateProtectBranch(ctx context.Context, repo *repo_model.Repository, protectBranch *ProtectedBranch, opts WhitelistOptions) (err error)
UpdateProtectBranch saves branch protection options of repository. If ID is 0, it creates a new record. Otherwise, updates existing record. This function also performs check if whitelist user and team's IDs have been changed to avoid unnecessary whitelist delete and regenerate.
func UpdateProtectedTag ¶
func UpdateProtectedTag(ctx context.Context, pt *ProtectedTag) error
UpdateProtectedTag updates the protected tag
Types ¶
type CommitStatus ¶
type CommitStatus struct { ID int64 `xorm:"pk autoincr"` Index int64 `xorm:"INDEX UNIQUE(repo_sha_index)"` RepoID int64 `xorm:"INDEX UNIQUE(repo_sha_index)"` Repo *repo_model.Repository `xorm:"-"` State api.CommitStatusState `xorm:"VARCHAR(7) NOT NULL"` SHA string `xorm:"VARCHAR(64) NOT NULL INDEX UNIQUE(repo_sha_index)"` TargetURL string `xorm:"TEXT"` Description string `xorm:"TEXT"` ContextHash string `xorm:"char(40) index"` Context string `xorm:"TEXT"` Creator *user_model.User `xorm:"-"` CreatorID int64 CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` }
CommitStatus holds a single Status of a single Commit
func CalcCommitStatus ¶
func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus
CalcCommitStatus returns commit status state via some status, the commit statues should order by id desc
func GetCommitStatuses ¶
func GetCommitStatuses(ctx context.Context, repo *repo_model.Repository, sha string, opts *CommitStatusOptions) ([]*CommitStatus, int64, error)
GetCommitStatuses returns all statuses for a given commit.
func GetLatestCommitStatus ¶
func GetLatestCommitStatus(ctx context.Context, repoID int64, sha string, listOptions db.ListOptions) ([]*CommitStatus, int64, error)
GetLatestCommitStatus returns all statuses with a unique context for a given commit.
type CommitStatusIndex ¶
type CommitStatusIndex struct { ID int64 RepoID int64 `xorm:"unique(repo_sha)"` SHA string `xorm:"unique(repo_sha)"` MaxIndex int64 `xorm:"index"` }
CommitStatusIndex represents a table for commit status index
type CommitStatusOptions ¶
type CommitStatusOptions struct { db.ListOptions State string SortType string }
CommitStatusOptions holds the options for query commit statuses
type DeletedBranch ¶
type DeletedBranch struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"` Name string `xorm:"UNIQUE(s) NOT NULL"` Commit string `xorm:"UNIQUE(s) NOT NULL"` DeletedByID int64 `xorm:"INDEX"` DeletedBy *user_model.User `xorm:"-"` DeletedUnix timeutil.TimeStamp `xorm:"INDEX created"` }
DeletedBranch struct
func GetDeletedBranchByID ¶
func GetDeletedBranchByID(ctx context.Context, repoID, id int64) (*DeletedBranch, error)
GetDeletedBranchByID get a deleted branch by its ID
func GetDeletedBranches ¶
func GetDeletedBranches(ctx context.Context, repoID int64) ([]*DeletedBranch, error)
GetDeletedBranches returns all the deleted branches
func (*DeletedBranch) LoadUser ¶
func (deletedBranch *DeletedBranch) LoadUser(ctx context.Context)
LoadUser loads the user that deleted the branch When there's no user found it returns a user_model.NewGhostUser
type ErrLFSFileLocked ¶
ErrLFSFileLocked represents a "LFSFileLocked" kind of error.
func (ErrLFSFileLocked) Error ¶
func (err ErrLFSFileLocked) Error() string
func (ErrLFSFileLocked) Unwrap ¶ added in v1.17.4
func (err ErrLFSFileLocked) Unwrap() error
type ErrLFSLockAlreadyExist ¶
ErrLFSLockAlreadyExist represents a "LFSLockAlreadyExist" kind of error.
func (ErrLFSLockAlreadyExist) Error ¶
func (err ErrLFSLockAlreadyExist) Error() string
func (ErrLFSLockAlreadyExist) Unwrap ¶ added in v1.17.4
func (err ErrLFSLockAlreadyExist) Unwrap() error
type ErrLFSLockNotExist ¶
ErrLFSLockNotExist represents a "LFSLockNotExist" kind of error.
func (ErrLFSLockNotExist) Error ¶
func (err ErrLFSLockNotExist) Error() string
func (ErrLFSLockNotExist) Unwrap ¶ added in v1.17.4
func (err ErrLFSLockNotExist) Unwrap() error
type ErrLFSUnauthorizedAction ¶
type ErrLFSUnauthorizedAction struct {}
ErrLFSUnauthorizedAction represents a "LFSUnauthorizedAction" kind of error.
func (ErrLFSUnauthorizedAction) Error ¶
func (err ErrLFSUnauthorizedAction) Error() string
func (ErrLFSUnauthorizedAction) Unwrap ¶ added in v1.17.4
func (err ErrLFSUnauthorizedAction) Unwrap() error
type IterateLFSMetaObjectsForRepoOptions ¶ added in v1.17.4
type IterateLFSMetaObjectsForRepoOptions struct { OlderThan time.Time UpdatedLessRecentlyThan time.Time OrderByUpdated bool LoopFunctionAlwaysUpdates bool }
IterateLFSMetaObjectsForRepoOptions provides options for IterateLFSMetaObjectsForRepo
type LFSLock ¶
type LFSLock struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"INDEX NOT NULL"` OwnerID int64 `xorm:"INDEX NOT NULL"` Path string `xorm:"TEXT"` Created time.Time `xorm:"created"` }
LFSLock represents a git lfs lock of repository.
func CreateLFSLock ¶
func CreateLFSLock(ctx context.Context, repo *repo_model.Repository, lock *LFSLock) (*LFSLock, error)
CreateLFSLock creates a new lock.
func DeleteLFSLockByID ¶
func DeleteLFSLockByID(ctx context.Context, id int64, repo *repo_model.Repository, u *user_model.User, force bool) (*LFSLock, error)
DeleteLFSLockByID deletes a lock by given ID.
func GetLFSLock ¶
func GetLFSLock(ctx context.Context, repo *repo_model.Repository, path string) (*LFSLock, error)
GetLFSLock returns release by given path.
func GetLFSLockByID ¶
GetLFSLockByID returns release by given id.
func GetLFSLockByRepoID ¶
GetLFSLockByRepoID returns a list of locks of repository.
func GetTreePathLock ¶
GetTreePathLock returns LSF lock for the treePath
func (*LFSLock) BeforeInsert ¶
func (l *LFSLock) BeforeInsert()
BeforeInsert is invoked from XORM before inserting an object of this type.
type LFSMetaObject ¶
type LFSMetaObject struct { ID int64 `xorm:"pk autoincr"` lfs.Pointer `xorm:"extends"` RepositoryID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"` Existing bool `xorm:"-"` CreatedUnix timeutil.TimeStamp `xorm:"created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` }
LFSMetaObject stores metadata for LFS tracked files.
func GetLFSMetaObjectByOid ¶
GetLFSMetaObjectByOid selects a LFSMetaObject entry from database by its OID. It may return ErrLFSObjectNotExist or a database error. If the error is nil, the returned pointer is a valid LFSMetaObject.
func GetLFSMetaObjects ¶
func GetLFSMetaObjects(ctx context.Context, repoID int64, page, pageSize int) ([]*LFSMetaObject, error)
GetLFSMetaObjects returns all LFSMetaObjects associated with a repository
func NewLFSMetaObject ¶
func NewLFSMetaObject(ctx context.Context, m *LFSMetaObject) (*LFSMetaObject, error)
NewLFSMetaObject stores a given populated LFSMetaObject structure in the database if it is not already present.
type LFSTokenResponse ¶
LFSTokenResponse defines the JSON structure in which the JWT token is stored. This structure is fetched via SSH and passed by the Git LFS client to the server endpoint for authorization.
type NewCommitStatusOptions ¶
type NewCommitStatusOptions struct { Repo *repo_model.Repository Creator *user_model.User SHA string CommitStatus *CommitStatus }
NewCommitStatusOptions holds options for creating a CommitStatus
type ProtectedBranch ¶
type ProtectedBranch struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"UNIQUE(s)"` Repo *repo_model.Repository `xorm:"-"` RuleName string `xorm:"'branch_name' UNIQUE(s)"` // a branch name or a glob match to branch name CanPush bool `xorm:"NOT NULL DEFAULT false"` EnableWhitelist bool WhitelistUserIDs []int64 `xorm:"JSON TEXT"` WhitelistTeamIDs []int64 `xorm:"JSON TEXT"` EnableMergeWhitelist bool `xorm:"NOT NULL DEFAULT false"` WhitelistDeployKeys bool `xorm:"NOT NULL DEFAULT false"` MergeWhitelistUserIDs []int64 `xorm:"JSON TEXT"` MergeWhitelistTeamIDs []int64 `xorm:"JSON TEXT"` EnableStatusCheck bool `xorm:"NOT NULL DEFAULT false"` StatusCheckContexts []string `xorm:"JSON TEXT"` EnableApprovalsWhitelist bool `xorm:"NOT NULL DEFAULT false"` ApprovalsWhitelistUserIDs []int64 `xorm:"JSON TEXT"` ApprovalsWhitelistTeamIDs []int64 `xorm:"JSON TEXT"` RequiredApprovals int64 `xorm:"NOT NULL DEFAULT 0"` BlockOnRejectedReviews bool `xorm:"NOT NULL DEFAULT false"` BlockOnOfficialReviewRequests bool `xorm:"NOT NULL DEFAULT false"` BlockOnOutdatedBranch bool `xorm:"NOT NULL DEFAULT false"` DismissStaleApprovals bool `xorm:"NOT NULL DEFAULT false"` RequireSignedCommits bool `xorm:"NOT NULL DEFAULT false"` ProtectedFilePatterns string `xorm:"TEXT"` UnprotectedFilePatterns string `xorm:"TEXT"` CreatedUnix timeutil.TimeStamp `xorm:"created"` UpdatedUnix timeutil.TimeStamp `xorm:"updated"` // contains filtered or unexported fields }
ProtectedBranch struct
func GetFirstMatchProtectedBranchRule ¶ added in v1.19.0
func GetFirstMatchProtectedBranchRule(ctx context.Context, repoID int64, branchName string) (*ProtectedBranch, error)
GetFirstMatchProtectedBranchRule returns the first matched rules
func GetProtectedBranchRuleByID ¶ added in v1.19.0
func GetProtectedBranchRuleByID(ctx context.Context, repoID, ruleID int64) (*ProtectedBranch, error)
GetProtectedBranchRuleByID getting protected branch rule by rule ID
func GetProtectedBranchRuleByName ¶ added in v1.19.0
func GetProtectedBranchRuleByName(ctx context.Context, repoID int64, ruleName string) (*ProtectedBranch, error)
GetProtectedBranchRuleByName getting protected branch rule by name
func (*ProtectedBranch) CanUserPush ¶
func (protectBranch *ProtectedBranch) CanUserPush(ctx context.Context, user *user_model.User) bool
CanUserPush returns if some user could push to this protected branch
func (*ProtectedBranch) GetProtectedFilePatterns ¶
func (protectBranch *ProtectedBranch) GetProtectedFilePatterns() []glob.Glob
GetProtectedFilePatterns parses a semicolon separated list of protected file patterns and returns a glob.Glob slice
func (*ProtectedBranch) GetUnprotectedFilePatterns ¶
func (protectBranch *ProtectedBranch) GetUnprotectedFilePatterns() []glob.Glob
GetUnprotectedFilePatterns parses a semicolon separated list of unprotected file patterns and returns a glob.Glob slice
func (*ProtectedBranch) IsProtectedFile ¶
func (protectBranch *ProtectedBranch) IsProtectedFile(patterns []glob.Glob, path string) bool
IsProtectedFile return if path is protected
func (*ProtectedBranch) IsUnprotectedFile ¶
func (protectBranch *ProtectedBranch) IsUnprotectedFile(patterns []glob.Glob, path string) bool
IsUnprotectedFile return if path is unprotected
func (*ProtectedBranch) LoadRepo ¶ added in v1.19.0
func (protectBranch *ProtectedBranch) LoadRepo(ctx context.Context) (err error)
func (*ProtectedBranch) Match ¶ added in v1.19.0
func (protectBranch *ProtectedBranch) Match(branchName string) bool
Match tests if branchName matches the rule
func (*ProtectedBranch) MergeBlockedByProtectedFiles ¶
func (protectBranch *ProtectedBranch) MergeBlockedByProtectedFiles(changedProtectedFiles []string) bool
MergeBlockedByProtectedFiles returns true if merge is blocked by protected files change
type ProtectedBranchRules ¶ added in v1.19.0
type ProtectedBranchRules []*ProtectedBranch
func FindRepoProtectedBranchRules ¶ added in v1.19.0
func FindRepoProtectedBranchRules(ctx context.Context, repoID int64) (ProtectedBranchRules, error)
FindRepoProtectedBranchRules load all repository's protected rules
func (ProtectedBranchRules) GetFirstMatched ¶ added in v1.19.0
func (rules ProtectedBranchRules) GetFirstMatched(branchName string) *ProtectedBranch
type ProtectedTag ¶
type ProtectedTag struct { ID int64 `xorm:"pk autoincr"` RepoID int64 NamePattern string RegexPattern *regexp.Regexp `xorm:"-"` GlobPattern glob.Glob `xorm:"-"` AllowlistUserIDs []int64 `xorm:"JSON TEXT"` AllowlistTeamIDs []int64 `xorm:"JSON TEXT"` CreatedUnix timeutil.TimeStamp `xorm:"created"` UpdatedUnix timeutil.TimeStamp `xorm:"updated"` }
ProtectedTag struct
func GetProtectedTagByID ¶
func GetProtectedTagByID(ctx context.Context, id int64) (*ProtectedTag, error)
GetProtectedTagByID gets the protected tag with the specific id
func GetProtectedTags ¶
func GetProtectedTags(ctx context.Context, repoID int64) ([]*ProtectedTag, error)
GetProtectedTags gets all protected tags of the repository
func (*ProtectedTag) EnsureCompiledPattern ¶
func (pt *ProtectedTag) EnsureCompiledPattern() error
EnsureCompiledPattern ensures the glob pattern is compiled
type RenamedBranch ¶
type RenamedBranch struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"INDEX NOT NULL"` From string To string CreatedUnix timeutil.TimeStamp `xorm:"created"` }
RenamedBranch provide renamed branch log will check it when a branch can't be found
func FindRenamedBranch ¶
func FindRenamedBranch(ctx context.Context, repoID int64, from string) (branch *RenamedBranch, exist bool, err error)
FindRenamedBranch check if a branch was renamed
type SignCommitWithStatuses ¶
type SignCommitWithStatuses struct { Status *CommitStatus Statuses []*CommitStatus *asymkey_model.SignCommit }
SignCommitWithStatuses represents a commit with validation of signature and status state.
func ConvertFromGitCommit ¶
func ConvertFromGitCommit(ctx context.Context, commits []*git.Commit, repo *repo_model.Repository) []*SignCommitWithStatuses
ConvertFromGitCommit converts git commits into SignCommitWithStatuses
func ParseCommitsWithStatus ¶
func ParseCommitsWithStatus(ctx context.Context, oldCommits []*asymkey_model.SignCommit, repo *repo_model.Repository) []*SignCommitWithStatuses
ParseCommitsWithStatus checks commits latest statuses and calculates its worst status state