repo

package
v1.19.4 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2023 License: MIT Imports: 37 Imported by: 71

Documentation

Index

Constants

View Source
const (
	ArchiverGenerating = iota // the archiver is generating
	ArchiverReady             // it's ready
)

enumerate all repo archive statuses

View Source
const RepositoryListDefaultPageSize = 64

RepositoryListDefaultPageSize is the default number of repositories to load in memory when running administrative tasks on all (or almost all) of them. The number should be low enough to avoid filling up all RAM with repository data...

Variables

View Source
var ErrMirrorNotExist = util.NewNotExistErrorf("Mirror does not exist")

ErrMirrorNotExist mirror does not exist error

View Source
var ErrPushMirrorNotExist = util.NewNotExistErrorf("PushMirror does not exist")

ErrPushMirrorNotExist mirror does not exist error

Functions

func AccessibleRepoIDsQuery added in v1.17.0

func AccessibleRepoIDsQuery(user *user_model.User) *builder.Builder

AccessibleRepoIDsQuery queries accessible repository ids. Usable as a subquery wherever repo ids need to be filtered.

func AccessibleRepositoryCondition added in v1.17.0

func AccessibleRepositoryCondition(user *user_model.User, unitType unit.Type) builder.Cond

AccessibleRepositoryCondition takes a user a returns a condition for checking if a repository is accessible

func AddReleaseAttachments added in v1.17.4

func AddReleaseAttachments(ctx context.Context, releaseID int64, attachmentUUIDs []string) (err error)

AddReleaseAttachments adds a release attachments

func AddRepoArchiver

func AddRepoArchiver(ctx context.Context, archiver *RepoArchiver) error

AddRepoArchiver adds an archiver

func AttachmentRelativePath

func AttachmentRelativePath(uuid string) string

AttachmentRelativePath returns the relative path

func ChangeCollaborationAccessMode added in v1.17.0

func ChangeCollaborationAccessMode(ctx context.Context, repo *Repository, uid int64, mode perm.AccessMode) error

ChangeCollaborationAccessMode sets new access mode for the collaboration.

func ChangeRepositoryName

func ChangeRepositoryName(doer *user_model.User, repo *Repository, newRepoName string) (err error)

ChangeRepositoryName changes all corresponding setting from old repository name to new one.

func CheckCreateRepository

func CheckCreateRepository(doer, u *user_model.User, name string, overwriteOrAdopt bool) error

CheckCreateRepository check if could created a repository

func ComposeHTTPSCloneURL

func ComposeHTTPSCloneURL(owner, repo string) string

ComposeHTTPSCloneURL returns HTTPS clone URL based on given owner and repository name.

func CopyLanguageStat

func CopyLanguageStat(originalRepo, destRepo *Repository) error

CopyLanguageStat Copy originalRepo language stat information to destRepo (use for forked repo)

func CountCollaborators added in v1.17.0

func CountCollaborators(repoID int64) (int64, error)

CountCollaborators returns total number of collaborators for a repository

func CountNullArchivedRepository added in v1.17.4

func CountNullArchivedRepository(ctx context.Context) (int64, error)

CountNullArchivedRepository counts the number of repositories with is_archived is null

func CountOrphanedAttachments

func CountOrphanedAttachments(ctx context.Context) (int64, error)

CountOrphanedAttachments returns the number of bad attachments

func CountReleasesByRepoID added in v1.17.4

func CountReleasesByRepoID(repoID int64, opts FindReleasesOptions) (int64, error)

CountReleasesByRepoID returns a number of releases matching FindReleaseOptions and RepoID.

func CountRepositories

func CountRepositories(ctx context.Context, opts CountRepositoryOptions) (int64, error)

CountRepositories returns number of repositories. Argument private only takes effect when it is false, set it true to count all repositories.

func CountTopics

func CountTopics(opts *FindTopicOptions) (int64, error)

CountTopics counts the number of topics matching the FindTopicOptions

func DecrementRepoForkNum added in v1.17.0

func DecrementRepoForkNum(ctx context.Context, repoID int64) error

DecrementRepoForkNum decrement repository fork number

func DeleteAllRepoArchives

func DeleteAllRepoArchives() error

DeleteAllRepoArchives deletes all repo archives records

func DeleteAttachment

func DeleteAttachment(a *Attachment, remove bool) error

DeleteAttachment deletes the given attachment and optionally the associated file.

func DeleteAttachments

func DeleteAttachments(ctx context.Context, attachments []*Attachment, remove bool) (int, error)

DeleteAttachments deletes the given attachments and optionally the associated files.

func DeleteAttachmentsByComment

func DeleteAttachmentsByComment(commentID int64, remove bool) (int, error)

DeleteAttachmentsByComment deletes all attachments associated with the given comment.

func DeleteAttachmentsByIssue

func DeleteAttachmentsByIssue(issueID int64, remove bool) (int, error)

DeleteAttachmentsByIssue deletes all attachments associated with the given issue.

func DeleteAttachmentsByRelease

func DeleteAttachmentsByRelease(ctx context.Context, releaseID int64) error

DeleteAttachmentsByRelease deletes all attachments associated with the given release.

func DeleteMirrorByRepoID

func DeleteMirrorByRepoID(repoID int64) error

DeleteMirrorByRepoID deletes a mirror by repoID

func DeleteOrphanedAttachments

func DeleteOrphanedAttachments(ctx context.Context) error

DeleteOrphanedAttachments delete all bad attachments

func DeletePushMirrors added in v1.17.4

func DeletePushMirrors(ctx context.Context, opts PushMirrorOptions) error

func DeleteRedirect

func DeleteRedirect(ctx context.Context, ownerID int64, repoName string) error

DeleteRedirect delete any redirect from the specified repo name to anything else

func DeleteReleaseByID added in v1.17.4

func DeleteReleaseByID(ctx context.Context, id int64) error

DeleteReleaseByID deletes a release from database by given ID.

func DeleteRepoArchiver

func DeleteRepoArchiver(ctx context.Context, archiver *RepoArchiver) error

DeleteRepoArchiver delete archiver

func DeleteUploadByUUID added in v1.17.4

func DeleteUploadByUUID(uuid string) error

DeleteUploadByUUID deletes a upload by UUID

func DeleteUploads added in v1.17.4

func DeleteUploads(uploads ...*Upload) (err error)

DeleteUploads deletes multiple uploads

func ExistAttachmentsByUUID

func ExistAttachmentsByUUID(ctx context.Context, uuid string) (bool, error)

ExistAttachmentsByUUID returns true if attachment exists with the given UUID

func ExistsRepoArchiverWithStoragePath added in v1.17.4

func ExistsRepoArchiverWithStoragePath(ctx context.Context, storagePath string) (bool, error)

ExistsRepoArchiverWithStoragePath checks if there is a RepoArchiver for a given storage path

func ExistsWithAvatarAtStoragePath added in v1.17.4

func ExistsWithAvatarAtStoragePath(ctx context.Context, storagePath string) (bool, error)

ExistsWithAvatarAtStoragePath returns true if there is a user with this Avatar

func FindReposMapByIDs

func FindReposMapByIDs(repoIDs []int64, res map[int64]*Repository) error

FindReposMapByIDs find repos as map

func FindUserCodeAccessibleOwnerRepoIDs added in v1.17.4

func FindUserCodeAccessibleOwnerRepoIDs(ctx context.Context, ownerID int64, user *user_model.User) ([]int64, error)

FindUserCodeAccessibleOwnerRepoIDs finds all repository IDs for the given owner whose code the user can see.

func FindUserCodeAccessibleRepoIDs added in v1.17.0

func FindUserCodeAccessibleRepoIDs(ctx context.Context, user *user_model.User) ([]int64, error)

FindUserCodeAccessibleRepoIDs finds all at Code level accessible repositories' ID by the user's id

func FixNullArchivedRepository added in v1.17.4

func FixNullArchivedRepository(ctx context.Context) (int64, error)

FixNullArchivedRepository sets is_archived to false where it is null

func GenerateTopics

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

GenerateTopics generates topics from a template repository

func GetIssuePosters added in v1.17.4

func GetIssuePosters(ctx context.Context, repo *Repository, isPull bool) ([]*user_model.User, error)

GetIssuePosters returns all users that have authored an issue/pull request for the given repository

func GetReleaseAttachments added in v1.17.4

func GetReleaseAttachments(ctx context.Context, rels ...*Release) (err error)

GetReleaseAttachments retrieves the attachments for releases

func GetReleaseCountByRepoID added in v1.17.4

func GetReleaseCountByRepoID(ctx context.Context, repoID int64, opts FindReleasesOptions) (int64, error)

GetReleaseCountByRepoID returns the count of releases of repository

func GetRepoAssignees added in v1.17.0

func GetRepoAssignees(ctx context.Context, repo *Repository) (_ []*user_model.User, err error)

GetRepoAssignees returns all users that have write access and can be assigned to issues of the repository,

func GetRepoWatchers

func GetRepoWatchers(repoID int64, opts db.ListOptions) ([]*user_model.User, error)

GetRepoWatchers returns range of users watching given repository.

func GetRepoWatchersIDs

func GetRepoWatchersIDs(ctx context.Context, repoID int64) ([]int64, error)

