models

package
v1.6.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2018 License: MIT Imports: 97 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const (
	FilterModeAll = iota
	FilterModeAssign
	FilterModeCreate
	FilterModeMention
)

Filter modes.

View Source
const (
	// LFSMetaFileIdentifier is the string appearing at the first line of LFS pointer files.
	// https://github.com/git-lfs/git-lfs/blob/master/docs/spec.md
	LFSMetaFileIdentifier = "version https://git-lfs.github.com/spec/v1"

	// LFSMetaFileOidPrefix appears in LFS pointer files on a line before the sha256 hash.
	LFSMetaFileOidPrefix = "oid sha256:"
)
View Source
const (
	SMTPPlain = "PLAIN"
	SMTPLogin = "LOGIN"
)

SMTP authentication type names.

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

Strings for sorting result

View Source
const (
	// KeyTypeUser specifies the user key
	KeyTypeUser = iota + 1
	// KeyTypeDeploy specifies the deploy key
	KeyTypeDeploy
)
View Source
const (
	EnvRepoName     = "GITEA_REPO_NAME"
	EnvRepoUsername = "GITEA_REPO_USER_NAME"
	EnvRepoIsWiki   = "GITEA_REPO_IS_WIKI"
	EnvPusherName   = "GITEA_PUSHER_NAME"
	EnvPusherEmail  = "GITEA_PUSHER_EMAIL"
	EnvPusherID     = "GITEA_PUSHER_ID"
)

env keys for git hooks need

View Source
const (
	HookStatusNone = iota
	HookStatusSucceed
	HookStatusFail
)

Possible statuses of a web hook

View Source
const NonexistentID = int64(math.MaxInt64)

NonexistentID an ID that will never exist

View Source
const (
	// ProtectedBranchRepoID protected Repo ID
	ProtectedBranchRepoID = "GITEA_REPO_ID"
)
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 (

	// HasEngine specifies if we have a xorm.Engine
	HasEngine bool

	// DbCfg holds the database settings
	DbCfg struct {
		Type, Host, Name, User, Passwd, Path, SSLMode string
		Timeout                                       int
	}

	// EnableSQLite3 use SQLite3
	EnableSQLite3 bool

	// EnableTiDB enable TiDB
	EnableTiDB bool
)
View Source
var (
	// ErrMirrorNotExist mirror does not exist error
	ErrMirrorNotExist = errors.New("Mirror does not exist")

	// ErrNameEmpty name is empty error
	ErrNameEmpty = errors.New("Name is empty")
)
View Source
var (
	// Gitignores contains the gitiginore files
	Gitignores []string

	// Licenses contains the license files
	Licenses []string

	// Readmes contains the readme files
	Readmes []string

	// LabelTemplates contains the label template files
	LabelTemplates []string

	// ItemsPerPage maximum items per page in forks, watchers and stars of a repo
	ItemsPerPage = 40
)
View Source
var (
	UnitCode = Unit{
		UnitTypeCode,
		"repo.code",
		"/",
		"repo.code.desc",
		0,
	}

	UnitIssues = Unit{
		UnitTypeIssues,
		"repo.issues",
		"/issues",
		"repo.issues.desc",
		1,
	}

	UnitExternalTracker = Unit{
		UnitTypeExternalTracker,
		"repo.ext_issues",
		"/issues",
		"repo.ext_issues.desc",
		1,
	}

	UnitPullRequests = Unit{
		UnitTypePullRequests,
		"repo.pulls",
		"/pulls",
		"repo.pulls.desc",
		2,
	}

	UnitReleases = Unit{
		UnitTypeReleases,
		"repo.releases",
		"/releases",
		"repo.releases.desc",
		3,
	}

	UnitWiki = Unit{
		UnitTypeWiki,
		"repo.wiki",
		"/wiki",
		"repo.wiki.desc",
		4,
	}

	UnitExternalWiki = Unit{
		UnitTypeExternalWiki,
		"repo.ext_wiki",
		"/wiki",
		"repo.ext_wiki.desc",
		4,
	}

	// Units contains all the units
	Units = map[UnitType]Unit{
		UnitTypeCode:            UnitCode,
		UnitTypeIssues:          UnitIssues,
		UnitTypeExternalTracker: UnitExternalTracker,
		UnitTypePullRequests:    UnitPullRequests,
		UnitTypeReleases:        UnitReleases,
		UnitTypeWiki:            UnitWiki,
		UnitTypeExternalWiki:    UnitExternalWiki,
	}
)

Enumerate all the units

View Source
var (
	// ErrUserNotKeyOwner user does not own this key error
	ErrUserNotKeyOwner = errors.New("User does not own this public key")

	// ErrEmailNotExist e-mail does not exist error
	ErrEmailNotExist = errors.New("E-mail does not exist")

	// ErrEmailNotActivated e-mail address has not been activated error
	ErrEmailNotActivated = errors.New("E-mail address has not been activated")

	// ErrUserNameIllegal user name contains illegal characters error
	ErrUserNameIllegal = errors.New("User name contains illegal characters")

	// ErrLoginSourceNotActived login source is not actived error
	ErrLoginSourceNotActived = errors.New("Login source is not actived")

	// ErrUnsupportedLoginType login source is unknown error
	ErrUnsupportedLoginType = errors.New("Login source is unknown")
)
View Source
var (
	// ErrEmailAddressNotExist email address not exist
	ErrEmailAddressNotExist = errors.New("Email address does not exist")
)
View Source
var (
	// ErrLFSObjectNotExist is returned from lfs models functions in order
	// to differentiate between database and missing object errors.
	ErrLFSObjectNotExist = errors.New("LFS Meta object does not exist")
)
View Source
var (
	// ErrOpenIDNotExist openid is not known
	ErrOpenIDNotExist = errors.New("OpenID is unknown")
)
View Source
var (
	// ErrTeamNotExist team does not exist
	ErrTeamNotExist = errors.New("Team does not exist")
)
View Source
var (
	// ErrUnitNotExist organization does not exist
	ErrUnitNotExist = errors.New("Unit does not exist")
)
View Source
var HookQueue = sync.NewUniqueQueue(setting.Webhook.QueueLength)

HookQueue is a global queue of web hooks

View Source
var LoginNames = map[LoginType]string{
	LoginLDAP:   "LDAP (via BindDN)",
	LoginDLDAP:  "LDAP (simple auth)",
	LoginSMTP:   "SMTP",
	LoginPAM:    "PAM",
	LoginOAuth2: "OAuth2",
}

LoginNames contains the name of LoginType values.

View Source
var MirrorQueue = sync.NewUniqueQueue(setting.Repository.MirrorQueueLength)

MirrorQueue holds an UniqueQueue object of the mirror

View Source
var (

	// MustRepoUnits contains the units could not be disabled currently
	MustRepoUnits = []UnitType{
		UnitTypeCode,
		UnitTypeReleases,
	}
)
View Source
var OAuth2DefaultCustomURLMappings = map[string]*oauth2.CustomURLMapping{
	"github": OAuth2Providers["github"].CustomURLMapping,
	"gitlab": OAuth2Providers["gitlab"].CustomURLMapping,
}

OAuth2DefaultCustomURLMappings contains the map of default URL's for OAuth2 providers that are allowed to have custom urls key is used to map the OAuth2Provider value is the mapping as defined for the OAuth2Provider

View Source
var OAuth2Providers = map[string]OAuth2Provider{
	"bitbucket": {Name: "bitbucket", DisplayName: "Bitbucket", Image: "/img/auth/bitbucket.png"},
	"dropbox":   {Name: "dropbox", DisplayName: "Dropbox", Image: "/img/auth/dropbox.png"},
	"facebook":  {Name: "facebook", DisplayName: "Facebook", Image: "/img/auth/facebook.png"},
	"github": {Name: "github", DisplayName: "GitHub", Image: "/img/auth/github.png",
		CustomURLMapping: &oauth2.CustomURLMapping{
			TokenURL:   oauth2.GetDefaultTokenURL("github"),
			AuthURL:    oauth2.GetDefaultAuthURL("github"),
			ProfileURL: oauth2.GetDefaultProfileURL("github"),
			EmailURL:   oauth2.GetDefaultEmailURL("github"),
		},
	},
	"gitlab": {Name: "gitlab", DisplayName: "GitLab", Image: "/img/auth/gitlab.png",
		CustomURLMapping: &oauth2.CustomURLMapping{
			TokenURL:   oauth2.GetDefaultTokenURL("gitlab"),
			AuthURL:    oauth2.GetDefaultAuthURL("gitlab"),
			ProfileURL: oauth2.GetDefaultProfileURL("gitlab"),
		},
	},
	"gplus":         {Name: "gplus", DisplayName: "Google+", Image: "/img/auth/google_plus.png"},
	"openidConnect": {Name: "openidConnect", DisplayName: "OpenID Connect", Image: "/img/auth/openid_connect.png"},
	"twitter":       {Name: "twitter", DisplayName: "Twitter", Image: "/img/auth/twitter.png"},
}

OAuth2Providers contains the map of registered OAuth2 providers in Gitea (based on goth) key is used to map the OAuth2Provider with the goth provider type (also in LoginSource.OAuth2Config.Provider) value is used to store display data

View Source
var SMTPAuths = []string{SMTPPlain, SMTPLogin}

SMTPAuths contains available SMTP authentication type names.

View Source
var SecurityProtocolNames = map[ldap.SecurityProtocol]string{
	ldap.SecurityProtocolUnencrypted: "Unencrypted",
	ldap.SecurityProtocolLDAPS:       "LDAPS",
	ldap.SecurityProtocolStartTLS:    "StartTLS",
}

SecurityProtocolNames contains the name of SecurityProtocol values.

Functions

func AddAssigneeIfNotAssigned added in v1.5.0

func AddAssigneeIfNotAssigned(issue *Issue, doer *User, assigneeID int64) (err error)

AddAssigneeIfNotAssigned adds an assignee only if he isn't aleady assigned to the issue

func AddDeletePRBranchComment added in v1.1.0

func AddDeletePRBranchComment(doer *User, repo *Repository, issueID int64, branchName string) error

AddDeletePRBranchComment adds delete branch comment for pull request issue

func AddEmailAddress

func AddEmailAddress(email *EmailAddress) error

AddEmailAddress adds an email address to given user.

func AddEmailAddresses

func AddEmailAddresses(emails []*EmailAddress) error

AddEmailAddresses adds an email address to given user.

func AddOrgUser

func AddOrgUser(orgID, uid int64) error

AddOrgUser adds new user to given organization.

func AddTeamMember

func AddTeamMember(team *Team, userID int64) error

AddTeamMember adds new membership of given team to given organization, the user will have membership to given organization automatically when needed.

func AddTestPullRequestTask

func AddTestPullRequestTask(doer *User, repoID int64, branch string, isSync bool)

AddTestPullRequestTask adds new test tasks by given head/base repository and head/base branch, and generate new patch for testing as needed.

func AddUserOpenID added in v1.2.0

func AddUserOpenID(openid *UserOpenID) error

AddUserOpenID adds an pre-verified/normalized OpenID URI to given user.

func AssertCount added in v1.2.0

func AssertCount(t testing.TB, bean interface{}, expected interface{})

AssertCount assert the count of a bean

func AssertExistsAndLoadBean added in v1.2.0

func AssertExistsAndLoadBean(t testing.TB, bean interface{}, conditions ...interface{}) interface{}

AssertExistsAndLoadBean assert that a bean exists and load it from the test database

func AssertExistsIf added in v1.4.0

func AssertExistsIf(t *testing.T, expected bool, bean interface{}, conditions ...interface{})

AssertExistsIf asserts that a bean exists or does not exist, depending on what is expected.

func AssertInt64InRange added in v1.2.0

func AssertInt64InRange(t testing.TB, low, high, value int64)

AssertInt64InRange assert value is in range [low, high]

func AssertNotExistsBean added in v1.2.0

func AssertNotExistsBean(t testing.TB, bean interface{}, conditions ...interface{})

AssertNotExistsBean assert that a bean does not exist in the test database

func AssertSuccessfulInsert added in v1.2.0

func AssertSuccessfulInsert(t testing.TB, beans ...interface{})

AssertSuccessfulInsert assert that beans is successfully inserted

func AttachmentLocalPath

func AttachmentLocalPath(uuid string) string

AttachmentLocalPath returns where attachment is stored in local file system based on given UUID.

func BeanExists added in v1.2.0

func BeanExists(t testing.TB, bean interface{}, conditions ...interface{}) bool

BeanExists for testing, check if a bean exists

func CancelStopwatch added in v1.3.0

func CancelStopwatch(user *User, issue *Issue) error

CancelStopwatch removes the given stopwatch and logs it into issue's timeline.

func Cell2Int64

func Cell2Int64(val xorm.Cell) int64

Cell2Int64 converts a xorm.Cell type to int64, and handles possible irregular cases.

func ChangeMilestoneAssign

func ChangeMilestoneAssign(issue *Issue, doer *User, oldMilestoneID int64) (err error)

ChangeMilestoneAssign changes assignment of milestone for issue.

func ChangeMilestoneStatus

