context

package
v1.14.0-rc7 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2021 License: MIT Imports: 49 Imported by: 0

Documentation

Index

Constants

View Source
const Timeout = 24 * time.Hour

Timeout represents the duration that XSRF tokens are valid. It is exported so clients may set cookie timeouts that match generated tokens.

Variables

View Source
var IssueTemplateDirCandidates = []string{
	"ISSUE_TEMPLATE",
	"issue_template",
	".gitea/ISSUE_TEMPLATE",
	".gitea/issue_template",
	".github/ISSUE_TEMPLATE",
	".github/issue_template",
	".gitlab/ISSUE_TEMPLATE",
	".gitlab/issue_template",
}

IssueTemplateDirCandidates issue templates directory

Functions

func APIContexter

func APIContexter() func(http.Handler) http.Handler

APIContexter returns apicontext as middleware

func AccessLogger

func AccessLogger() func(http.Handler) http.Handler

AccessLogger returns a middleware to log access logger

func AesDecrypt

func AesDecrypt(key, text []byte) ([]byte, error)

AesDecrypt decrypts text and given key with AES.

func AesEncrypt

func AesEncrypt(key, text []byte) ([]byte, error)

AesEncrypt encrypts text and given key with AES.

func ComposeGoGetImport added in v1.2.0

func ComposeGoGetImport(owner, repo string) string

ComposeGoGetImport returns go-get-import meta content.

func Contexter

func Contexter() func(next http.Handler) http.Handler

Contexter initializes a classic context for a request.

func DecryptSecret

func DecryptSecret(key string, cipherhex string) (string, error)

DecryptSecret decrypts a previously encrypted hex string

func EarlyResponseForGoGetMeta added in v1.2.0

func EarlyResponseForGoGetMeta(ctx *Context)

EarlyResponseForGoGetMeta responses appropriate go-get meta with status 200 if user does not have actual access to the requested repository, or the owner or repository does not exist at all. This is particular a workaround for "go get" command which does not respect .netrc file.

func EncryptSecret

func EncryptSecret(key string, str string) (string, error)

EncryptSecret encrypts a string with given key into a hex string

func GenerateToken

func GenerateToken(key, userID, actionID string) string

GenerateToken returns a URL-safe secure XSRF token that expires in 24 hours.

key is a secret key for your application. userID is a unique identifier for the user. actionID is the action the user is taking (e.g. POSTing to a particular path).

func GetImageCaptcha

func GetImageCaptcha() *captcha.Captcha

GetImageCaptcha returns global image captcha

func GitHookService

func GitHookService() func(ctx *Context)

GitHookService checks if repository Git hooks service has been enabled.

func HandleOrgAssignment

func HandleOrgAssignment(ctx *Context, args ...bool)

HandleOrgAssignment handles organization assignment

func NewSecret

func NewSecret() (string, error)

NewSecret creates a new secret

func NewSecretWithLength

func NewSecretWithLength(length int64) (string, error)

NewSecretWithLength creates a new secret for a given length

func OrgAssignment

func OrgAssignment(args ...bool) func(ctx *Context)

OrgAssignment returns a middleware to handle organization assignment

func PrivateContexter

func PrivateContexter() func(http.Handler) http.Handler

PrivateContexter returns apicontext as middleware

func RedirectToRepo added in v1.1.0

func RedirectToRepo(ctx *Context, redirectRepoID int64)

RedirectToRepo redirect to a differently-named repository

func RedirectToUser

func RedirectToUser(ctx *Context, userName string, redirectUserID int64)

RedirectToUser redirect to a differently-named user

func ReferencesGitRepo added in v1.0.0

func ReferencesGitRepo(allowEmpty bool) func(http.Handler) http.Handler

ReferencesGitRepo injects the GitRepo into the Context

func RepoAssignment

func RepoAssignment() func(http.Handler) http.Handler

RepoAssignment returns a middleware to handle repository assignment

func RepoIDAssignment added in v1.2.0

func RepoIDAssignment() func(ctx *Context)

RepoIDAssignment returns a handler which assigns the repo to the context.

func RepoMustNotBeArchived added in v1.8.0

func RepoMustNotBeArchived() func(ctx *Context)

RepoMustNotBeArchived checks if a repo is archived

func RepoRef

func RepoRef() func(http.Handler) http.Handler

RepoRef handles repository reference names when the ref name is not explicitly given

func RepoRefByType added in v1.3.0