GetRepoWatchersIDs returns IDs of watchers for a given repo ID but avoids joining with `user` for performance reasons User permissions must be verified elsewhere if required

func GetRepositoriesMapByIDs

func GetRepositoriesMapByIDs(ids []int64) (map[int64]*Repository, error)

GetRepositoriesMapByIDs returns the repositories by given id slice.

func GetReviewers added in v1.17.0

func GetReviewers(ctx context.Context, repo *Repository, doerID, posterID int64) ([]*user_model.User, error)

GetReviewers get all users can be requested to review: * for private repositories this returns all users that have read access or higher to the repository. * for public repositories this returns all users that have read access or higher to the repository, all repo watchers and all organization members. TODO: may be we should have a busy choice for users to block review request to them.

func GetStargazers

func GetStargazers(repo *Repository, opts db.ListOptions) ([]*user_model.User, error)

GetStargazers returns the users that starred the repo.

func GetUnindexedRepos

func GetUnindexedRepos(indexerType RepoIndexerType, maxRepoID int64, page, pageSize int) ([]int64, error)

GetUnindexedRepos returns repos which do not have an indexer status

func HasForkedRepo

func HasForkedRepo(ownerID, repoID int64) bool

HasForkedRepo checks if given user has already forked a repository with given ID.

func IncrementRepoForkNum added in v1.17.0

func IncrementRepoForkNum(ctx context.Context, repoID int64) error

IncrementRepoForkNum increment repository fork number

func InsertMirror

func InsertMirror(ctx context.Context, mirror *Mirror) error

InsertMirror inserts a mirror to database

func InsertPushMirror

func InsertPushMirror(ctx context.Context, m *PushMirror) error

InsertPushMirror inserts a push-mirror to database

func IsCollaborator added in v1.17.0

func IsCollaborator(ctx context.Context, repoID, userID int64) (bool, error)

IsCollaborator check if a user is a collaborator of a repository

func IsErrAttachmentNotExist

func IsErrAttachmentNotExist(err error) bool

IsErrAttachmentNotExist checks if an error is a ErrAttachmentNotExist.

func IsErrReachLimitOfRepo

func IsErrReachLimitOfRepo(err error) bool

IsErrReachLimitOfRepo checks if an error is a ErrReachLimitOfRepo.

func IsErrRedirectNotExist

func IsErrRedirectNotExist(err error) bool

IsErrRedirectNotExist check if an error is an ErrRepoRedirectNotExist.

func IsErrReleaseAlreadyExist added in v1.17.4

func IsErrReleaseAlreadyExist(err error) bool

IsErrReleaseAlreadyExist checks if an error is a ErrReleaseAlreadyExist.

func IsErrReleaseNotExist added in v1.17.4

func IsErrReleaseNotExist(err error) bool

IsErrReleaseNotExist checks if an error is a ErrReleaseNotExist.

func IsErrRepoAlreadyExist

func IsErrRepoAlreadyExist(err error) bool

IsErrRepoAlreadyExist checks if an error is a ErrRepoAlreadyExist.

func IsErrRepoFilesAlreadyExist

func IsErrRepoFilesAlreadyExist(err error) bool

IsErrRepoFilesAlreadyExist checks if an error is a ErrRepoAlreadyExist.

func IsErrRepoNotExist

func IsErrRepoNotExist(err error) bool

IsErrRepoNotExist checks if an error is a ErrRepoNotExist.

func IsErrTopicNotExist

func IsErrTopicNotExist(err error) bool

IsErrTopicNotExist checks if an error is an ErrTopicNotExist.

func IsErrUnitTypeNotExist

func IsErrUnitTypeNotExist(err error) bool

IsErrUnitTypeNotExist checks if an error is a ErrUnitNotExist.

func IsErrUploadNotExist added in v1.17.4

func IsErrUploadNotExist(err error) bool

IsErrUploadNotExist checks if an error is a ErrUploadNotExist.

func IsErrUserDoesNotHaveAccessToRepo added in v1.17.0

func IsErrUserDoesNotHaveAccessToRepo(err error) bool

IsErrUserDoesNotHaveAccessToRepo checks if an error is a ErrRepoFileAlreadyExists.

func IsErrWikiAlreadyExist added in v1.17.4

func IsErrWikiAlreadyExist(err error) bool

IsErrWikiAlreadyExist checks if an error is an ErrWikiAlreadyExist.

func IsErrWikiInvalidFileName added in v1.17.4

func IsErrWikiInvalidFileName(err error) bool

IsErrWikiInvalidFileName checks if an error is an ErrWikiInvalidFileName.

func IsErrWikiReservedName added in v1.17.4

func IsErrWikiReservedName(err error) bool

IsErrWikiReservedName checks if an error is an ErrWikiReservedName.

func IsOwnerMemberCollaborator added in v1.17.0

func IsOwnerMemberCollaborator(repo *Repository, userID int64) (bool, error)

IsOwnerMemberCollaborator checks if a provided user is the owner, a collaborator or a member of a team in a repository

func IsReleaseExist added in v1.17.4

func IsReleaseExist(ctx context.Context, repoID int64, tagName string) (bool, error)

IsReleaseExist returns true if release with given tag name already exists.

func IsRepositoryExist

func IsRepositoryExist(ctx context.Context, u *user_model.User, repoName string) (bool, error)

IsRepositoryExist returns true if the repository with given name under user has already existed.

func IsStaring

func IsStaring(ctx context.Context, userID, repoID int64) bool

IsStaring checks if user has starred given repository.

func IsUsableRepoName

func IsUsableRepoName(name string) error

IsUsableRepoName returns true when repository is usable

func IsWatchMode

func IsWatchMode(mode WatchMode) bool

IsWatchMode Decodes watchability of WatchMode

func IsWatching

func IsWatching(userID, repoID int64) bool

IsWatching checks if user has watched given repository.

func LookupRedirect

func LookupRedirect(ownerID int64, repoName string) (int64, error)

LookupRedirect look up if a repository has a redirect name

func MirrorsIterate

func MirrorsIterate(limit int, f func(idx int, bean interface{}) error) error

MirrorsIterate iterates all mirror repositories.

func NewRedirect

func NewRedirect(ctx context.Context, ownerID, repoID int64, oldRepoName, newRepoName string) error

NewRedirect create a new repo redirect

func PushMirrorsIterate

func PushMirrorsIterate(ctx context.Context, limit int, f func(idx int, bean interface{}) error) error

PushMirrorsIterate iterates all push-mirror repositories.

func PushUpdateDeleteTag added in v1.17.4

func PushUpdateDeleteTag(repo *Repository, tagName string) error

PushUpdateDeleteTag must be called for any push actions to delete tag

func PushUpdateDeleteTagsContext added in v1.17.4

func PushUpdateDeleteTagsContext(ctx context.Context, repo *Repository, tags []string) error

PushUpdateDeleteTagsContext updates a number of delete tags with context

func RemoveTopicsFromRepo

func RemoveTopicsFromRepo(ctx context.Context, repoID int64) error

RemoveTopicsFromRepo remove all topics from the repo and decrements respective topics repo count

func RepoPath

func RepoPath(userName, repoName string) string

RepoPath returns repository path by given user and repository name.

func SanitizeAndValidateTopics

func SanitizeAndValidateTopics(topics []string) (validTopics, invalidTopics []string)

SanitizeAndValidateTopics sanitizes and checks an array or topics

func SaveOrUpdateTag added in v1.17.4

func SaveOrUpdateTag(repo *Repository, newRel *Release) error

SaveOrUpdateTag must be called for any push actions to add tag

func SaveTopics

func SaveTopics(repoID int64, topicNames ...string) error

SaveTopics save topics to a repository

func SearchRepositoryCondition added in v1.17.0

func SearchRepositoryCondition(opts *SearchRepoOptions) builder.Cond

SearchRepositoryCondition creates a query condition according search repository options

func SearchRepositoryIDs added in v1.17.0

func SearchRepositoryIDs(opts *SearchRepoOptions) ([]int64, int64, error)

SearchRepositoryIDs takes keyword and part of repository name to search, it returns results in given range and number of total results.

func SearchRepositoryIDsByCondition added in v1.17.4

func SearchRepositoryIDsByCondition(ctx context.Context, cond builder.Cond) ([]int64, error)

SearchRepositoryIDsByCondition search repository IDs by given condition.

func SetArchiveRepoState

func SetArchiveRepoState(repo *Repository, isArchived bool) (err error)

SetArchiveRepoState sets if a repo is archived

func SortReleases added in v1.17.4

func SortReleases(rels []*Release)

SortReleases sorts releases by number of commits and created time.

func StarRepo

func StarRepo(userID, repoID int64, star bool) error

StarRepo or unstar repository.

func TouchMirror added in v1.16.6

func TouchMirror(ctx context.Context, m *Mirror) error

TouchMirror updates the mirror updatedUnix

func UpdateAttachment

func UpdateAttachment(ctx context.Context, atta *Attachment) error

UpdateAttachment updates the given attachment in database

func UpdateAttachmentByUUID

func UpdateAttachmentByUUID(ctx context.Context, attach *Attachment, cols ...string) error

UpdateAttachmentByUUID Updates attachment via uuid