func ChangeMilestoneStatus(m *Milestone, isClosed bool) (err error)

ChangeMilestoneStatus changes the milestone open/closed status.

func ChangeOrgUserStatus

func ChangeOrgUserStatus(orgID, uid int64, public bool) error

ChangeOrgUserStatus changes public or private membership status.

func ChangeRepositoryName

func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)

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

func ChangeUserName

func ChangeUserName(u *User, newUserName string) (err error)

ChangeUserName changes all corresponding setting from old user name to new one.

func ChangeUsernameInPullRequests

func ChangeUsernameInPullRequests(oldUserName, newUserName string) error

ChangeUsernameInPullRequests changes the name of head_user_name

func CheckConsistencyFor added in v1.2.0

func CheckConsistencyFor(t *testing.T, beansToCheck ...interface{})

CheckConsistencyFor test that all matching database entries are consistent

func CheckConsistencyForAll added in v1.2.0

func CheckConsistencyForAll(t *testing.T)

CheckConsistencyForAll test that the entire database is consistent

func CheckLFSAccessForRepo added in v1.4.0

func CheckLFSAccessForRepo(u *User, repo *Repository, mode AccessMode) error

CheckLFSAccessForRepo check needed access mode base on action

func CheckPublicKeyString

func CheckPublicKeyString(content string) (_ string, err error)

CheckPublicKeyString checks if the given public key string is recognized by SSH. It returns the actual public key line on success.

func CheckRepoStats

func CheckRepoStats()

CheckRepoStats checks the repository stats

func CommentHashTag added in v1.5.0

func CommentHashTag(id int64) string

CommentHashTag returns unique hash tag for comment id.

func CommitRepoAction

func CommitRepoAction(opts CommitRepoActionOptions) error

CommitRepoAction adds new commit action to the repository, and prepare corresponding webhooks.

func ComposeHTTPSCloneURL

func ComposeHTTPSCloneURL(owner, repo string) string

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

func Cond added in v1.2.0

func Cond(query interface{}, args ...interface{}) interface{}

Cond create a condition with arguments for a test

func CountIssuesByRepo added in v1.2.0

func CountIssuesByRepo(opts *IssuesOptions) (map[int64]int64, error)

CountIssuesByRepo map from repoID to number of issues matching the options

func CountLoginSources

func CountLoginSources() int64

CountLoginSources returns number of login sources.

func CountNotices

func CountNotices() int64

CountNotices returns number of notices.

func CountOrganizations

func CountOrganizations() int64

CountOrganizations returns number of organizations.

func CountRepoClosedMilestones

func CountRepoClosedMilestones(repoID int64) (int64, error)

CountRepoClosedMilestones returns number of closed milestones in given repository.

func CountRepositories

func CountRepositories(private bool) int64

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

func CountUserRepositories

func CountUserRepositories(userID int64, private bool) int64

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

func CountUsers

func CountUsers() int64

CountUsers returns number of users.

func CreateHookTask

func CreateHookTask(t *HookTask) error

CreateHookTask creates a new hook task, it handles conversion from Payload to PayloadContent.

func CreateIssueDependency added in v1.6.0

func CreateIssueDependency(user *User, issue, dep *Issue) error

CreateIssueDependency creates a new dependency for an issue

func CreateLoginSource

func CreateLoginSource(source *LoginSource) error

CreateLoginSource inserts a LoginSource in the DB if not already existing with the given name.

func CreateNotice

func CreateNotice(tp NoticeType, desc string) error

CreateNotice creates new system notice.

func CreateOrStopIssueStopwatch added in v1.3.0

func CreateOrStopIssueStopwatch(user *User, issue *Issue) error

CreateOrStopIssueStopwatch will create or remove a stopwatch and will log it into issue's timeline.

func CreateOrUpdateIssueNotifications added in v1.1.0

func CreateOrUpdateIssueNotifications(issue *Issue, notificationAuthorID int64) error

CreateOrUpdateIssueNotifications creates an issue notification for each watcher, or updates it if already exists

func CreateOrUpdateIssueWatch added in v1.2.0

func CreateOrUpdateIssueWatch(userID, issueID int64, isWatching bool) error

CreateOrUpdateIssueWatch set watching for a user and issue

func CreateOrganization

func CreateOrganization(org, owner *User) (err error)

CreateOrganization creates record of a new organization.

func CreateRefComment

func CreateRefComment(doer *User, repo *Repository, issue *Issue, content, commitSHA string) error

CreateRefComment creates a commit reference comment to issue.

func CreateRelease

func CreateRelease(gitRepo *git.Repository, rel *Release, attachmentUUIDs []string) error

CreateRelease creates a new release of repository.

func CreateRepositoryNotice

func CreateRepositoryNotice(desc string) error

CreateRepositoryNotice creates new system notice with type NoticeRepository.

func CreateUser

func CreateUser(u *User) (err error)

CreateUser creates record of a new user.

func CreateWebhook

func CreateWebhook(w *Webhook) error

CreateWebhook creates a new web hook.

func CutDiffAroundLine added in v1.6.0

func CutDiffAroundLine(originalDiff io.Reader, line int64, old bool, numbersOfLine int) string

CutDiffAroundLine cuts a diff of a file in way that only the given line + numberOfLine above it will be shown it also recalculates hunks and adds the appropriate headers to the new diff. Warning: Only one-file diffs are allowed.

Example
const diff = `diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
 # gitea-github-migrator
+
+ Build Status
- Latest Release
 Docker Pulls
+ cut off
+ cut off`
result := CutDiffAroundLine(strings.NewReader(diff), 4, false, 3)
println(result)
Output:

func DeleteAccessTokenByID

func DeleteAccessTokenByID(id, userID int64) error

DeleteAccessTokenByID deletes access token by given ID.

func DeleteAttachment

func DeleteAttachment(a *Attachment, remove bool) error

DeleteAttachment deletes the given attachment and optionally the associated file.

func DeleteAttachments

