context

package
v1.18.2 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2023 License: MIT Imports: 62 Imported by: 1,061

Documentation

Index

Constants

View Source
const CsrfTokenTimeout = 24 * time.Hour

CsrfTokenTimeout 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 CsrfTokenRegenerationInterval = 10 * time.Minute

CsrfTokenRegenerationInterval is the interval between token generations, old tokens are still valid before CsrfTokenTimeout

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

SearchOrderByMap represents all possible search order

Functions

func APIAuth added in v1.15.0

func APIAuth(authMethod auth_service.Method) func(*APIContext)

APIAuth converts auth_service.Auth as a middleware

func APIContexter

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

APIContexter returns apicontext as middleware

func AccessLogger added in v1.14.0

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

AccessLogger returns a middleware to log access logger

func Auth added in v1.15.0

func Auth(authMethod auth.Method) func(*Context)

Auth converts auth.Auth as a middleware

func CanEnableEditor added in v1.17.0

func CanEnableEditor() func(ctx *Context)

CanEnableEditor checks if the user is allowed to write to the branch of the repo

func ComposeGoGetImport added in v1.2.0

func ComposeGoGetImport(owner, repo string) string

ComposeGoGetImport returns go-get-import meta content.

func Contexter

func Contexter(ctx context.Context) func(next http.Handler) http.Handler

Contexter initializes a classic context for a request.

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 GenerateCsrfToken added in v1.17.0

func GenerateCsrfToken(key, userID, actionID string, now time.Time) string

GenerateCsrfToken returns a URL-safe secure XSRF token that expires in CsrfTokenTimeout 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 GetContextUser added in v1.15.4

func GetContextUser(req *http.Request) *user_model.User

GetContextUser returns context user

func GetImageCaptcha added in v1.14.0

func GetImageCaptcha() *captcha.Captcha

GetImageCaptcha returns global image captcha

func GetQueryBeforeSince added in v1.17.0

func GetQueryBeforeSince(ctx *Context) (before, since int64, err error)

GetQueryBeforeSince return parsed time (unix format) from URL query's before and since

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 OrgAssignment

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

OrgAssignment returns a middleware to handle organization assignment

func OverrideContext added in v1.17.0

func OverrideContext(ctx *PrivateContext) (cancel context.CancelFunc)

OverrideContext overrides the underlying request context for Done() etc. This function should be used when there is a need for work to continue even if the request has been cancelled. Primarily this affects hook/post-receive and hook/proc-receive both of which need to continue working even if the underlying request has timed out from the ssh/http push

func PackageAssignment added in v1.17.0

func PackageAssignment() func(ctx *Context)

PackageAssignment returns a middleware to handle Context.Package assignment

func PackageAssignmentAPI added in v1.17.0

func PackageAssignmentAPI() func(ctx *APIContext)

PackageAssignmentAPI returns a middleware to handle Context.Package assignment

func PackageContexter added in v1.17.0

func PackageContexter(ctx gocontext.Context) func(next http.Handler) http.Handler

PackageContexter initializes a package context for a request.

func ParseCsrfToken added in v1.17.0

func ParseCsrfToken(token string) (issueTime time.Time, ok bool)

func PrivateContexter added in v1.14.0

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

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(ctx *APIContext) (cancel context.CancelFunc)

ReferencesGitRepo injects the GitRepo into the Context you can optional skip the IsEmpty check

func RepoAssignment

func RepoAssignment(ctx *Context) (cancel context.CancelFunc)

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(*Context) context.CancelFunc

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

func RepoRefByType added in v1.3.0

func RepoRefByType(refType RepoRefType, ignoreNotExistErr ...bool) func(*Context) context.CancelFunc

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

func RepoRefForAPI added in v1.12.6

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 unit.Type) 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 ...unit.Type) func(ctx *Context)

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

func RequireRepoWriter

func RequireRepoWriter(unitType unit.Type) 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 ...unit.Type) func(ctx *Context)

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

func RetrieveBaseRepo

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

RetrieveBaseRepo retrieves base repository

func RetrieveTemplateRepo added in v1.11.0

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

RetrieveTemplateRepo retrieves template repository used to generate this repository

func Toggle

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

Toggle returns toggle options as middleware

func ToggleAPI added in v1.14.0

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 ValidCsrfToken added in v1.17.0

func ValidCsrfToken(token, key, userID, actionID string, now time.Time) bool

ValidCsrfToken returns true if token is a valid and unexpired token returned by Generate.

func WithAPIContext added in v1.14.0

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

WithAPIContext set up api context in request

func WithContext added in v1.14.0

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

WithContext set up install context in request

func WithPrivateContext added in v1.14.0

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

WithPrivateContext set up private context in request

Types