func UpdateDefaultBranch

func UpdateDefaultBranch(repo *Repository) error

UpdateDefaultBranch updates the default branch

func UpdateIndexerStatus

func UpdateIndexerStatus(ctx context.Context, repo *Repository, indexerType RepoIndexerType, sha string) error

UpdateIndexerStatus updates indexer status

func UpdateLanguageStats

func UpdateLanguageStats(repo *Repository, commitID string, stats map[string]int64) error

UpdateLanguageStats updates the language statistics for repository

func UpdateMirror

func UpdateMirror(ctx context.Context, m *Mirror) error

UpdateMirror updates the mirror

func UpdatePushMirror

func UpdatePushMirror(ctx context.Context, m *PushMirror) error

UpdatePushMirror updates the push-mirror

func UpdateRelease added in v1.17.4

func UpdateRelease(ctx context.Context, rel *Release) error

UpdateRelease updates all columns of a release

func UpdateReleasesMigrationsByType added in v1.17.4

func UpdateReleasesMigrationsByType(gitServiceType structs.GitServiceType, originalAuthorID string, posterID int64) error

UpdateReleasesMigrationsByType updates all migrated repositories' releases from gitServiceType to replace originalAuthorID to posterID

func UpdateRepoArchiverStatus

func UpdateRepoArchiverStatus(ctx context.Context, archiver *RepoArchiver) error

UpdateRepoArchiverStatus updates archiver's status

func UpdateRepoIssueNumbers added in v1.17.0

func UpdateRepoIssueNumbers(ctx context.Context, repoID int64, isPull, isClosed bool) error

UpdateRepoIssueNumbers updates one of a repositories amount of (open|closed) (issues|PRs) with the current count

func UpdateRepoSize added in v1.17.0

func UpdateRepoSize(ctx context.Context, repoID, size int64) error

UpdateRepoSize updates the repository size, calculating it using getDirectorySize

func UpdateRepoUnit

func UpdateRepoUnit(unit *RepoUnit) error

UpdateRepoUnit updates the provided repo unit

func UpdateRepositoryCols

func UpdateRepositoryCols(ctx context.Context, repo *Repository, cols ...string) error

UpdateRepositoryCols updates repository's columns

func UpdateRepositoryOwnerNames

func UpdateRepositoryOwnerNames(ownerID int64, ownerName string) error

UpdateRepositoryOwnerNames updates repository owner_names (this should only be used when the ownerName has changed case)

func UpdateRepositoryUnits

func UpdateRepositoryUnits(repo *Repository, units []RepoUnit, deleteUnitTypes []unit.Type) (err error)

UpdateRepositoryUnits updates a repository's units

func UpdateRepositoryUpdatedTime

func UpdateRepositoryUpdatedTime(repoID int64, updateTime time.Time) error

UpdateRepositoryUpdatedTime updates a repository's updated time

func UploadLocalPath added in v1.17.4

func UploadLocalPath(uuid string) string

UploadLocalPath returns where uploads is stored in local file system based on given UUID.

func UserAccessRepoCond added in v1.17.0

func UserAccessRepoCond(idStr string, userID int64) builder.Cond

UserAccessRepoCond returns a condition for selecting all repositories a user has unit independent access to

func UserAssignedRepoCond added in v1.17.0

func UserAssignedRepoCond(id string, userID int64) builder.Cond

UserAssignedRepoCond return user as assignee repositories list

func UserCollaborationRepoCond added in v1.17.0

func UserCollaborationRepoCond(idStr string, userID int64) builder.Cond

userCollaborationRepoCond returns a condition for selecting all repositories a user is collaborator in

func UserCreateIssueRepoCond added in v1.17.0

func UserCreateIssueRepoCond(id string, userID int64, isPull bool) builder.Cond

UserCreateIssueRepoCond return user created issues repositories list

func UserMentionedRepoCond added in v1.17.0

func UserMentionedRepoCond(id string, userID int64) builder.Cond

UserMentionedRepoCond return user metinoed repositories list

func UserOrgPublicUnitRepoCond added in v1.17.0

func UserOrgPublicUnitRepoCond(userID, orgID int64) builder.Cond

UserOrgPublicUnitRepoCond returns the condition that one user could access all public repositories in the special organization

func UserOrgTeamRepoCond added in v1.17.0

func UserOrgTeamRepoCond(idStr string, userID int64) builder.Cond

UserOrgTeamRepoCond selects repos that the given user has access to through team membership

func UserOrgUnitRepoCond added in v1.17.0

func UserOrgUnitRepoCond(idStr string, userID, orgID int64, unitType unit.Type) builder.Cond

UserOrgUnitRepoCond selects repos that the given user has access to through org and the special unit

func UserOwnedRepoCond added in v1.17.0

func UserOwnedRepoCond(userID int64) builder.Cond

UserOwnedRepoCond returns user ownered repositories

func ValidateTopic

func ValidateTopic(topic string) bool

ValidateTopic checks a topic by length and match pattern rules

func WatchIfAuto

func WatchIfAuto(ctx context.Context, userID, repoID int64, isWrite bool) error

WatchIfAuto subscribes to repo if AutoWatchOnChanges is set

func WatchRepo

func WatchRepo(ctx context.Context, userID, repoID int64, doWatch bool) (err error)

WatchRepo watch or unwatch repository.

func WatchRepoMode

func WatchRepoMode(userID, repoID int64, mode WatchMode) (err error)

WatchRepoMode watch repository in specific mode.

func WikiPath

func WikiPath(userName, repoName string) string

WikiPath returns wiki data path by given user and repository name.

Types

type ArchiverStatus

type ArchiverStatus int

ArchiverStatus represents repo archive status

type Attachment

type Attachment struct {
	ID            int64  `xorm:"pk autoincr"`
	UUID          string `xorm:"uuid UNIQUE"`
	RepoID        int64  `xorm:"INDEX"`           // this should not be zero
	IssueID       int64  `xorm:"INDEX"`           // maybe zero when creating
	ReleaseID     int64  `xorm:"INDEX"`           // maybe zero when creating
	UploaderID    int64  `xorm:"INDEX DEFAULT 0"` // Notice: will be zero before this column added
	CommentID     int64
	Name          string
	DownloadCount int64              `xorm:"DEFAULT 0"`
	Size          int64              `xorm:"DEFAULT 0"`
	CreatedUnix   timeutil.TimeStamp `xorm:"created"`
}

Attachment represent a attachment of issue/comment/release.

func GetAttachmentByID

func GetAttachmentByID(ctx context.Context, id int64) (*Attachment, error)

GetAttachmentByID returns attachment by given id

func GetAttachmentByReleaseIDFileName

func GetAttachmentByReleaseIDFileName(ctx context.Context, releaseID int64, fileName string) (*Attachment, error)

GetAttachmentByReleaseIDFileName returns attachment by given releaseId and fileName.

func GetAttachmentByUUID

func GetAttachmentByUUID(ctx context.Context, uuid string) (*Attachment, error)

GetAttachmentByUUID returns attachment by given UUID.

func GetAttachmentsByCommentID

func GetAttachmentsByCommentID(ctx context.Context, commentID int64) ([]*Attachment, error)

GetAttachmentsByCommentID returns all attachments if comment by given ID.

func GetAttachmentsByIssueID

func GetAttachmentsByIssueID(ctx context.Context, issueID int64) ([]*Attachment, error)

GetAttachmentsByIssueID returns all attachments of an issue.

func GetAttachmentsByIssueIDImagesLatest added in v1.19.0

func GetAttachmentsByIssueIDImagesLatest(ctx context.Context, issueID int64) ([]*Attachment, error)

GetAttachmentsByIssueIDImagesLatest returns the latest image attachments of an issue.

func GetAttachmentsByUUIDs

func GetAttachmentsByUUIDs(ctx context.Context, uuids []string) ([]*Attachment, error)

GetAttachmentsByUUIDs returns attachment by given UUID list.

func (*Attachment) DownloadURL

func (a *Attachment) DownloadURL() string

DownloadURL returns the download url of the attached file

func (*Attachment) IncreaseDownloadCount

func (a *Attachment) IncreaseDownloadCount() error

IncreaseDownloadCount is update download count + 1

func (*Attachment) RelativePath

func (a *Attachment) RelativePath() string

RelativePath returns the relative path of the attachment

type CloneLink struct {
	SSH   string
	HTTPS string
}

CloneLink represents different types of clone URLs of repository.

type Collaboration added in v1.17.0