func DeleteAttachments(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 DeleteComment added in v1.1.0

func DeleteComment(doer *User, comment *Comment) error

DeleteComment deletes the comment

func DeleteCommentReaction added in v1.4.0

func DeleteCommentReaction(doer *User, issue *Issue, comment *Comment, content string) error

DeleteCommentReaction deletes a reaction on comment.

func DeleteDeployKey

func DeleteDeployKey(doer *User, id int64) error

DeleteDeployKey deletes deploy key from its repository authorized_keys file if needed.

func DeleteEmailAddress

func DeleteEmailAddress(email *EmailAddress) (err error)

DeleteEmailAddress deletes an email address of given user.

func DeleteEmailAddresses

func DeleteEmailAddresses(emails []*EmailAddress) (err error)

DeleteEmailAddresses deletes multiple email addresses

func DeleteGPGKey added in v1.2.0

func DeleteGPGKey(doer *User, id int64) (err error)

DeleteGPGKey deletes GPG key information in database.

func DeleteInactivateUsers

func DeleteInactivateUsers() (err error)

DeleteInactivateUsers deletes all inactivate users and email addresses.

func DeleteIssueLabel

func DeleteIssueLabel(issue *Issue, label *Label, doer *User) (err error)

DeleteIssueLabel deletes issue-label relation.

func DeleteIssueReaction added in v1.4.0

func DeleteIssueReaction(doer *User, issue *Issue, content string) error

DeleteIssueReaction deletes a reaction on issue.

func DeleteLabel

func DeleteLabel(repoID, labelID int64) error

DeleteLabel delete a label of given repository.

func DeleteMilestoneByRepoID

func DeleteMilestoneByRepoID(repoID, id int64) error

DeleteMilestoneByRepoID deletes a milestone from a repository.

func DeleteMirrorByRepoID

func DeleteMirrorByRepoID(repoID int64) error

DeleteMirrorByRepoID deletes a mirror by repoID

func DeleteMissingRepositories

func DeleteMissingRepositories(doer *User) error

DeleteMissingRepositories deletes all repository records that lost Git files.

func DeleteNotPassedAssignee added in v1.5.0

func DeleteNotPassedAssignee(issue *Issue, doer *User, assignees []*User) (err error)

DeleteNotPassedAssignee deletes all assignees who aren't passed via the "assignees" array

func DeleteNotice

func DeleteNotice(id int64) error

DeleteNotice deletes a system notice by given ID.

func DeleteNotices

func DeleteNotices(start, end int64) error

DeleteNotices deletes all notices with ID from start to end (inclusive).

func DeleteNoticesByIDs

func DeleteNoticesByIDs(ids []int64) error

DeleteNoticesByIDs deletes notices by given IDs.

func DeleteOldRepositoryArchives added in v1.1.0

func DeleteOldRepositoryArchives()

DeleteOldRepositoryArchives deletes old repository archives.

func DeleteOrganization

func DeleteOrganization(org *User) (err error)

DeleteOrganization completely and permanently deletes everything of organization.

func DeletePublicKey

func DeletePublicKey(doer *User, id int64) (err error)

DeletePublicKey deletes SSH key information both in database and authorized_keys file.

func DeleteReaction added in v1.4.0

func DeleteReaction(opts *ReactionOptions) error

DeleteReaction deletes reaction for issue or comment.

func DeleteRegistration added in v1.5.0

func DeleteRegistration(reg *U2FRegistration) error

DeleteRegistration will delete U2FRegistration

func DeleteReleaseByID

func DeleteReleaseByID(id int64, u *User, delTag bool) error

DeleteReleaseByID deletes a release and corresponding Git tag by given ID.

func DeleteRepoFromIndexer added in v1.3.0

func DeleteRepoFromIndexer(repo *Repository)

DeleteRepoFromIndexer remove all of a repository's entries from the indexer

func DeleteRepository

func DeleteRepository(doer *User, uid, repoID int64) error

DeleteRepository deletes a repository for a user or organization.

func DeleteRepositoryArchives

func DeleteRepositoryArchives() error

DeleteRepositoryArchives deletes all repositories' archives.

func DeleteSource

func DeleteSource(source *LoginSource) error

DeleteSource deletes a LoginSource record in DB.

func DeleteTeam

func DeleteTeam(t *Team) error

DeleteTeam deletes given team. It's caller's responsibility to assign organization ID.

func DeleteTwoFactorByID added in v1.1.0

func DeleteTwoFactorByID(id, userID int64) error

DeleteTwoFactorByID deletes two-factor authentication token by given ID.

func DeleteUpload

func DeleteUpload(u *Upload) error

DeleteUpload delete a upload

func DeleteUploadByUUID

func DeleteUploadByUUID(uuid string) error

DeleteUploadByUUID deletes a upload by UUID

func DeleteUploads

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

DeleteUploads deletes multiple uploads

func DeleteUser

func DeleteUser(u *User) (err error)

DeleteUser completely and permanently deletes everything of a user, but issues/comments/pulls will be kept and shown as someone has been deleted.

func DeleteUserOpenID added in v1.2.0

func DeleteUserOpenID(openid *UserOpenID) (err error)

DeleteUserOpenID deletes an openid address of given user.

func DeleteWebhookByOrgID

func DeleteWebhookByOrgID(orgID, id int64) error

DeleteWebhookByOrgID deletes webhook of organization by given ID.

func DeleteWebhookByRepoID

func DeleteWebhookByRepoID(repoID, id int64) error

DeleteWebhookByRepoID deletes webhook of repository by given ID.

func DeliverHooks

func DeliverHooks()

DeliverHooks checks and delivers undelivered hooks. TODO: shoot more hooks at same time.

func DumpDatabase

func DumpDatabase(filePath string, dbType string) error

DumpDatabase dumps all data from database according the special database SQL syntax to file system.

func FindUserAccessibleRepoIDs added in v1.5.0

func FindUserAccessibleRepoIDs(userID int64) ([]int64, error)

FindUserAccessibleRepoIDs find all accessible repositories' ID by user's id

func FollowUser

func FollowUser(userID, followID int64) (err error)

FollowUser marks someone be another's follower.

func GetActiveOAuth2Providers added in v1.1.0

func GetActiveOAuth2Providers() ([]string, map[string]OAuth2Provider, error)

GetActiveOAuth2Providers returns the map of configured active OAuth2 providers key is used as technical name (like in the callbackURL) values to display

func GetCount added in v1.2.0

func GetCount(t testing.TB, bean interface{}, conditions ...interface{}) int

GetCount get the count of a bean

func GetExternalLogin added in v1.1.0

func GetExternalLogin(externalLoginUser *ExternalLoginUser) (bool, error)

GetExternalLogin checks if a externalID in loginSourceID scope already exists

func GetLabelTemplateFile

func GetLabelTemplateFile(name string) ([][3]string, error)

GetLabelTemplateFile loads the label template file by given name, then parses and returns a list of name-color pairs and optionally description.

func GetNotificationCount added in v1.1.0

func GetNotificationCount(user *User, status NotificationStatus) (int64, error)

GetNotificationCount returns the notification count for user

func GetPrivateRepositoryCount added in v1.1.0

func GetPrivateRepositoryCount(u *User) (int64, error)

GetPrivateRepositoryCount returns the total number of private repositories of user.

func GetPublicRepositoryCount added in v1.1.0

func GetPublicRepositoryCount(u *User) (int64, error)

GetPublicRepositoryCount returns the total number of public repositories of user.

func GetRawDiff

func GetRawDiff(repoPath, commitID string, diffType RawDiffType, writer io.Writer) error

GetRawDiff dumps diff results of repository in given commit ID to io.Writer. TODO: move this function to gogits/git-module

func GetRawDiffForFile added in v1.6.0

func GetRawDiffForFile(repoPath, startCommit, endCommit string, diffType RawDiffType, file string, writer io.Writer) error

GetRawDiffForFile dumps diff results of file in given commit ID to io.Writer. TODO: move this function to gogits/git-module

func GetReleaseAttachments added in v1.1.0

func GetReleaseAttachments(rels ...*Release) (err error)

GetReleaseAttachments retrieves the attachments for releases

func GetReleaseCountByRepoID added in v1.2.0

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

GetReleaseCountByRepoID returns the count of releases of repository

func GetRepoIssueStats

func GetRepoIssueStats(repoID, uid int64, filterMode int, isPull bool) (numOpen int64, numClosed int64)

GetRepoIssueStats returns number of open and closed repository issues by given filter mode.

func GetRepositoriesMapByIDs added in v1.5.0

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

GetRepositoriesMapByIDs returns the repositories by given id slice.

func GetRepositoryCount

func GetRepositoryCount(u *User) (int64, error)

GetRepositoryCount returns the total number of repositories of user.

func GetUser added in v1.1.0

func GetUser(user *User) (bool, error)

GetUser checks if a user already exists

func GetUserEmailsByNames

func GetUserEmailsByNames(names []string) []string

GetUserEmailsByNames returns a list of e-mails corresponds to names.

func GetUserIDsByNames

func GetUserIDsByNames(names []string) []int64

GetUserIDsByNames returns a slice of ids corresponds to names.

func GetUserSalt

func GetUserSalt() (string, error)

GetUserSalt returns a random user salt token.

func GitConfigPath added in v1.3.1

func GitConfigPath(repoPath string) string

GitConfigPath returns the path to a repository's git config/ directory

func GitFsck

func GitFsck()

GitFsck calls 'git fsck' to check repository health.

func GitGcRepos

func GitGcRepos() error

GitGcRepos calls 'git gc' to remove unnecessary files and optimize the local repository

func HasAccess

func HasAccess(userID int64, repo *Repository, testMode AccessMode) (bool, error)

HasAccess returns true if user has access to repo

func HasDeployKey

func HasDeployKey(keyID, repoID int64) bool

HasDeployKey returns true if public key is a deploy key of given repository.

func HasIssueLabel

func HasIssueLabel(issueID, labelID int64) bool

HasIssueLabel returns true if issue has been labeled.

func HasTeamRepo

func HasTeamRepo(orgID, teamID, repoID int64) bool

HasTeamRepo returns true if given repository belongs to team.

func InitDeliverHooks

func InitDeliverHooks()

InitDeliverHooks starts the hooks delivery thread

func InitFixtures added in v1.2.0

func InitFixtures(helper testfixtures.Helper, dir string) (err error)

InitFixtures initialize test fixtures for a test database

func InitIssueIndexer added in v1.1.0

func InitIssueIndexer()

InitIssueIndexer initialize issue indexer

func InitMailRender

func InitMailRender(tmpls *template.Template)

InitMailRender initializes the macaron mail renderer

func InitOAuth2 added in v1.1.0

func InitOAuth2() error

InitOAuth2 initialize the OAuth2 lib and register all active OAuth2 providers in the library

func InitRepoIndexer added in v1.3.0

func InitRepoIndexer()

InitRepoIndexer initialize the repo indexer

func InitSyncMirrors

func InitSyncMirrors()

InitSyncMirrors initializes a go routine to sync the mirrors

func InitTestPullRequests

func InitTestPullRequests()

InitTestPullRequests runs the task to test all the checking status pull requests

func IsEmailUsed

func IsEmailUsed(email string) (bool, error)

IsEmailUsed returns true if the email has been used.

func IsErrAccessTokenEmpty

func IsErrAccessTokenEmpty(err error) bool

IsErrAccessTokenEmpty checks if an error is a ErrAccessTokenEmpty.

func IsErrAccessTokenNotExist

func IsErrAccessTokenNotExist(err error) bool

IsErrAccessTokenNotExist checks if an error is a ErrAccessTokenNotExist.

func IsErrAttachmentNotExist

func IsErrAttachmentNotExist(err error) bool

IsErrAttachmentNotExist checks if an error is a ErrAttachmentNotExist.

func IsErrBranchAlreadyExists added in v1.3.0

func IsErrBranchAlreadyExists(err error) bool

IsErrBranchAlreadyExists checks if an error is an ErrBranchAlreadyExists.

func IsErrBranchNameConflict added in v1.3.0

func IsErrBranchNameConflict(err error) bool

IsErrBranchNameConflict checks if an error is an ErrBranchNameConflict.

func IsErrBranchNotExist

func IsErrBranchNotExist(err error) bool

IsErrBranchNotExist checks if an error is a ErrBranchNotExist.

func IsErrCircularDependency added in v1.6.0

func IsErrCircularDependency(err error) bool

IsErrCircularDependency checks if an error is a ErrCircularDependency.

func IsErrCommentNotExist

func IsErrCommentNotExist(err error) bool

IsErrCommentNotExist checks if an error is a ErrCommentNotExist.

func IsErrDependenciesLeft added in v1.6.0

func IsErrDependenciesLeft(err error) bool

IsErrDependenciesLeft checks if an error is a ErrDependenciesLeft.

func IsErrDependencyExists added in v1.6.0

func IsErrDependencyExists(err error) bool

IsErrDependencyExists checks if an error is a ErrDependencyExists.

func IsErrDependencyNotExists added in v1.6.0

func IsErrDependencyNotExists(err error) bool

IsErrDependencyNotExists checks if an error is a ErrDependencyExists.

func IsErrDeployKeyAlreadyExist

func IsErrDeployKeyAlreadyExist(err error) bool

IsErrDeployKeyAlreadyExist checks if an error is a ErrDeployKeyAlreadyExist.

func IsErrDeployKeyNameAlreadyUsed

func IsErrDeployKeyNameAlreadyUsed(err error) bool

IsErrDeployKeyNameAlreadyUsed checks if an error is a ErrDeployKeyNameAlreadyUsed.

func IsErrDeployKeyNotExist

func IsErrDeployKeyNotExist(err error) bool

IsErrDeployKeyNotExist checks if an error is a ErrDeployKeyNotExist.

func IsErrEmailAlreadyUsed

func IsErrEmailAlreadyUsed(err error) bool

IsErrEmailAlreadyUsed checks if an error is a ErrEmailAlreadyUsed.

func IsErrExternalLoginUserAlreadyExist added in v1.1.0

func IsErrExternalLoginUserAlreadyExist(err error) bool

IsErrExternalLoginUserAlreadyExist checks if an error is a ExternalLoginUserAlreadyExist.

func IsErrExternalLoginUserNotExist added in v1.1.0

func IsErrExternalLoginUserNotExist(err error) bool

IsErrExternalLoginUserNotExist checks if an error is a ExternalLoginUserNotExist.

func IsErrGPGKeyAccessDenied added in v1.2.0

func IsErrGPGKeyAccessDenied(err error) bool

IsErrGPGKeyAccessDenied checks if an error is a ErrGPGKeyAccessDenied.

func IsErrGPGKeyIDAlreadyUsed added in v1.2.0

func IsErrGPGKeyIDAlreadyUsed(err error) bool

IsErrGPGKeyIDAlreadyUsed checks if an error is a ErrKeyNameAlreadyUsed.

func IsErrGPGKeyNotExist added in v1.2.0

func IsErrGPGKeyNotExist(err error) bool

IsErrGPGKeyNotExist checks if an error is a ErrGPGKeyNotExist.

func IsErrGPGKeyParsing added in v1.2.0

func IsErrGPGKeyParsing(err error) bool

IsErrGPGKeyParsing checks if an error is a ErrGPGKeyParsing.

func IsErrGPGNoEmailFound added in v1.2.3

func IsErrGPGNoEmailFound(err error) bool

IsErrGPGNoEmailFound checks if an error is a ErrGPGNoEmailFound.

func IsErrInvalidCloneAddr

func IsErrInvalidCloneAddr(err error) bool

IsErrInvalidCloneAddr checks if an error is a ErrInvalidCloneAddr.

func IsErrInvalidMergeStyle added in v1.4.0

func IsErrInvalidMergeStyle(err error) bool

IsErrInvalidMergeStyle checks if an error is a ErrInvalidMergeStyle.

func IsErrInvalidTagName

func IsErrInvalidTagName(err error) bool

IsErrInvalidTagName checks if an error is a ErrInvalidTagName.

func IsErrIssueNotExist

func IsErrIssueNotExist(err error) bool

IsErrIssueNotExist checks if an error is a ErrIssueNotExist.

func IsErrKeyAccessDenied

func IsErrKeyAccessDenied(err error) bool

IsErrKeyAccessDenied checks if an error is a ErrKeyAccessDenied.

func IsErrKeyAlreadyExist

func IsErrKeyAlreadyExist(err error) bool

IsErrKeyAlreadyExist checks if an error is a ErrKeyAlreadyExist.

func IsErrKeyNameAlreadyUsed

func IsErrKeyNameAlreadyUsed(err error) bool

IsErrKeyNameAlreadyUsed checks if an error is a ErrKeyNameAlreadyUsed.

func IsErrKeyNotExist

func IsErrKeyNotExist(err error) bool

IsErrKeyNotExist checks if an error is a ErrKeyNotExist.

func IsErrKeyUnableVerify

func IsErrKeyUnableVerify(err error) bool

IsErrKeyUnableVerify checks if an error is a ErrKeyUnableVerify.

func IsErrLFSLockAlreadyExist added in v1.4.0

func IsErrLFSLockAlreadyExist(err error) bool

IsErrLFSLockAlreadyExist checks if an error is a ErrLFSLockAlreadyExist.

func IsErrLFSLockNotExist added in v1.4.0

func IsErrLFSLockNotExist(err error) bool

IsErrLFSLockNotExist checks if an error is a ErrLFSLockNotExist.

func IsErrLFSUnauthorizedAction added in v1.4.0

func IsErrLFSUnauthorizedAction(err error) bool

IsErrLFSUnauthorizedAction checks if an error is a ErrLFSUnauthorizedAction.

func IsErrLabelNotExist

func IsErrLabelNotExist(err error) bool

IsErrLabelNotExist checks if an error is a ErrLabelNotExist.

func IsErrLastOrgOwner

func IsErrLastOrgOwner(err error) bool

IsErrLastOrgOwner checks if an error is a ErrLastOrgOwner.

func IsErrLoginSourceAlreadyExist

func IsErrLoginSourceAlreadyExist(err error) bool

IsErrLoginSourceAlreadyExist checks if an error is a ErrLoginSourceAlreadyExist.

func IsErrLoginSourceInUse

func IsErrLoginSourceInUse(err error) bool

IsErrLoginSourceInUse checks if an error is a ErrLoginSourceInUse.

func IsErrLoginSourceNotExist

func IsErrLoginSourceNotExist(err error) bool

IsErrLoginSourceNotExist checks if an error is a ErrLoginSourceNotExist.

func IsErrMilestoneNotExist

func IsErrMilestoneNotExist(err error) bool

IsErrMilestoneNotExist checks if an error is a ErrMilestoneNotExist.

func IsErrNamePatternNotAllowed

func IsErrNamePatternNotAllowed(err error) bool

IsErrNamePatternNotAllowed checks if an error is an ErrNamePatternNotAllowed.

func IsErrNameReserved

func IsErrNameReserved(err error) bool

IsErrNameReserved checks if an error is a ErrNameReserved.

func IsErrNotAllowedToMerge added in v1.5.0

func IsErrNotAllowedToMerge(err error) bool

IsErrNotAllowedToMerge checks if an error is an ErrNotAllowedToMerge.

func IsErrOpenIDAlreadyUsed added in v1.2.0

func IsErrOpenIDAlreadyUsed(err error) bool

IsErrOpenIDAlreadyUsed checks if an error is a ErrOpenIDAlreadyUsed.

func IsErrOpenIDConnectInitialize added in v1.2.0

func IsErrOpenIDConnectInitialize(err error) bool

IsErrOpenIDConnectInitialize checks if an error is a ExternalLoginUserAlreadyExist.

func IsErrOrgNotExist added in v1.2.0

func IsErrOrgNotExist(err error) bool

IsErrOrgNotExist checks if an error is a ErrOrgNotExist.

func IsErrPullRequestAlreadyExists added in v1.0.0

func IsErrPullRequestAlreadyExists(err error) bool

IsErrPullRequestAlreadyExists checks if an error is a ErrPullRequestAlreadyExists.

func IsErrPullRequestNotExist

func IsErrPullRequestNotExist(err error) bool

IsErrPullRequestNotExist checks if an error is a ErrPullRequestNotExist.

func IsErrReachLimitOfRepo

func IsErrReachLimitOfRepo(err error) bool

IsErrReachLimitOfRepo checks if an error is a ErrReachLimitOfRepo.

func IsErrReleaseAlreadyExist

func IsErrReleaseAlreadyExist(err error) bool

IsErrReleaseAlreadyExist checks if an error is a ErrReleaseAlreadyExist.

func IsErrReleaseNotExist

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 IsErrRepoFileAlreadyExist

func IsErrRepoFileAlreadyExist(err error) bool

IsErrRepoFileAlreadyExist checks if an error is a ErrRepoFileAlreadyExist.

func IsErrRepoNotExist

func IsErrRepoNotExist(err error) bool

IsErrRepoNotExist checks if an error is a ErrRepoNotExist.

func IsErrRepoRedirectNotExist added in v1.1.0

func IsErrRepoRedirectNotExist(err error) bool

IsErrRepoRedirectNotExist check if an error is an ErrRepoRedirectNotExist

func IsErrReviewNotExist added in v1.6.0

func IsErrReviewNotExist(err error) bool

IsErrReviewNotExist checks if an error is a ErrReviewNotExist.

func IsErrSSHDisabled added in v1.4.0

func IsErrSSHDisabled(err error) bool

IsErrSSHDisabled checks if an error is a ErrSSHDisabled.

func IsErrStopwatchNotExist added in v1.3.0

func IsErrStopwatchNotExist(err error) bool

IsErrStopwatchNotExist checks if an error is a ErrStopwatchNotExist.

func IsErrTagAlreadyExists added in v1.3.0

func IsErrTagAlreadyExists(err error) bool

IsErrTagAlreadyExists checks if an error is an ErrTagAlreadyExists.

func IsErrTeamAlreadyExist

func IsErrTeamAlreadyExist(err error) bool

IsErrTeamAlreadyExist checks if an error is a ErrTeamAlreadyExist.

func IsErrTopicNotExist added in v1.5.0

func IsErrTopicNotExist(err error) bool

IsErrTopicNotExist checks if an error is an ErrTopicNotExist.

func IsErrTrackedTimeNotExist added in v1.3.0

func IsErrTrackedTimeNotExist(err error) bool

IsErrTrackedTimeNotExist checks if an error is a ErrTrackedTimeNotExist.

func IsErrTwoFactorNotEnrolled added in v1.1.0

func IsErrTwoFactorNotEnrolled(err error) bool

IsErrTwoFactorNotEnrolled checks if an error is a ErrTwoFactorNotEnrolled.

func IsErrU2FRegistrationNotExist added in v1.5.0

func IsErrU2FRegistrationNotExist(err error) bool

IsErrU2FRegistrationNotExist checks if an error is a ErrU2FRegistrationNotExist.

func IsErrUnknownDependencyType added in v1.6.0

func IsErrUnknownDependencyType(err error) bool

IsErrUnknownDependencyType checks if an error is ErrUnknownDependencyType

func IsErrUpdateTaskNotExist

func IsErrUpdateTaskNotExist(err error) bool

IsErrUpdateTaskNotExist checks if an error is a ErrUpdateTaskNotExist.

func IsErrUploadNotExist

func IsErrUploadNotExist(err error) bool

IsErrUploadNotExist checks if an error is a ErrUploadNotExist.

func IsErrUserAlreadyExist

func IsErrUserAlreadyExist(err error) bool

IsErrUserAlreadyExist checks if an error is a ErrUserAlreadyExists.

func IsErrUserDoesNotHaveAccessToRepo added in v1.5.0

func IsErrUserDoesNotHaveAccessToRepo(err error) bool

IsErrUserDoesNotHaveAccessToRepo checks if an error is a ErrRepoFileAlreadyExist.

func IsErrUserHasOrgs

func IsErrUserHasOrgs(err error) bool

IsErrUserHasOrgs checks if an error is a ErrUserHasOrgs.

func IsErrUserNotAllowedCreateOrg added in v1.1.0

func IsErrUserNotAllowedCreateOrg(err error) bool

IsErrUserNotAllowedCreateOrg checks if an error is an ErrUserNotAllowedCreateOrg.

func IsErrUserNotExist

func IsErrUserNotExist(err error) bool

IsErrUserNotExist checks if an error is a ErrUserNotExist.

func IsErrUserOwnRepos

func IsErrUserOwnRepos(err error) bool

IsErrUserOwnRepos checks if an error is a ErrUserOwnRepos.

func IsErrWebhookNotExist

func IsErrWebhookNotExist(err error) bool

IsErrWebhookNotExist checks if an error is a ErrWebhookNotExist.

func IsErrWikiAlreadyExist

func IsErrWikiAlreadyExist(err error) bool

IsErrWikiAlreadyExist checks if an error is an ErrWikiAlreadyExist.

func IsErrWikiInvalidFileName added in v1.4.0

func IsErrWikiInvalidFileName(err error) bool

IsErrWikiInvalidFileName checks if an error is an ErrWikiInvalidFileName.

func IsErrWikiReservedName added in v1.4.0

func IsErrWikiReservedName(err error) bool

IsErrWikiReservedName checks if an error is an ErrWikiReservedName.

func IsFollowing

func IsFollowing(userID, followID int64) bool

IsFollowing returns true if user is following followID.

func IsOpenIDUsed added in v1.2.0

func IsOpenIDUsed(openid string) (bool, error)

IsOpenIDUsed returns true if the openid has been used.

func IsOrganizationMember

func IsOrganizationMember(orgID, uid int64) (bool, error)

IsOrganizationMember returns true if given user is member of organization.

func IsOrganizationOwner

func IsOrganizationOwner(orgID, uid int64) (bool, error)

IsOrganizationOwner returns true if given user is in the owner team.

func IsPublicMembership

func IsPublicMembership(orgID, uid int64) (bool, error)

IsPublicMembership returns true if given user public his/her membership.

func IsReleaseExist

func IsReleaseExist(repoID int64, tagName string) (bool, error)

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

func IsRepositoryExist

func IsRepositoryExist(u *User, repoName string) (bool, error)

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

func IsStaring

func IsStaring(userID, repoID int64) bool

IsStaring checks if user has starred given repository.

func IsTeamMember

func IsTeamMember(orgID, teamID, userID int64) (bool, error)

IsTeamMember returns true if given user is a member of team.

func IsUsableRepoName

func IsUsableRepoName(name string) error

IsUsableRepoName returns true when repository is usable

func IsUsableTeamName added in v1.0.0

func IsUsableTeamName(name string) error

IsUsableTeamName tests if a name could be as team name

func IsUsableUsername

func IsUsableUsername(name string) error

IsUsableUsername returns an error when a username is reserved

func IsUserAssignedToIssue added in v1.5.0

func IsUserAssignedToIssue(issue *Issue, user *User) (isAssigned bool, err error)

IsUserAssignedToIssue returns true when the user is assigned to the issue

func IsUserExist

func IsUserExist(uid int64, name string) (bool, error)

IsUserExist checks if given user name exist, the user name should be noncased unique. If uid is presented, then check will rule out that one, it is used when update a user name in settings page.

func IsUserInTeams added in v1.3.0

func IsUserInTeams(userID int64, teamIDs []int64) (bool, error)

IsUserInTeams returns if a user in some teams

func IsValidHookContentType

func IsValidHookContentType(name string) bool

IsValidHookContentType returns true if given name is a valid hook content type.

func IsValidHookTaskType

func IsValidHookTaskType(name string) bool

IsValidHookTaskType returns true if given name is a valid hook task type.

func IsWatching

func IsWatching(userID, repoID int64) bool

IsWatching checks if user has watched given repository.

func IssueNoDependenciesLeft added in v1.6.0

func IssueNoDependenciesLeft(issue *Issue) (bool, error)

IssueNoDependenciesLeft checks if issue can be closed

func LinkAccountToUser added in v1.1.0

func LinkAccountToUser(user *User, gothUser goth.User) error

LinkAccountToUser link the gothUser to the user

func LoadConfigs

func LoadConfigs()

LoadConfigs loads the database settings

func LoadFixtures added in v1.2.0

func LoadFixtures() error

LoadFixtures load fixtures for a test database

func LoadRepoConfig

func LoadRepoConfig()

LoadRepoConfig loads the repository config

func LocalCopyPath added in v1.4.0

func LocalCopyPath() string

LocalCopyPath returns the local repository copy path.

func LocalWikiPath added in v1.4.0

func LocalWikiPath() string

LocalWikiPath returns the local wiki repository copy path.

func LookupRepoRedirect added in v1.1.0

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

LookupRepoRedirect look up if a repository has a redirect name

func MainTest added in v1.4.0

func MainTest(m *testing.M, pathToGiteaRoot string)

MainTest a reusable TestMain(..) function for unit tests that need to use a test database. Creates the test database, and sets necessary settings.

func MakeAssigneeList added in v1.5.0

func MakeAssigneeList(issue *Issue) (assigneeList string, err error)

MakeAssigneeList concats a string with all names of the assignees. Useful for logs.

func MakeEmailPrimary

func MakeEmailPrimary(email *EmailAddress) error

MakeEmailPrimary sets primary email address of given user.

func MakeIDsFromAPIAssigneesToAdd added in v1.5.0

func MakeIDsFromAPIAssigneesToAdd(oneAssignee string, multipleAssignees []string) (assigneeIDs []int64, err error)

MakeIDsFromAPIAssigneesToAdd returns an array with all assignee IDs

func MergePullRequestAction

func MergePullRequestAction(actUser *User, repo *Repository, pull *Issue) error

MergePullRequestAction adds new action for merging pull request.

func MilestoneStats

func MilestoneStats(repoID int64) (open int64, closed int64, err error)

MilestoneStats returns number of open and closed milestones of given repository.

func MirrorSyncCreateAction added in v1.6.0

func MirrorSyncCreateAction(repo *Repository, refName string) error

MirrorSyncCreateAction adds new action for mirror synchronization of new reference.

func MirrorSyncDeleteAction added in v1.6.0

func MirrorSyncDeleteAction(repo *Repository, refName string) error

MirrorSyncDeleteAction adds new action for mirror synchronization of delete reference.

func MirrorSyncPushAction added in v1.6.0

func MirrorSyncPushAction(repo *Repository, opts MirrorSyncPushActionOptions) error

MirrorSyncPushAction adds new action for mirror synchronization of pushed commits.

func MirrorUpdate

func MirrorUpdate()

MirrorUpdate checks and updates mirror repositories.

func NewAccessToken

func NewAccessToken(t *AccessToken) error

NewAccessToken creates new access token.

func NewCommitStatus added in v1.2.0

func NewCommitStatus(repo *Repository, creator *User, sha string, status *CommitStatus) error

NewCommitStatus creates a new CommitStatus given a bunch of parameters NOTE: All text-values will be trimmed from whitespaces. Requires: Repo, Creator, SHA

func NewEngine

func NewEngine(migrateFunc func(*xorm.Engine) error) (err error)

NewEngine initializes a new xorm.Engine

func NewIssue

func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, assigneeIDs []int64, uuids []string) (err error)

