models

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2016 License: MIT Imports: 72 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FilterModeAll = iota
	FilterModeAssign
	FilterModeCreate
	FilterModeMention
)

Filter modes.

View Source
const (
	SMTPPlain = "PLAIN"
	SMTPLogin = "LOGIN"
)

SMTP authentication type names.

View Source
const (
	// KeyTypeUser specifies the user key
	KeyTypeUser = iota + 1
	// KeyTypeDeploy specifies the deploy key
	KeyTypeDeploy
)
View Source
const (
	HookStatusNone = iota
	HookStatusSucceed
	HookStatusFail
)

Possible statuses of a web hook

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
	}

	// EnableSQLite3 use SQLite3
	EnableSQLite3 bool

	// EnableTiDB enable TiDB
	EnableTiDB bool
)
View Source
var (
	// ErrOrgNotExist organization does not exist
	ErrOrgNotExist = errors.New("Organization does not exist")
	// ErrTeamNotExist team does not exist
	ErrTeamNotExist = errors.New("Team does not exist")
)
View Source
var (
	// ErrRepoFileNotExist repository file does not exist error
	ErrRepoFileNotExist = errors.New("Repository file does not exist")

	// ErrRepoFileNotLoaded repository file not loaded error
	ErrRepoFileNotLoaded = errors.New("Repository file not loaded")

	// ErrMirrorNotExist mirror does not exist error
	ErrMirrorNotExist = errors.New("Mirror does not exist")

	// ErrInvalidReference invalid reference specified error
	ErrInvalidReference = errors.New("Invalid reference specified")

	// 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 (
	// 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 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",
}

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 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 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(orgID, teamID, 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 AddTeamRepo

func AddTeamRepo(orgID, teamID, repoID int64) error

AddTeamRepo adds new repository relation to team.

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 AddUpdateTask

func AddUpdateTask(task *UpdateTask) error

AddUpdateTask adds an UpdateTask

func AttachmentLocalPath

func AttachmentLocalPath(uuid string) string

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

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, oldMilestoneID int64) (err error)

ChangeMilestoneAssign changes assignment of milestone for issue.

func ChangeMilestoneIssueStats

func ChangeMilestoneIssueStats(issue *Issue) (err error)

ChangeMilestoneIssueStats updates the open/closed issues counter and progress for the milestone associated with the given 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 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 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 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

CountRepoClosedMilestones returns number of closed milestones in given repository.

func CountRepoMilestones

func CountRepoMilestones(repoID int64) int64

CountRepoMilestones returns number of 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 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 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) 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 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 DeleteCommentByID

func DeleteCommentByID(id int64) error

DeleteCommentByID deletes the comment by given ID.

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 DeleteInactivateUsers

func DeleteInactivateUsers() (err error)

DeleteInactivateUsers deletes all inactivate users and email addresses.

func DeleteIssueLabel

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

DeleteIssueLabel deletes issue-label relation.

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() error

DeleteMissingRepositories deletes all repository records that lost Git files.

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 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 DeleteReleaseByID

func DeleteReleaseByID(id int64, u *User) error

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

func DeleteRepository

func DeleteRepository(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 DeleteUpdateTaskByUUID

func DeleteUpdateTaskByUUID(uuid string) error

DeleteUpdateTaskByUUID deletes an UpdateTask from the database

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 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) error

DumpDatabase dumps all data from database to file system.

func FollowUser

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

FollowUser marks someone be another's follower.

func GetLabelTemplateFile

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

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

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 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 GetRepositoryCount

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

GetRepositoryCount returns the total number of repositories of user.

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 ramdom user salt token.

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 HandleCloneUserCredentials

func HandleCloneUserCredentials(url string, mosaics bool) string

HandleCloneUserCredentials replaces user credentials from HTTP/HTTPS URL with placeholder <credentials>. It will fail for any other forms of clone addresses.

func HasAccess

func HasAccess(user *User, repo *Repository, testMode AccessMode) (bool, error)

HasAccess returns true if someone has the request access level. User can be nil!

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 InitMailRender

func InitMailRender(tmpls *template.Template)

InitMailRender initializes the macaron mail renderer

func InitSyncMirrors

func InitSyncMirrors()

InitSyncMirrors initializes a go routine to sync the mirros

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 IsErrBranchNotExist

func IsErrBranchNotExist(err error) bool

IsErrBranchNotExist checks if an error is a ErrBranchNotExist.

func IsErrCommentNotExist

func IsErrCommentNotExist(err error) bool

IsErrCommentNotExist checks if an error is a ErrCommentNotExist.

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 IsErrInvalidCloneAddr

func IsErrInvalidCloneAddr(err error) bool

IsErrInvalidCloneAddr checks if an error is a ErrInvalidCloneAddr.

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 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 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 IsErrTeamAlreadyExist

func IsErrTeamAlreadyExist(err error) bool

IsErrTeamAlreadyExist checks if an error is a ErrTeamAlreadyExist.

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 IsErrUserHasOrgs

func IsErrUserHasOrgs(err error) bool

IsErrUserHasOrgs checks if an error is a ErrUserHasOrgs.

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 a ErrWikiAlreadyExist.

func IsFollowing

func IsFollowing(userID, followID int64) bool

IsFollowing returns true if user is following followID.

func IsOrganizationMember

func IsOrganizationMember(orgID, uid int64) bool

IsOrganizationMember returns true if given user is member of organization.

func IsOrganizationOwner

func IsOrganizationOwner(orgID, uid int64) bool

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

func IsPublicMembership

func IsPublicMembership(orgID, uid int64) bool

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

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) (err 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 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 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 LoadConfigs

func LoadConfigs()

LoadConfigs loads the database settings

func LoadRepoConfig

func LoadRepoConfig()

LoadRepoConfig loads the repository config

func MakeEmailPrimary

func MakeEmailPrimary(email *EmailAddress) error

MakeEmailPrimary sets primary email address of given user.

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)

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

func MirrorUpdate

func MirrorUpdate()

MirrorUpdate checks and updates mirror repositories.

func NewAccessToken

func NewAccessToken(t *AccessToken) error

NewAccessToken creates new access token.

func NewEngine

func NewEngine() (err error)

NewEngine initializes a new xorm.Engine

func NewIssue

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

NewIssue creates new issue with labels for repository.

func NewIssueLabel

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

NewIssueLabel creates a new issue-label relation.

func NewIssueLabels

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

NewIssueLabels creates a list of issue-label relations.

func NewIssueUsers

func NewIssueUsers(repo *Repository, issue *Issue) (err error)

NewIssueUsers adds new issue-user relations for new issue of repository.

func NewLabels

func NewLabels(labels ...*Label) error

NewLabels creates new label(s) 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) (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 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 NotifyWatchers

func NotifyWatchers(act *Action) error

NotifyWatchers creates batch of actions for every watcher.

func PairsContains

func PairsContains(ius []*IssueUser, issueID, uid int64) int

PairsContains returns true when pairs list contains given issue.

func Ping

func Ping() error

Ping tests if database is alive

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(opts PushUpdateOptions) (err 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 RemoveAllWithNotice

func RemoveAllWithNotice(title, path string)

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

func RemoveOrgRepo

func RemoveOrgRepo(orgID, repoID int64) error

RemoveOrgRepo removes all team-repository relations of given organization.

func RemoveOrgUser

func RemoveOrgUser(orgID, userID int64) error

RemoveOrgUser removes user from given organization.

func RemoveTeamMember

func RemoveTeamMember(orgID, teamID, userID int64) error

RemoveTeamMember removes member from given team of given organization.

func RemoveTeamRepo

func RemoveTeamRepo(teamID, repoID int64) error

RemoveTeamRepo deletes repository relation to team.

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 outsite any session scope independently.

func RewriteRepositoryUpdateHook

func RewriteRepositoryUpdateHook() error

RewriteRepositoryUpdateHook rewrites all repositories' update hook.

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. NOTE: ed25519 is not supported.

func SendActivateAccountMail

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

SendActivateAccountMail sends an activation mail to the user

func SendActivateEmailMail

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

SendActivateEmailMail sends confirmation email.

func SendCollaboratorMail

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

SendCollaboratorMail sends mail notification to new collaborator.

func SendIssueCommentMail

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

SendIssueCommentMail composes and sends issue comment emails to target receivers.

func SendIssueMentionMail

func SendIssueMentionMail(issue *Issue, doer *User, 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 SlackLinkFormatter

func SlackLinkFormatter(url string, text string) string

SlackLinkFormatter creates a link compatablie with slack

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) (err error)

StarRepo star or unstar repository.

func SyncMirrors

func SyncMirrors()

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

func TestPullRequests

func TestPullRequests()

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

func ToWikiPageName

func ToWikiPageName(urlString string) string

ToWikiPageName formats a URL back to corresponding wiki page name, and removes leading characters './' to prevent changing files that are not belong to wiki repository.

func ToWikiPageURL

func ToWikiPageURL(name string) string

ToWikiPageURL formats a string to corresponding wiki URL name.

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 be another's follower.

func UpdateAccessToken

func UpdateAccessToken(t *AccessToken) error

UpdateAccessToken updates information of access token.

func UpdateComment

func UpdateComment(c *Comment) error

UpdateComment updates information of comment.

func UpdateDeployKey

func UpdateDeployKey(key *DeployKey) error

UpdateDeployKey updates deploy key information.

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 UpdateIssueMentions

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

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

func UpdateIssueUserByAssignee

func UpdateIssueUserByAssignee(issue *Issue) (err error)

UpdateIssueUserByAssignee updates issue-user relation for assignee.

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 UpdateIssueUsersByStatus

func UpdateIssueUsersByStatus(issueID int64, isClosed bool) error

UpdateIssueUsersByStatus updates issue-user relations by issue status.

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 UpdatePublicKey

func UpdatePublicKey(key *PublicKey) error

UpdatePublicKey updates given public key.

func UpdateRelease

func UpdateRelease(gitRepo *git.Repository, rel *Release) (err error)

UpdateRelease updates information of a release.

func UpdateRepository

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

UpdateRepository updates a repository

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 UpdateUser

func UpdateUser(u *User) error

UpdateUser updates user's information.

func UpdateWebhook

func UpdateWebhook(w *Webhook) error

UpdateWebhook updates information 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 WatchRepo

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

WatchRepo watch or unwatch repository.

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(user *User, repo *Repository) (AccessMode, error)

AccessLevel returns the Access a user has to a repository. Will return NoneAccess if the user does not have access. User can be nil!

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)"`

	Created           time.Time `xorm:"-"`
	CreatedUnix       int64
	Updated           time.Time `xorm:"-"` // Note: Updated must below Created for AfterSet.
	UpdatedUnix       int64
	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) AfterSet

func (t *AccessToken) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*AccessToken) BeforeInsert

func (t *AccessToken) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record representing this object.

func (*AccessToken) BeforeUpdate

func (t *AccessToken) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

type Action

type Action struct {
	ID           int64 `xorm:"pk autoincr"`
	UserID       int64 // Receiver user id.
	OpType       ActionType
	ActUserID    int64  // Action user id.
	ActUserName  string // Action user name.
	ActAvatar    string `xorm:"-"`
	RepoID       int64
	RepoUserName string
	RepoName     string
	RefName      string
	IsPrivate    bool      `xorm:"NOT NULL DEFAULT false"`
	Content      string    `xorm:"TEXT"`
	Created      time.Time `xorm:"-"`
	CreatedUnix  int64
}

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(ctxUser *User, actorID, offset int64, isProfile bool) ([]*Action, error)

GetFeeds returns action list of given user in given context. actorID is the user who's requesting, ctxUserID is the user/org that is requested. actorID can be -1 when isProfile is true or to skip the permission check.

func (*Action) AfterSet

func (a *Action) AfterSet(colName string, _ xorm.Cell)

AfterSet updates the webhook object upon setting a column.

func (*Action) BeforeInsert

func (a *Action) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record representing this object.

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 (*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() int

GetOpType gets the ActionType of this action. TODO: change return type to ActionType ?

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 trimed 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 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
)

Possible action types.

type Attachment