func RepoRefByType(refType RepoRefType) func(http.Handler) http.Handler

RepoRefByType handles repository reference name for a specific type of repository reference

func RepoRefForAPI

func RepoRefForAPI(next http.Handler) http.Handler

RepoRefForAPI handles repository reference names when the ref name is not explicitly given

func RequireRepoAdmin

func RequireRepoAdmin() func(ctx *Context)

RequireRepoAdmin returns a middleware for requiring repository admin permission

func RequireRepoReader added in v1.7.0

func RequireRepoReader(unitType models.UnitType) func(ctx *Context)

RequireRepoReader returns a middleware for requiring repository read to the specify unitType

func RequireRepoReaderOr added in v1.7.0

func RequireRepoReaderOr(unitTypes ...models.UnitType) func(ctx *Context)

RequireRepoReaderOr returns a middleware for requiring repository write to one of the unit permission

func RequireRepoWriter

func RequireRepoWriter(unitType models.UnitType) func(ctx *Context)

RequireRepoWriter returns a middleware for requiring repository write to the specify unitType

func RequireRepoWriterOr added in v1.7.0

func RequireRepoWriterOr(unitTypes ...models.UnitType) func(ctx *Context)

RequireRepoWriterOr returns a middleware for requiring repository write to one of the unit permission

func RetrieveBaseRepo

func RetrieveBaseRepo(ctx *Context, repo *models.Repository)

RetrieveBaseRepo retrieves base repository

func RetrieveTemplateRepo

func RetrieveTemplateRepo(ctx *Context, repo *models.Repository)

RetrieveTemplateRepo retrieves template repository used to generate this repository

func SignedUserName

func SignedUserName(req *http.Request) string

SignedUserName returns signed user's name via context

func Toggle

func Toggle(options *ToggleOptions) func(ctx *Context)

Toggle returns toggle options as middleware

func ToggleAPI

func ToggleAPI(options *ToggleOptions) func(ctx *APIContext)

ToggleAPI returns toggle options as middleware

func UnitTypes added in v1.1.0

func UnitTypes() func(ctx *Context)

UnitTypes returns a middleware to set unit types to context variables.

func ValidToken

func ValidToken(token, key, userID, actionID string) bool

ValidToken returns true if token is a valid, unexpired token returned by Generate.

func Validate

func Validate(ctx *Context, x CSRF)

Validate should be used as a per route middleware. It attempts to get a token from a "X-CSRFToken" HTTP header and then a "_csrf" form value. If one of these is found, the token will be validated using ValidToken. If this validation fails, custom Error is sent in the reply. If neither a header or form value is found, http.StatusBadRequest is sent.

func WithAPIContext

func WithAPIContext(req *http.Request, ctx *APIContext) *http.Request

WithAPIContext set up api context in request

func WithContext

func WithContext(req *http.Request, ctx *Context) *http.Request

WithContext set up install context in request

func WithPrivateContext

func WithPrivateContext(req *http.Request, ctx *PrivateContext) *http.Request

WithPrivateContext set up private context in request

Types

type APIConflict

type APIConflict struct{}

APIConflict is a conflict empty response swagger:response conflict

type APIContext

type APIContext struct {
	*Context
	Org *APIOrganization
}

APIContext is a specific context for API service

func GetAPIContext

func GetAPIContext(req *http.Request) *APIContext

GetAPIContext returns a context for API routes

func (*APIContext) CheckForOTP added in v1.8.0

func (ctx *APIContext) CheckForOTP()

CheckForOTP validates OTP

func (*APIContext) Error

func (ctx *APIContext) Error(status int, title string, obj interface{})

Error responds with an error message to client with given obj as the message. If status is 500, also it prints error to log.

func (*APIContext) InternalServerError

func (ctx *APIContext) InternalServerError(err error)

InternalServerError responds with an error message to the client with the error as a message and the file and line of the caller.

func (*APIContext) NotFound

func (ctx *APIContext) NotFound(objs ...interface{})

NotFound handles 404s for APIContext String will replace message, errors will be added to a slice

func (*APIContext) RequireCSRF added in v1.6.0

func (ctx *APIContext) RequireCSRF()

RequireCSRF requires a validated a CSRF token

func (*APIContext) ServerError

func (ctx *APIContext) ServerError(title string, err error)

ServerError responds with error message, status is 500

func (*APIContext) SetLinkHeader