NewIssue creates new issue with labels for repository.

func NewIssueLabel

func NewIssueLabel(issue *Issue, label *Label, doer *User) (err error)

NewIssueLabel creates a new issue-label relation.

func NewIssueLabels

func NewIssueLabels(issue *Issue, labels []*Label, doer *User) (err error)

NewIssueLabels creates a list of issue-label relations.

func NewLabel added in v1.2.0

func NewLabel(label *Label) error

NewLabel creates a new label for a repository

func NewLabels

func NewLabels(labels ...*Label) error

NewLabels creates new labels for a repository.

func NewMilestone

func NewMilestone(m *Milestone) (err error)

NewMilestone creates new milestone of repository.

func NewPullRequest

func NewPullRequest(repo *Repository, pull *Issue, labelIDs []int64, uuids []string, pr *PullRequest, patch []byte, assigneeIDs []int64) (err error)

NewPullRequest creates new pull request with labels for repository.

func NewRepoAction

func NewRepoAction(u *User, repo *Repository) (err error)

NewRepoAction adds new action for creating repository.

func NewRepoContext

func NewRepoContext()

NewRepoContext creates a new repository context

func NewRepoRedirect added in v1.1.0

func NewRepoRedirect(ownerID, repoID int64, oldRepoName, newRepoName string) error

NewRepoRedirect create a new repo redirect

func NewTeam

func NewTeam(t *Team) (err error)

NewTeam creates a record of new team. It's caller's responsibility to assign organization ID.

func NewTestEngine

func NewTestEngine(x *xorm.Engine) (err error)

NewTestEngine sets a new test xorm.Engine

func NewTwoFactor added in v1.1.0

func NewTwoFactor(t *TwoFactor) error

NewTwoFactor creates a new two-factor authentication token.

func NormalizeWikiName added in v1.4.0

func NormalizeWikiName(name string) string

NormalizeWikiName normalizes a wiki name

func NotifyWatchers

func NotifyWatchers(act *Action) error

NotifyWatchers creates batch of actions for every watcher.