type Attachment struct {
	ID        int64  `xorm:"pk autoincr"`
	UUID      string `xorm:"uuid UNIQUE"`
	IssueID   int64  `xorm:"INDEX"`
	CommentID int64
	ReleaseID int64 `xorm:"INDEX"`
	Name      string

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
}

Attachment represent a attachment of issue/comment/release.

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) AfterSet

func (a *Attachment) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Attachment) BeforeInsert

func (a *Attachment) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

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 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
	Poster          *User `xorm:"-"`
	IssueID         int64 `xorm:"INDEX"`
	CommitID        int64
	Line            int64
	Content         string `xorm:"TEXT"`
	RenderedContent string `xorm:"-"`

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
	Updated     time.Time `xorm:"-"`
	UpdatedUnix int64

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

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

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

Comment represents a comment in commit and issue page.

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 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) AfterSet

func (c *Comment) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Comment) BeforeInsert

func (c *Comment) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record representing this object.

func (*Comment) BeforeUpdate

func (c *Comment) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

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) 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) PRURL added in v1.0.0

func (c *Comment) PRURL() string

PRURL formats a URL-string to the pull-request

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
)

Enumerate all the comment types

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 CreateCommentOptions

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

	CommitID    int64
	CommitSHA   string
	LineNum     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 DeleteRepoFileOptions

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