func (ctx *APIContext) SetLinkHeader(total, pageSize int)

SetLinkHeader sets pagination link header by given total number and page size.

type APIEmpty added in v1.2.0

type APIEmpty struct{}

APIEmpty is an empty response swagger:response empty

type APIError added in v1.2.0

type APIError struct {
	Message string `json:"message"`
	URL     string `json:"url"`
}

APIError is error format response swagger:response error

type APIForbiddenError added in v1.2.0

type APIForbiddenError struct {
	APIError
}

APIForbiddenError is a forbidden error response swagger:response forbidden

type APIInvalidTopicsError

type APIInvalidTopicsError struct {
	Topics  []string `json:"invalidTopics"`
	Message string   `json:"message"`
}

APIInvalidTopicsError is error format response to invalid topics swagger:response invalidTopicsError

type APINotFound added in v1.2.0

type APINotFound struct{}

APINotFound is a not found empty response swagger:response notFound

type APIOrganization

type APIOrganization struct {
	Organization *models.User
	Team         *models.Team
}

APIOrganization contains organization and team

type APIRedirect added in v1.2.0

type APIRedirect struct{}

APIRedirect is a redirect response swagger:response redirect

type APIString

type APIString string

APIString is a string response swagger:response string

type APIValidationError added in v1.2.0

type APIValidationError struct {
	Message string `json:"message"`
	URL     string `json:"url"`
}

APIValidationError is error format response related to input validation swagger:response validationError

type CSRF

type CSRF interface {
	// Return HTTP header to search for token.
	GetHeaderName() string
	// Return form value to search for token.
	GetFormName() string
	// Return cookie name to search for token.
	GetCookieName() string
	// Return cookie path
	GetCookiePath() string
	// Return the flag value used for the csrf token.
	GetCookieHTTPOnly() bool
	// Return cookie domain
	GetCookieDomain() string
	// Return the token.
	GetToken() string
	// Validate by token.
	ValidToken(t string) bool
	// Error replies to the request with a custom function when ValidToken fails.
	Error(w http.ResponseWriter)
}

CSRF represents a CSRF service and is used to get the current token and validate a suspect token.

func Csrfer

func Csrfer(opt CsrfOptions, ctx *Context) CSRF

Csrfer maps CSRF to each request. If this request is a Get request, it will generate a new token. Additionally, depending on options set, generated tokens will be sent via Header and/or Cookie.

type CanCommitToBranchResults

type CanCommitToBranchResults struct {
	CanCommitToBranch bool
	EditorEnabled     bool
	UserCanPush       bool
	RequireSigned     bool
	WillSign          bool
	SigningKey        string
	WontSignReason    string
}

CanCommitToBranchResults represents the results of CanCommitToBranch

type Context

type Context struct {
	Resp   ResponseWriter
	Req    *http.Request
	Data   map[string]interface{}
	Render Render
	translation.Locale
	Cache cache.Cache

	Flash   *middleware.Flash
	Session session.Store

	Link        string // current request URL
	EscapedLink string
	User        *models.User
	IsSigned    bool
	IsBasicAuth bool

	Repo *Repository
	Org  *Organization
	// contains filtered or unexported fields
}

Context represents context of a request.

func GetContext

func GetContext(req *http.Request) *Context

GetContext retrieves install context from request

func (*Context) CookieDecrypt

func (ctx *Context) CookieDecrypt(secret, val string) (string, bool)

CookieDecrypt returns given value from with secret string.

func (*Context) CookieEncrypt

func (ctx *Context) CookieEncrypt(secret, value string) string

CookieEncrypt encrypts a given value using the provided secret

func (*Context) DeleteCookie

func (ctx *Context) DeleteCookie(name string)

DeleteCookie convenience function to delete most cookies consistently CSRF and a few others are the exception here

func (*Context) Error

func (ctx *Context) Error(status int, contents ...string)

Error returned an error to web browser

func (*Context) GetCookie

func (ctx *Context) GetCookie(name string) string

GetCookie returns given cookie value from request header.

func (*Context) GetCookieFloat64

func (ctx *Context) GetCookieFloat64(name string) float64

GetCookieFloat64 returns cookie result in float64 type.

func (*Context) GetCookieInt

func (ctx *Context) GetCookieInt(name string) int

GetCookieInt returns cookie result in int type.

func (*Context) GetCookieInt64

func (ctx *Context) GetCookieInt64(name string) int64