func ParseCommitsWithSignature added in v1.2.0

func ParseCommitsWithSignature(oldCommits *list.List) *list.List

ParseCommitsWithSignature checks if signaute of commits are corresponding to users gpg keys.

func ParseCommitsWithStatus added in v1.2.0

func ParseCommitsWithStatus(oldCommits *list.List, repo *Repository) *list.List

ParseCommitsWithStatus checks commits latest statuses and calculates its worst status state

func Ping

func Ping() error

Ping tests if database is alive

func PrepareTestDatabase added in v1.2.0

func PrepareTestDatabase() error

PrepareTestDatabase load test fixtures into test database

func PrepareTestEnv added in v1.4.0

func PrepareTestEnv(t testing.TB)

PrepareTestEnv prepares the environment for unit tests. Can only be called by tests that use the above MainTest(..) function.

func PrepareWebhook added in v1.3.0

func PrepareWebhook(w *Webhook, repo *Repository, event HookEventType, p api.Payloader) error

PrepareWebhook adds special webhook to task queue for given payload.

func PrepareWebhooks

func PrepareWebhooks(repo *Repository, event HookEventType, p api.Payloader) error

PrepareWebhooks adds new webhooks to task queue for given payload.

func PushUpdate

func PushUpdate(branch string, opt PushUpdateOptions) error

PushUpdate must be called for any push actions in order to generates necessary push action history feeds.

func ReinitMissingRepositories

func ReinitMissingRepositories() error

ReinitMissingRepositories reinitializes all repository records that lost Git files.

func RemoveAccountLink(user *User, loginSourceID int64) (int64, error)

RemoveAccountLink will remove all external login sources for the given user

func RemoveAllWithNotice

func RemoveAllWithNotice(title, path string)

RemoveAllWithNotice removes all directories in given path and creates a system notice when error occurs.

func RemoveIssueDependency added in v1.6.0

func RemoveIssueDependency(user *User, issue *Issue, dep *Issue, depType DependencyType) (err error)

RemoveIssueDependency removes a dependency from an issue

func RemoveOldDeletedBranches added in v1.3.0

func RemoveOldDeletedBranches()

RemoveOldDeletedBranches removes old deleted branches

func RemoveOrgUser

func RemoveOrgUser(orgID, userID int64) error

RemoveOrgUser removes user from given organization.

func RemoveTeamMember

func RemoveTeamMember(team *Team, userID int64) error

RemoveTeamMember removes member from given team of given organization.

func RenameRepoAction

func RenameRepoAction(actUser *User, oldRepoName string, repo *Repository) error

RenameRepoAction adds new action for renaming a repository.

func RepoPath

func RepoPath(userName, repoName string) string

RepoPath returns repository path by given user and repository name.

func RewriteAllPublicKeys

func RewriteAllPublicKeys() error

RewriteAllPublicKeys removes any authorized key and rewrite all keys from database again. Note: x.Iterate does not get latest data after insert/delete, so we have to call this function outside any session scope independently.

func SMTPAuth

func SMTPAuth(a smtp.Auth, cfg *SMTPConfig) error

SMTPAuth performs an SMTP authentication.

func SSHKeyGenParsePublicKey

func SSHKeyGenParsePublicKey(key string) (string, int, error)

SSHKeyGenParsePublicKey extracts key type and length using ssh-keygen.

func SSHNativeParsePublicKey

func SSHNativeParsePublicKey(keyLine string) (string, int, error)

SSHNativeParsePublicKey extracts the key type and length using the golang SSH library.

func SaveTopics added in v1.5.0

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

SaveTopics save topics to a repository

func SecToTime added in v1.5.0

func SecToTime(duration int64) string

SecToTime converts an amount of seconds to a human-readable string (example: 66s -> 1min 6s)

func SendActivateAccountMail

func SendActivateAccountMail(c *macaron.Context, u *User)

SendActivateAccountMail sends an activation mail to the user (new user registration)

func SendActivateEmailMail

func SendActivateEmailMail(c *macaron.Context, u *User, email *EmailAddress)

SendActivateEmailMail sends confirmation email to confirm new email address

func SendCollaboratorMail

func SendCollaboratorMail(u, doer *User, repo *Repository)

SendCollaboratorMail sends mail notification to new collaborator.

func SendIssueCommentMail

func SendIssueCommentMail(issue *Issue, doer *User, content string, comment *Comment, tos []string)

SendIssueCommentMail composes and sends issue comment emails to target receivers.

func SendIssueMentionMail

func SendIssueMentionMail(issue *Issue, doer *User, content string, comment *Comment, tos []string)

SendIssueMentionMail composes and sends issue mention emails to target receivers.

func SendRegisterNotifyMail

func SendRegisterNotifyMail(c *macaron.Context, u *User)

SendRegisterNotifyMail triggers a notify e-mail by admin created a account.

func SendResetPasswordMail

func SendResetPasswordMail(c *macaron.Context, u *User)

SendResetPasswordMail sends a password reset mail to the user

func SendTestMail

func SendTestMail(email string) error

SendTestMail sends a test mail

func SendUserMail

func SendUserMail(c *macaron.Context, u *User, tpl base.TplName, code, subject, info string)

SendUserMail sends a mail to the user

func SetEngine

func SetEngine() (err error)

SetEngine sets the xorm.Engine

func SetNotificationStatus added in v1.1.0

func SetNotificationStatus(notificationID int64, user *User, status NotificationStatus) error

SetNotificationStatus change the notification status

func SlackLinkFormatter

func SlackLinkFormatter(url string, text string) string

SlackLinkFormatter creates a link compatible with slack

func SlackLinkToRef added in v1.3.0

func SlackLinkToRef(repoURL, ref string) string

SlackLinkToRef slack-formatter link to a repo ref

func SlackShortTextFormatter

func SlackShortTextFormatter(s string) string

SlackShortTextFormatter replaces &, <, > with HTML characters

func SlackTextFormatter

func SlackTextFormatter(s string) string

SlackTextFormatter replaces &, <, > with HTML characters see: https://api.slack.com/docs/formatting

func SortReleases

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 StopwatchExists added in v1.3.0

func StopwatchExists(userID int64, issueID int64) bool

StopwatchExists returns true if the stopwatch exists

func SyncExternalUsers added in v1.2.0

func SyncExternalUsers()

SyncExternalUsers is used to synchronize users with external authorization source

func SyncMirrors

func SyncMirrors()

SyncMirrors checks and syncs mirrors. TODO: sync more mirrors at same time.

func SyncReleasesWithTags added in v1.2.0

func SyncReleasesWithTags(repo *Repository, gitRepo *git.Repository) error

SyncReleasesWithTags synchronizes release table with repository tags

func SyncRepositoryHooks added in v1.1.0

func SyncRepositoryHooks() error

SyncRepositoryHooks rewrites all repositories' pre-receive, update and post-receive hooks to make sure the binary and custom conf path are up-to-date.

func TestPullRequests

func TestPullRequests()

TestPullRequests checks and tests untested patches of pull requests. TODO: test more pull requests at same time.

func ToggleUserOpenIDVisibility added in v1.2.0

func ToggleUserOpenIDVisibility(id int64) (err error)

ToggleUserOpenIDVisibility toggles visibility of an openid address of given user.

func TotalTimes added in v1.3.0

func TotalTimes(options FindTrackedTimesOptions) (map[*User]string, error)

TotalTimes returns the spent time for each user by an issue

func TransferOwnership

func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error

TransferOwnership transfers all corresponding setting from old user to new one.

func TransferRepoAction

func TransferRepoAction(doer, oldOwner *User, repo *Repository) error

TransferRepoAction adds new action for transferring repository, the Owner field of repository is assumed to be new owner.

func UnfollowUser

func UnfollowUser(userID, followID int64) (err error)

UnfollowUser unmarks someone as another's follower.

func UpdateAPIAssignee added in v1.5.0

func UpdateAPIAssignee(issue *Issue, oneAssignee string, multipleAssignees []string, doer *User) (err error)

UpdateAPIAssignee is a helper function to add or delete one or multiple issue assignee(s) Deleting is done the Github way (quote from their api documentation): https://developer.github.com/v3/issues/#edit-an-issue "assignees" (array): Logins for Users to assign to this issue. Pass one or more user logins to replace the set of assignees on this Issue. Send an empty array ([]) to clear all assignees from the Issue.

func UpdateAccessToken

func UpdateAccessToken(t *AccessToken) error

UpdateAccessToken updates information of access token.

func UpdateAssignee added in v1.5.0

func UpdateAssignee(issue *Issue, doer *User, assigneeID int64) (err error)

UpdateAssignee deletes or adds an assignee to an issue

func UpdateAttachment added in v1.5.0

func UpdateAttachment(atta *Attachment) error

UpdateAttachment updates the given attachment in database

func UpdateComment

func UpdateComment(doer *User, c *Comment, oldContent string) error

UpdateComment updates information of comment.

func UpdateDeployKey

func UpdateDeployKey(key *DeployKey) error

UpdateDeployKey updates deploy key information.

func UpdateDeployKeyCols added in v1.4.0

func UpdateDeployKeyCols(key *DeployKey, cols ...string) error

UpdateDeployKeyCols updates deploy key information in the specified columns.

func UpdateHookTask

func UpdateHookTask(t *HookTask) error

UpdateHookTask updates information of hook task.

func UpdateIssue

func UpdateIssue(issue *Issue) error

UpdateIssue updates all fields of given issue.

func UpdateIssueCols

func UpdateIssueCols(issue *Issue, cols ...string) error

UpdateIssueCols only updates values of specific columns for given issue.

func UpdateIssueDeadline added in v1.5.0

func UpdateIssueDeadline(issue *Issue, deadlineUnix util.TimeStamp, doer *User) (err error)

UpdateIssueDeadline updates an issue deadline and adds comments. Setting a deadline to 0 means deleting it.

func UpdateIssueIndexer added in v1.1.0

func UpdateIssueIndexer(issueID int64)

UpdateIssueIndexer add/update an issue to the issue indexer

func UpdateIssueIndexerCols added in v1.4.0

func UpdateIssueIndexerCols(issueID int64, cols ...string)

UpdateIssueIndexerCols update an issue in the issue indexer, given changes to the specified columns

func UpdateIssueMentions

func UpdateIssueMentions(e Engine, issueID int64, mentions []string) error

UpdateIssueMentions extracts mentioned people from content and updates issue-user relations for them.

func UpdateIssueUserByRead

func UpdateIssueUserByRead(uid, issueID int64) error

UpdateIssueUserByRead updates issue-user relation for reading.

func UpdateIssueUsersByMentions

func UpdateIssueUsersByMentions(e Engine, issueID int64, uids []int64) error

UpdateIssueUsersByMentions updates issue-user pairs by mentioning.

func UpdateIssuesCommit

func UpdateIssuesCommit(doer *User, repo *Repository, commits []*PushCommit) error

UpdateIssuesCommit checks if issues are manipulated by commit message.

func UpdateLabel

func UpdateLabel(l *Label) error

UpdateLabel updates label information.

func UpdateLocalCopyBranch

func UpdateLocalCopyBranch(repoPath, localPath, branch string) error

UpdateLocalCopyBranch pulls latest changes of given branch from repoPath to localPath. It creates a new clone if local copy does not exist. This function checks out target branch by default, it is safe to assume subsequent operations are operating against target branch when caller has confidence for no race condition.

func UpdateMilestone

func UpdateMilestone(m *Milestone) error

UpdateMilestone updates information of given milestone.

func UpdateMirror

func UpdateMirror(m *Mirror) error

UpdateMirror updates the mirror

func UpdateNotificationStatuses added in v1.4.0

func UpdateNotificationStatuses(user *User, currentStatus NotificationStatus, desiredStatus NotificationStatus) error

UpdateNotificationStatuses updates the statuses of all of a user's notifications that are of the currentStatus type to the desiredStatus

func UpdateProtectBranch added in v1.3.0