DeleteRepoFileOptions holds the repository delete file options

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:"-"`

	Created           time.Time `xorm:"-"`
	CreatedUnix       int64
	Updated           time.Time `xorm:"-"` // Note: Updated must below Created for AfterSet.
	UpdatedUnix       int64
	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) (*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) AfterSet

func (key *DeployKey) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*DeployKey) BeforeInsert

func (key *DeployKey) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record

func (*DeployKey) BeforeUpdate

func (key *DeployKey) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*DeployKey) GetContent

func (key *DeployKey) GetContent() error

GetContent gets associated public key content.

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, maxLineCharacteres, maxFiles int) (*Diff, error)

GetDiffCommit builds a Diff representing the given commitID.

func GetDiffRange

func GetDiffRange(repoPath, beforeCommitID, afterCommitID string, maxLines, maxLineCharacteres, 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 ParsePatch

func ParsePatch(maxLines, maxLineCharacteres, 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) 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
	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
}

DiffLine represents a line difference in a DiffSection.

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 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

type Engine interface {
	Delete(interface{}) (int64, error)
	Exec(string, ...interface{}) (sql.Result, error)
	Find(interface{}, ...interface{}) error
	Get(interface{}) (bool, error)
	Id(interface{}) *xorm.Session
	In(string, ...interface{}) *xorm.Session
	Insert(...interface{}) (int64, error)
	InsertOne(interface{}) (int64, error)
	Iterate(interface{}, xorm.IterFunc) error
	SQL(interface{}, ...interface{}) *xorm.Session
	Where(interface{}, ...interface{}) *xorm.Session
}

Engine represents a xorm engine or session.

type ErrAccessTokenEmpty

type ErrAccessTokenEmpty struct {
}

ErrAccessTokenEmpty represents a "AccessTokenEmpty" kind of error.

func (ErrAccessTokenEmpty) Error

func (err ErrAccessTokenEmpty) Error() string

type ErrAccessTokenNotExist

type ErrAccessTokenNotExist struct {
	SHA string
}

ErrAccessTokenNotExist represents a "AccessTokenNotExist" kind of error.

func (ErrAccessTokenNotExist) Error

func (err ErrAccessTokenNotExist) Error() string

type ErrAttachmentNotExist

type ErrAttachmentNotExist struct {
	ID   int64
	UUID string
}

ErrAttachmentNotExist represents a "AttachmentNotExist" kind of error.

func (ErrAttachmentNotExist) Error

func (err ErrAttachmentNotExist) Error() string

type ErrBranchNotExist

type ErrBranchNotExist struct {
	Name string
}

ErrBranchNotExist represents a "BranchNotExist" kind of error.

func (ErrBranchNotExist) Error

func (err ErrBranchNotExist) Error() string

type ErrCommentNotExist

type ErrCommentNotExist struct {
	ID      int64
	IssueID int64
}

ErrCommentNotExist represents a "CommentNotExist" kind of error.

func (ErrCommentNotExist) Error

func (err ErrCommentNotExist) Error() string

type ErrDeployKeyAlreadyExist

type ErrDeployKeyAlreadyExist struct {
	KeyID  int64
	RepoID int64
}

ErrDeployKeyAlreadyExist represents a "DeployKeyAlreadyExist" kind of error.

func (ErrDeployKeyAlreadyExist) Error

func (err ErrDeployKeyAlreadyExist) Error() string

type ErrDeployKeyNameAlreadyUsed

type ErrDeployKeyNameAlreadyUsed struct {
	RepoID int64
	Name   string
}

ErrDeployKeyNameAlreadyUsed represents a "DeployKeyNameAlreadyUsed" kind of error.

func (ErrDeployKeyNameAlreadyUsed) Error

func (err ErrDeployKeyNameAlreadyUsed) Error() string

type ErrDeployKeyNotExist

type ErrDeployKeyNotExist struct {
	ID     int64
	KeyID  int64
	RepoID int64
}

ErrDeployKeyNotExist represents a "DeployKeyNotExist" kind of error.

func (ErrDeployKeyNotExist) Error

func (err ErrDeployKeyNotExist) Error() string

type ErrEmailAlreadyUsed

type ErrEmailAlreadyUsed struct {
	Email string
}

ErrEmailAlreadyUsed represents a "EmailAlreadyUsed" kind of error.

func (ErrEmailAlreadyUsed) Error

func (err ErrEmailAlreadyUsed) Error() string

type ErrInvalidCloneAddr

type ErrInvalidCloneAddr struct {
	IsURLError         bool
	IsInvalidPath      bool
	IsPermissionDenied bool
}

ErrInvalidCloneAddr represents a "InvalidCloneAddr" kind of error.

func (ErrInvalidCloneAddr) Error

func (err ErrInvalidCloneAddr) Error() string

type ErrInvalidTagName

type ErrInvalidTagName struct {
	TagName string
}

ErrInvalidTagName represents a "InvalidTagName" kind of error.

func (ErrInvalidTagName) Error

func (err ErrInvalidTagName) Error() string

type ErrIssueNotExist

type ErrIssueNotExist struct {
	ID     int64
	RepoID int64
	Index  int64
}

ErrIssueNotExist represents a "IssueNotExist" kind of error.

func (ErrIssueNotExist) Error

func (err ErrIssueNotExist) Error() string

type ErrKeyAccessDenied

type ErrKeyAccessDenied struct {
	UserID int64
	KeyID  int64
	Note   string
}

ErrKeyAccessDenied represents a "KeyAccessDenied" kind of error.

func (ErrKeyAccessDenied) Error

func (err ErrKeyAccessDenied) Error() string

type ErrKeyAlreadyExist

type ErrKeyAlreadyExist struct {
	OwnerID int64
	Content string
}

ErrKeyAlreadyExist represents a "KeyAlreadyExist" kind of error.

func (ErrKeyAlreadyExist) Error

func (err ErrKeyAlreadyExist) Error() string

type ErrKeyNameAlreadyUsed

type ErrKeyNameAlreadyUsed struct {
	OwnerID int64
	Name    string
}

ErrKeyNameAlreadyUsed represents a "KeyNameAlreadyUsed" kind of error.

func (ErrKeyNameAlreadyUsed) Error

func (err ErrKeyNameAlreadyUsed) Error() string

type ErrKeyNotExist

type ErrKeyNotExist struct {
	ID int64
}

ErrKeyNotExist represents a "KeyNotExist" kind of error.

func (ErrKeyNotExist) Error

func (err ErrKeyNotExist) Error() string

type ErrKeyUnableVerify

type ErrKeyUnableVerify struct {
	Result string
}

ErrKeyUnableVerify represents a "KeyUnableVerify" kind of error.

func (ErrKeyUnableVerify) Error

func (err ErrKeyUnableVerify) Error() string

type ErrLabelNotExist

type ErrLabelNotExist struct {
	LabelID int64
	RepoID  int64
}

ErrLabelNotExist represents a "LabelNotExist" kind of error.

func (ErrLabelNotExist) Error

func (err ErrLabelNotExist) Error() string

type ErrLastOrgOwner

type ErrLastOrgOwner struct {
	UID int64
}

ErrLastOrgOwner represents a "LastOrgOwner" kind of error.

func (ErrLastOrgOwner) Error

func (err ErrLastOrgOwner) Error() string

type ErrLoginSourceAlreadyExist

type ErrLoginSourceAlreadyExist struct {
	Name string
}

ErrLoginSourceAlreadyExist represents a "LoginSourceAlreadyExist" kind of error.

func (ErrLoginSourceAlreadyExist) Error

func (err ErrLoginSourceAlreadyExist) Error() string

type ErrLoginSourceInUse

type ErrLoginSourceInUse struct {
	ID int64
}

ErrLoginSourceInUse represents a "LoginSourceInUse" kind of error.

func (ErrLoginSourceInUse) Error

func (err ErrLoginSourceInUse) Error() string

type ErrLoginSourceNotExist

type ErrLoginSourceNotExist struct {
	ID int64
}

ErrLoginSourceNotExist represents a "LoginSourceNotExist" kind of error.

func (ErrLoginSourceNotExist) Error

func (err ErrLoginSourceNotExist) Error() string

type ErrMilestoneNotExist

type ErrMilestoneNotExist struct {
	ID     int64
	RepoID int64
}

ErrMilestoneNotExist represents a "MilestoneNotExist" kind of error.

func (ErrMilestoneNotExist) Error

func (err ErrMilestoneNotExist) Error() string

type ErrNamePatternNotAllowed

type ErrNamePatternNotAllowed struct {
	Pattern string
}

ErrNamePatternNotAllowed represents a "pattern not allowed" error.

func (ErrNamePatternNotAllowed) Error

func (err ErrNamePatternNotAllowed) Error() string

type ErrNameReserved

type ErrNameReserved struct {
	Name string
}

ErrNameReserved represents a "reserved name" error.

func (ErrNameReserved) Error

func (err ErrNameReserved) Error() string

type ErrPullRequestAlreadyExists added in v1.0.0

type ErrPullRequestAlreadyExists struct {
	ID         int64
	IssueID    int64
	HeadRepoID int64
	BaseRepoID int64
	HeadBranch string
	BaseBranch string
}

ErrPullRequestAlreadyExists represents a "PullRequestAlreadyExists"-error

func (ErrPullRequestAlreadyExists) Error added in v1.0.0

func (err ErrPullRequestAlreadyExists) Error() string

Error does pretty-printing :D

type ErrPullRequestNotExist

type ErrPullRequestNotExist struct {
	ID         int64
	IssueID    int64
	HeadRepoID int64
	BaseRepoID int64
	HeadBarcnh string
	BaseBranch string
}

ErrPullRequestNotExist represents a "PullRequestNotExist" kind of error.

func (ErrPullRequestNotExist) Error

func (err ErrPullRequestNotExist) Error() string

type ErrReachLimitOfRepo

type ErrReachLimitOfRepo struct {
	Limit int
}

ErrReachLimitOfRepo represents a "ReachLimitOfRepo" kind of error.

func (ErrReachLimitOfRepo) Error

func (err ErrReachLimitOfRepo) Error() string

type ErrReleaseAlreadyExist

type ErrReleaseAlreadyExist struct {
	TagName string
}

ErrReleaseAlreadyExist represents a "ReleaseAlreadyExist" kind of error.

func (ErrReleaseAlreadyExist) Error

func (err ErrReleaseAlreadyExist) Error() string

type ErrReleaseNotExist

type ErrReleaseNotExist struct {
	ID      int64
	TagName string
}

ErrReleaseNotExist represents a "ReleaseNotExist" kind of error.

func (ErrReleaseNotExist) Error

func (err ErrReleaseNotExist) Error() string

type ErrRepoAlreadyExist

type ErrRepoAlreadyExist struct {
	Uname string
	Name  string
}

ErrRepoAlreadyExist represents a "RepoAlreadyExist" kind of error.

func (ErrRepoAlreadyExist) Error

func (err ErrRepoAlreadyExist) Error() string

type ErrRepoFileAlreadyExist

type ErrRepoFileAlreadyExist struct {
	FileName string
}

ErrRepoFileAlreadyExist represents a "RepoFileAlreadyExist" kind of error.

func (ErrRepoFileAlreadyExist) Error

func (err ErrRepoFileAlreadyExist) Error() string

type ErrRepoNotExist

type ErrRepoNotExist struct {
	ID   int64
	UID  int64
	Name string
}

ErrRepoNotExist represents a "RepoNotExist" kind of error.

func (ErrRepoNotExist) Error

func (err ErrRepoNotExist) Error() string

type ErrTeamAlreadyExist

type ErrTeamAlreadyExist struct {
	OrgID int64
	Name  string
}

ErrTeamAlreadyExist represents a "TeamAlreadyExist" kind of error.

func (ErrTeamAlreadyExist) Error

func (err ErrTeamAlreadyExist) Error() string

type ErrUpdateTaskNotExist

type ErrUpdateTaskNotExist struct {
	UUID string
}

ErrUpdateTaskNotExist represents a "UpdateTaskNotExist" kind of error.

func (ErrUpdateTaskNotExist) Error

func (err ErrUpdateTaskNotExist) Error() string

type ErrUploadNotExist

type ErrUploadNotExist struct {
	ID   int64
	UUID string
}

ErrUploadNotExist represents a "UploadNotExist" kind of error.

func (ErrUploadNotExist) Error

func (err ErrUploadNotExist) Error() string

type ErrUserAlreadyExist

type ErrUserAlreadyExist struct {
	Name string
}

ErrUserAlreadyExist represents a "user already exists" error.

func (ErrUserAlreadyExist) Error

func (err ErrUserAlreadyExist) Error() string

type ErrUserHasOrgs

type ErrUserHasOrgs struct {
	UID int64
}

ErrUserHasOrgs represents a "UserHasOrgs" kind of error.

func (ErrUserHasOrgs) Error

func (err ErrUserHasOrgs) Error() string

type ErrUserNotExist

type ErrUserNotExist struct {
	UID   int64
	Name  string
	KeyID int64
}

ErrUserNotExist represents a "UserNotExist" kind of error.

func (ErrUserNotExist) Error

func (err ErrUserNotExist) Error() string

type ErrUserOwnRepos

type ErrUserOwnRepos struct {
	UID int64
}

ErrUserOwnRepos represents a "UserOwnRepos" kind of error.

func (ErrUserOwnRepos) Error

func (err ErrUserOwnRepos) Error() string

type ErrWebhookNotExist

type ErrWebhookNotExist struct {
	ID int64
}

ErrWebhookNotExist represents a "WebhookNotExist" kind of error.

func (ErrWebhookNotExist) Error

func (err ErrWebhookNotExist) Error() string

type ErrWikiAlreadyExist

type ErrWikiAlreadyExist struct {
	Title string
}

ErrWikiAlreadyExist represents a "WikiAlreadyExist" kind of error.

func (ErrWikiAlreadyExist) Error

func (err ErrWikiAlreadyExist) Error() string

type Follow

type Follow struct {
	ID       int64 `xorm:"pk autoincr"`
	UserID   int64 `xorm:"UNIQUE(follow)"`
	FollowID int64 `xorm:"UNIQUE(follow)"`
}

Follow represents relations of user and his/her followers.

type HookContentType

type HookContentType int

HookContentType is the content type of a web hook

const (
	// ContentTypeJSON is a JSON payload for web hooks
	ContentTypeJSON HookContentType = iota + 1
	// ContentTypeForm is an url-encoded form payload for web hook
	ContentTypeForm
)

func ToHookContentType

func ToHookContentType(name string) HookContentType

ToHookContentType returns HookContentType by given name.

func (HookContentType) Name

func (t HookContentType) Name() string

Name returns the name of a given web hook's content type

type HookEvent

type HookEvent struct {
	PushOnly       bool `json:"push_only"`
	SendEverything bool `json:"send_everything"`
	ChooseEvents   bool `json:"choose_events"`

	HookEvents `json:"events"`
}

HookEvent represents events that will delivery hook.

type HookEventType

type HookEventType string

HookEventType is the type of an hook event

const (
	HookEventCreate      HookEventType = "create"
	HookEventPush        HookEventType = "push"
	HookEventPullRequest HookEventType = "pull_request"
)

Types of hook events

type HookEvents

type HookEvents struct {
	Create      bool `json:"create"`
	Push        bool `json:"push"`
	PullRequest bool `json:"pull_request"`
}

HookEvents is a set of web hook events

type HookRequest

type HookRequest struct {
	Headers map[string]string `json:"headers"`
}

HookRequest represents hook task request information.

type HookResponse

type HookResponse struct {
	Status  int               `json:"status"`
	Headers map[string]string `json:"headers"`
	Body    string            `json:"body"`
}

HookResponse represents hook task response information.

type HookStatus

type HookStatus int

HookStatus is the status of a web hook

type HookTask

type HookTask struct {
	ID              int64 `xorm:"pk autoincr"`
	RepoID          int64 `xorm:"INDEX"`
	HookID          int64
	UUID            string
	Type            HookTaskType
	URL             string `xorm:"TEXT"`
	api.Payloader   `xorm:"-"`
	PayloadContent  string `xorm:"TEXT"`
	ContentType     HookContentType
	EventType       HookEventType
	IsSSL           bool
	IsDelivered     bool
	Delivered       int64
	DeliveredString string `xorm:"-"`

	// History info.
	IsSucceed       bool
	RequestContent  string        `xorm:"TEXT"`
	RequestInfo     *HookRequest  `xorm:"-"`
	ResponseContent string        `xorm:"TEXT"`
	ResponseInfo    *HookResponse `xorm:"-"`
}

HookTask represents a hook task.

func HookTasks

func HookTasks(hookID int64, page int) ([]*HookTask, error)

HookTasks returns a list of hook tasks by given conditions.

func (*HookTask) AfterSet

func (t *HookTask) AfterSet(colName string, _ xorm.Cell)

AfterSet updates the webhook object upon setting a column

func (*HookTask) BeforeUpdate

func (t *HookTask) BeforeUpdate()

BeforeUpdate will be invoked by XORM before updating a record representing this object

type HookTaskType

type HookTaskType int

HookTaskType is the type of an hook task

const (
	GOGS HookTaskType = iota + 1
	SLACK
)

Types of hook tasks

func ToHookTaskType

func ToHookTaskType(name string) HookTaskType

ToHookTaskType returns HookTaskType by given name.

func (HookTaskType) Name

func (t HookTaskType) Name() string

Name returns the name of an hook task type

type Issue

type Issue struct {
	ID              int64       `xorm:"pk autoincr"`
	RepoID          int64       `xorm:"INDEX UNIQUE(repo_index)"`
	Repo            *Repository `xorm:"-"`
	Index           int64       `xorm:"UNIQUE(repo_index)"` // Index in one repository.
	PosterID        int64
	Poster          *User    `xorm:"-"`
	Title           string   `xorm:"name"`
	Content         string   `xorm:"TEXT"`
	RenderedContent string   `xorm:"-"`
	Labels          []*Label `xorm:"-"`
	MilestoneID     int64
	Milestone       *Milestone `xorm:"-"`
	Priority        int
	AssigneeID      int64
	Assignee        *User `xorm:"-"`
	IsClosed        bool
	IsRead          bool         `xorm:"-"`
	IsPull          bool         // Indicates whether is a pull request or not.
	PullRequest     *PullRequest `xorm:"-"`
	NumComments     int

	Deadline     time.Time `xorm:"-"`
	DeadlineUnix int64
	Created      time.Time `xorm:"-"`
	CreatedUnix  int64
	Updated      time.Time `xorm:"-"`
	UpdatedUnix  int64

	Attachments []*Attachment `xorm:"-"`
	Comments    []*Comment    `xorm:"-"`
}

Issue represents an issue or pull request of repository.

func GetIssueByID

func GetIssueByID(id int64) (*Issue, error)

GetIssueByID returns an issue by given ID.

func GetIssueByIndex

func GetIssueByIndex(repoID, index int64) (*Issue, error)

GetIssueByIndex returns issue by index in a repository.

func GetIssueByRef

func GetIssueByRef(ref string) (*Issue, error)

GetIssueByRef returns an Issue specified by a GFM reference. See https://help.github.com/articles/writing-on-github#references for more information on the syntax.

func GetRawIssueByIndex

func GetRawIssueByIndex(repoID, index int64) (*Issue, error)

GetRawIssueByIndex returns raw issue without loading attributes by index in a repository.

func Issues

func Issues(opts *IssuesOptions) ([]*Issue, error)

Issues returns a list of issues by given conditions.

func (*Issue) APIFormat

func (issue *Issue) APIFormat() *api.Issue

APIFormat assumes some fields assigned with values: Required - Poster, Labels, Optional - Milestone, Assignee, PullRequest

func (*Issue) AddLabel

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

AddLabel adds a new label to the issue.

func (*Issue) AddLabels

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

AddLabels adds a list of new labels to the issue.

func (*Issue) AfterSet

func (issue *Issue) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Issue) BeforeInsert

func (issue *Issue) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*Issue) BeforeUpdate

func (issue *Issue) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*Issue) ChangeAssignee

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

ChangeAssignee changes the Asssignee field of this issue.

func (*Issue) ChangeContent

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

ChangeContent changes issue content, as the given user.

func (*Issue) ChangeStatus

func (issue *Issue) ChangeStatus(doer *User, repo *Repository, isClosed bool) (err error)

ChangeStatus changes issue status to open or closed.

func (*Issue) ChangeTitle

func (issue *Issue) ChangeTitle(doer *User, title string) (err error)

ChangeTitle changes the title of this issue, as the given user.

func (*Issue) ClearLabels

func (issue *Issue) ClearLabels(doer *User) (err error)

ClearLabels removes all issue labels as the given user. Triggers appropriate WebHooks, if any.

func (*Issue) DiffURL added in v1.0.0

func (issue *Issue) DiffURL() string

DiffURL returns the absolute URL to this diff

func (*Issue) GetAssignee

func (issue *Issue) GetAssignee() (err error)

GetAssignee sets the Assignee attribute of this issue.

func (*Issue) HTMLURL

func (issue *Issue) HTMLURL() string

HTMLURL returns the absolute URL to this issue.

func (*Issue) HasLabel

func (issue *Issue) HasLabel(labelID int64) bool

HasLabel returns true if issue has been labeled by given ID.

func (*Issue) HashTag

func (issue *Issue) HashTag() string

HashTag returns unique hash tag for issue.

func (*Issue) IsPoster

func (issue *Issue) IsPoster(uid int64) bool

IsPoster returns true if given user by ID is the poster.

func (*Issue) LoadAttributes

func (issue *Issue) LoadAttributes() error

LoadAttributes loads the attribute of this issue.

func (*Issue) MailParticipants

func (issue *Issue) MailParticipants() (err error)

MailParticipants sends new issue thread created emails to repository watchers and mentioned people.

func (*Issue) PatchURL added in v1.0.0

func (issue *Issue) PatchURL() string

PatchURL returns the absolute URL to this patch

func (*Issue) ReadBy

func (issue *Issue) ReadBy(uid int64) error

ReadBy sets issue to be read by given user.

func (*Issue) RemoveLabel

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

RemoveLabel removes a label from issue by given ID.

func (*Issue) ReplaceLabels

func (issue *Issue) ReplaceLabels(labels []*Label) (err error)

ReplaceLabels removes all current labels and add new labels to the issue. Triggers appropriate WebHooks, if any.

func (*Issue) State

func (issue *Issue) State() api.StateType

State returns string representation of issue status.

type IssueLabel

type IssueLabel struct {
	ID      int64 `xorm:"pk autoincr"`
	IssueID int64 `xorm:"UNIQUE(s)"`
	LabelID int64 `xorm:"UNIQUE(s)"`
}

IssueLabel represetns an issue-lable relation.

func GetIssueLabels

func GetIssueLabels(issueID int64) ([]*IssueLabel, error)

GetIssueLabels returns all issue-label relations of given issue by ID.

type IssueStats

type IssueStats struct {
	OpenCount, ClosedCount int64
	AllCount               int64
	AssignCount            int64
	CreateCount            int64
	MentionCount           int64
}

IssueStats represents issue statistic information.

func GetIssueStats

func GetIssueStats(opts *IssueStatsOptions) *IssueStats

GetIssueStats returns issue statistic information by given conditions.

func GetUserIssueStats

func GetUserIssueStats(repoID, uid int64, repoIDs []int64, filterMode int, isPull bool) *IssueStats

GetUserIssueStats returns issue statistic information for dashboard by given conditions.

type IssueStatsOptions

type IssueStatsOptions struct {
	RepoID      int64
	UserID      int64
	Labels      string
	MilestoneID int64
	AssigneeID  int64
	FilterMode  int
	IsPull      bool
}

IssueStatsOptions contains parameters accepted by GetIssueStats.

type IssueUser

type IssueUser struct {
	ID          int64 `xorm:"pk autoincr"`
	UID         int64 `xorm:"INDEX"` // User ID.
	IssueID     int64
	RepoID      int64 `xorm:"INDEX"`
	MilestoneID int64
	IsRead      bool
	IsAssigned  bool
	IsMentioned bool
	IsPoster    bool
	IsClosed    bool
}

IssueUser represents an issue-user relation.

func GetIssueUserPairsByMode

func GetIssueUserPairsByMode(uid, rid int64, isClosed bool, page, filterMode int) ([]*IssueUser, error)

GetIssueUserPairsByMode returns issue-user pairs by given repository and user.

func GetIssueUserPairsByRepoIds

func GetIssueUserPairsByRepoIds(rids []int64, isClosed bool, page int) ([]*IssueUser, error)

GetIssueUserPairsByRepoIds returns issue-user pairs by given repository IDs.

func GetIssueUsers

func GetIssueUsers(rid, uid int64, isClosed bool) ([]*IssueUser, error)

GetIssueUsers returns issue-user pairs by given repository and user.

type IssuesOptions

type IssuesOptions struct {
	UserID      int64
	AssigneeID  int64
	RepoID      int64
	PosterID    int64
	MilestoneID int64
	RepoIDs     []int64
	Page        int
	IsClosed    bool
	IsMention   bool
	IsPull      bool
	Labels      string
	SortType    string
}

IssuesOptions represents options of an issue.

type KeyType

type KeyType int

KeyType specifies the key type

type LDAPConfig

type LDAPConfig struct {
	*ldap.Source
}

LDAPConfig holds configuration for LDAP login source.

func (*LDAPConfig) FromDB

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

FromDB fills up a LDAPConfig from serialized format.

func (*LDAPConfig) SecurityProtocolName

func (cfg *LDAPConfig) SecurityProtocolName() string

SecurityProtocolName returns the name of configured security protocol.

func (*LDAPConfig) ToDB

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

ToDB exports a LDAPConfig to a serialized format.

type Label

type Label struct {
	ID              int64 `xorm:"pk autoincr"`
	RepoID          int64 `xorm:"INDEX"`
	Name            string
	Color           string `xorm:"VARCHAR(7)"`
	NumIssues       int
	NumClosedIssues int
	NumOpenIssues   int  `xorm:"-"`
	IsChecked       bool `xorm:"-"`
}

Label represents a label of repository for issues.

func GetLabelByID

func GetLabelByID(id int64) (*Label, error)

GetLabelByID returns a label by given ID.

func GetLabelInRepoByID

func GetLabelInRepoByID(repoID, labelID int64) (*Label, error)

GetLabelInRepoByID returns a label by ID in given repository.

func GetLabelInRepoByName added in v1.0.0

func GetLabelInRepoByName(repoID int64, labelName string) (*Label, error)

GetLabelInRepoByName returns a label by name in given repository.

func GetLabelsByIssueID

func GetLabelsByIssueID(issueID int64) ([]*Label, error)

GetLabelsByIssueID returns all labels that belong to given issue by ID.

func GetLabelsByRepoID

func GetLabelsByRepoID(repoID int64) ([]*Label, error)

GetLabelsByRepoID returns all labels that belong to given repository by ID.

func GetLabelsInRepoByIDs

func GetLabelsInRepoByIDs(repoID int64, labelIDs []int64) ([]*Label, error)

GetLabelsInRepoByIDs returns a list of labels by IDs in given repository, it silently ignores label IDs that are not belong to the repository.

func (*Label) APIFormat

func (label *Label) APIFormat() *api.Label

APIFormat converts a Label to the api.Label format

func (*Label) CalOpenIssues

func (label *Label) CalOpenIssues()

CalOpenIssues calculates the open issues of label.

func (*Label) ForegroundColor

func (label *Label) ForegroundColor() template.CSS

ForegroundColor calculates the text color for labels based on their background color.

type LoginSource

type LoginSource struct {
	ID        int64 `xorm:"pk autoincr"`
	Type      LoginType
	Name      string          `xorm:"UNIQUE"`
	IsActived bool            `xorm:"NOT NULL DEFAULT false"`
	Cfg       core.Conversion `xorm:"TEXT"`

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
	Updated     time.Time `xorm:"-"`
	UpdatedUnix int64
}

LoginSource represents an external way for authorizing users.

func GetLoginSourceByID

func GetLoginSourceByID(id int64) (*LoginSource, error)

GetLoginSourceByID returns login source by given ID.

func LoginSources

func LoginSources() ([]*LoginSource, error)

LoginSources returns a slice of all login sources found in DB.

func (*LoginSource) AfterSet

func (source *LoginSource) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*LoginSource) BeforeInsert

func (source *LoginSource) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*LoginSource) BeforeSet

func (source *LoginSource) BeforeSet(colName string, val xorm.Cell)

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

func (*LoginSource) BeforeUpdate

func (source *LoginSource) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*LoginSource) HasTLS

func (source *LoginSource) HasTLS() bool

HasTLS returns true of this source supports TLS.

func (*LoginSource) IsDLDAP

func (source *LoginSource) IsDLDAP() bool

IsDLDAP returns true of this source is of the DLDAP type.

func (*LoginSource) IsLDAP

func (source *LoginSource) IsLDAP() bool

IsLDAP returns true of this source is of the LDAP type.

func (*LoginSource) IsPAM

func (source *LoginSource) IsPAM() bool

IsPAM returns true of this source is of the PAM type.

func (*LoginSource) IsSMTP

func (source *LoginSource) IsSMTP() bool

IsSMTP returns true of this source is of the SMTP type.

func (*LoginSource) LDAP

func (source *LoginSource) LDAP() *LDAPConfig

LDAP returns LDAPConfig for this source, if of LDAP type.

func (*LoginSource) PAM

func (source *LoginSource) PAM() *PAMConfig

PAM returns PAMConfig for this source, if of PAM type.

func (*LoginSource) SMTP

func (source *LoginSource) SMTP() *SMTPConfig

SMTP returns SMTPConfig for this source, if of SMTP type.

func (*LoginSource) SkipVerify

func (source *LoginSource) SkipVerify() bool

SkipVerify returns true if this source is configured to skip SSL verification.

func (*LoginSource) TypeName

func (source *LoginSource) TypeName() string

TypeName return name of this login source type.

func (*LoginSource) UseTLS

func (source *LoginSource) UseTLS() bool

UseTLS returns true of this source is configured to use TLS.

type LoginType

type LoginType int

LoginType represents an login type.

const (
	LoginNoType LoginType = iota
	LoginPlain            // 1
	LoginLDAP             // 2
	LoginSMTP             // 3
	LoginPAM              // 4
	LoginDLDAP            // 5
)

Note: new type must append to the end of list to maintain compatibility.

type MigrateRepoOptions

type MigrateRepoOptions struct {
	Name        string
	Description string
	IsPrivate   bool
	IsMirror    bool
	RemoteAddr  string
}

MigrateRepoOptions contains the repository migrate options

type Milestone

type Milestone struct {
	ID              int64 `xorm:"pk autoincr"`
	RepoID          int64 `xorm:"INDEX"`
	Name            string
	Content         string `xorm:"TEXT"`
	RenderedContent string `xorm:"-"`
	IsClosed        bool
	NumIssues       int
	NumClosedIssues int
	NumOpenIssues   int  `xorm:"-"`
	Completeness    int  // Percentage(1-100).
	IsOverDue       bool `xorm:"-"`

	DeadlineString string    `xorm:"-"`
	Deadline       time.Time `xorm:"-"`
	DeadlineUnix   int64
	ClosedDate     time.Time `xorm:"-"`
	ClosedDateUnix int64
}

Milestone represents a milestone of repository.

func GetMilestoneByRepoID

func GetMilestoneByRepoID(repoID, id int64) (*Milestone, error)

GetMilestoneByRepoID returns the milestone in a repository.

func GetMilestones

func GetMilestones(repoID int64, page int, isClosed bool) ([]*Milestone, error)

GetMilestones returns a list of milestones of given repository and status.

func GetMilestonesByRepoID

func GetMilestonesByRepoID(repoID int64) ([]*Milestone, error)

GetMilestonesByRepoID returns all milestones of a repository.

func (*Milestone) APIFormat

func (m *Milestone) APIFormat() *api.Milestone

APIFormat returns this Milestone in API format.

func (*Milestone) AfterSet

func (m *Milestone) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Milestone) BeforeInsert

func (m *Milestone) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*Milestone) BeforeUpdate

func (m *Milestone) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*Milestone) State

func (m *Milestone) State() api.StateType

State returns string representation of milestone status.

type Mirror

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

	Updated        time.Time `xorm:"-"`
	UpdatedUnix    int64
	NextUpdate     time.Time `xorm:"-"`
	NextUpdateUnix int64
	// contains filtered or unexported fields
}

Mirror represents mirror information of a repository.

func GetMirrorByRepoID

func GetMirrorByRepoID(repoID int64) (*Mirror, error)

GetMirrorByRepoID returns mirror information of a repository.

func (*Mirror) Address

func (m *Mirror) Address() string

Address returns mirror address from Git repository config without credentials.

func (*Mirror) AfterSet

func (m *Mirror) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Mirror) BeforeInsert

func (m *Mirror) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record

func (*Mirror) BeforeUpdate

func (m *Mirror) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*Mirror) FullAddress

func (m *Mirror) FullAddress() string

FullAddress returns mirror address from Git repository config.

func (*Mirror) SaveAddress

func (m *Mirror) SaveAddress(addr string) error

SaveAddress writes new address to Git repository config.

func (*Mirror) ScheduleNextUpdate

func (m *Mirror) ScheduleNextUpdate()

ScheduleNextUpdate calculates and sets next update time.

type MirrorRepositoryList

type MirrorRepositoryList []*Repository

MirrorRepositoryList contains the mirror repositories

func (MirrorRepositoryList) LoadAttributes

func (repos MirrorRepositoryList) LoadAttributes() error

LoadAttributes loads the attributes for the given MirrorRepositoryList

type NewIssueOptions

type NewIssueOptions struct {
	Repo        *Repository
	Issue       *Issue
	LableIDs    []int64
	Attachments []string // In UUID format.
	IsPull      bool
}

NewIssueOptions represents the options of a new issue.

type Notice

type Notice struct {
	ID          int64 `xorm:"pk autoincr"`
	Type        NoticeType
	Description string    `xorm:"TEXT"`
	Created     time.Time `xorm:"-"`
	CreatedUnix int64
}

Notice represents a system notice for admin.

func Notices

func Notices(page, pageSize int) ([]*Notice, error)

Notices returns number of notices in given page.

func (*Notice) AfterSet

func (n *Notice) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Notice) BeforeInsert

func (n *Notice) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*Notice) TrStr

func (n *Notice) TrStr() string

TrStr returns a translation format string.

type NoticeType

type NoticeType int

NoticeType describes the notice type

const (
	//NoticeRepository type
	NoticeRepository NoticeType = iota + 1
)

type OrgUser

type OrgUser struct {
	ID       int64 `xorm:"pk autoincr"`
	UID      int64 `xorm:"INDEX UNIQUE(s)"`
	OrgID    int64 `xorm:"INDEX UNIQUE(s)"`
	IsPublic bool
	IsOwner  bool
	NumTeams int
}

OrgUser represents an organization-user relation.

func GetOrgUsersByOrgID

func GetOrgUsersByOrgID(orgID int64) ([]*OrgUser, error)

GetOrgUsersByOrgID returns all organization-user relations by organization ID.

func GetOrgUsersByUserID

func GetOrgUsersByUserID(uid int64, all bool) ([]*OrgUser, error)

GetOrgUsersByUserID returns all organization-user relations by user ID.

type PAMConfig

type PAMConfig struct {
	ServiceName string // pam service (e.g. system-auth)
}

PAMConfig holds configuration for the PAM login source.

func (*PAMConfig) FromDB

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

FromDB fills up a PAMConfig from serialized format.

func (*PAMConfig) ToDB

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

ToDB exports a PAMConfig to a serialized format.

type PublicKey

type PublicKey struct {
	ID          int64      `xorm:"pk autoincr"`
	OwnerID     int64      `xorm:"INDEX NOT NULL"`
	Name        string     `xorm:"NOT NULL"`
	Fingerprint string     `xorm:"NOT NULL"`
	Content     string     `xorm:"TEXT NOT NULL"`
	Mode        AccessMode `xorm:"NOT NULL DEFAULT 2"`
	Type        KeyType    `xorm:"NOT NULL DEFAULT 1"`

	Created           time.Time `xorm:"-"`
	CreatedUnix       int64
	Updated           time.Time `xorm:"-"` // Note: Updated must below Created for AfterSet.
	UpdatedUnix       int64
	HasRecentActivity bool `xorm:"-"`
	HasUsed           bool `xorm:"-"`
}

PublicKey represents a user or deploy SSH public key.

func AddPublicKey

func AddPublicKey(ownerID int64, name, content string) (*PublicKey, error)

AddPublicKey adds new public key to database and authorized_keys file.

func GetPublicKeyByID

func GetPublicKeyByID(keyID int64) (*PublicKey, error)

GetPublicKeyByID returns public key by given ID.

func ListPublicKeys

func ListPublicKeys(uid int64) ([]*PublicKey, error)

ListPublicKeys returns a list of public keys belongs to given user.

func SearchPublicKeyByContent

func SearchPublicKeyByContent(content string) (*PublicKey, error)

SearchPublicKeyByContent searches content as prefix (leak e-mail part) and returns public key found.

func (*PublicKey) AfterSet

func (key *PublicKey) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*PublicKey) AuthorizedString

func (key *PublicKey) AuthorizedString() string

AuthorizedString returns formatted public key string for authorized_keys file.

func (*PublicKey) BeforeInsert

func (key *PublicKey) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record

func (*PublicKey) BeforeUpdate

func (key *PublicKey) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*PublicKey) OmitEmail

func (key *PublicKey) OmitEmail() string

OmitEmail returns content of public key without email address.

type PullRequest

type PullRequest struct {
	ID     int64 `xorm:"pk autoincr"`
	Type   PullRequestType
	Status PullRequestStatus

	IssueID int64  `xorm:"INDEX"`
	Issue   *Issue `xorm:"-"`
	Index   int64

	HeadRepoID   int64
	HeadRepo     *Repository `xorm:"-"`
	BaseRepoID   int64
	BaseRepo     *Repository `xorm:"-"`
	HeadUserName string
	HeadBranch   string
	BaseBranch   string
	MergeBase    string `xorm:"VARCHAR(40)"`

	HasMerged      bool
	MergedCommitID string `xorm:"VARCHAR(40)"`
	MergerID       int64
	Merger         *User     `xorm:"-"`
	Merged         time.Time `xorm:"-"`
	MergedUnix     int64
}

PullRequest represents relation between pull request and repositories.

func GetPullRequestByID

func GetPullRequestByID(id int64) (*PullRequest, error)

GetPullRequestByID returns a pull request by given ID.

func GetPullRequestByIndex added in v1.0.0

func GetPullRequestByIndex(repoID int64, index int64) (*PullRequest, error)

GetPullRequestByIndex returns a pull request by the given index

func GetPullRequestByIssueID

func GetPullRequestByIssueID(issueID int64) (*PullRequest, error)

GetPullRequestByIssueID returns pull request by given issue ID.

func GetUnmergedPullRequest

func GetUnmergedPullRequest(headRepoID, baseRepoID int64, headBranch, baseBranch string) (*PullRequest, error)

GetUnmergedPullRequest returnss a pull request that is open and has not been merged by given head/base and repo/branch.

func GetUnmergedPullRequestsByBaseInfo

func GetUnmergedPullRequestsByBaseInfo(repoID int64, branch string) ([]*PullRequest, error)

GetUnmergedPullRequestsByBaseInfo returnss all pull requests that are open and has not been merged by given base information (repo and branch).

func GetUnmergedPullRequestsByHeadInfo

func GetUnmergedPullRequestsByHeadInfo(repoID int64, branch string) ([]*PullRequest, error)

GetUnmergedPullRequestsByHeadInfo returnss all pull requests that are open and has not been merged by given head information (repo and branch).

func PullRequests added in v1.0.0

func PullRequests(baseRepoID int64, opts *PullRequestsOptions) ([]*PullRequest, int64, error)

PullRequests returns all pull requests for a base Repo by the given conditions

func (*PullRequest) APIFormat

func (pr *PullRequest) APIFormat() *api.PullRequest

APIFormat assumes following fields have been assigned with valid values: Required - Issue Optional - Merger

func (*PullRequest) AddToTaskQueue

func (pr *PullRequest) AddToTaskQueue()

AddToTaskQueue adds itself to pull request test task queue.

func (*PullRequest) AfterSet

func (pr *PullRequest) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object. Note: don't try to get Issue because will end up recursive querying.

func (*PullRequest) BeforeUpdate

func (pr *PullRequest) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating an object of this type.

func (*PullRequest) CanAutoMerge

func (pr *PullRequest) CanAutoMerge() bool

CanAutoMerge returns true if this pull request can be merged automatically.

func (*PullRequest) GetBaseRepo

func (pr *PullRequest) GetBaseRepo() (err error)

GetBaseRepo loads the target repository

func (*PullRequest) GetHeadRepo

func (pr *PullRequest) GetHeadRepo() error

GetHeadRepo loads the head repository

func (*PullRequest) IsChecking

func (pr *PullRequest) IsChecking() bool

IsChecking returns true if this pull request is still checking conflict.

func (*PullRequest) LoadAttributes

func (pr *PullRequest) LoadAttributes() error

LoadAttributes loads pull request attributes from database

func (*PullRequest) LoadIssue

func (pr *PullRequest) LoadIssue() (err error)

LoadIssue loads issue information from database

func (*PullRequest) Merge

func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error)

Merge merges pull request to base repository. FIXME: add repoWorkingPull make sure two merges does not happen at same time.

func (*PullRequest) PushToBaseRepo

func (pr *PullRequest) PushToBaseRepo() (err error)

PushToBaseRepo pushes commits from branches of head repository to corresponding branches of base repository. FIXME: Only push branches that are actually updates?

func (*PullRequest) Update

func (pr *PullRequest) Update() error

Update updates all fields of pull request.

func (*PullRequest) UpdateCols

func (pr *PullRequest) UpdateCols(cols ...string) error

UpdateCols updates specific fields of pull request.

func (*PullRequest) UpdatePatch

func (pr *PullRequest) UpdatePatch() (err error)

UpdatePatch generates and saves a new patch.

type PullRequestList

type PullRequestList []*PullRequest

PullRequestList defines a list of pull requests

func (PullRequestList) LoadAttributes

func (prs PullRequestList) LoadAttributes() error

LoadAttributes load all the prs attributes

type PullRequestStatus

type PullRequestStatus int

PullRequestStatus defines pull request status

const (
	PullRequestStatusConflict PullRequestStatus = iota
	PullRequestStatusChecking
	PullRequestStatusMergeable
)

Enumerate all the pull request status

type PullRequestType

type PullRequestType int

PullRequestType defines pull request type

const (
	PullRequestGitea PullRequestType = iota
	PullRequestGit
)

Enumerate all the pull request types

type PullRequestsOptions added in v1.0.0

type PullRequestsOptions struct {
	Page        int
	State       string
	SortType    string
	Labels      []string
	MilestoneID int64
}

PullRequestsOptions holds the options for PRs

type PushCommit

type PushCommit struct {
	Sha1           string
	Message        string
	AuthorEmail    string
	AuthorName     string
	CommitterEmail string
	CommitterName  string
	Timestamp      time.Time
}

PushCommit represents a commit in a push operation.

func CommitToPushCommit

func CommitToPushCommit(commit *git.Commit) *PushCommit

CommitToPushCommit transforms a git.Commit to PushCommit type.

type PushCommits

type PushCommits struct {
	Len        int
	Commits    []*PushCommit
	CompareURL string
	// contains filtered or unexported fields
}

PushCommits represents list of commits in a push operation.

func ListToPushCommits

func ListToPushCommits(l *list.List) *PushCommits

ListToPushCommits transforms a list.List to PushCommits type.

func NewPushCommits

func NewPushCommits() *PushCommits

NewPushCommits creates a new PushCommits object.

func (pc *PushCommits) AvatarLink(email string) string

AvatarLink tries to match user in database with e-mail in order to show custom avatar, and falls back to general avatar link.

func (*PushCommits) ToAPIPayloadCommits added in v1.0.0

func (pc *PushCommits) ToAPIPayloadCommits(repoLink string) []*api.PayloadCommit

ToAPIPayloadCommits converts a PushCommits object to api.PayloadCommit format.

type PushUpdateOptions

type PushUpdateOptions struct {
	PusherID     int64
	PusherName   string
	RepoUserName string
	RepoName     string
	RefFullName  string
	OldCommitID  string
	NewCommitID  string
}

PushUpdateOptions defines the push update options

type RawDiffType

type RawDiffType string

RawDiffType type of a raw diff.

const (
	RawDiffNormal RawDiffType = "diff"
	RawDiffPatch  RawDiffType = "patch"
)

RawDiffType possible values.

type Release

type Release struct {
	ID               int64 `xorm:"pk autoincr"`
	RepoID           int64
	PublisherID      int64
	Publisher        *User `xorm:"-"`
	TagName          string
	LowerTagName     string
	Target           string
	Title            string
	Sha1             string `xorm:"VARCHAR(40)"`
	NumCommits       int64
	NumCommitsBehind int64  `xorm:"-"`
	Note             string `xorm:"TEXT"`
	IsDraft          bool   `xorm:"NOT NULL DEFAULT false"`
	IsPrerelease     bool

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
}

Release represents a release of repository.

func GetRelease

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

GetRelease returns release by given ID.

func GetReleaseByID

func GetReleaseByID(id int64) (*Release, error)

GetReleaseByID returns release with given ID.

func GetReleasesByRepoID

func GetReleasesByRepoID(repoID int64, page, pageSize int) (rels []*Release, err error)

GetReleasesByRepoID returns a list of releases of repository.

func (*Release) AfterSet

func (r *Release) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Release) BeforeInsert

func (r *Release) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

type Repository

type Repository struct {
	ID            int64  `xorm:"pk autoincr"`
	OwnerID       int64  `xorm:"UNIQUE(s)"`
	Owner         *User  `xorm:"-"`
	LowerName     string `xorm:"UNIQUE(s) INDEX NOT NULL"`
	Name          string `xorm:"INDEX NOT NULL"`
	Description   string
	Website       string
	DefaultBranch string

	NumWatches          int
	NumStars            int
	NumForks            int
	NumIssues           int
	NumClosedIssues     int
	NumOpenIssues       int `xorm:"-"`
	NumPulls            int
	NumClosedPulls      int
	NumOpenPulls        int `xorm:"-"`
	NumMilestones       int `xorm:"NOT NULL DEFAULT 0"`
	NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"`
	NumOpenMilestones   int `xorm:"-"`
	NumTags             int `xorm:"-"`

	IsPrivate bool
	IsBare    bool

	IsMirror bool
	*Mirror  `xorm:"-"`

	// Advanced settings
	EnableWiki            bool `xorm:"NOT NULL DEFAULT true"`
	EnableExternalWiki    bool
	ExternalWikiURL       string
	EnableIssues          bool `xorm:"NOT NULL DEFAULT true"`
	EnableExternalTracker bool
	ExternalTrackerURL    string
	ExternalTrackerFormat string
	ExternalTrackerStyle  string
	ExternalMetas         map[string]string `xorm:"-"`
	EnablePulls           bool              `xorm:"NOT NULL DEFAULT true"`

	IsFork   bool `xorm:"NOT NULL DEFAULT false"`
	ForkID   int64
	BaseRepo *Repository `xorm:"-"`

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
	Updated     time.Time `xorm:"-"`
	UpdatedUnix int64
}