type Collaboration struct {
	ID          int64              `xorm:"pk autoincr"`
	RepoID      int64              `xorm:"UNIQUE(s) INDEX NOT NULL"`
	UserID      int64              `xorm:"UNIQUE(s) INDEX NOT NULL"`
	Mode        perm.AccessMode    `xorm:"DEFAULT 2 NOT NULL"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

Collaboration represent the relation between an individual and a repository.

func GetCollaboration added in v1.17.0

func GetCollaboration(ctx context.Context, repoID, uid int64) (*Collaboration, error)

GetCollaboration get collaboration for a repository id with a user id

type Collaborator added in v1.17.0

type Collaborator struct {
	*user_model.User
	Collaboration *Collaboration
}

Collaborator represents a user with collaboration details.

func GetCollaborators added in v1.17.0

func GetCollaborators(ctx context.Context, repoID int64, listOptions db.ListOptions) ([]*Collaborator, error)

GetCollaborators returns the collaborators for a repository

type CountRepositoryOptions added in v1.17.0

type CountRepositoryOptions struct {
	OwnerID int64
	Private util.OptionalBool
}

type ErrAttachmentNotExist

type ErrAttachmentNotExist struct {
	ID   int64
	UUID string
}

ErrAttachmentNotExist represents a "AttachmentNotExist" kind of error.

func (ErrAttachmentNotExist) Error

func (err ErrAttachmentNotExist) Error() string

func (ErrAttachmentNotExist) Unwrap added in v1.17.4

func (err ErrAttachmentNotExist) Unwrap() error

type ErrReachLimitOfRepo

type ErrReachLimitOfRepo struct {
	Limit int
}

ErrReachLimitOfRepo represents a "ReachLimitOfRepo" kind of error.

func (ErrReachLimitOfRepo) Error

func (err ErrReachLimitOfRepo) Error() string

func (ErrReachLimitOfRepo) Unwrap added in v1.17.4

func (err ErrReachLimitOfRepo) Unwrap() error

type ErrRedirectNotExist

type ErrRedirectNotExist struct {
	OwnerID  int64
	RepoName string
}

ErrRedirectNotExist represents a "RedirectNotExist" kind of error.

func (ErrRedirectNotExist) Error

func (err ErrRedirectNotExist) Error() string

func (ErrRedirectNotExist) Unwrap added in v1.17.4

func (err ErrRedirectNotExist) Unwrap() error

type ErrReleaseAlreadyExist added in v1.17.4

type ErrReleaseAlreadyExist struct {
	TagName string
}

ErrReleaseAlreadyExist represents a "ReleaseAlreadyExist" kind of error.

func (ErrReleaseAlreadyExist) Error added in v1.17.4

func (err ErrReleaseAlreadyExist) Error() string

func (ErrReleaseAlreadyExist) Unwrap added in v1.17.4

func (err ErrReleaseAlreadyExist) Unwrap() error

type ErrReleaseNotExist added in v1.17.4

type ErrReleaseNotExist struct {
	ID      int64
	TagName string
}

ErrReleaseNotExist represents a "ReleaseNotExist" kind of error.

func (ErrReleaseNotExist) Error added in v1.17.4

func (err ErrReleaseNotExist) Error() string

func (ErrReleaseNotExist) Unwrap added in v1.17.4

func (err ErrReleaseNotExist) Unwrap() error

type ErrRepoAlreadyExist

type ErrRepoAlreadyExist struct {
	Uname string
	Name  string
}

ErrRepoAlreadyExist represents a "RepoAlreadyExist" kind of error.

func (ErrRepoAlreadyExist) Error

func (err ErrRepoAlreadyExist) Error() string

func (ErrRepoAlreadyExist) Unwrap added in v1.17.4

func (err ErrRepoAlreadyExist) Unwrap() error

type ErrRepoFilesAlreadyExist

type ErrRepoFilesAlreadyExist struct {
	Uname string
	Name  string
}

ErrRepoFilesAlreadyExist represents a "RepoFilesAlreadyExist" kind of error.

func (ErrRepoFilesAlreadyExist) Error

func (err ErrRepoFilesAlreadyExist) Error() string

func (ErrRepoFilesAlreadyExist) Unwrap added in v1.17.4

func (err ErrRepoFilesAlreadyExist) Unwrap() error

type ErrRepoNotExist

type ErrRepoNotExist struct {
	ID        int64
	UID       int64
	OwnerName string
	Name      string
}

ErrRepoNotExist represents a "RepoNotExist" kind of error.

func (ErrRepoNotExist) Error

func (err ErrRepoNotExist) Error() string

func (ErrRepoNotExist) Unwrap added in v1.17.4

func (err ErrRepoNotExist) Unwrap() error

Unwrap unwraps this error as a ErrNotExist error

type ErrTopicNotExist

type ErrTopicNotExist struct {
	Name string
}

ErrTopicNotExist represents an error that a topic is not exist

func (ErrTopicNotExist) Error

func (err ErrTopicNotExist) Error() string

Error implements error interface

func (ErrTopicNotExist) Unwrap added in v1.17.4

func (err ErrTopicNotExist) Unwrap() error

type ErrUnitTypeNotExist

type ErrUnitTypeNotExist struct {
	UT unit.Type
}

ErrUnitTypeNotExist represents a "UnitTypeNotExist" kind of error.

func (ErrUnitTypeNotExist) Error

func (err ErrUnitTypeNotExist) Error() string

func (ErrUnitTypeNotExist) Unwrap added in v1.17.4

func (err ErrUnitTypeNotExist) Unwrap() error

type ErrUploadNotExist added in v1.17.4

type ErrUploadNotExist struct {
	ID   int64
	UUID string
}

ErrUploadNotExist represents a "UploadNotExist" kind of error.

func (ErrUploadNotExist) Error added in v1.17.4

func (err ErrUploadNotExist) Error() string

func (ErrUploadNotExist) Unwrap added in v1.17.4

func (err ErrUploadNotExist) Unwrap() error

type ErrUserDoesNotHaveAccessToRepo added in v1.17.0

type ErrUserDoesNotHaveAccessToRepo struct {
	UserID   int64
	RepoName string
}

ErrUserDoesNotHaveAccessToRepo represents an error where the user doesn't has access to a given repo.

func (ErrUserDoesNotHaveAccessToRepo) Error added in v1.17.0

func (ErrUserDoesNotHaveAccessToRepo) Unwrap added in v1.17.4

type ErrWikiAlreadyExist added in v1.17.4

type ErrWikiAlreadyExist struct {
	Title string
}

ErrWikiAlreadyExist represents a "WikiAlreadyExist" kind of error.

func (ErrWikiAlreadyExist) Error added in v1.17.4

func (err ErrWikiAlreadyExist) Error() string

func (ErrWikiAlreadyExist) Unwrap added in v1.17.4

func (err ErrWikiAlreadyExist) Unwrap() error

type ErrWikiInvalidFileName added in v1.17.4

type ErrWikiInvalidFileName struct {
	FileName string
}

ErrWikiInvalidFileName represents an invalid wiki file name.

func (ErrWikiInvalidFileName) Error added in v1.17.4

func (err ErrWikiInvalidFileName) Error() string

func (ErrWikiInvalidFileName) Unwrap added in v1.17.4

func (err ErrWikiInvalidFileName) Unwrap() error

type ErrWikiReservedName added in v1.17.4

type ErrWikiReservedName struct {
	Title string
}

ErrWikiReservedName represents a reserved name error.

func (ErrWikiReservedName) Error added in v1.17.4

func (err ErrWikiReservedName) Error() string

func (ErrWikiReservedName) Unwrap added in v1.17.4

func (err ErrWikiReservedName) Unwrap() error

type ExternalTrackerConfig

type ExternalTrackerConfig struct {
	ExternalTrackerURL           string
	ExternalTrackerFormat        string
	ExternalTrackerStyle         string
	ExternalTrackerRegexpPattern string
}

ExternalTrackerConfig describes external tracker config

func (*ExternalTrackerConfig) FromDB

func (cfg *ExternalTrackerConfig) FromDB(bs []byte) error

FromDB fills up a ExternalTrackerConfig from serialized format.

func (*ExternalTrackerConfig) ToDB

func (cfg *ExternalTrackerConfig) ToDB() ([]byte, error)

ToDB exports a ExternalTrackerConfig to a serialized format.

type ExternalWikiConfig

type ExternalWikiConfig struct {
	ExternalWikiURL string
}

ExternalWikiConfig describes external wiki config

func (*ExternalWikiConfig) FromDB

func (cfg *ExternalWikiConfig) FromDB(bs []byte) error

FromDB fills up a ExternalWikiConfig from serialized format.

func (*ExternalWikiConfig) ToDB

func (cfg *ExternalWikiConfig) ToDB() ([]byte, error)

ToDB exports a ExternalWikiConfig to a serialized format.

type FindReleasesOptions added in v1.17.4

type FindReleasesOptions struct {
	db.ListOptions
	IncludeDrafts bool
	IncludeTags   bool
	IsPreRelease  util.OptionalBool
	IsDraft       util.OptionalBool
	TagNames      []string
	HasSha1       util.OptionalBool // useful to find draft releases which are created with existing tags
}

FindReleasesOptions describes the conditions to Find releases

type FindRepoArchiversOption

type FindRepoArchiversOption struct {
	db.ListOptions
	OlderThan time.Duration
}

FindRepoArchiversOption represents an archiver options

type FindTopicOptions

type FindTopicOptions struct {
	db.ListOptions
	RepoID  int64
	Keyword string
}

FindTopicOptions represents the options when fdin topics

type IssuesConfig

type IssuesConfig struct {
	EnableTimetracker                bool
	AllowOnlyContributorsToTrackTime bool
	EnableDependencies               bool
}

IssuesConfig describes issues config

func (*IssuesConfig) FromDB

func (cfg *IssuesConfig) FromDB(bs []byte) error

FromDB fills up a IssuesConfig from serialized format.

func (*IssuesConfig) ToDB

func (cfg *IssuesConfig) ToDB() ([]byte, error)

ToDB exports a IssuesConfig to a serialized format.

type LanguageStat

type LanguageStat struct {
	ID          int64 `xorm:"pk autoincr"`
	RepoID      int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
	CommitID    string
	IsPrimary   bool
	Language    string             `xorm:"VARCHAR(50) UNIQUE(s) INDEX NOT NULL"`
	Percentage  float32            `xorm:"-"`
	Size        int64              `xorm:"NOT NULL DEFAULT 0"`
	Color       string             `xorm:"-"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"`
}