type APIConflict added in v1.14.0

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

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

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

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

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

func (*APIContext) ServerError added in v1.14.0

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

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

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 *organization.Organization
	Team         *organization.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 added in v1.13.0

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 CSRFProtector added in v1.17.0

type CSRFProtector interface {
	// GetHeaderName returns HTTP header to search for token.
	GetHeaderName() string
	// GetFormName returns form value to search for token.
	GetFormName() string
	// GetToken returns the token.
	GetToken() string
	// Validate validates the token in http context.
	Validate(ctx *Context)
}

CSRFProtector represents a CSRF protector and is used to get the current token and validate the token.

func PrepareCSRFProtector added in v1.17.0

func PrepareCSRFProtector(opt CsrfOptions, ctx *Context) CSRFProtector

PrepareCSRFProtector returns a CSRFProtector to be used for every request. Additionally, depending on options set, generated tokens will be sent via Header and/or Cookie.

type CanCommitToBranchResults added in v1.12.0

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{} // data used by MVC templates
	PageData map[string]interface{} // data used by JavaScript modules in one page, it's `window.config.pageData`
	Render   Render
	translation.Locale
	Cache cache.Cache

	Flash   *middleware.Flash
	Session session.Store

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

	ContextUser *user_model.User
	Repo        *Repository
	Org         *Organization
	Package     *Package
	// contains filtered or unexported fields
}

Context represents context of a request.

func GetContext added in v1.14.0

func GetContext(req *http.Request) *Context

GetContext retrieves install context from request

func (*Context) AppendAccessControlExposeHeaders added in v1.17.0

func (ctx *Context) AppendAccessControlExposeHeaders(names ...string)

AppendAccessControlExposeHeaders append headers by name to "Access-Control-Expose-Headers" header

func (*Context) Close added in v1.16.8

func (ctx *Context) Close() error

Close frees all resources hold by Context

func (*Context) CookieDecrypt added in v1.14.0

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

CookieDecrypt returns given value from with secret string.

func (*Context) CookieEncrypt added in v1.14.0

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

CookieEncrypt encrypts a given value using the provided secret

func (*Context) Deadline added in v1.15.0

func (ctx *Context) Deadline() (deadline time.Time, ok bool)

Deadline is part of the interface for context.Context and we pass this to the request context

func (*Context) DeleteCookie added in v1.14.0

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) Done added in v1.15.0

func (ctx *Context) Done() <-chan struct{}

Done is part of the interface for context.Context and we pass this to the request context

func (*Context) Err added in v1.15.0

func (ctx *Context) Err() error

Err is part of the interface for context.Context and we pass this to the request context

func (*Context) Error added in v1.14.0

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

Error returned an error to web browser

func (*Context) FormBool added in v1.16.0

func (ctx *Context) FormBool(key string) bool

FormBool returns true if the value for the provided key in the form is "1", "true" or "on"

func (*Context) FormInt added in v1.16.0

func (ctx *Context) FormInt(key string) int

FormInt returns the first value for the provided key in the form as an int

func (*Context) FormInt64 added in v1.16.0

func (ctx *Context) FormInt64(key string) int64

FormInt64 returns the first value for the provided key in the form as an int64

func (*Context) FormOptionalBool added in v1.16.0

func (ctx *Context) FormOptionalBool(key string) util.OptionalBool

FormOptionalBool returns an OptionalBoolTrue or OptionalBoolFalse if the value for the provided key exists in the form else it returns OptionalBoolNone

func (*Context) FormString added in v1.16.0

func (ctx *Context) FormString(key string) string

FormString returns the first value matching the provided key in the form as a string

func (*Context) FormStrings added in v1.16.0

func (ctx *Context) FormStrings(key string) []string

FormStrings returns a string slice for the provided key from the form

func (*Context) FormTrim added in v1.16.0

func (ctx *Context) FormTrim(key string) string

FormTrim returns the first value for the provided key in the form as a space trimmed string

func (*Context) GetCookie added in v1.14.0

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

GetCookie returns given cookie value from request header.

func (*Context) GetCookieFloat64 added in v1.14.0

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

GetCookieFloat64 returns cookie result in float64 type.

func (*Context) GetCookieInt added in v1.14.0

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

GetCookieInt returns cookie result in int type.

func (*Context) GetCookieInt64 added in v1.14.0

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

GetCookieInt64 returns cookie result in int64 type.

func (*Context) GetData added in v1.14.0

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

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 renders the template to HTTP response

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. Attention: this function changes ctx.Data and ctx.Flash

func (*Context) HasValue

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

HasValue returns true if value of given name exists.

func (*Context) IsUserRepoAdmin added in v1.9.0

func (ctx *Context) IsUserRepoAdmin() bool