Repository represents a git repository.

func CleanUpMigrateInfo

func CleanUpMigrateInfo(repo *Repository) (*Repository, error)

CleanUpMigrateInfo finishes migrating repository and/or wiki with things that don't need to be done for mirrors.

func CreateRepository

func CreateRepository(u *User, opts CreateRepoOptions) (_ *Repository, err error)

CreateRepository creates a repository for given user or organization.

func ForkRepository

func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error)

ForkRepository forks a repository

func GetRecentUpdatedRepositories

func GetRecentUpdatedRepositories(page, pageSize int) (repos []*Repository, err error)

GetRecentUpdatedRepositories returns the list of repositories that are recently updated.

func GetRepositoriesByForkID

func GetRepositoriesByForkID(forkID int64) ([]*Repository, error)

GetRepositoriesByForkID returns all repositories with given fork ID.

func GetRepositoryByID

func GetRepositoryByID(id int64) (*Repository, error)

GetRepositoryByID returns the repository by given id if exists.

func GetRepositoryByName

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

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

func GetRepositoryByRef

func GetRepositoryByRef(ref string) (*Repository, error)

GetRepositoryByRef returns a Repository specified by a GFM reference. See https://help.github.com/articles/writing-on-github#references for more information on the syntax.

func GetStarredRepos added in v1.0.0