LanguageStat describes language statistics of a repository

type LanguageStatList

type LanguageStatList []*LanguageStat

LanguageStatList defines a list of language statistics

func GetLanguageStats

func GetLanguageStats(ctx context.Context, repo *Repository) (LanguageStatList, error)

GetLanguageStats returns the language statistics for a repository

func GetTopLanguageStats

func GetTopLanguageStats(repo *Repository, limit int) (LanguageStatList, error)

GetTopLanguageStats returns the top language statistics for a repository

func (LanguageStatList) LoadAttributes

func (stats LanguageStatList) LoadAttributes()

LoadAttributes loads attributes

type MergeStyle

type MergeStyle string

MergeStyle represents the approach to merge commits into base branch.

const (
	// MergeStyleMerge create merge commit
	MergeStyleMerge MergeStyle = "merge"
	// MergeStyleRebase rebase before merging
	MergeStyleRebase MergeStyle = "rebase"
	// MergeStyleRebaseMerge rebase before merging with merge commit (--no-ff)
	MergeStyleRebaseMerge MergeStyle = "rebase-merge"
	// MergeStyleSquash squash commits into single commit before merging
	MergeStyleSquash MergeStyle = "squash"
	// MergeStyleManuallyMerged pr has been merged manually, just mark it as merged directly
	MergeStyleManuallyMerged MergeStyle = "manually-merged"
	// MergeStyleRebaseUpdate not a merge style, used to update pull head by rebase
	MergeStyleRebaseUpdate MergeStyle = "rebase-update-only"
)

type Mirror

type Mirror struct {
	ID          int64       `xorm:"pk autoincr"`
	RepoID      int64       `xorm:"INDEX"`
	Repo        *Repository `xorm:"-"`
	Interval    time.Duration
	EnablePrune bool `xorm:"NOT NULL DEFAULT true"`

	UpdatedUnix    timeutil.TimeStamp `xorm:"INDEX"`
	NextUpdateUnix timeutil.TimeStamp `xorm:"INDEX"`

	LFS         bool   `xorm:"lfs_enabled NOT NULL DEFAULT false"`
	LFSEndpoint string `xorm:"lfs_endpoint TEXT"`

	Address string `xorm:"-"`
}

Mirror represents mirror information of a repository.

func GetMirrorByRepoID

func GetMirrorByRepoID(ctx context.Context, repoID int64) (*Mirror, error)

GetMirrorByRepoID returns mirror information of a repository.

func (*Mirror) BeforeInsert

func (m *Mirror) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record

func (*Mirror) GetRemoteName

func (m *Mirror) GetRemoteName() string

GetRemoteName returns the name of the remote.

func (*Mirror) GetRepository

func (m *Mirror) GetRepository() *Repository

GetRepository returns the repository.

func (*Mirror) ScheduleNextUpdate

func (m *Mirror) ScheduleNextUpdate()

ScheduleNextUpdate calculates and sets next update time.

type PullRequestsConfig

type PullRequestsConfig struct {
	IgnoreWhitespaceConflicts     bool
	AllowMerge                    bool
	AllowRebase                   bool
	AllowRebaseMerge              bool
	AllowSquash                   bool
	AllowManualMerge              bool
	AutodetectManualMerge         bool
	AllowRebaseUpdate             bool
	DefaultDeleteBranchAfterMerge bool
	DefaultMergeStyle             MergeStyle
	DefaultAllowMaintainerEdit    bool
}

PullRequestsConfig describes pull requests config

func (*PullRequestsConfig) FromDB

func (cfg *PullRequestsConfig) FromDB(bs []byte) error

FromDB fills up a PullRequestsConfig from serialized format.

func (*PullRequestsConfig) GetDefaultMergeStyle

func (cfg *PullRequestsConfig) GetDefaultMergeStyle() MergeStyle

GetDefaultMergeStyle returns the default merge style for this pull request

func (*PullRequestsConfig) IsMergeStyleAllowed

func (cfg *PullRequestsConfig) IsMergeStyleAllowed(mergeStyle MergeStyle) bool

IsMergeStyleAllowed returns if merge style is allowed

func (*PullRequestsConfig) ToDB

func (cfg *PullRequestsConfig) ToDB() ([]byte, error)

ToDB exports a PullRequestsConfig to a serialized format.

type PushMirror

type PushMirror struct {
	ID         int64       `xorm:"pk autoincr"`
	RepoID     int64       `xorm:"INDEX"`
	Repo       *Repository `xorm:"-"`
	RemoteName string

	SyncOnCommit   bool `xorm:"NOT NULL DEFAULT true"`
	Interval       time.Duration
	CreatedUnix    timeutil.TimeStamp `xorm:"created"`
	LastUpdateUnix timeutil.TimeStamp `xorm:"INDEX last_update"`
	LastError      string             `xorm:"text"`
}

PushMirror represents mirror information of a repository.

func GetPushMirror added in v1.17.4

func GetPushMirror(ctx context.Context, opts PushMirrorOptions) (*PushMirror, error)

func GetPushMirrorsByRepoID

func GetPushMirrorsByRepoID(ctx context.Context, repoID int64, listOptions db.ListOptions) ([]*PushMirror, int64, error)

GetPushMirrorsByRepoID returns push-mirror information of a repository.

func GetPushMirrorsSyncedOnCommit added in v1.17.4

func GetPushMirrorsSyncedOnCommit(ctx context.Context, repoID int64) ([]*PushMirror, error)

GetPushMirrorsSyncedOnCommit returns push-mirrors for this repo that should be updated by new commits

func (*PushMirror) GetRemoteName

func (m *PushMirror) GetRemoteName() string

GetRemoteName returns the name of the remote.

func (*PushMirror) GetRepository

func (m *PushMirror) GetRepository() *Repository

GetRepository returns the path of the repository.

type PushMirrorOptions added in v1.17.4

type PushMirrorOptions struct {
	ID         int64
	RepoID     int64
	RemoteName string
}

type Redirect

type Redirect struct {
	ID             int64  `xorm:"pk autoincr"`
	OwnerID        int64  `xorm:"UNIQUE(s)"`
	LowerName      string `xorm:"UNIQUE(s) INDEX NOT NULL"`
	RedirectRepoID int64  // repoID to redirect to
}

Redirect represents that a repo name should be redirected to another

func (Redirect) TableName

func (Redirect) TableName() string

TableName represents real table name in database

type Release added in v1.17.4

type Release struct {
	ID               int64            `xorm:"pk autoincr"`
	RepoID           int64            `xorm:"INDEX UNIQUE(n)"`
	Repo             *Repository      `xorm:"-"`
	PublisherID      int64            `xorm:"INDEX"`
	Publisher        *user_model.User `xorm:"-"`
	TagName          string           `xorm:"INDEX UNIQUE(n)"`
	OriginalAuthor   string
	OriginalAuthorID int64 `xorm:"index"`
	LowerTagName     string
	Target           string
	TargetBehind     string `xorm:"-"` // to handle non-existing or empty target
	Title            string
	Sha1             string `xorm:"VARCHAR(40)"`
	NumCommits       int64
	NumCommitsBehind int64              `xorm:"-"`
	Note             string             `xorm:"TEXT"`
	RenderedNote     string             `xorm:"-"`
	IsDraft          bool               `xorm:"NOT NULL DEFAULT false"`
	IsPrerelease     bool               `xorm:"NOT NULL DEFAULT false"`
	IsTag            bool               `xorm:"NOT NULL DEFAULT false"`
	Attachments      []*Attachment      `xorm:"-"`
	CreatedUnix      timeutil.TimeStamp `xorm:"INDEX"`
}

Release represents a release of repository.

func GetLatestReleaseByRepoID added in v1.17.4

func GetLatestReleaseByRepoID(repoID int64) (*Release, error)

GetLatestReleaseByRepoID returns the latest release for a repository

func GetRelease added in v1.17.4

func GetRelease(repoID int64, tagName string) (*Release, error)

GetRelease returns release by given ID.

func GetReleaseByID added in v1.17.4

func GetReleaseByID(ctx context.Context, id int64) (*Release, error)

GetReleaseByID returns release with given ID.

func GetReleasesByRepoID added in v1.17.4

func GetReleasesByRepoID(ctx context.Context, repoID int64, opts FindReleasesOptions) ([]*Release, error)

GetReleasesByRepoID returns a list of releases of repository.

func GetReleasesByRepoIDAndNames added in v1.17.4

func GetReleasesByRepoIDAndNames(ctx context.Context, repoID int64, tagNames []string) (rels []*Release, err error)