GetCookieInt64 returns cookie result in int64 type.

func (*Context) GetData

func (ctx *Context) GetData() map[string]interface{}

GetData returns the data

func (*Context) GetErrMsg

func (ctx *Context) GetErrMsg() string

GetErrMsg returns error message

func (*Context) GetSuperSecureCookie

func (ctx *Context) GetSuperSecureCookie(secret, name string) (string, bool)

GetSuperSecureCookie returns given cookie value from request header with secret string.

func (*Context) HTML

func (ctx *Context) HTML(status int, name base.TplName)

HTML calls Context.HTML and converts template name to string.

func (*Context) HTMLString

func (ctx *Context) HTMLString(name string, data interface{}) (string, error)

HTMLString render content to a string but not http.ResponseWriter

func (*Context) HandleText

func (ctx *Context) HandleText(status int, title string)

HandleText handles HTTP status code

func (*Context) HasAPIError added in v1.0.0

func (ctx *Context) HasAPIError() bool

HasAPIError returns true if error occurs in form validation.

func (*Context) HasError

func (ctx *Context) HasError() bool

HasError returns true if error occurs in form validation.

func (*Context) HasValue

func (ctx *Context) HasValue(name string) bool

HasValue returns true if value of given name exists.

func (*Context) Header

func (ctx *Context) Header() http.Header

Header returns a header

func (*Context) IsUserRepoAdmin

func (ctx *Context) IsUserRepoAdmin() bool

IsUserRepoAdmin returns true if current user is admin in current repo

func (*Context) IsUserRepoOwner

func (ctx *Context) IsUserRepoOwner() bool

IsUserRepoOwner returns true if current user owns current repo

func (*Context) IsUserRepoReaderAny

func (ctx *Context) IsUserRepoReaderAny() bool

IsUserRepoReaderAny returns true if current user can read any part of current repo

func (*Context) IsUserRepoReaderSpecific

func (ctx *Context) IsUserRepoReaderSpecific(unitType models.UnitType) bool

IsUserRepoReaderSpecific returns true if current user can read current repo's specific part

func (*Context) IsUserRepoWriter

func (ctx *Context) IsUserRepoWriter(unitTypes []models.UnitType) bool

IsUserRepoWriter returns true if current user has write privilege in current repo

func (*Context) IsUserSiteAdmin

func (ctx *Context) IsUserSiteAdmin() bool

IsUserSiteAdmin returns true if current user is a site admin

func (*Context) IssueTemplatesFromDefaultBranch

func (ctx *Context) IssueTemplatesFromDefaultBranch() []api.IssueTemplate

IssueTemplatesFromDefaultBranch checks for issue templates in the repo's default branch

func (*Context) JSON

func (ctx *Context) JSON(status int, content interface{})

JSON render content as JSON

func (*Context) NotFound added in v1.4.0

func (ctx *Context) NotFound(title string, err error)

NotFound displays a 404 (Not Found) page and prints the given error, if any.

func (*Context) NotFoundOrServerError

func (ctx *Context) NotFoundOrServerError(title string, errck func(error) bool, err error)

NotFoundOrServerError use error check function to determine if the error is about not found. It responses with 404 status code for not found error, or error context description for logging purpose of 500 server error.

func (*Context) Params

func (ctx *Context) Params(p string) string

Params returns the param on route

func (*Context) ParamsInt64

func (ctx *Context) ParamsInt64(p string) int64

ParamsInt64 returns the param on route as int64

func (*Context) PlainText

func (ctx *Context) PlainText(status int, bs []byte)

PlainText render content as plain text

func (*Context) Query

func (ctx *Context) Query(key string, defaults ...string) string

Query returns request form as string with default

func (*Context) QueryBool

func (ctx *Context) QueryBool(key string, defaults ...bool) bool

QueryBool returns request form as bool with default

func (*Context) QueryInt

func (ctx *Context) QueryInt(key string, defaults ...int) int

QueryInt returns request form as int with default

func (*Context) QueryInt64

func (ctx *Context) QueryInt64(key string, defaults ...int64) int64

QueryInt64 returns request form as int64 with default

func (*Context) QueryStrings

func (ctx *Context) QueryStrings(key string, defaults ...[]string) []string

QueryStrings returns request form as strings with default

func (*Context) QueryTrim

func (ctx *Context) QueryTrim(key string, defaults ...string) string

QueryTrim returns request form as string with default and trimmed spaces