func GetStarredRepos(userID int64, private bool) ([]*Repository, error)

GetStarredRepos returns the repos starred by a particular user

func GetUserMirrorRepositories

func GetUserMirrorRepositories(userID int64) ([]*Repository, error)

GetUserMirrorRepositories returns a list of mirror repositories of given user.

func GetUserRepositories

func GetUserRepositories(userID int64, private bool, page, pageSize int) ([]*Repository, error)

GetUserRepositories returns a list of repositories of given user.

func HasForkedRepo

func HasForkedRepo(ownerID, repoID int64) (*Repository, bool)

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

func MigrateRepository

func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error)

MigrateRepository migrates a existing repository from other project hosting.

func Repositories

func Repositories(page, pageSize int) (_ []*Repository, err error)

Repositories returns all repositories

func RepositoriesWithUsers

func RepositoriesWithUsers(page, pageSize int) (_ []*Repository, err error)

RepositoriesWithUsers returns number of repos in given page.

func SearchRepositoryByName

func SearchRepositoryByName(opts *SearchRepoOptions) (repos []*Repository, _ int64, _ error)

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

func (*Repository) APIFormat

func (repo *Repository) APIFormat(mode AccessMode) *api.Repository

APIFormat converts a Repository to api.Repository

func (*Repository) AddCollaborator