GetReleasesByRepoIDAndNames returns a list of releases of repository according repoID and tagNames.

func (*Release) APIURL added in v1.17.4

func (r *Release) APIURL() string

APIURL the api url for a release. release must have attributes loaded

func (*Release) GetExternalID added in v1.17.4

func (r *Release) GetExternalID() int64

ExternalID ExternalUserRemappable interface

func (*Release) GetExternalName added in v1.17.4

func (r *Release) GetExternalName() string

ExternalName ExternalUserRemappable interface

func (*Release) GetUserID added in v1.17.4

func (r *Release) GetUserID() int64

UserID ExternalUserRemappable interface

func (*Release) HTMLURL added in v1.17.4

func (r *Release) HTMLURL() string

HTMLURL the url for a release on the web UI. release must have attributes loaded

func (r *Release) Link() string

Link the relative url for a release on the web UI. release must have attributes loaded

func (*Release) LoadAttributes added in v1.17.4

func (r *Release) LoadAttributes(ctx context.Context) error

LoadAttributes load repo and publisher attributes for a release

func (*Release) RemapExternalUser added in v1.17.4

func (r *Release) RemapExternalUser(externalName string, externalID, userID int64) error

RemapExternalUser ExternalUserRemappable interface

func (*Release) TarURL added in v1.17.4

func (r *Release) TarURL() string

TarURL the tar.gz url for a release. release must have attributes loaded

func (*Release) ZipURL added in v1.17.4

func (r *Release) ZipURL() string

ZipURL the zip url for a release. release must have attributes loaded

type RepoArchiver

type RepoArchiver struct {
	ID          int64           `xorm:"pk autoincr"`
	RepoID      int64           `xorm:"index unique(s)"`
	Type        git.ArchiveType `xorm:"unique(s)"`
	Status      ArchiverStatus
	CommitID    string             `xorm:"VARCHAR(40) unique(s)"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX NOT NULL created"`
}

RepoArchiver represents all archivers

func FindRepoArchives

func FindRepoArchives(opts FindRepoArchiversOption) ([]*RepoArchiver, error)

FindRepoArchives find repo archivers

func GetRepoArchiver

func GetRepoArchiver(ctx context.Context, repoID int64, tp git.ArchiveType, commitID string) (*RepoArchiver, error)

GetRepoArchiver get an archiver

func (*RepoArchiver) RelativePath

func (archiver *RepoArchiver) RelativePath() string

RelativePath returns the archive path relative to the archive storage root.

type RepoIndexerStatus

type RepoIndexerStatus struct {
	ID          int64           `xorm:"pk autoincr"`
	RepoID      int64           `xorm:"INDEX(s)"`
	CommitSha   string          `xorm:"VARCHAR(40)"`
	IndexerType RepoIndexerType `xorm:"INDEX(s) NOT NULL DEFAULT 0"`
}

RepoIndexerStatus status of a repo's entry in the repo indexer For now, implicitly refers to default branch

func GetIndexerStatus

func GetIndexerStatus(ctx context.Context, repo *Repository, indexerType RepoIndexerType) (*RepoIndexerStatus, error)

GetIndexerStatus loads repo codes indxer status

type RepoIndexerType

type RepoIndexerType int //revive:disable-line:exported

RepoIndexerType specifies the repository indexer type

const (
	// RepoIndexerTypeCode code indexer
	RepoIndexerTypeCode RepoIndexerType = iota // 0
	// RepoIndexerTypeStats repository stats indexer
	RepoIndexerTypeStats // 1
)

type RepoTopic

type RepoTopic struct {
	RepoID  int64 `xorm:"pk"`
	TopicID int64 `xorm:"pk"`
}

RepoTopic represents associated repositories and topics

type RepoUnit

type RepoUnit struct {
	ID          int64
	RepoID      int64              `xorm:"INDEX(s)"`
	Type        unit.Type          `xorm:"INDEX(s)"`
	Config      convert.Conversion `xorm:"TEXT"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX CREATED"`
}

RepoUnit describes all units of a repository

func (*RepoUnit) BeforeSet

func (r *RepoUnit) BeforeSet(colName string, val xorm.Cell)

BeforeSet is invoked from XORM before setting the value of a field of this object.

func (*RepoUnit) CodeConfig

func (r *RepoUnit) CodeConfig() *UnitConfig

CodeConfig returns config for unit.TypeCode

func (*RepoUnit) ExternalTrackerConfig

func (r *RepoUnit) ExternalTrackerConfig() *ExternalTrackerConfig

ExternalTrackerConfig returns config for unit.TypeExternalTracker

func (*RepoUnit) ExternalWikiConfig

func (r *RepoUnit) ExternalWikiConfig() *ExternalWikiConfig

ExternalWikiConfig returns config for unit.TypeExternalWiki

func (*RepoUnit) IssuesConfig

func (r *RepoUnit) IssuesConfig() *IssuesConfig

IssuesConfig returns config for unit.TypeIssues

func (*RepoUnit) PullRequestsConfig

func (r *RepoUnit) PullRequestsConfig() *PullRequestsConfig

PullRequestsConfig returns config for unit.TypePullRequests

func (*RepoUnit) ReleasesConfig

func (r *RepoUnit) ReleasesConfig() *UnitConfig

ReleasesConfig returns config for unit.TypeReleases

func (*RepoUnit) Unit

func (r *RepoUnit) Unit() unit.Unit

Unit returns Unit

type Repository