func (*Context) Redirect

func (ctx *Context) Redirect(location string, status ...int)

Redirect redirect the request

func (*Context) RedirectToFirst added in v1.4.0

func (ctx *Context) RedirectToFirst(location ...string)

RedirectToFirst redirects to first not empty URL

func (*Context) RemoteAddr

func (ctx *Context) RemoteAddr() string

RemoteAddr returns the client machie ip address

func (*Context) RenderWithErr

func (ctx *Context) RenderWithErr(msg string, tpl base.TplName, form interface{})

RenderWithErr used for page has form validation but need to prompt error to users.

func (*Context) ServeContent

func (ctx *Context) ServeContent(name string, r io.ReadSeeker, params ...interface{})

ServeContent serves content to http request

func (*Context) ServeFile

func (ctx *Context) ServeFile(file string, names ...string)

ServeFile serves given file to response.

func (*Context) ServerError added in v1.4.0

func (ctx *Context) ServerError(title string, err error)

ServerError displays a 500 (Internal Server Error) page and prints the given error, if any.

func (*Context) SetCookie

func (ctx *Context) SetCookie(name, value string, expiry int)

SetCookie convenience function to set most cookies consistently CSRF and a few others are the exception here

func (*Context) SetParams

func (ctx *Context) SetParams(k, v string)

SetParams set params into routes

func (*Context) SetSuperSecureCookie

func (ctx *Context) SetSuperSecureCookie(secret, name, value string, expiry int)

SetSuperSecureCookie sets given cookie value to response header with secret string.

func (*Context) Status

func (ctx *Context) Status(status int)

Status writes status code

func (*Context) Write

func (ctx *Context) Write(bs []byte) (int, error)

Write writes data to webbrowser

func (*Context) Written

func (ctx *Context) Written() bool

Written returns true if there are something sent to web browser

type CsrfOptions

type CsrfOptions struct {
	// The global secret value used to generate Tokens.
	Secret string
	// HTTP header used to set and get token.
	Header string
	// Form value used to set and get token.
	Form string
	// Cookie value used to set and get token.
	Cookie string
	// Cookie domain.
	CookieDomain string
	// Cookie path.
	CookiePath     string
	CookieHTTPOnly bool
	// SameSite set the cookie SameSite type
	SameSite http.SameSite
	// Key used for getting the unique ID per user.
	SessionKey string

	// If true, send token via X-CSRFToken header.
	SetHeader bool
	// If true, send token via _csrf cookie.
	SetCookie bool
	// Set the Secure flag to true on the cookie.
	Secure bool
	// Disallow Origin appear in request header.
	Origin bool
	// The function called when Validate fails.
	ErrorFunc func(w http.ResponseWriter)
	// Cookie life time. Default is 0
	CookieLifeTime int
	// contains filtered or unexported fields
}

CsrfOptions maintains options to manage behavior of Generate.

type Forms

type Forms http.Request

Forms a new enhancement of http.Request

func (*Forms) Bool

func (f *Forms) Bool(key string) (bool, error)

Bool returns request form as bool

func (*Forms) Escape

func (f *Forms) Escape(key string) (string, error)

Escape returns request form as escaped string

func (*Forms) Float32

func (f *Forms) Float32(key string) (float32, error)

Float32 returns request form as float32

func (*Forms) Float64

func (f *Forms) Float64(key string) (float64, error)

Float64 returns request form as float64

func (*Forms) Int

func (f *Forms) Int(key string) (int, error)

Int returns request form as int

func (*Forms) Int32

func (f *Forms) Int32(key string) (int32, error)

Int32 returns request form as int32

func (*Forms) Int64

func (f *Forms) Int64(key string) (int64, error)

Int64 returns request form as int64

func (*Forms) MustBool

func (f *Forms) MustBool(key string, defaults ...bool) bool

MustBool returns request form as bool with default

func (*Forms) MustEscape

func (f *Forms) MustEscape(key string, defaults ...string) string

MustEscape returns request form as escaped string with default

func (*Forms) MustFloat32

func (f *Forms) MustFloat32(key string, defaults ...float32) float32

MustFloat32 returns request form as float32 with default

func (*Forms) MustFloat64

func (f *Forms) MustFloat64(key string, defaults ...float64) float64

MustFloat64 returns request form as float64 with default

func (*Forms) MustInt

func (f *Forms) MustInt(key string, defaults ...int) int

MustInt returns request form as int with default