func (repo *Repository) AddCollaborator(u *User) error

AddCollaborator adds new collaboration to a repository with default access mode.

func (*Repository) AddWikiPage

func (repo *Repository) AddWikiPage(doer *User, title, content, message string) error

AddWikiPage adds a new wiki page with a given title.

func (*Repository) AfterSet

func (repo *Repository) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (*Repository) AllowsPulls

func (repo *Repository) AllowsPulls() bool

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

func (*Repository) BeforeInsert

func (repo *Repository) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*Repository) BeforeUpdate

func (repo *Repository) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*Repository) CanBeForked

func (repo *Repository) CanBeForked() bool

CanBeForked returns true if repository meets the requirements of being forked.

func (*Repository) CanEnableEditor

func (repo *Repository) CanEnableEditor() bool

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

func (*Repository) CanEnablePulls

func (repo *Repository) CanEnablePulls() bool

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

func (*Repository) ChangeCollaborationAccessMode

func (repo *Repository) ChangeCollaborationAccessMode(uid int64, mode AccessMode) error

ChangeCollaborationAccessMode sets new access mode for the collaboration.

func (*Repository) CheckoutNewBranch

func (repo *Repository) CheckoutNewBranch(oldBranch, newBranch string) error

CheckoutNewBranch checks out a new branch

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

CloneLink returns clone URLs of repository.

func (*Repository) ComposeCompareURL

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

ComposeCompareURL returns the repository comparison URL

func (*Repository) ComposeMetas

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

ComposeMetas composes a map of metas for rendering external issue tracker URL.

func (*Repository) CreateNewBranch

func (repo *Repository) CreateNewBranch(doer *User, oldBranchName, branchName string) (err error)

CreateNewBranch creates a new repository branch

func (*Repository) DeleteCollaboration

func (repo *Repository) DeleteCollaboration(uid int64) (err error)

DeleteCollaboration removes collaboration relation between the user and repository.

func (*Repository) DeleteRepoFile

func (repo *Repository) DeleteRepoFile(doer *User, opts DeleteRepoFileOptions) (err error)

DeleteRepoFile deletes a repository file

func (*Repository) DeleteWiki

func (repo *Repository) DeleteWiki()

DeleteWiki removes the actual and local copy of repository wiki.

func (*Repository) DeleteWikiPage

func (repo *Repository) DeleteWikiPage(doer *User, title string) (err error)

DeleteWikiPage deletes a wiki page identified by its title.

func (*Repository) DescriptionHTML added in v1.0.0

func (repo *Repository) DescriptionHTML() template.HTML

DescriptionHTML does special handles to description and return HTML string.

func (*Repository) DiscardLocalRepoBranchChanges

func (repo *Repository) DiscardLocalRepoBranchChanges(branch string) error

DiscardLocalRepoBranchChanges discards the local repository branch changes

func (*Repository) EditWikiPage

func (repo *Repository) EditWikiPage(doer *User, oldTitle, title, content, message string) error

EditWikiPage updates a wiki page identified by its title, optionally also changing title.

func (*Repository) FullName

func (repo *Repository) FullName() string

FullName returns the repository full name

func (*Repository) GetAssigneeByID

func (repo *Repository) GetAssigneeByID(userID int64) (*User, error)

GetAssigneeByID returns the user that has write access of repository by given ID.

func (*Repository) GetAssignees

func (repo *Repository) GetAssignees() (_ []*User, err error)

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

func (*Repository) GetBaseRepo

func (repo *Repository) GetBaseRepo() (err error)

GetBaseRepo returns the base repository

func (*Repository) GetBranch

func (repo *Repository) GetBranch(branch string) (*Branch, error)

GetBranch returns a branch by it's name

func (*Repository) GetBranches

func (repo *Repository) GetBranches() ([]*Branch, error)

GetBranches returns all the branches of a repository

func (*Repository) GetCollaborators

func (repo *Repository) GetCollaborators() ([]*Collaborator, error)

GetCollaborators returns the collaborators for a repository

func (*Repository) GetDiffPreview

func (repo *Repository) GetDiffPreview(branch, treePath, content string) (diff *Diff, err error)

GetDiffPreview produces and returns diff result of a file which is not yet committed.

func (*Repository) GetForks

func (repo *Repository) GetForks() ([]*Repository, error)

GetForks returns all the forks of the repository

func (*Repository) GetMilestoneByID

func (repo *Repository) GetMilestoneByID(milestoneID int64) (*Milestone, error)

GetMilestoneByID returns the milestone belongs to repository by given ID.

func (*Repository) GetMirror

func (repo *Repository) GetMirror() (err error)

GetMirror sets the repository mirror, returns an error upon failure

func (*Repository) GetOwner

func (repo *Repository) GetOwner() error

GetOwner returns the repository owner

func (*Repository) GetStargazers

func (repo *Repository) GetStargazers(page int) ([]*User, error)

GetStargazers returns the users who gave stars to this repository

func (*Repository) GetWatchers

func (repo *Repository) GetWatchers(page int) ([]*User, error)

GetWatchers returns range of users watching given repository.

func (*Repository) GitConfigPath

func (repo *Repository) GitConfigPath() string

GitConfigPath returns the repository git config path

func (*Repository) HTMLURL

func (repo *Repository) HTMLURL() string

HTMLURL returns the repository HTML URL

func (*Repository) HasAccess

func (repo *Repository) HasAccess(u *User) bool

HasAccess returns true when user has access to this repository

func (*Repository) HasWiki

func (repo *Repository) HasWiki() bool

HasWiki returns true if repository has wiki.

func (*Repository) InitWiki

func (repo *Repository) InitWiki() error

InitWiki initializes a wiki for repository, it does nothing when repository already has wiki.

func (*Repository) IsOwnedBy

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

IsOwnedBy returns true when user owns this repository

func (*Repository) IssueStats

func (repo *Repository) IssueStats(uid int64, filterMode int, isPull bool) (int64, int64)

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

func (repo *Repository) Link() string

Link returns the repository link

func (*Repository) LocalCopyPath

func (repo *Repository) LocalCopyPath() string

LocalCopyPath returns the local repository copy path

func (*Repository) LocalWikiPath

func (repo *Repository) LocalWikiPath() string

LocalWikiPath returns the path to the local wiki repository (?).

func (*Repository) MustOwner

func (repo *Repository) MustOwner() *User

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

func (*Repository) NextIssueIndex

func (repo *Repository) NextIssueIndex() int64

NextIssueIndex returns the next issue index FIXME: should have a mutex to prevent producing same index for two issues that are created closely enough.

func (*Repository) PatchPath

func (repo *Repository) PatchPath(index int64) (string, error)

PatchPath returns corresponding patch file path of repository by given issue ID.

func (*Repository) RecalculateAccesses

func (repo *Repository) RecalculateAccesses() error

RecalculateAccesses recalculates all accesses for repository.

func (repo *Repository) RelLink() string

RelLink returns the repository relative link

func (*Repository) RepoPath

func (repo *Repository) RepoPath() string

RepoPath returns the repository path

func (*Repository) SavePatch

func (repo *Repository) SavePatch(index int64, patch []byte) error

SavePatch saves patch data to corresponding location by given issue ID.

func (*Repository) UpdateLocalCopyBranch

func (repo *Repository) UpdateLocalCopyBranch(branch string) error

UpdateLocalCopyBranch makes sure local copy of repository in given branch is up-to-date.

func (*Repository) UpdateLocalWiki

func (repo *Repository) UpdateLocalWiki() error

UpdateLocalWiki makes sure the local copy of repository wiki is up-to-date.

func (*Repository) UpdateRepoFile

func (repo *Repository) UpdateRepoFile(doer *User, opts UpdateRepoFileOptions) (err error)

UpdateRepoFile adds or updates a file in repository.

func (*Repository) UploadRepoFiles

func (repo *Repository) UploadRepoFiles(doer *User, opts UploadRepoFileOptions) (err error)

UploadRepoFiles uploads files to a repository

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

WikiCloneLink returns clone URLs of repository wiki.

func (*Repository) WikiPath

func (repo *Repository) WikiPath() string

WikiPath returns wiki data path for given repository.

type RepositoryList

type RepositoryList []*Repository

RepositoryList contains a list of repositories

func (RepositoryList) LoadAttributes

func (repos RepositoryList) LoadAttributes() error

LoadAttributes loads the attributes for the given RepositoryList

type SMTPConfig