IsUserRepoAdmin returns true if current user is admin in current repo

func (*Context) IsUserRepoOwner added in v1.9.0

func (ctx *Context) IsUserRepoOwner() bool

IsUserRepoOwner returns true if current user owns current repo

func (*Context) IsUserRepoReaderAny added in v1.9.0

func (ctx *Context) IsUserRepoReaderAny() bool

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

func (*Context) IsUserRepoReaderSpecific added in v1.9.0

func (ctx *Context) IsUserRepoReaderSpecific(unitType unit.Type) bool

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

func (*Context) IsUserRepoWriter added in v1.9.0

func (ctx *Context) IsUserRepoWriter(unitTypes []unit.Type) bool

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

func (*Context) IsUserSiteAdmin added in v1.9.0

func (ctx *Context) IsUserSiteAdmin() bool

IsUserSiteAdmin returns true if current user is a site admin

func (*Context) IssueTemplatesErrorsFromDefaultBranch added in v1.17.4

func (ctx *Context) IssueTemplatesErrorsFromDefaultBranch() ([]*api.IssueTemplate, map[string]error)

IssueTemplatesErrorsFromDefaultBranch checks for issue templates in the repo's default branch, returns valid templates and the errors of invalid template files.

func (*Context) IssueTemplatesFromDefaultBranch added in v1.13.0

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

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

func (*Context) JSON added in v1.14.0

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(logMsg string, logErr error)

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

func (*Context) NotFoundOrServerError

func (ctx *Context) NotFoundOrServerError(logMsg string, errCheck func(error) bool, err error)

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

func (*Context) Params added in v1.14.0

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

Params returns the param on route

func (*Context) ParamsInt64 added in v1.14.0

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

ParamsInt64 returns the param on route as int64

func (*Context) PlainText added in v1.14.0

func (ctx *Context) PlainText(status int, text string)

PlainText renders content as plain text

func (*Context) PlainTextBytes added in v1.16.0

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

PlainTextBytes renders bytes as plain text

func (*Context) Redirect added in v1.14.0

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

Redirect redirects 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 added in v1.14.0

func (ctx *Context) RemoteAddr() string

RemoteAddr returns the client machie ip address

func (*Context) RenderToString added in v1.16.0

func (ctx *Context) RenderToString(name base.TplName, data map[string]interface{}) (string, error)

RenderToString renders the template content to a string

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) RespHeader added in v1.16.0

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

RespHeader returns the response header

func (*Context) ServeContent

func (ctx *Context) ServeContent(r io.ReadSeeker, opts *ServeHeaderOptions)

ServeContent serves content to http request

func (*Context) ServerError added in v1.4.0

func (ctx *Context) ServerError(logMsg string, logErr error)

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

func (*Context) SetCookie added in v1.14.0

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

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

SetParams set params into routes

func (*Context) SetServeHeaders added in v1.17.0

func (ctx *Context) SetServeHeaders(opts *ServeHeaderOptions)

SetServeHeaders sets necessary content serve headers

func (*Context) SetSuperSecureCookie added in v1.14.0

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

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

func (*Context) SetTotalCountHeader added in v1.17.0

func (ctx *Context) SetTotalCountHeader(total int64)

SetTotalCountHeader set "X-Total-Count" header

func (*Context) Status added in v1.14.0

func (ctx *Context) Status(status int)

Status writes status code

func (*Context) TrHTMLEscapeArgs added in v1.16.0

func (ctx *Context) TrHTMLEscapeArgs(msg string, args ...string) string

TrHTMLEscapeArgs runs Tr but pre-escapes all arguments with html.EscapeString. This is useful if the locale message is intended to only produce HTML content.

func (*Context) UploadStream added in v1.17.0

func (ctx *Context) UploadStream() (rd io.ReadCloser, needToClose bool, err error)

UploadStream returns the request body or the first form file Only form files need to get closed.

func (*Context) Value added in v1.15.0

func (ctx *Context) Value(key interface{}) interface{}

Value is part of the interface for context.Context and we pass this to the request context

func (*Context) Write added in v1.14.0

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

Write writes data to web browser

func (*Context) Written added in v1.14.0

func (ctx *Context) Written() bool

Written returns true if there are something sent to web browser

type CsrfOptions added in v1.14.0

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-Csrf-Token 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
	// Cookie lifetime. Default is 0
	CookieLifeTime int
	// contains filtered or unexported fields
}

CsrfOptions maintains options to manage behavior of Generate.

type Handler added in v1.14.0

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     *organization.Organization
	OrgLink          string
	CanCreateOrgRepo bool

	Team  *organization.Team
	Teams []*organization.Team
}

Organization contains organization context

type Package added in v1.17.0