func UpdateProtectBranch(repo *Repository, protectBranch *ProtectedBranch, whitelistUserIDs, whitelistTeamIDs, mergeWhitelistUserIDs, mergeWhitelistTeamIDs []int64) (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 UpdatePublicKeyUpdated added in v1.2.0

func UpdatePublicKeyUpdated(id int64) error

UpdatePublicKeyUpdated updates public key use time.

func UpdateRelease

func UpdateRelease(doer *User, gitRepo *git.Repository, rel *Release, attachmentUUIDs []string) (err error)

UpdateRelease updates information of a release.

func UpdateRepoIndexer added in v1.3.0

func UpdateRepoIndexer(repo *Repository)

UpdateRepoIndexer update a repository's entries in the indexer

func UpdateRepository

func UpdateRepository(repo *Repository, visibilityChanged bool) (err error)

UpdateRepository updates a repository

func UpdateRepositoryUnits added in v1.1.0

func UpdateRepositoryUnits(repo *Repository, units []RepoUnit) (err error)

UpdateRepositoryUnits updates a repository's units

func UpdateReview added in v1.6.0

func UpdateReview(r *Review) error

UpdateReview will update all cols of the given review in db

func UpdateSource

func UpdateSource(source *LoginSource) error

UpdateSource updates a LoginSource record in DB.

func UpdateTeam

func UpdateTeam(t *Team, authChanged bool) (err error)

UpdateTeam updates information of team.

func UpdateTeamUnits added in v1.5.0

func UpdateTeamUnits(team *Team, units []TeamUnit) (err error)

UpdateTeamUnits updates a teams's units

func UpdateTwoFactor added in v1.1.0

func UpdateTwoFactor(t *TwoFactor) error

UpdateTwoFactor updates a two-factor authentication token.

func UpdateUser

func UpdateUser(u *User) error

UpdateUser updates user's information.

func UpdateUserCols added in v1.2.0

func UpdateUserCols(u *User, cols ...string) error

UpdateUserCols update user according special columns

func UpdateUserSetting added in v1.1.0

func UpdateUserSetting(u *User) error

UpdateUserSetting updates user's settings.

func UpdateWebhook

func UpdateWebhook(w *Webhook) error

UpdateWebhook updates information of webhook.

func UpdateWebhookLastStatus added in v1.3.0

func UpdateWebhookLastStatus(w *Webhook) error

UpdateWebhookLastStatus updates last status of webhook.

func UploadLocalPath

func UploadLocalPath(uuid string) string

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

func UserPath

func UserPath(userName string) string

UserPath returns the path absolute path of user repositories.

func ValidateCommitsWithEmails

func ValidateCommitsWithEmails(oldCommits *list.List) *list.List

ValidateCommitsWithEmails checks if authors' e-mails of commits are corresponding to users.

func ValidateTopic added in v1.5.0

func ValidateTopic(topic string) bool

ValidateTopic checks topics by length and match pattern rules

func WatchRepo

func WatchRepo(userID, repoID int64, watch bool) (err error)

WatchRepo watch or unwatch repository.

func WikiFilenameToName added in v1.4.0

func WikiFilenameToName(filename string) (string, error)

WikiFilenameToName converts a wiki filename to its corresponding page name.

func WikiNameToFilename added in v1.4.0

func WikiNameToFilename(name string) string

WikiNameToFilename converts a wiki name to its corresponding filename.

func WikiNameToSubURL added in v1.4.0

func WikiNameToSubURL(name string) string

WikiNameToSubURL converts a wiki name to its corresponding sub-URL.

func WikiPath

func WikiPath(userName, repoName string) string

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

Types

type Access

type Access struct {
	ID     int64 `xorm:"pk autoincr"`
	UserID int64 `xorm:"UNIQUE(s)"`
	RepoID int64 `xorm:"UNIQUE(s)"`
	Mode   AccessMode
}

Access represents the highest access level of a user to the repository. The only access type that is not in this table is the real owner of a repository. In case of an organization repository, the members of the owners team are in this table.

type AccessMode

type AccessMode int

AccessMode specifies the users access mode

const (
	// AccessModeNone no access
	AccessModeNone AccessMode = iota // 0
	// AccessModeRead read access
	AccessModeRead // 1
	// AccessModeWrite write access
	AccessModeWrite // 2
	// AccessModeAdmin admin access
	AccessModeAdmin // 3
	// AccessModeOwner owner access
	AccessModeOwner // 4
)

func AccessLevel

func AccessLevel(userID int64, repo *Repository) (AccessMode, error)

AccessLevel returns the Access a user has to a repository. Will return NoneAccess if the user does not have access.

func ParseAccessMode

func ParseAccessMode(permission string) AccessMode

ParseAccessMode returns corresponding access mode to given permission string.

func (AccessMode) String

func (mode AccessMode) String() string

type AccessToken

type AccessToken struct {
	ID   int64 `xorm:"pk autoincr"`
	UID  int64 `xorm:"INDEX"`
	Name string
	Sha1 string `xorm:"UNIQUE VARCHAR(40)"`

	CreatedUnix       util.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix       util.TimeStamp `xorm:"INDEX updated"`
	HasRecentActivity bool           `xorm:"-"`
	HasUsed           bool           `xorm:"-"`
}

AccessToken represents a personal access token.

func GetAccessTokenBySHA

func GetAccessTokenBySHA(sha string) (*AccessToken, error)

GetAccessTokenBySHA returns access token by given sha1.

func ListAccessTokens

func ListAccessTokens(uid int64) ([]*AccessToken, error)

ListAccessTokens returns a list of access tokens belongs to given user.

func (*AccessToken) AfterLoad added in v1.3.0

func (t *AccessToken) AfterLoad()

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

type AccessibleReposEnvironment added in v1.1.0

type AccessibleReposEnvironment interface {
	CountRepos() (int64, error)
	RepoIDs(page, pageSize int) ([]int64, error)
	Repos(page, pageSize int) ([]*Repository, error)
	MirrorRepos() ([]*Repository, error)
}

AccessibleReposEnvironment operations involving the repositories that are accessible to a particular user

type Action

type Action struct {
	ID          int64 `xorm:"pk autoincr"`
	UserID      int64 `xorm:"INDEX"` // Receiver user id.
	OpType      ActionType
	ActUserID   int64       `xorm:"INDEX"` // Action user id.
	ActUser     *User       `xorm:"-"`
	RepoID      int64       `xorm:"INDEX"`
	Repo        *Repository `xorm:"-"`
	CommentID   int64       `xorm:"INDEX"`
	Comment     *Comment    `xorm:"-"`
	IsDeleted   bool        `xorm:"INDEX NOT NULL DEFAULT false"`
	RefName     string
	IsPrivate   bool           `xorm:"INDEX NOT NULL DEFAULT false"`
	Content     string         `xorm:"TEXT"`
	CreatedUnix util.TimeStamp `xorm:"INDEX created"`
}

Action represents user operation type and other information to repository. It implemented interface base.Actioner so that can be used in template render.

func GetFeeds

func GetFeeds(opts GetFeedsOptions) ([]*Action, error)

GetFeeds returns actions according to the provided options

func (*Action) GetActAvatar added in v1.2.0

func (a *Action) GetActAvatar() string

GetActAvatar the action's user's avatar link

func (*Action) GetActFullName added in v1.6.0

func (a *Action) GetActFullName() string

GetActFullName gets the action's user full name.

func (*Action) GetActUserName

func (a *Action) GetActUserName() string

GetActUserName gets the action's user name.

func (*Action) GetBranch

func (a *Action) GetBranch() string

GetBranch returns the action's repository branch.

func (a *Action) GetCommentLink() string

GetCommentLink returns link to action comment.

func (*Action) GetContent

func (a *Action) GetContent() string

GetContent returns the action's content.

func (*Action) GetCreate

func (a *Action) GetCreate() time.Time

GetCreate returns the action creation time.

func (*Action) GetIssueContent

func (a *Action) GetIssueContent() string

GetIssueContent returns the content of first issue associated with this action.

func (*Action) GetIssueInfos

func (a *Action) GetIssueInfos() []string

GetIssueInfos returns a list of issues associated with the action.

func (*Action) GetIssueTitle

func (a *Action) GetIssueTitle() string

GetIssueTitle returns the title of first issue associated with the action.

func (*Action) GetOpType

func (a *Action) GetOpType() ActionType

GetOpType gets the ActionType of this action.

func (a *Action) GetRepoLink() string

GetRepoLink returns relative link to action repository.

func (*Action) GetRepoName

func (a *Action) GetRepoName() string

GetRepoName returns the name of the action repository.

func (*Action) GetRepoPath

func (a *Action) GetRepoPath() string

GetRepoPath returns the virtual path to the action repository.

func (*Action) GetRepoUserName

func (a *Action) GetRepoUserName() string

GetRepoUserName returns the name of the action repository owner.

func (*Action) ShortActUserName

func (a *Action) ShortActUserName() string

ShortActUserName gets the action's user name trimmed to max 20 chars.

func (*Action) ShortRepoName

func (a *Action) ShortRepoName() string

ShortRepoName returns the name of the action repository trimmed to max 33 chars.

func (*Action) ShortRepoPath

func (a *Action) ShortRepoPath() string

ShortRepoPath returns the virtual path to the action repository trimmed to max 20 + 1 + 33 chars.

func (*Action) ShortRepoUserName

func (a *Action) ShortRepoUserName() string

ShortRepoUserName returns the name of the action repository owner trimmed to max 20 chars.

type ActionList added in v1.4.0

type ActionList []*Action

ActionList defines a list of actions

func (ActionList) LoadAttributes added in v1.4.0

func (actions ActionList) LoadAttributes() error

LoadAttributes loads attributes of the actions

func (ActionList) LoadRepositories added in v1.4.0

func (actions ActionList) LoadRepositories() ([]*Repository, error)

LoadRepositories loads actions' all repositories

func (ActionList) LoadUsers added in v1.4.0

func (actions ActionList) LoadUsers() ([]*User, error)

LoadUsers loads actions' all users

type ActionType

type ActionType int

ActionType represents the type of an action.

const (
	ActionCreateRepo        ActionType = iota + 1 // 1
	ActionRenameRepo                              // 2
	ActionStarRepo                                // 3
	ActionWatchRepo                               // 4
	ActionCommitRepo                              // 5
	ActionCreateIssue                             // 6
	ActionCreatePullRequest                       // 7
	ActionTransferRepo                            // 8
	ActionPushTag                                 // 9
	ActionCommentIssue                            // 10
	ActionMergePullRequest                        // 11
	ActionCloseIssue                              // 12
	ActionReopenIssue                             // 13
	ActionClosePullRequest                        // 14
	ActionReopenPullRequest                       // 15
	ActionDeleteTag                               // 16
	ActionDeleteBranch                            // 17
	ActionMirrorSyncPush                          // 18
	ActionMirrorSyncCreate                        // 19
	ActionMirrorSyncDelete                        // 20
)

Possible action types.

type ActivityStats added in v1.3.0

type ActivityStats struct {
	OpenedPRs                   PullRequestList
	OpenedPRAuthorCount         int64
	MergedPRs                   PullRequestList
	MergedPRAuthorCount         int64
	OpenedIssues                IssueList
	OpenedIssueAuthorCount      int64
	ClosedIssues                IssueList
	ClosedIssueAuthorCount      int64
	UnresolvedIssues            IssueList
	PublishedReleases           []*Release
	PublishedReleaseAuthorCount int64
}

ActivityStats represets issue and pull request information.

func GetActivityStats added in v1.3.0

func GetActivityStats(repoID int64, timeFrom time.Time, releases, issues, prs bool) (*ActivityStats, error)

GetActivityStats return stats for repository at given time range

func (*ActivityStats) ActiveIssueCount added in v1.3.0

func (stats *ActivityStats) ActiveIssueCount() int

ActiveIssueCount returns total active issue count

func (*ActivityStats) ActivePRCount added in v1.3.0

func (stats *ActivityStats) ActivePRCount() int

ActivePRCount returns total active pull request count

func (*ActivityStats) ClosedIssueCount added in v1.3.0

func (stats *ActivityStats) ClosedIssueCount() int

ClosedIssueCount returns closed issue count

func (*ActivityStats) ClosedIssuePerc added in v1.3.0

func (stats *ActivityStats) ClosedIssuePerc() int

ClosedIssuePerc returns closed issue count percent from total active

func (*ActivityStats) FillIssues added in v1.3.0

func (stats *ActivityStats) FillIssues(repoID int64, fromTime time.Time) error

FillIssues returns issue information for activity page

func (*ActivityStats) FillPullRequests added in v1.3.0

func (stats *ActivityStats) FillPullRequests(repoID int64, fromTime time.Time) error

FillPullRequests returns pull request information for activity page

func (*ActivityStats) FillReleases added in v1.3.0

func (stats *ActivityStats) FillReleases(repoID int64, fromTime time.Time) error

FillReleases returns release information for activity page

func (*ActivityStats) FillUnresolvedIssues added in v1.3.0

func (stats *ActivityStats) FillUnresolvedIssues(repoID int64, fromTime time.Time, issues, prs bool) error

FillUnresolvedIssues returns unresolved issue and pull request information for activity page

func (*ActivityStats) MergedPRCount added in v1.3.0

func (stats *ActivityStats) MergedPRCount() int

MergedPRCount returns merged pull request count

func (*ActivityStats) MergedPRPerc added in v1.3.0

func (stats *ActivityStats) MergedPRPerc() int

MergedPRPerc returns merged pull request percent from total active

func (*ActivityStats) OpenedIssueCount added in v1.3.0

func (stats *ActivityStats) OpenedIssueCount() int

OpenedIssueCount returns open issue count

func (*ActivityStats) OpenedIssuePerc added in v1.3.0

func (stats *ActivityStats) OpenedIssuePerc() int

OpenedIssuePerc returns open issue count percent from total active

func (*ActivityStats) OpenedPRCount added in v1.3.0

func (stats *ActivityStats) OpenedPRCount() int

OpenedPRCount returns opened pull request count

func (*ActivityStats) OpenedPRPerc added in v1.3.0

func (stats *ActivityStats) OpenedPRPerc() int

OpenedPRPerc returns opened pull request percents from total active

func (*ActivityStats) PublishedReleaseCount added in v1.3.0

func (stats *ActivityStats) PublishedReleaseCount() int

PublishedReleaseCount returns published release count

func (*ActivityStats) UnresolvedIssueCount added in v1.3.0

func (stats *ActivityStats) UnresolvedIssueCount() int

UnresolvedIssueCount returns unresolved issue and pull request count

type Attachment

type Attachment struct {
	ID            int64  `xorm:"pk autoincr"`
	UUID          string `xorm:"uuid UNIQUE"`
	IssueID       int64  `xorm:"INDEX"`
	ReleaseID     int64  `xorm:"INDEX"`
	CommentID     int64
	Name          string
	DownloadCount int64          `xorm:"DEFAULT 0"`
	Size          int64          `xorm:"DEFAULT 0"`
	CreatedUnix   util.TimeStamp `xorm:"created"`
}

Attachment represent a attachment of issue/comment/release.

func GetAttachmentByID added in v1.5.0

func GetAttachmentByID(id int64) (*Attachment, error)

GetAttachmentByID returns attachment by given id

func GetAttachmentByUUID

func GetAttachmentByUUID(uuid string) (*Attachment, error)

GetAttachmentByUUID returns attachment by given UUID.

func GetAttachmentsByCommentID

func GetAttachmentsByCommentID(commentID int64) ([]*Attachment, error)

GetAttachmentsByCommentID returns all attachments if comment by given ID.

func GetAttachmentsByIssueID

func GetAttachmentsByIssueID(issueID int64) ([]*Attachment, error)

GetAttachmentsByIssueID returns all attachments of an issue.

func NewAttachment

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

NewAttachment creates a new attachment object.

func (*Attachment) APIFormat added in v1.5.0

func (a *Attachment) APIFormat() *api.Attachment

APIFormat converts models.Attachment to api.Attachment

func (*Attachment) DownloadURL added in v1.5.0

func (a *Attachment) DownloadURL() string

DownloadURL returns the download url of the attached file

func (*Attachment) IncreaseDownloadCount added in v1.2.0

func (a *Attachment) IncreaseDownloadCount() error

IncreaseDownloadCount is update download count + 1

func (*Attachment) LocalPath

func (a *Attachment) LocalPath() string

LocalPath returns where attachment is stored in local file system.

type Branch

type Branch struct {
	Path string
	Name string
}

Branch holds the branch information

func GetBranchesByPath

func GetBranchesByPath(path string) ([]*Branch, error)

GetBranchesByPath returns a branch by it's path

func (*Branch) GetCommit

func (branch *Branch) GetCommit() (*git.Commit, error)

GetCommit returns all the commits of a branch

type CloneLink struct {
	SSH   string
	HTTPS string
	Git   string
}

CloneLink represents different types of clone URLs of repository.

type CodeComments added in v1.6.0

type CodeComments map[string]map[int64][]*Comment

CodeComments represents comments on code by using this structure: FILENAME -> LINE (+ == proposed; - == previous) -> COMMENTS

func FetchCodeComments added in v1.6.0

func FetchCodeComments(issue *Issue, currentUser *User) (CodeComments, error)

FetchCodeComments will return a 2d-map: ["Path"]["Line"] = Comments at line

type Collaboration

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   AccessMode `xorm:"DEFAULT 2 NOT NULL"`
}