type SMTPConfig struct {
	Auth           string
	Host           string
	Port           int
	AllowedDomains string `xorm:"TEXT"`
	TLS            bool
	SkipVerify     bool
}

SMTPConfig holds configuration for the SMTP login source.

func (*SMTPConfig) FromDB

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

FromDB fills up an SMTPConfig from serialized format.

func (*SMTPConfig) ToDB

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

ToDB exports an SMTPConfig to a serialized format.

type SearchRepoOptions

type SearchRepoOptions struct {
	Keyword  string
	OwnerID  int64
	OrderBy  string
	Private  bool // Include private repositories in results
	Page     int
	PageSize int // Can be smaller than or equal to setting.ExplorePagingNum
}

SearchRepoOptions holds the search options

type SearchUserOptions

type SearchUserOptions struct {
	Keyword  string
	Type     UserType
	OrderBy  string
	Page     int
	PageSize int // Can be smaller than or equal to setting.UI.ExplorePagingNum
}

SearchUserOptions contains the options for searching

type SlackAttachment

type SlackAttachment struct {
	Fallback string `json:"fallback"`
	Color    string `json:"color"`
	Title    string `json:"title"`
	Text     string `json:"text"`
}

SlackAttachment contains the slack message

type SlackMeta

type SlackMeta struct {
	Channel  string `json:"channel"`
	Username string `json:"username"`
	IconURL  string `json:"icon_url"`
	Color    string `json:"color"`
}

SlackMeta contains the slack metdata

type SlackPayload

type SlackPayload struct {
	Channel     string            `json:"channel"`
	Text        string            `json:"text"`
	Username    string            `json:"username"`
	IconURL     string            `json:"icon_url"`
	UnfurlLinks int               `json:"unfurl_links"`
	LinkNames   int               `json:"link_names"`
	Attachments []SlackAttachment `json:"attachments"`
}

SlackPayload contains the information about the slack channel

func GetSlackPayload

func GetSlackPayload(p api.Payloader, event HookEventType, meta string) (*SlackPayload, error)

GetSlackPayload converts a slack webhook into a SlackPayload

func (*SlackPayload) JSONPayload

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

JSONPayload Marshals the SlackPayload to json

func (*SlackPayload) SetSecret

func (p *SlackPayload) SetSecret(_ string)

SetSecret sets the slack secret

type Star

type Star struct {
	ID     int64 `xorm:"pk autoincr"`
	UID    int64 `xorm:"UNIQUE(s)"`
	RepoID int64 `xorm:"UNIQUE(s)"`
}

Star contains the star information

type Statistic

type Statistic struct {
	Counter struct {
		User, Org, PublicKey,
		Repo, Watch, Star, Action, Access,
		Issue, Comment, Oauth, Follow,
		Mirror, Release, LoginSource, Webhook,
		Milestone, Label, HookTask,
		Team, UpdateTask, Attachment int64
	}
}

Statistic contains the database statistics

func GetStatistic

func GetStatistic() (stats Statistic)

GetStatistic returns the database statistics

type Team

type Team struct {
	ID          int64 `xorm:"pk autoincr"`
	OrgID       int64 `xorm:"INDEX"`
	LowerName   string
	Name        string
	Description string
	Authorize   AccessMode
	Repos       []*Repository `xorm:"-"`
	Members     []*User       `xorm:"-"`
	NumRepos    int
	NumMembers  int
}

Team represents a organization team.

func GetTeam

func GetTeam(orgID int64, name string) (*Team, error)

GetTeam returns team by given team name and organization.

func GetTeamByID

func GetTeamByID(teamID int64) (*Team, error)

GetTeamByID returns team by given ID.

func GetUserTeams

func GetUserTeams(orgID, userID int64) ([]*Team, error)

GetUserTeams returns all teams that user belongs to in given organization.

func (*Team) AddMember

func (t *Team) AddMember(userID int64) error

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

func (*Team) AddRepository

func (t *Team) AddRepository(repo *Repository) (err error)

AddRepository adds new repository to team of organization.

func (*Team) GetMembers

func (t *Team) GetMembers() (err error)

GetMembers returns all members in team of organization.

func (*Team) GetRepositories

func (t *Team) GetRepositories() error

GetRepositories returns all repositories in team of organization.

func (*Team) HasRepository

func (t *Team) HasRepository(repoID int64) bool

HasRepository returns true if given repository belong to team.

func (*Team) IsMember

func (t *Team) IsMember(userID int64) bool

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

func (*Team) IsOwnerTeam

func (t *Team) IsOwnerTeam() bool

IsOwnerTeam returns true if team is owner team.

func (*Team) RemoveMember

func (t *Team) RemoveMember(userID int64) error

RemoveMember removes member from team of organization.

func (*Team) RemoveRepository

func (t *Team) RemoveRepository(repoID int64) error

RemoveRepository removes repository from team of organization.

type TeamRepo

type TeamRepo struct {
	ID     int64 `xorm:"pk autoincr"`
	OrgID  int64 `xorm:"INDEX"`
	TeamID int64 `xorm:"UNIQUE(s)"`
	RepoID int64 `xorm:"UNIQUE(s)"`
}

TeamRepo represents an team-repository relation.

type TeamUser

type TeamUser struct {
	ID     int64 `xorm:"pk autoincr"`
	OrgID  int64 `xorm:"INDEX"`
	TeamID int64 `xorm:"UNIQUE(s)"`
	UID    int64 `xorm:"UNIQUE(s)"`
}

TeamUser represents an team-user relation.

type UpdateRepoFileOptions

type UpdateRepoFileOptions struct {
	LastCommitID string
	OldBranch    string
	NewBranch    string
	OldTreeName  string
	NewTreeName  string
	Message      string
	Content      string
	IsNewFile    bool
}

UpdateRepoFileOptions holds the repository file update options

type UpdateTask

type UpdateTask struct {
	ID          int64  `xorm:"pk autoincr"`
	UUID        string `xorm:"index"`
	RefName     string
	OldCommitID string
	NewCommitID string
}

UpdateTask defines an UpdateTask

func GetUpdateTaskByUUID

func GetUpdateTaskByUUID(uuid string) (*UpdateTask, error)

GetUpdateTaskByUUID returns update task by given UUID.

type Upload

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

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

func GetUploadByUUID

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

GetUploadByUUID returns the Upload by UUID

func GetUploadsByUUIDs

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

GetUploadsByUUIDs returns multiple uploads by UUIDS

func NewUpload

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

NewUpload creates a new upload object.

func (*Upload) LocalPath

func (upload *Upload) LocalPath() string

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

type UploadRepoFileOptions

type UploadRepoFileOptions struct {
	LastCommitID string
	OldBranch    string
	NewBranch    string
	TreePath     string
	Message      string
	Files        []string // In UUID format.
}

UploadRepoFileOptions contains the uploaded repository file options

type User

type User struct {
	ID        int64  `xorm:"pk autoincr"`
	LowerName string `xorm:"UNIQUE NOT NULL"`
	Name      string `xorm:"UNIQUE NOT NULL"`
	FullName  string
	// Email is the primary email address (to be used for communication)
	Email       string `xorm:"NOT NULL"`
	Passwd      string `xorm:"NOT NULL"`
	LoginType   LoginType
	LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
	LoginName   string
	Type        UserType
	OwnedOrgs   []*User       `xorm:"-"`
	Orgs        []*User       `xorm:"-"`
	Repos       []*Repository `xorm:"-"`
	Location    string
	Website     string
	Rands       string `xorm:"VARCHAR(10)"`
	Salt        string `xorm:"VARCHAR(10)"`

	Created       time.Time `xorm:"-"`
	CreatedUnix   int64
	Updated       time.Time `xorm:"-"`
	UpdatedUnix   int64
	LastLogin     time.Time `xorm:"-"`
	LastLoginUnix int64

	// Remember visibility choice for convenience, true for private
	LastRepoVisibility bool
	// Maximum repository creation limit, -1 means use global default
	MaxRepoCreation int `xorm:"NOT NULL DEFAULT -1"`

	// Permissions
	IsActive         bool // Activate primary email
	IsAdmin          bool
	AllowGitHook     bool
	AllowImportLocal bool // Allow migrate repository by local path
	ProhibitLogin    bool

	// Avatar
	Avatar          string `xorm:"VARCHAR(2048) NOT NULL"`
	AvatarEmail     string `xorm:"NOT NULL"`
	UseCustomAvatar bool

	// Counters
	NumFollowers int
	NumFollowing int `xorm:"NOT NULL DEFAULT 0"`
	NumStars     int
	NumRepos     int

	// For organization
	Description string
	NumTeams    int
	NumMembers  int
	Teams       []*Team `xorm:"-"`
	Members     []*User `xorm:"-"`

	// Preferences
	DiffViewStyle string `xorm:"NOT NULL DEFAULT ''"`
}

User represents the object of individual and member of organization.

func ExternalUserLogin

func ExternalUserLogin(user *User, login, password string, source *LoginSource, autoRegister bool) (*User, error)

ExternalUserLogin attempts a login using external source types.

func GetAssigneeByID

func GetAssigneeByID(repo *Repository, userID int64) (*User, error)

GetAssigneeByID returns the user with write access of repository by given ID.

func GetOrgByName

func GetOrgByName(name string) (*User, error)

GetOrgByName returns organization by given name.

func GetOrgsByUserID

func GetOrgsByUserID(userID int64, showAll bool) ([]*User, error)

GetOrgsByUserID returns a list of organizations that the given user ID has joined.

func GetOrgsByUserIDDesc

func GetOrgsByUserIDDesc(userID int64, desc string, showAll bool) ([]*User, error)

GetOrgsByUserIDDesc returns a list of organizations that the given user ID has joined, ordered descending by the given condition.

func GetOwnedOrgsByUserID

func GetOwnedOrgsByUserID(userID int64) ([]*User, error)

GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID.

func GetOwnedOrgsByUserIDDesc

func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error)

GetOwnedOrgsByUserIDDesc returns a list of organizations are owned by given user ID, ordered descending by the given condition.

func GetTeamMembers

func GetTeamMembers(teamID int64) ([]*User, error)

GetTeamMembers returns all members in given team of organization.

func GetUserByEmail

func GetUserByEmail(email string) (*User, error)

GetUserByEmail returns the user object by given e-mail if exists.

func GetUserByID

func GetUserByID(id int64) (*User, error)

GetUserByID returns the user object by given ID if exists.

func GetUserByKeyID

func GetUserByKeyID(keyID int64) (*User, error)

GetUserByKeyID get user information by user's public key id

func GetUserByName

func GetUserByName(name string) (*User, error)

GetUserByName returns user by given name.

func GetUsersByIDs added in v1.0.0

func GetUsersByIDs(ids []int64) ([]*User, error)

GetUsersByIDs returns all resolved users from a list of Ids.

func LoginViaLDAP

func LoginViaLDAP(user *User, login, password string, source *LoginSource, autoRegister bool) (*User, error)

LoginViaLDAP queries if login/password is valid against the LDAP directory pool, and create a local user if success when enabled.

func LoginViaPAM

func LoginViaPAM(user *User, login, password string, sourceID int64, cfg *PAMConfig, autoRegister bool) (*User, error)

LoginViaPAM queries if login/password is valid against the PAM, and create a local user if success when enabled.

func LoginViaSMTP

func LoginViaSMTP(user *User, login, password string, sourceID int64, cfg *SMTPConfig, autoRegister bool) (*User, error)

LoginViaSMTP queries if login/password is valid against the SMTP, and create a local user if success when enabled.

func NewGhostUser

func NewGhostUser() *User

NewGhostUser creates and returns a fake user for someone has deleted his/her account.

func Organizations

func Organizations(page, pageSize int) ([]*User, error)

Organizations returns number of organizations in given page.

func SearchUserByName

func SearchUserByName(opts *SearchUserOptions) (users []*User, _ int64, _ error)

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

func UserSignIn

func UserSignIn(username, password string) (*User, error)

UserSignIn validates user name and password.

func Users

func Users(page, pageSize int) ([]*User, error)

Users returns number of users in given page.

func ValidateCommitWithEmail