func (*Forms) MustInt32

func (f *Forms) MustInt32(key string, defaults ...int32) int32

MustInt32 returns request form as int32 with default

func (*Forms) MustInt64

func (f *Forms) MustInt64(key string, defaults ...int64) int64

MustInt64 returns request form as int64 with default

func (*Forms) MustString

func (f *Forms) MustString(key string, defaults ...string) string

MustString returns request form as string with default

func (*Forms) MustStrings

func (f *Forms) MustStrings(key string, defaults ...[]string) []string

MustStrings returns request form as strings with default

func (*Forms) MustTrimmed

func (f *Forms) MustTrimmed(key string, defaults ...string) string

MustTrimmed returns request form as string with default

func (*Forms) MustUint

func (f *Forms) MustUint(key string, defaults ...uint) uint

MustUint returns request form as uint with default

func (*Forms) MustUint32

func (f *Forms) MustUint32(key string, defaults ...uint32) uint32

MustUint32 returns request form as uint32 with default

func (*Forms) MustUint64

func (f *Forms) MustUint64(key string, defaults ...uint64) uint64

MustUint64 returns request form as uint64 with default

func (*Forms) String

func (f *Forms) String(key string) (string, error)

String returns request form as string

func (*Forms) Strings

func (f *Forms) Strings(key string) ([]string, error)

Strings returns request form as strings

func (*Forms) Trimmed

func (f *Forms) Trimmed(key string) (string, error)

Trimmed returns request form as string with trimed spaces left and right

func (*Forms) Uint

func (f *Forms) Uint(key string) (uint, error)

Uint returns request form as uint

func (*Forms) Uint32

func (f *Forms) Uint32(key string) (uint32, error)

Uint32 returns request form as uint32

func (*Forms) Uint64

func (f *Forms) Uint64(key string) (uint64, error)

Uint64 returns request form as uint64

func (*Forms) Values

func (f *Forms) Values() url.Values

Values returns http.Request values

type Handler

type Handler func(*Context)

Handler represents a custom handler

type Organization

type Organization struct {
	IsOwner          bool
	IsMember         bool
	IsTeamMember     bool // Is member of team.
	IsTeamAdmin      bool // In owner team or team that has admin permission level.
	Organization     *models.User
	OrgLink          string
	CanCreateOrgRepo bool

	Team *models.Team
}

Organization contains organization context

type Pagination

type Pagination struct {
	Paginater *paginater.Paginater
	// contains filtered or unexported fields
}

Pagination provides a pagination via Paginater and additional configurations for the link params used in rendering

func NewPagination

func NewPagination(total int, page int, issueNum int, numPages int) *Pagination

NewPagination creates a new instance of the Pagination struct

func (*Pagination) AddParam

func (p *Pagination) AddParam(ctx *Context, paramKey string, ctxKey string)

AddParam adds a value from context identified by ctxKey as link param under a given paramKey

func (*Pagination) AddParamString

func (p *Pagination) AddParamString(key string, value string)

AddParamString adds a string parameter directly

func (*Pagination) GetParams

func (p *Pagination) GetParams() template.URL

GetParams returns the configured URL params

func (*Pagination) SetDefaultParams

func (p *Pagination) SetDefaultParams(ctx *Context)

SetDefaultParams sets common pagination params that are often used

type PrivateContext

type PrivateContext struct {
	*Context
}

PrivateContext represents a context for private routes

func GetPrivateContext

func GetPrivateContext(req *http.Request) *PrivateContext

GetPrivateContext returns a context for Private routes

type PullRequest

type PullRequest struct {
	BaseRepo *models.Repository
	Allowed  bool
	SameRepo bool
	HeadInfo string // [<user>:]<branch>
}

PullRequest contains informations to make a pull request

type Render

type Render interface {
	TemplateLookup(tmpl string) *template.Template
	HTML(w io.Writer, status int, name string, binding interface{}, htmlOpt ...render.HTMLOptions) error
}

Render represents a template render

type RepoRefType added in v1.3.0

type RepoRefType int

RepoRefType type of repo reference

const (
	// RepoRefLegacy unknown type, make educated guess and redirect.
	// for backward compatibility with previous URL scheme
	RepoRefLegacy RepoRefType = iota
	// RepoRefAny is for usage where educated guess is needed
	// but redirect can not be made
	RepoRefAny
	// RepoRefBranch branch
	RepoRefBranch
	// RepoRefTag tag
	RepoRefTag
	// RepoRefCommit commit
	RepoRefCommit
	// RepoRefBlob blob
	RepoRefBlob
)