type Repository struct {
	ID                  int64 `xorm:"pk autoincr"`
	OwnerID             int64 `xorm:"UNIQUE(s) index"`
	OwnerName           string
	Owner               *user_model.User   `xorm:"-"`
	LowerName           string             `xorm:"UNIQUE(s) INDEX NOT NULL"`
	Name                string             `xorm:"INDEX NOT NULL"`
	Description         string             `xorm:"TEXT"`
	Website             string             `xorm:"VARCHAR(2048)"`
	OriginalServiceType api.GitServiceType `xorm:"index"`
	OriginalURL         string             `xorm:"VARCHAR(2048)"`
	DefaultBranch       string

	NumWatches          int
	NumStars            int
	NumForks            int
	NumIssues           int
	NumClosedIssues     int
	NumOpenIssues       int `xorm:"-"`
	NumPulls            int
	NumClosedPulls      int
	NumOpenPulls        int `xorm:"-"`
	NumMilestones       int `xorm:"NOT NULL DEFAULT 0"`
	NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"`
	NumOpenMilestones   int `xorm:"-"`
	NumProjects         int `xorm:"NOT NULL DEFAULT 0"`
	NumClosedProjects   int `xorm:"NOT NULL DEFAULT 0"`
	NumOpenProjects     int `xorm:"-"`
	NumActionRuns       int `xorm:"NOT NULL DEFAULT 0"`
	NumClosedActionRuns int `xorm:"NOT NULL DEFAULT 0"`
	NumOpenActionRuns   int `xorm:"-"`

	IsPrivate  bool `xorm:"INDEX"`
	IsEmpty    bool `xorm:"INDEX"`
	IsArchived bool `xorm:"INDEX"`
	IsMirror   bool `xorm:"INDEX"`
	*Mirror    `xorm:"-"`
	Status     RepositoryStatus `xorm:"NOT NULL DEFAULT 0"`

	RenderingMetas         map[string]string `xorm:"-"`
	DocumentRenderingMetas map[string]string `xorm:"-"`
	Units                  []*RepoUnit       `xorm:"-"`
	PrimaryLanguage        *LanguageStat     `xorm:"-"`

	IsFork                          bool               `xorm:"INDEX NOT NULL DEFAULT false"`
	ForkID                          int64              `xorm:"INDEX"`
	BaseRepo                        *Repository        `xorm:"-"`
	IsTemplate                      bool               `xorm:"INDEX NOT NULL DEFAULT false"`
	TemplateID                      int64              `xorm:"INDEX"`
	Size                            int64              `xorm:"NOT NULL DEFAULT 0"`
	CodeIndexerStatus               *RepoIndexerStatus `xorm:"-"`
	StatsIndexerStatus              *RepoIndexerStatus `xorm:"-"`
	IsFsckEnabled                   bool               `xorm:"NOT NULL DEFAULT true"`
	CloseIssuesViaCommitInAnyBranch bool               `xorm:"NOT NULL DEFAULT false"`
	Topics                          []string           `xorm:"TEXT JSON"`

	TrustModel TrustModelType

	// Avatar: ID(10-20)-md5(32) - must fit into 64 symbols
	Avatar string `xorm:"VARCHAR(64)"`

	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

Repository represents a git repository.

func FindUserOrgForks added in v1.17.0

func FindUserOrgForks(ctx context.Context, repoID, userID int64) ([]*Repository, error)

FindUserOrgForks returns the forked repositories for one user from a repository

func GetForkedRepo

func GetForkedRepo(ownerID, repoID int64) *Repository

GetForkedRepo checks if given user has already forked a repository with given ID.

func GetForks

func GetForks(repo *Repository, listOptions db.ListOptions) ([]*Repository, error)

GetForks returns all the forks of the repository

func GetForksByUserAndOrgs added in v1.17.0

func GetForksByUserAndOrgs(ctx context.Context, user *user_model.User, repo *Repository) ([]*Repository, error)

GetForksByUserAndOrgs return forked repos of the user and owned orgs

func GetRepositoriesByForkID

func GetRepositoriesByForkID(ctx context.Context, forkID int64) ([]*Repository, error)

GetRepositoriesByForkID returns all repositories with given fork ID.

func GetRepositoryByID

func GetRepositoryByID(ctx context.Context, id int64) (*Repository, error)

GetRepositoryByID returns the repository by given id if exists.

func GetRepositoryByName

func GetRepositoryByName(ownerID int64, name string) (*Repository, error)

GetRepositoryByName returns the repository by given name under user if exists.

func GetRepositoryByOwnerAndName

func GetRepositoryByOwnerAndName(ctx context.Context, ownerName, repoName string) (*Repository, error)

GetRepositoryByOwnerAndName returns the repository by given owner name and repo name

func GetStarredRepos added in v1.17.0

func GetStarredRepos(ctx context.Context, userID int64, private bool, listOptions db.ListOptions) ([]*Repository, error)

GetStarredRepos returns the repos starred by a particular user

func GetTemplateRepo

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

GetTemplateRepo populates repo.TemplateRepo for a generated repository and returns an error on failure (NOTE: no error is returned for non-generated repositories, and TemplateRepo will be left untouched)

func GetUserFork

func GetUserFork(ctx context.Context, repoID, userID int64) (*Repository, error)

GetUserFork return user forked repository from this repository, if not forked return nil

func GetWatchedRepos added in v1.17.0

func GetWatchedRepos(ctx context.Context, userID int64, private bool, listOptions db.ListOptions) ([]*Repository, int64, error)

GetWatchedRepos returns the repos watched by a particular user

func ValuesRepository added in v1.17.0

func ValuesRepository(m map[int64]*Repository) []*Repository

ValuesRepository converts a repository map to a list FIXME: Remove in favor of maps.values when MIN_GO_VERSION >= 1.18

func (*Repository) APIURL

func (repo *Repository) APIURL() string

APIURL returns the repository API URL

func (*Repository) AfterLoad

func (repo *Repository) AfterLoad()

AfterLoad is invoked from XORM after setting the values of all fields of this object.

func (*Repository) AllowOnlyContributorsToTrackTime

func (repo *Repository) AllowOnlyContributorsToTrackTime(ctx context.Context) bool

AllowOnlyContributorsToTrackTime returns value of IssuesConfig or the default value

func (*Repository) AllowsPulls

func (repo *Repository) AllowsPulls() bool

AllowsPulls returns true if repository meets the requirements of accepting pulls and has them enabled.

func (repo *Repository) AvatarLink(ctx context.Context) string

AvatarLink returns a link to the repository's avatar.

func (*Repository) CanCreateBranch

func (repo *Repository) CanCreateBranch() bool

CanCreateBranch returns true if repository meets the requirements for creating new branches.

func (*Repository) CanEnableEditor

func (repo *Repository) CanEnableEditor() bool

CanEnableEditor returns true if repository meets the requirements of web editor.

func (*Repository) CanEnablePulls

func (repo *Repository) CanEnablePulls() bool

CanEnablePulls returns true if repository meets the requirements of accepting pulls.

func (*Repository) CanEnableTimetracker

func (repo *Repository) CanEnableTimetracker() bool

CanEnableTimetracker returns true when the server admin enabled time tracking This overrules IsTimetrackerEnabled

func (repo *Repository) CloneLink() (cl *CloneLink)

CloneLink returns clone URLs of repository.

func (*Repository) ColorFormat

func (repo *Repository) ColorFormat(s fmt.State)

ColorFormat returns a colored string to represent this repo

func (repo *Repository) CommitLink(commitID string) (result string)

CommitLink make link to by commit full ID note: won't check whether it's an right id

func (*Repository) ComposeCompareURL

func (repo *Repository) ComposeCompareURL(oldCommitID, newCommitID string) string

ComposeCompareURL returns the repository comparison URL

func (*Repository) ComposeDocumentMetas

func (repo *Repository) ComposeDocumentMetas() map[string]string

ComposeDocumentMetas composes a map of metas for properly rendering documents

func (*Repository) ComposeMetas

func (repo *Repository) ComposeMetas() map[string]string

ComposeMetas composes a map of metas for properly rendering issue links and external issue trackers.

func (*Repository) CustomAvatarRelativePath

func (repo *Repository) CustomAvatarRelativePath() string

CustomAvatarRelativePath returns repository custom avatar file path.

func (*Repository) DescriptionHTML

func (repo *Repository) DescriptionHTML(ctx context.Context) template.HTML

DescriptionHTML does special handles to description and return HTML string.

func (*Repository) FullName

func (repo *Repository) FullName() string

FullName returns the repository full name

func (*Repository) GetBaseRepo

func (repo *Repository) GetBaseRepo(ctx context.Context) (err error)

GetBaseRepo populates repo.BaseRepo for a fork repository and returns an error on failure (NOTE: no error is returned for non-fork repositories, and BaseRepo will be left untouched)

func (*Repository) GetCommitsCountCacheKey

func (repo *Repository) GetCommitsCountCacheKey(contextName string, isRef bool) string

GetCommitsCountCacheKey returns cache key used for commits count caching.

func (*Repository) GetOriginalURLHostname

func (repo *Repository) GetOriginalURLHostname() string

GetOriginalURLHostname returns the hostname of a URL or the URL

func (*Repository) GetTrustModel

func (repo *Repository) GetTrustModel() TrustModelType

GetTrustModel will get the TrustModel for the repo or the default trust model

func (*Repository) GetUnit

func (repo *Repository) GetUnit(ctx context.Context, tp unit.Type) (*RepoUnit, error)

GetUnit returns a RepoUnit object

func (*Repository) HTMLURL

func (repo *Repository) HTMLURL() string

HTMLURL returns the repository HTML URL

func (*Repository) HasWiki

func (repo *Repository) HasWiki() bool

HasWiki returns true if repository has wiki.

func (*Repository) IsBeingCreated

func (repo *Repository) IsBeingCreated() bool

IsBeingCreated indicates that repository is being migrated or forked

func (*Repository) IsBeingMigrated

func (repo *Repository) IsBeingMigrated() bool

IsBeingMigrated indicates that repository is being migrated

func (*Repository) IsBroken

func (repo *Repository) IsBroken() bool

IsBroken indicates that repository is broken

func (*Repository) IsDependenciesEnabled

func (repo *Repository) IsDependenciesEnabled(ctx context.Context) bool

IsDependenciesEnabled returns if dependencies are enabled and returns the default setting if not set.

func (*Repository) IsGenerated

func (repo *Repository) IsGenerated() bool

IsGenerated returns whether _this_ repository was generated from a template

func (*Repository) IsOwnedBy

func (repo *Repository) IsOwnedBy(userID int64) bool

IsOwnedBy returns true when user owns this repository

func (*Repository) IsTimetrackerEnabled

func (repo *Repository) IsTimetrackerEnabled(ctx context.Context) bool

IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs.

func (repo *Repository) Link() string

Link returns the repository relative url

func (*Repository) LoadAttributes added in v1.17.0

func (repo *Repository) LoadAttributes(ctx context.Context) error

LoadAttributes loads attributes of the repository.

func (*Repository) LoadOwner added in v1.19.0

func (repo *Repository) LoadOwner(ctx context.Context) (err error)

LoadOwner loads owner user

func (*Repository) LoadUnits

func (repo *Repository) LoadUnits(ctx context.Context) (err error)

LoadUnits loads repo units into repo.Units

func (*Repository) MustGetUnit

func (repo *Repository) MustGetUnit(ctx context.Context, tp unit.Type) *RepoUnit

MustGetUnit always returns a RepoUnit object

func (*Repository) MustOwner

func (repo *Repository) MustOwner(ctx context.Context) *user_model.User

MustOwner always returns a valid *user_model.User object to avoid conceptually impossible error handling. It creates a fake object that contains error details when error occurs.

func (repo *Repository) RelAvatarLink() string

RelAvatarLink returns a relative link to the repository's avatar.

func (*Repository) RepoPath

func (repo *Repository) RepoPath() string

RepoPath returns the repository path

func (*Repository) SanitizedOriginalURL

func (repo *Repository) SanitizedOriginalURL() string

SanitizedOriginalURL returns a sanitized OriginalURL

func (*Repository) TemplateRepo

func (repo *Repository) TemplateRepo() *Repository

TemplateRepo returns the repository, which is template of this repository

func (*Repository) UnitEnabled

func (repo *Repository) UnitEnabled(ctx context.Context, tp unit.Type) bool

UnitEnabled if this repository has the given unit enabled

func (repo *Repository) WikiCloneLink() *CloneLink

WikiCloneLink returns clone URLs of repository wiki.

func (*Repository) WikiPath

func (repo *Repository) WikiPath() string

WikiPath returns wiki data path for given repository.

type RepositoryList added in v1.17.0

type RepositoryList []*Repository

RepositoryList contains a list of repositories

func GetUserRepositories added in v1.17.0

func GetUserRepositories(opts *SearchRepoOptions) (RepositoryList, int64, error)

GetUserRepositories returns a list of repositories of given user.

func RepositoryListOfMap added in v1.17.0

func RepositoryListOfMap(repoMap map[int64]*Repository) RepositoryList

RepositoryListOfMap make list from values of map

func SearchRepository added in v1.17.0

func SearchRepository(ctx context.Context, opts *SearchRepoOptions) (RepositoryList, int64, error)

SearchRepository returns repositories based on search options, it returns results in given range and number of total results.

func SearchRepositoryByCondition added in v1.17.0

func SearchRepositoryByCondition(ctx context.Context, opts *SearchRepoOptions, cond builder.Cond, loadAttributes bool) (RepositoryList, int64, error)

SearchRepositoryByCondition search repositories by condition

func SearchRepositoryByName added in v1.17.0

func SearchRepositoryByName(ctx context.Context, opts *SearchRepoOptions) (RepositoryList, int64, error)

SearchRepositoryByName takes keyword and part of repository name to search, it returns results in given range and number of total results.

func (RepositoryList) Len added in v1.17.0

func (repos RepositoryList) Len() int

func (RepositoryList) Less added in v1.17.0

func (repos RepositoryList) Less(i, j int) bool

func (RepositoryList) LoadAttributes added in v1.17.0

func (repos RepositoryList) LoadAttributes() error

LoadAttributes loads the attributes for the given RepositoryList

func (RepositoryList) Swap added in v1.17.0

func (repos RepositoryList) Swap(i, j int)

type RepositoryStatus

type RepositoryStatus int

RepositoryStatus defines the status of repository

const (
	RepositoryReady           RepositoryStatus = iota // a normal repository
	RepositoryBeingMigrated                           // repository is migrating
	RepositoryPendingTransfer                         // repository pending in ownership transfer state
	RepositoryBroken                                  // repository is in a permanently broken state
)

all kinds of RepositoryStatus

type SearchOrderBy added in v1.17.0

type SearchOrderBy string

SearchOrderBy is used to sort the result

const (
	SearchOrderByAlphabetically        SearchOrderBy = "name ASC"
	SearchOrderByAlphabeticallyReverse SearchOrderBy = "name DESC"
	SearchOrderByLeastUpdated          SearchOrderBy = "updated_unix ASC"
	SearchOrderByRecentUpdated         SearchOrderBy = "updated_unix DESC"
	SearchOrderByOldest                SearchOrderBy = "created_unix ASC"
	SearchOrderByNewest                SearchOrderBy = "created_unix DESC"
	SearchOrderBySize                  SearchOrderBy = "size ASC"
	SearchOrderBySizeReverse           SearchOrderBy = "size DESC"
	SearchOrderByID                    SearchOrderBy = "id ASC"
	SearchOrderByIDReverse             SearchOrderBy = "id DESC"
	SearchOrderByStars                 SearchOrderBy = "num_stars ASC"
	SearchOrderByStarsReverse          SearchOrderBy = "num_stars DESC"
	SearchOrderByForks                 SearchOrderBy = "num_forks ASC"
	SearchOrderByForksReverse          SearchOrderBy = "num_forks DESC"
)

Strings for sorting result

func (SearchOrderBy) String added in v1.17.0

func (s SearchOrderBy) String() string

type SearchRepoOptions added in v1.17.0

type SearchRepoOptions struct {
	db.ListOptions
	Actor           *user_model.User
	Keyword         string
	OwnerID         int64
	PriorityOwnerID int64
	TeamID          int64
	OrderBy         db.SearchOrderBy
	Private         bool // Include private repositories in results
	StarredByID     int64
	WatchedByID     int64
	AllPublic       bool // Include also all public repositories of users and public organisations
	AllLimited      bool // Include also all public repositories of limited organisations
	// None -> include public and private
	// True -> include just private
	// False -> include just public
	IsPrivate util.OptionalBool
	// None -> include collaborative AND non-collaborative
	// True -> include just collaborative
	// False -> include just non-collaborative
	Collaborate util.OptionalBool
	// None -> include forks AND non-forks
	// True -> include just forks
	// False -> include just non-forks
	Fork util.OptionalBool
	// None -> include templates AND non-templates
	// True -> include just templates
	// False -> include just non-templates
	Template util.OptionalBool
	// None -> include mirrors AND non-mirrors
	// True -> include just mirrors
	// False -> include just non-mirrors
	Mirror util.OptionalBool
	// None -> include archived AND non-archived
	// True -> include just archived
	// False -> include just non-archived
	Archived util.OptionalBool
	// only search topic name
	TopicOnly bool
	// only search repositories with specified primary language
	Language string
	// include description in keyword search
	IncludeDescription bool
	// None -> include has milestones AND has no milestone
	// True -> include just has milestones
	// False -> include just has no milestone
	HasMilestones util.OptionalBool
	// LowerNames represents valid lower names to restrict to
	LowerNames []string
	// When specified true, apply some filters over the conditions:
	// - Don't show forks, when opts.Fork is OptionalBoolNone.
	// - Do not display repositories that don't have a description, an icon and topics.
	OnlyShowRelevant bool
}

SearchRepoOptions holds the search options

type Star

type Star struct {
	ID          int64              `xorm:"pk autoincr"`
	UID         int64              `xorm:"UNIQUE(s)"`
	RepoID      int64              `xorm:"UNIQUE(s)"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
}

Star represents a starred repo by an user.

type Topic

type Topic struct {
	ID          int64  `xorm:"pk autoincr"`
	Name        string `xorm:"UNIQUE VARCHAR(50)"`
	RepoCount   int
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

Topic represents a topic of repositories

func AddTopic

func AddTopic(repoID int64, topicName string) (*Topic, error)

AddTopic adds a topic name to a repository (if it does not already have it)

func DeleteTopic

func DeleteTopic(repoID int64, topicName string) (*Topic, error)

DeleteTopic removes a topic name from a repository (if it has it)

func FindTopics

func FindTopics(opts *FindTopicOptions) ([]*Topic, int64, error)

FindTopics retrieves the topics via FindTopicOptions

func GetRepoTopicByName

func GetRepoTopicByName(ctx context.Context, repoID int64, topicName string) (*Topic, error)

GetRepoTopicByName retrieves topic from name for a repo if it exist

func GetTopicByName

func GetTopicByName(name string) (*Topic, error)

GetTopicByName retrieves topic by name

type TrustModelType

type TrustModelType int

TrustModelType defines the types of trust model for this repository

const (
	DefaultTrustModel TrustModelType = iota // default trust model
	CommitterTrustModel
	CollaboratorTrustModel
	CollaboratorCommitterTrustModel
)

kinds of TrustModel

func ToTrustModel

func ToTrustModel(model string) TrustModelType

ToTrustModel converts a string to a TrustModelType

func (TrustModelType) String

func (t TrustModelType) String() string

String converts a TrustModelType to a string

type UnitConfig

type UnitConfig struct{}

UnitConfig describes common unit config

func (*UnitConfig) FromDB

func (cfg *UnitConfig) FromDB(bs []byte) error

FromDB fills up a UnitConfig from serialized format.

func (*UnitConfig) ToDB

func (cfg *UnitConfig) ToDB() ([]byte, error)

ToDB exports a UnitConfig to a serialized format.

type Upload added in v1.17.4

type Upload struct {
	ID   int64  `xorm:"pk autoincr"`
	UUID string `xorm:"uuid UNIQUE"`
	Name string
}

Upload represent a uploaded file to a repo to be deleted when moved

func GetUploadByUUID added in v1.17.4

func GetUploadByUUID(uuid string) (*Upload, error)

GetUploadByUUID returns the Upload by UUID

func GetUploadsByUUIDs added in v1.17.4

func GetUploadsByUUIDs(uuids []string) ([]*Upload, error)

GetUploadsByUUIDs returns multiple uploads by UUIDS

func NewUpload added in v1.17.4

func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err error)

NewUpload creates a new upload object.

func (*Upload) LocalPath added in v1.17.4

func (upload *Upload) LocalPath() string

LocalPath returns where uploads are temporarily stored in local file system.

type Watch

type Watch struct {
	ID          int64              `xorm:"pk autoincr"`
	UserID      int64              `xorm:"UNIQUE(watch)"`
	RepoID      int64              `xorm:"UNIQUE(watch)"`
	Mode        WatchMode          `xorm:"SMALLINT NOT NULL DEFAULT 1"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

Watch is connection request for receiving repository notification.

func GetWatch

func GetWatch(ctx context.Context, userID, repoID int64) (Watch, error)

GetWatch gets what kind of subscription a user has on a given repository; returns dummy record if none found

func GetWatchers

func GetWatchers(ctx context.Context, repoID int64) ([]*Watch, error)

GetWatchers returns all watchers of given repository.

type WatchMode

type WatchMode int8

WatchMode specifies what kind of watch the user has on a repository

const (
	// WatchModeNone don't watch
	WatchModeNone WatchMode = iota // 0
	// WatchModeNormal watch repository (from other sources)
	WatchModeNormal // 1
	// WatchModeDont explicit don't auto-watch
	WatchModeDont // 2
	// WatchModeAuto watch repository (from AutoWatchOnChanges)
	WatchModeAuto // 3
)

Jump to

Keyboard shortcuts

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