type Package struct {
	Owner      *user_model.User
	AccessMode perm.AccessMode
	Descriptor *packages_model.PackageDescriptor
}

Package contains owner, access mode and optional the package descriptor

type Pagination added in v1.9.0

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

Pagination provides a pagination via paginator.Paginator and additional configurations for the link params used in rendering

func NewPagination added in v1.9.0

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

NewPagination creates a new instance of the Pagination struct

func (*Pagination) AddParam added in v1.9.0

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

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

func (*Pagination) AddParamString added in v1.14.0

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

AddParamString adds a string parameter directly

func (*Pagination) GetParams added in v1.9.0

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

GetParams returns the configured URL params

func (*Pagination) SetDefaultParams added in v1.9.0

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

SetDefaultParams sets common pagination params that are often used

type PrivateContext added in v1.14.0

type PrivateContext struct {
	*Context
	Override context.Context
}

PrivateContext represents a context for private routes

func GetPrivateContext added in v1.14.0

func GetPrivateContext(req *http.Request) *PrivateContext

GetPrivateContext returns a context for Private routes

func (*PrivateContext) Deadline added in v1.17.0

func (ctx *PrivateContext) Deadline() (deadline time.Time, ok bool)

Deadline is part of the interface for context.Context and we pass this to the request context

func (*PrivateContext) Done added in v1.17.0

func (ctx *PrivateContext) Done() <-chan struct{}

Done is part of the interface for context.Context and we pass this to the request context

func (*PrivateContext) Err added in v1.17.0

func (ctx *PrivateContext) Err() error

Err is part of the interface for context.Context and we pass this to the request context

type PullRequest

type PullRequest struct {
	BaseRepo       *repo_model.Repository
	Allowed        bool
	SameRepo       bool
	HeadInfoSubURL string // [<user>:]<branch> url segment
}

PullRequest contains information to make a pull request

type Render added in v1.14.0

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

func (rt RepoRefType) RefTypeIncludesBranches() bool

RefTypeIncludesBranches returns true if ref type can be a branch

func (RepoRefType) RefTypeIncludesTags added in v1.11.0

func (rt RepoRefType) RefTypeIncludesTags() bool

RefTypeIncludesTags returns true if ref type can be a tag

type Repository

type Repository struct {
	access_model.Permission
	IsWatching   bool
	IsViewBranch bool
	IsViewTag    bool
	IsViewCommit bool
	Repository   *repo_model.Repository
	Owner        *user_model.User
	Commit       *git.Commit
	Tag          *git.Tag
	GitRepo      *git.Repository
	RefName      string
	BranchName   string
	TagName      string
	TreePath     string
	CommitID     string
	RepoLink     string
	CloneLink    repo_model.CloneLink
	CommitsCount int64
	Mirror       *repo_model.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(ctx context.Context, doer *user_model.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 *user_model.User, isPull bool) bool

CanCreateIssueDependencies returns whether or not a user can create dependencies.

func (*Repository) CanEnableEditor

func (r *Repository) CanEnableEditor(user *user_model.User) 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 *issues_model.Issue, user *user_model.User) bool

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

func (*Repository) CanWriteToBranch added in v1.17.0

func (r *Repository) CanWriteToBranch(user *user_model.User, branch string) bool

CanWriteToBranch checks if the branch is writable by the user

func (*Repository) FileExists added in v1.9.0

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

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

func (*Repository) GetCommitGraphsCount added in v1.14.0

func (r *Repository) GetCommitGraphsCount(ctx context.Context, hidePRRefs bool, branches, 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(optCommit ...*git.Commit) (*editorconfig.Editorconfig, error)

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

type Response added in v1.14.0

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

Response represents a response

func NewResponse added in v1.14.0

func NewResponse(resp http.ResponseWriter) *Response

NewResponse creates a response

func (*Response) Before added in v1.14.0

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

func (r *Response) Flush()

Flush flush cached data

func (*Response) Size added in v1.14.0

func (r *Response) Size() int

Size return written size

func (*Response) Status added in v1.14.0

func (r *Response) Status() int

Status returned status code written

func (*Response) Write added in v1.14.0

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

Write writes bytes to HTTP endpoint

func (*Response) WriteHeader added in v1.14.0

func (r *Response) WriteHeader(statusCode int)

WriteHeader write status code

type ResponseWriter added in v1.14.0

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

ResponseWriter represents a response writer for HTTP

type ServeHeaderOptions added in v1.17.4

type ServeHeaderOptions struct {
	ContentType        string // defaults to "application/octet-stream"
	ContentTypeCharset string
	ContentLength      *int64
	Disposition        string // defaults to "attachment"
	Filename           string
	CacheDuration      time.Duration // defaults to 5 minutes
	LastModified       time.Time
}

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