func ValidateCommitWithEmail(c *git.Commit) *User

ValidateCommitWithEmail chceck if author's e-mail of commit is corresponsind to a user.

func VerifyUserActiveCode

func VerifyUserActiveCode(code string) (user *User)

VerifyUserActiveCode verifies active code when active account

func (*User) APIFormat

func (u *User) APIFormat() *api.User

APIFormat converts a User to api.User

func (*User) AddMember

func (org *User) AddMember(uid int64) error

AddMember adds new member to organization.

func (*User) AfterSet

func (u *User) AfterSet(colName string, _ xorm.Cell)

AfterSet is invoked from XORM after setting the value of a field of this object.

func (u *User) AvatarLink() string

AvatarLink returns user avatar absolute link.

func (*User) BeforeInsert

func (u *User) BeforeInsert()

BeforeInsert is invoked from XORM before inserting an object of this type.

func (*User) BeforeUpdate

func (u *User) BeforeUpdate()

BeforeUpdate is invoked from XORM before updating this object.

func (*User) CanCreateRepo

func (u *User) CanCreateRepo() bool

CanCreateRepo returns if user login can create a repository

func (*User) CanEditGitHook

func (u *User) CanEditGitHook() bool

CanEditGitHook returns true if user can edit Git hooks.

func (*User) CanImportLocal

func (u *User) CanImportLocal() bool

CanImportLocal returns true if user can migrate repository by local path.

func (*User) CustomAvatarPath

func (u *User) CustomAvatarPath() string

CustomAvatarPath returns user custom avatar file path.

func (u *User) DashboardLink() string

DashboardLink returns the user dashboard page link.

func (*User) DeleteAvatar

func (u *User) DeleteAvatar() error

DeleteAvatar deletes the user's custom avatar.

func (*User) DisplayName

func (u *User) DisplayName() string

DisplayName returns full name if it's not empty, returns username otherwise.

func (*User) EncodePasswd

func (u *User) EncodePasswd()

EncodePasswd encodes password to safe format.

func (*User) GenerateActivateCode

func (u *User) GenerateActivateCode() string

GenerateActivateCode generates an activate code based on user information.

func (*User) GenerateEmailActivateCode

func (u *User) GenerateEmailActivateCode(email string) string

GenerateEmailActivateCode generates an activate code based on user information and given e-mail.

func (*User) GenerateRandomAvatar

func (u *User) GenerateRandomAvatar() error

GenerateRandomAvatar generates a random avatar for user.

func (*User) GetAccessibleRepositories

func (user *User) GetAccessibleRepositories(limit int) (repos []*Repository, _ error)

GetAccessibleRepositories finds repositories which the user has access but does not own. If limit is smaller than 1 means returns all found results.

func (*User) GetFollowers

func (u *User) GetFollowers(page int) ([]*User, error)

GetFollowers returns range of user's followers.

func (*User) GetFollowing

func (u *User) GetFollowing(page int) ([]*User, error)

GetFollowing returns range of user's following.

func (*User) GetMembers

func (org *User) GetMembers() error

GetMembers returns all members of organization.

func (*User) GetMirrorRepositories

func (u *User) GetMirrorRepositories() ([]*Repository, error)

GetMirrorRepositories returns mirror repositories that user owns, including private repositories.

func (*User) GetOrganizationCount

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

GetOrganizationCount returns count of membership of organization of user.

func (*User) GetOrganizations

func (u *User) GetOrganizations(all bool) error

GetOrganizations returns all organizations that user belongs to.

func (*User) GetOwnedOrganizations

func (u *User) GetOwnedOrganizations() (err error)

GetOwnedOrganizations returns all organizations that user owns.

func (*User) GetOwnerTeam

func (org *User) GetOwnerTeam() (*Team, error)

GetOwnerTeam returns owner team of organization.

func (*User) GetRepositories

func (u *User) GetRepositories(page, pageSize int) (err error)

GetRepositories returns repositories that user owns, including private repositories.

func (*User) GetRepositoryAccesses

func (user *User) GetRepositoryAccesses() (map[*Repository]AccessMode, error)

GetRepositoryAccesses finds all repositories with their access mode where a user has access but does not own.

func (*User) GetTeam

func (org *User) GetTeam(name string) (*Team, error)

GetTeam returns named team of organization.

func (*User) GetTeams

func (org *User) GetTeams() error

GetTeams returns all teams that belong to organization.

func (*User) GetUserMirrorRepositories

func (org *User) GetUserMirrorRepositories(userID int64) ([]*Repository, error)

GetUserMirrorRepositories returns mirror repositories of the user that the user with the given userID has access to.

func (*User) GetUserRepositories

func (org *User) GetUserRepositories(userID int64, page, pageSize int) ([]*Repository, int64, error)

GetUserRepositories returns a range of repositories in organization that the user with the given userID has access to, and total number of records based on given condition.

func (*User) GetUserTeamIDs

func (org *User) GetUserTeamIDs(userID int64) ([]int64, error)

GetUserTeamIDs returns of all team IDs of the organization that user is member of.

func (*User) GetUserTeams

func (org *User) GetUserTeams(userID int64) ([]*Team, error)

GetUserTeams returns all teams that belong to user, and that the user has joined.

func (*User) HasForkedRepo

func (u *User) HasForkedRepo(repoID int64) bool

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

func (u *User) HomeLink() string

HomeLink returns the user or organization home page link.

func (*User) IsAdminOfRepo

func (u *User) IsAdminOfRepo(repo *Repository) bool

IsAdminOfRepo returns true if user has admin or higher access of repository.

func (*User) IsFollowing

func (u *User) IsFollowing(followID int64) bool

IsFollowing returns true if user is following followID.

func (*User) IsLocal

func (u *User) IsLocal() bool

IsLocal returns true if user login type is LoginPlain.

func (*User) IsOrgMember

func (org *User) IsOrgMember(uid int64) bool

IsOrgMember returns true if given user is member of organization.

func (*User) IsOrganization

func (u *User) IsOrganization() bool

IsOrganization returns true if user is actually a organization.

func (*User) IsOwnedBy

func (org *User) IsOwnedBy(uid int64) bool

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

func (*User) IsPublicMember

func (u *User) IsPublicMember(orgID int64) bool

IsPublicMember returns true if user public his/her membership in give organization.

func (*User) IsUserOrgOwner

func (u *User) IsUserOrgOwner(orgID int64) bool

IsUserOrgOwner returns true if user is in the owner team of given organization.

func (*User) IsWriterOfRepo

func (u *User) IsWriterOfRepo(repo *Repository) bool

IsWriterOfRepo returns true if user has write access to given repository.

func (*User) NewGitSig

func (u *User) NewGitSig() *git.Signature

NewGitSig generates and returns the signature of given user.

func (u *User) RelAvatarLink() string

RelAvatarLink returns relative avatar link to the site domain, which includes app sub-url as prefix. However, it is possible to return full URL if user enables Gravatar-like service.

func (*User) RemoveMember

func (org *User) RemoveMember(uid int64) error

RemoveMember removes member from organization.

func (*User) RemoveOrgRepo

func (org *User) RemoveOrgRepo(repoID int64) error

RemoveOrgRepo removes all team-repository relations of organization.

func (*User) RepoCreationNum

func (u *User) RepoCreationNum() int

RepoCreationNum returns the number of repositories created by the user

func (*User) SetLastLogin added in v1.0.0

func (u *User) SetLastLogin()

SetLastLogin set time to last login

func (*User) ShortName

func (u *User) ShortName(length int) string

ShortName ellipses username to length

func (*User) UpdateDiffViewStyle added in v1.0.0

func (u *User) UpdateDiffViewStyle(style string) error

UpdateDiffViewStyle updates the users diff view style

func (*User) UploadAvatar

func (u *User) UploadAvatar(data []byte) error

UploadAvatar saves custom avatar for user. FIXME: split uploads to different subdirs in case we have massive users.

func (*User) ValidatePassword

func (u *User) ValidatePassword(passwd string) bool

ValidatePassword checks if given password matches the one belongs to the user.

type UserCommit

type UserCommit struct {
	User *User
	*git.Commit
}

UserCommit represents a commit with validation of user.

type UserType

type UserType int

UserType defines the user type

const (
	// UserTypeIndividual defines an individual user
	UserTypeIndividual UserType = iota // Historic reason to make it starts at 0.

	// UserTypeOrganization defines an organization
	UserTypeOrganization
)

type Watch

type Watch struct {
	ID     int64 `xorm:"pk autoincr"`
	UserID int64 `xorm:"UNIQUE(watch)"`
	RepoID int64 `xorm:"UNIQUE(watch)"`
}

Watch is connection request for receiving repository notification.

func GetWatchers

func GetWatchers(repoID int64) ([]*Watch, error)

GetWatchers returns all watchers of given repository.

type Webhook

type Webhook struct {
	ID           int64 `xorm:"pk autoincr"`
	RepoID       int64
	OrgID        int64
	URL          string `xorm:"url TEXT"`
	ContentType  HookContentType
	Secret       string `xorm:"TEXT"`
	Events       string `xorm:"TEXT"`
	*HookEvent   `xorm:"-"`
	IsSSL        bool `xorm:"is_ssl"`
	IsActive     bool
	HookTaskType HookTaskType
	Meta         string     `xorm:"TEXT"` // store hook-specific attributes
	LastStatus   HookStatus // Last delivery status

	Created     time.Time `xorm:"-"`
	CreatedUnix int64
	Updated     time.Time `xorm:"-"`
	UpdatedUnix int64
}

Webhook represents a web hook object.

func GetActiveWebhooksByOrgID

func GetActiveWebhooksByOrgID(orgID int64) (ws []*Webhook, err error)

GetActiveWebhooksByOrgID returns all active webhooks for an organization.

func GetActiveWebhooksByRepoID

func GetActiveWebhooksByRepoID(repoID int64) ([]*Webhook, error)

GetActiveWebhooksByRepoID returns all active webhooks of repository.

func GetWebhookByOrgID

func GetWebhookByOrgID(orgID, id int64) (*Webhook, error)

GetWebhookByOrgID returns webhook of organization by given ID.

func GetWebhookByRepoID

func GetWebhookByRepoID(repoID, id int64) (*Webhook, error)

GetWebhookByRepoID returns webhook of repository by given ID.

func GetWebhooksByOrgID

func GetWebhooksByOrgID(orgID int64) (ws []*Webhook, err error)

GetWebhooksByOrgID returns all webhooks for an organization.

func GetWebhooksByRepoID

func GetWebhooksByRepoID(repoID int64) ([]*Webhook, error)

GetWebhooksByRepoID returns all webhooks of a repository.

func (*Webhook) AfterSet

func (w *Webhook) AfterSet(colName string, _ xorm.Cell)

AfterSet updates the webhook object upon setting a column

func (*Webhook) BeforeInsert

func (w *Webhook) BeforeInsert()

BeforeInsert will be invoked by XORM before inserting a record representing this object

func (*Webhook) BeforeUpdate

func (w *Webhook) BeforeUpdate()

BeforeUpdate will be invoked by XORM before updating a record representing this object

func (*Webhook) EventsArray

func (w *Webhook) EventsArray() []string

EventsArray returns an array of hook events

func (*Webhook) GetSlackHook

func (w *Webhook) GetSlackHook() *SlackMeta

GetSlackHook returns slack metadata

func (*Webhook) HasCreateEvent

func (w *Webhook) HasCreateEvent() bool

HasCreateEvent returns true if hook enabled create event.

func (*Webhook) HasPullRequestEvent

func (w *Webhook) HasPullRequestEvent() bool

HasPullRequestEvent returns true if hook enabled pull request event.

func (*Webhook) HasPushEvent

func (w *Webhook) HasPushEvent() bool

HasPushEvent returns true if hook enabled push event.

func (*Webhook) History

func (w *Webhook) History(page int) ([]*HookTask, error)

History returns history of webhook by given conditions.

func (*Webhook) UpdateEvent

func (w *Webhook) UpdateEvent() error

UpdateEvent handles conversion from HookEvent to Events.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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