Collaboration represent the relation between an individual and a repository.

func (*Collaboration) ModeI18nKey

func (c *Collaboration) ModeI18nKey() string

ModeI18nKey returns the collaboration mode I18n Key

type Collaborator

type Collaborator struct {
	*User
	Collaboration *Collaboration
}

Collaborator represents a user with collaboration details.

type Comment

type Comment struct {
	ID               int64 `xorm:"pk autoincr"`
	Type             CommentType
	PosterID         int64  `xorm:"INDEX"`
	Poster           *User  `xorm:"-"`
	IssueID          int64  `xorm:"INDEX"`
	Issue            *Issue `xorm:"-"`
	LabelID          int64
	Label            *Label `xorm:"-"`
	OldMilestoneID   int64
	MilestoneID      int64
	OldMilestone     *Milestone `xorm:"-"`
	Milestone        *Milestone `xorm:"-"`
	AssigneeID       int64
	RemovedAssignee  bool
	Assignee         *User `xorm:"-"`
	OldTitle         string
	NewTitle         string
	DependentIssueID int64
	DependentIssue   *Issue `xorm:"-"`

	CommitID        int64
	Line            int64 // - previous line / + proposed line
	TreePath        string
	Content         string `xorm:"TEXT"`
	RenderedContent string `xorm:"-"`

	// Path represents the 4 lines of code cemented by this comment
	Patch string `xorm:"TEXT"`

	CreatedUnix util.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`

	// Reference issue in commit message
	CommitSHA string `xorm:"VARCHAR(40)"`

	Attachments []*Attachment `xorm:"-"`
	Reactions   ReactionList  `xorm:"-"`

	// For view issue page.
	ShowTag CommentTag `xorm:"-"`

	Review      *Review `xorm:"-"`
	ReviewID    int64
	Invalidated bool
}

Comment represents a comment in commit and issue page.

func CreateCodeComment added in v1.6.0

func CreateCodeComment(doer *User, repo *Repository, issue *Issue, content, treePath string, line, reviewID int64) (*Comment, error)

CreateCodeComment creates a plain code comment at the specified line / path

func CreateComment

func CreateComment(opts *CreateCommentOptions) (comment *Comment, err error)

CreateComment creates comment of issue or commit.

func CreateIssueComment

func CreateIssueComment(doer *User, repo *Repository, issue *Issue, content string, attachments []string) (*Comment, error)

CreateIssueComment creates a plain issue comment.

func FindComments added in v1.2.0

func FindComments(opts FindCommentsOptions) ([]*Comment, error)

FindComments returns all comments according options

func GetCommentByID

func GetCommentByID(id int64) (*Comment, error)

GetCommentByID returns the comment by given ID.

func GetCommentsByIssueID

func GetCommentsByIssueID(issueID int64) ([]*Comment, error)

GetCommentsByIssueID returns all comments of an issue.

func GetCommentsByIssueIDSince

func GetCommentsByIssueIDSince(issueID, since int64) ([]*Comment, error)

GetCommentsByIssueIDSince returns a list of comments of an issue since a given time point.

func GetCommentsByRepoIDSince added in v1.0.0

func GetCommentsByRepoIDSince(repoID, since int64) ([]*Comment, error)

GetCommentsByRepoIDSince returns a list of comments for all issues in a repo since a given time point.

func (*Comment) APIFormat

func (c *Comment) APIFormat() *api.Comment

APIFormat converts a Comment to the api.Comment format

func (*Comment) AfterDelete

func (c *Comment) AfterDelete()

AfterDelete is invoked from XORM after the object is deleted.

func (*Comment) AfterLoad added in v1.3.0

func (c *Comment) AfterLoad(session *xorm.Session)

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

func (*Comment) AsDiff added in v1.6.0

func (c *Comment) AsDiff() (*Diff, error)

AsDiff returns c.Patch as *Diff

func (*Comment) CheckInvalidation added in v1.6.0

func (c *Comment) CheckInvalidation(repo *git.Repository, doer *User, branch string) error

CheckInvalidation checks if the line of code comment got changed by another commit. If the line got changed the comment is going to be invalidated.

func (*Comment) CodeCommentURL added in v1.6.0

func (c *Comment) CodeCommentURL() string

CodeCommentURL returns the url to a comment in code

func (*Comment) DiffSide added in v1.6.0

func (c *Comment) DiffSide() string

DiffSide returns "previous" if Comment.Line is a LOC of the previous changes and "proposed" if it is a LOC of the proposed changes.

func (*Comment) EventTag

func (c *Comment) EventTag() string

EventTag returns unique event hash tag for comment.

func (*Comment) HTMLURL added in v1.0.0

func (c *Comment) HTMLURL() string

HTMLURL formats a URL-string to the issue-comment

func (*Comment) HashTag

func (c *Comment) HashTag() string

HashTag returns unique hash tag for comment.

func (*Comment) IssueURL added in v1.0.0

func (c *Comment) IssueURL() string

IssueURL formats a URL-string to the issue

func (*Comment) LoadAssigneeUser added in v1.5.0

func (c *Comment) LoadAssigneeUser() error

LoadAssigneeUser if comment.Type is CommentTypeAssignees, then load assignees

func (*Comment) LoadDepIssueDetails added in v1.6.0

func (c *Comment) LoadDepIssueDetails() (err error)

LoadDepIssueDetails loads Dependent Issue Details

func (*Comment) LoadIssue added in v1.5.0

func (c *Comment) LoadIssue() (err error)

LoadIssue loads issue from database

func (*Comment) LoadLabel added in v1.1.0

func (c *Comment) LoadLabel() error

LoadLabel if comment.Type is CommentTypeLabel, then load Label

func (*Comment) LoadMilestone added in v1.1.0

func (c *Comment) LoadMilestone() error

LoadMilestone if comment.Type is CommentTypeMilestone, then load milestone

func (*Comment) LoadReactions added in v1.4.0

func (c *Comment) LoadReactions() error

LoadReactions loads comment reactions

func (*Comment) LoadReview added in v1.6.0

func (c *Comment) LoadReview() error

LoadReview loads the associated review

func (*Comment) MailParticipants

func (c *Comment) MailParticipants(e Engine, opType ActionType, issue *Issue) (err error)

MailParticipants sends new comment emails to repository watchers and mentioned people.

func (*Comment) MustAsDiff added in v1.6.0

func (c *Comment) MustAsDiff() *Diff

MustAsDiff executes AsDiff and logs the error instead of returning

func (*Comment) PRURL added in v1.0.0

func (c *Comment) PRURL() string

PRURL formats a URL-string to the pull-request

func (*Comment) UnsignedLine added in v1.6.0

func (c *Comment) UnsignedLine() uint64

UnsignedLine returns the LOC of the code comment without + or -

type CommentTag

type CommentTag int

CommentTag defines comment tag type

const (
	CommentTagNone CommentTag = iota
	CommentTagPoster
	CommentTagWriter
	CommentTagOwner
)

Enumerate all the comment tag types

type CommentType

type CommentType int

CommentType defines whether a comment is just a simple comment, an action (like close) or a reference.

const (
	// Plain comment, can be associated with a commit (CommitID > 0) and a line (LineNum > 0)
	CommentTypeComment CommentType = iota
	CommentTypeReopen
	CommentTypeClose

	// References.
	CommentTypeIssueRef
	// Reference from a commit (not part of a pull request)
	CommentTypeCommitRef
	// Reference from a comment
	CommentTypeCommentRef
	// Reference from a pull request
	CommentTypePullRef
	// Labels changed
	CommentTypeLabel
	// Milestone changed
	CommentTypeMilestone
	// Assignees changed
	CommentTypeAssignees
	// Change Title
	CommentTypeChangeTitle
	// Delete Branch
	CommentTypeDeleteBranch
	// Start a stopwatch for time tracking
	CommentTypeStartTracking
	// Stop a stopwatch for time tracking
	CommentTypeStopTracking
	// Add time manual for time tracking
	CommentTypeAddTimeManual
	// Cancel a stopwatch for time tracking
	CommentTypeCancelTracking
	// Added a due date
	CommentTypeAddedDeadline
	// Modified the due date
	CommentTypeModifiedDeadline
	// Removed a due date
	CommentTypeRemovedDeadline
	// Dependency added
	CommentTypeAddDependency
	//Dependency removed
	CommentTypeRemoveDependency
	// Comment a line of code
	CommentTypeCode
	// Reviews a pull request by giving general feedback
	CommentTypeReview
)

Enumerate all the comment types

const (
	CommentTypeUnknown CommentType = -1
)

define unknown comment type

type CommitRepoActionOptions

type CommitRepoActionOptions struct {
	PusherName  string
	RepoOwnerID int64
	RepoName    string
	RefFullName string
	OldCommitID string
	NewCommitID string
	Commits     *PushCommits
}

CommitRepoActionOptions represent options of a new commit action.

type CommitStatus added in v1.2.0

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        *Repository       `xorm:"-"`
	State       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"`
	Context     string            `xorm:"TEXT"`
	Creator     *User             `xorm:"-"`
	CreatorID   int64

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

CommitStatus holds a single Status of a single Commit

func CalcCommitStatus added in v1.3.0

func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus

CalcCommitStatus returns commit status state via some status, the commit statues should order by id desc

func GetCommitStatus added in v1.2.0

func GetCommitStatus(repo *Repository, sha string, status *CommitStatus) (*CommitStatus, error)

GetCommitStatus populates a given status for a given commit. NOTE: If ID or Index isn't given, and only Context, TargetURL and/or Description

is given, the CommitStatus created _last_ will be returned.

func GetCommitStatuses added in v1.2.0

func GetCommitStatuses(repo *Repository, sha string, page int) ([]*CommitStatus, error)

GetCommitStatuses returns all statuses for a given commit.

func GetLatestCommitStatus added in v1.2.0

func GetLatestCommitStatus(repo *Repository, sha string, page int) ([]*CommitStatus, error)

GetLatestCommitStatus returns all statuses with a unique context for a given commit.

func (*CommitStatus) APIFormat added in v1.2.0

func (status *CommitStatus) APIFormat() *api.Status

APIFormat assumes some fields assigned with values: Required - Repo, Creator

func (*CommitStatus) APIURL added in v1.2.0

func (status *CommitStatus) APIURL() string

APIURL returns the absolute APIURL to this commit-status.

type CommitStatusState added in v1.2.0

type CommitStatusState string

CommitStatusState holds the state of a Status It can be "pending", "success", "error", "failure", and "warning"

const (
	// CommitStatusPending is for when the Status is Pending
	CommitStatusPending CommitStatusState = "pending"
	// CommitStatusSuccess is for when the Status is Success
	CommitStatusSuccess CommitStatusState = "success"
	// CommitStatusError is for when the Status is Error
	CommitStatusError CommitStatusState = "error"
	// CommitStatusFailure is for when the Status is Failure
	CommitStatusFailure CommitStatusState = "failure"
	// CommitStatusWarning is for when the Status is Warning
	CommitStatusWarning CommitStatusState = "warning"
)

func (CommitStatusState) IsWorseThan added in v1.2.0

func (css CommitStatusState) IsWorseThan(css2 CommitStatusState) bool

IsWorseThan returns true if this State is worse than the given State

type CommitVerification added in v1.2.0

type CommitVerification struct {
	Verified    bool
	Reason      string
	SigningUser *User
	SigningKey  *GPGKey
}

CommitVerification represents a commit validation of signature

func ParseCommitWithSignature added in v1.2.0

func ParseCommitWithSignature(c *git.Commit) *CommitVerification

ParseCommitWithSignature check if signature is good against keystore.

type CreateCommentOptions

type CreateCommentOptions struct {
	Type  CommentType
	Doer  *User
	Repo  *Repository
	Issue *Issue
	Label *Label

	DependentIssueID int64
	OldMilestoneID   int64
	MilestoneID      int64
	AssigneeID       int64
	RemovedAssignee  bool
	OldTitle         string
	NewTitle         string
	CommitID         int64
	CommitSHA        string
	Patch            string
	LineNum          int64
	TreePath         string
	ReviewID         int64
	Content          string
	Attachments      []string // UUIDs of attachments
}

CreateCommentOptions defines options for creating comment

type CreateRepoOptions

type CreateRepoOptions struct {
	Name        string
	Description string
	Gitignores  string
	License     string
	Readme      string
	IsPrivate   bool
	IsMirror    bool
	AutoInit    bool
}

CreateRepoOptions contains the create repository options

type CreateReviewOptions added in v1.6.0

type CreateReviewOptions struct {
	Content  string
	Type     ReviewType
	Issue    *Issue
	Reviewer *User
}

CreateReviewOptions represent the options to create a review. Type, Issue and Reviewer are required.

type DeleteRepoFileOptions

type DeleteRepoFileOptions struct {
	LastCommitID string
	OldBranch    string
	NewBranch    string
	TreePath     string
	Message      string
}

DeleteRepoFileOptions holds the repository delete file options

type DeletedBranch added in v1.3.0

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          `xorm:"-"`
	DeletedUnix util.TimeStamp `xorm:"INDEX created"`
}