func (RepoRefType) RefTypeIncludesBranches

func (rt RepoRefType) RefTypeIncludesBranches() bool

RefTypeIncludesBranches returns true if ref type can be a branch

func (RepoRefType) RefTypeIncludesTags

func (rt RepoRefType) RefTypeIncludesTags() bool

RefTypeIncludesTags returns true if ref type can be a tag

type Repository

type Repository struct {
	models.Permission
	IsWatching   bool
	IsViewBranch bool
	IsViewTag    bool
	IsViewCommit bool
	Repository   *models.Repository
	Owner        *models.User
	Commit       *git.Commit
	Tag          *git.Tag
	GitRepo      *git.Repository
	BranchName   string
	TagName      string
	TreePath     string
	CommitID     string
	RepoLink     string
	CloneLink    models.CloneLink
	CommitsCount int64
	Mirror       *models.Mirror

	PullRequest *PullRequest
}

Repository contains information to operate a repository

func (*Repository) BranchNameSubURL added in v1.3.0

func (r *Repository) BranchNameSubURL() string

BranchNameSubURL sub-URL for the BranchName field

func (*Repository) CanCommitToBranch added in v1.2.0

func (r *Repository) CanCommitToBranch(doer *models.User) (CanCommitToBranchResults, error)

CanCommitToBranch returns true if repository is editable and user has proper access level

and branch is not protected for push

func (*Repository) CanCreateBranch added in v1.3.0

func (r *Repository) CanCreateBranch() bool

CanCreateBranch returns true if repository is editable and user has proper access level.

func (*Repository) CanCreateIssueDependencies added in v1.6.0

func (r *Repository) CanCreateIssueDependencies(user *models.User, isPull bool) bool

CanCreateIssueDependencies returns whether or not a user can create dependencies.

func (*Repository) CanEnableEditor

func (r *Repository) CanEnableEditor() bool

CanEnableEditor returns true if repository is editable and user has proper access level.

func (*Repository) CanUseTimetracker added in v1.3.0

func (r *Repository) CanUseTimetracker(issue *models.Issue, user *models.User) bool

CanUseTimetracker returns whether or not a user can use the timetracker.

func (*Repository) FileExists

func (r *Repository) FileExists(path string, branch string) (bool, error)

FileExists returns true if a file exists in the given repo branch

func (*Repository) GetCommitGraphsCount

func (r *Repository) GetCommitGraphsCount(hidePRRefs bool, branches []string, files []string) (int64, error)

GetCommitGraphsCount returns cached commit count for current view

func (*Repository) GetCommitsCount added in v1.3.0

func (r *Repository) GetCommitsCount() (int64, error)

GetCommitsCount returns cached commit count for current view

func (*Repository) GetEditorconfig

func (r *Repository) GetEditorconfig() (*editorconfig.Editorconfig, error)

GetEditorconfig returns the .editorconfig definition if found in the HEAD of the default repo branch.

type Response

type Response struct {
	http.ResponseWriter
	// contains filtered or unexported fields
}

Response represents a response

func NewResponse

func NewResponse(resp http.ResponseWriter) *Response

NewResponse creates a response

func (*Response) Before

func (r *Response) Before(f func(ResponseWriter))

Before allows for a function to be called before the ResponseWriter has been written to. This is useful for setting headers or any other operations that must happen before a response has been written.

func (*Response) Flush

func (r *Response) Flush()

Flush flush cached data

func (*Response) Size

func (r *Response) Size() int

Size return written size

func (*Response) Status

func (r *Response) Status() int

Status returned status code written

func (*Response) Write

func (r *Response) Write(bs []byte) (int, error)

Write writes bytes to HTTP endpoint

func (*Response) WriteHeader

func (r *Response) WriteHeader(statusCode int)

WriteHeader write status code

type ResponseWriter

type ResponseWriter interface {
	http.ResponseWriter
	Flush()
	Status() int
	Before(func(ResponseWriter))
	Size() int
}

ResponseWriter represents a response writer for HTTP

type ToggleOptions

type ToggleOptions struct {
	SignInRequired  bool
	SignOutRequired bool
	AdminRequired   bool
	DisableCSRF     bool
}

ToggleOptions contains required or check options

Jump to

Keyboard shortcuts

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