DeletedBranch struct

func (*DeletedBranch) LoadUser added in v1.3.0

func (deletedBranch *DeletedBranch) LoadUser()

LoadUser loads the user that deleted the branch When there's no user found it returns a NewGhostUser

type DependencyType added in v1.6.0

type DependencyType int

DependencyType Defines Dependency Type Constants

const (
	DependencyTypeBlockedBy DependencyType = iota
	DependencyTypeBlocking
)

Define Dependency Types

type DeployKey

type DeployKey struct {
	ID          int64 `xorm:"pk autoincr"`
	KeyID       int64 `xorm:"UNIQUE(s) INDEX"`
	RepoID      int64 `xorm:"UNIQUE(s) INDEX"`
	Name        string
	Fingerprint string
	Content     string `xorm:"-"`

	Mode AccessMode `xorm:"NOT NULL DEFAULT 1"`

	CreatedUnix       util.TimeStamp `xorm:"created"`
	UpdatedUnix       util.TimeStamp `xorm:"updated"`
	HasRecentActivity bool           `xorm:"-"`
	HasUsed           bool           `xorm:"-"`
}

DeployKey represents deploy key information and its relation with repository.

func AddDeployKey

func AddDeployKey(repoID int64, name, content string, readOnly bool) (*DeployKey, error)

AddDeployKey add new deploy key to database and authorized_keys file.

func GetDeployKeyByID

func GetDeployKeyByID(id int64) (*DeployKey, error)

GetDeployKeyByID returns deploy key by given ID.

func GetDeployKeyByRepo

func GetDeployKeyByRepo(keyID, repoID int64) (*DeployKey, error)

GetDeployKeyByRepo returns deploy key by given public key ID and repository ID.

func ListDeployKeys

func ListDeployKeys(repoID int64) ([]*DeployKey, error)

ListDeployKeys returns all deploy keys by given repository ID.

func (*DeployKey) AfterLoad added in v1.3.0

func (key *DeployKey) AfterLoad()

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

func (*DeployKey) GetContent

func (key *DeployKey) GetContent() error

GetContent gets associated public key content.

func (*DeployKey) IsReadOnly added in v1.4.0

func (key *DeployKey) IsReadOnly() bool

IsReadOnly checks if the key can only be used for read operations

type Diff

type Diff struct {
	TotalAddition, TotalDeletion int
	Files                        []*DiffFile
	IsIncomplete                 bool
}

Diff represents a difference between two git trees.

func GetDiffCommit

func GetDiffCommit(repoPath, commitID string, maxLines, maxLineCharacters, maxFiles int) (*Diff, error)

GetDiffCommit builds a Diff representing the given commitID.

func GetDiffRange

func GetDiffRange(repoPath, beforeCommitID, afterCommitID string, maxLines, maxLineCharacters, maxFiles int) (*Diff, error)

GetDiffRange builds a Diff between two commits of a repository. passing the empty string as beforeCommitID returns a diff from the parent commit.

func GetDiffRangeWithWhitespaceBehavior added in v1.6.0

func GetDiffRangeWithWhitespaceBehavior(repoPath, beforeCommitID, afterCommitID string, maxLines, maxLineCharacters, maxFiles int, whitespaceBehavior string) (*Diff, error)

GetDiffRangeWithWhitespaceBehavior builds a Diff between two commits of a repository. Passing the empty string as beforeCommitID returns a diff from the parent commit. The whitespaceBehavior is either an empty string or a git flag

func ParsePatch

func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*Diff, error)

ParsePatch builds a Diff object from a io.Reader and some parameters. TODO: move this function to gogits/git-module

func (*Diff) LoadComments added in v1.6.0

func (diff *Diff) LoadComments(issue *Issue, currentUser *User) error

LoadComments loads comments into each line

func (*Diff) NumFiles

func (diff *Diff) NumFiles() int

NumFiles returns number of files changes in a diff.

type DiffFile

type DiffFile struct {
	Name               string
	OldName            string
	Index              int
	Addition, Deletion int
	Type               DiffFileType
	IsCreated          bool
	IsDeleted          bool
	IsBin              bool
	IsLFSFile          bool
	IsRenamed          bool
	IsSubmodule        bool
	Sections           []*DiffSection
	IsIncomplete       bool
}

DiffFile represents a file diff.

func (*DiffFile) GetHighlightClass

func (diffFile *DiffFile) GetHighlightClass() string

GetHighlightClass returns highlight class for a filename.

func (*DiffFile) GetType

func (diffFile *DiffFile) GetType() int

GetType returns type of diff file.

type DiffFileType

type DiffFileType uint8

DiffFileType represents the type of a DiffFile.

const (
	DiffFileAdd DiffFileType = iota + 1
	DiffFileChange
	DiffFileDel
	DiffFileRename
)

DiffFileType possible values.

type DiffLine

type DiffLine struct {
	LeftIdx  int
	RightIdx int
	Type     DiffLineType
	Content  string
	Comments []*Comment
}

DiffLine represents a line difference in a DiffSection.

func (*DiffLine) CanComment added in v1.6.0

func (d *DiffLine) CanComment() bool

CanComment returns whether or not a line can get commented

func (*DiffLine) GetCommentSide added in v1.6.0

func (d *DiffLine) GetCommentSide() string

GetCommentSide returns the comment side of the first comment, if not set returns empty string

func (*DiffLine) GetType

func (d *DiffLine) GetType() int

GetType returns the type of a DiffLine.

type DiffLineType

type DiffLineType uint8

DiffLineType represents the type of a DiffLine.

const (
	DiffLinePlain DiffLineType = iota + 1
	DiffLineAdd
	DiffLineDel
	DiffLineSection
)

DiffLineType possible values.

type DiffSection

type DiffSection struct {
	Name  string
	Lines []*DiffLine
}

DiffSection represents a section of a DiffFile.

func (*DiffSection) GetComputedInlineDiffFor

func (diffSection *DiffSection) GetComputedInlineDiffFor(diffLine *DiffLine) template.HTML

GetComputedInlineDiffFor computes inline diff for the given line.

func (*DiffSection) GetLine

func (diffSection *DiffSection) GetLine(lineType DiffLineType, idx int) *DiffLine

GetLine gets a specific line by type (add or del) and file line number

type DingtalkPayload added in v1.4.0

type DingtalkPayload dingtalk.Payload

DingtalkPayload represents

func GetDingtalkPayload added in v1.4.0

func GetDingtalkPayload(p api.Payloader, event HookEventType, meta string) (*DingtalkPayload, error)

GetDingtalkPayload converts a ding talk webhook into a DingtalkPayload

func (*DingtalkPayload) JSONPayload added in v1.4.0

func (p *DingtalkPayload) JSONPayload() ([]byte, error)

JSONPayload Marshals the DingtalkPayload to json

func (*DingtalkPayload) SetSecret added in v1.4.0

func (p *DingtalkPayload) SetSecret(_ string)

SetSecret sets the dingtalk secret

type DiscordEmbed added in v1.3.0

type DiscordEmbed struct {
	Title       string              `json:"title"`
	Description string              `json:"description"`
	URL         string              `json:"url"`
	Color       int                 `json:"color"`
	Footer      DiscordEmbedFooter  `json:"footer"`
	Author      DiscordEmbedAuthor  `json:"author"`
	Fields      []DiscordEmbedField `json:"fields"`
}

DiscordEmbed is for Embed Structure

type DiscordEmbedAuthor added in v1.3.0

type DiscordEmbedAuthor struct {
	Name    string `json:"name"`
	URL     string `json:"url"`
	IconURL string `json:"icon_url"`
}

DiscordEmbedAuthor for Embed Author Structure

type DiscordEmbedField added in v1.3.0

type DiscordEmbedField struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

DiscordEmbedField for Embed Field Structure

type DiscordEmbedFooter added in v1.3.0

type DiscordEmbedFooter struct {
	Text string `json:"text"`
}

DiscordEmbedFooter for Embed Footer Structure.

type DiscordMeta added in v1.3.0

type DiscordMeta struct {
	Username string `json:"username"`
	IconURL  string `json:"icon_url"`
}

DiscordMeta contains the discord metadata

type DiscordPayload added in v1.3.0

type DiscordPayload struct {
	Wait      bool           `json:"wait"`
	Content   string         `json:"content"`
	Username  string         `json:"username"`
	AvatarURL string         `json:"avatar_url"`
	TTS       bool           `json:"tts"`
	Embeds    []DiscordEmbed `json:"embeds"`
}

DiscordPayload represents

func GetDiscordPayload added in v1.3.0

func GetDiscordPayload(p api.Payloader, event HookEventType, meta string) (*DiscordPayload, error)

GetDiscordPayload converts a discord webhook into a DiscordPayload

func (*DiscordPayload) JSONPayload added in v1.3.0

func (p *DiscordPayload) JSONPayload() ([]byte, error)

JSONPayload Marshals the DiscordPayload to json

func (*DiscordPayload) SetSecret added in v1.3.0

func (p *DiscordPayload) SetSecret(_ string)

SetSecret sets the discord secret

type EmailAddress

type EmailAddress struct {
	ID          int64  `xorm:"pk autoincr"`
	UID         int64  `xorm:"INDEX NOT NULL"`
	Email       string `xorm:"UNIQUE NOT NULL"`
	IsActivated bool
	IsPrimary   bool `xorm:"-"`
}

EmailAddress is the list of all email addresses of a user. Can contain the primary email address, but is not obligatory.

func GetEmailAddresses

func GetEmailAddresses(uid int64) ([]*EmailAddress, error)

GetEmailAddresses returns all email addresses belongs to given user.

func VerifyActiveEmailCode

func VerifyActiveEmailCode(code, email string) *EmailAddress

VerifyActiveEmailCode verifies active email code when active account

func (*EmailAddress) Activate

func (email *EmailAddress) Activate() error

Activate activates the email address to given user.

type Engine