common

package
v3.1.32 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2026 License: MIT Imports: 50 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LowPriority     = Priority(-10)
	DefaultPriority = Priority(0)
	HighPriority    = Priority(10)
)
View Source
const RouterMockPointCommonLFS = "common-lfs"

Variables

This section is empty.

Functions

func AddOwnerRepoGitLFSRoutes

func AddOwnerRepoGitLFSRoutes(m *web.Router, middlewares ...any)

func BlockExpensive

func BlockExpensive() func(next http.Handler) http.Handler

func ChiRoutePathHandler

func ChiRoutePathHandler() func(h http.Handler) http.Handler

func DownloadActionsRunJobLogs

func DownloadActionsRunJobLogs(ctx *context.Base, ctxRepo *repo_model.Repository, curJob *actions_model.ActionRunJob) error

func DownloadActionsRunJobLogsWithIndex

func DownloadActionsRunJobLogsWithIndex(ctx *context.Base, ctxRepo *repo_model.Repository, runID, jobIndex int64) error

func FetchRedirectDelegate

func FetchRedirectDelegate(resp http.ResponseWriter, req *http.Request)

FetchRedirectDelegate helps the "fetch" requests to redirect to the correct location

func FindHeadRepo

func FindHeadRepo(ctx context.Context, baseRepo *repo_model.Repository, headUserID int64) (*repo_model.Repository, error)

FindHeadRepo tries to find the head repository based on the base repository and head user ID.

func ForwardedHeadersHandler

func ForwardedHeadersHandler(limit int, trustedProxies []string) func(h http.Handler) http.Handler

func GetHeadOwnerAndRepo

func GetHeadOwnerAndRepo(ctx context.Context, baseRepo *repo_model.Repository, compareReq *CompareRouterReq) (headOwner *user_model.User, headRepo *repo_model.Repository, err error)

func InitDBEngine

func InitDBEngine(ctx context.Context) (err error)

InitDBEngine In case of problems connecting to DB, retry connection. Eg, PGSQL in Docker Container on Synology

func MustInitSessioner

func MustInitSessioner() func(next http.Handler) http.Handler

func PageGlobalData

func PageGlobalData(ctx *context.Context)

func ParseAPIDeadlineToEndOfDay

func ParseAPIDeadlineToEndOfDay(t *time.Time) (timeutil.TimeStamp, error)

func ParseDeadlineDateToEndOfDay

func ParseDeadlineDateToEndOfDay(date string) (timeutil.TimeStamp, error)

func ParseIssueFilterStateIsClosed

func ParseIssueFilterStateIsClosed(state string) optional.Option[bool]

func ParseIssueFilterTypeIsPull

func ParseIssueFilterTypeIsPull(typ string) optional.Option[bool]

func PrepareCodeSearch

func PrepareCodeSearch(ctx *context.Context) (ret struct {
	Keyword    string
	Language   string
	SearchMode indexer.SearchModeType
},
)

func ProtocolMiddlewares

func ProtocolMiddlewares() (handlers []any)

ProtocolMiddlewares returns HTTP protocol related middlewares, and it provides a global panic recovery

func QoS

func QoS() func(next http.Handler) http.Handler

QoS implements quality of service for requests, based upon whether or not the user is logged in. All traffic may get dropped, and anonymous users are deprioritized.

func RenderMarkup

func RenderMarkup(ctx *context.Base, ctxRepo *context.Repository, mode, text, urlPathContext, filePath string)

RenderMarkup renders markup text for the /markup and /markdown endpoints

func RenderPanicErrorPage

func RenderPanicErrorPage(w http.ResponseWriter, req *http.Request, err any)

RenderPanicErrorPage renders a 500 page, and it never panics

func RequestContextHandler

func RequestContextHandler() func(h http.Handler) http.Handler

func ServeBlob

func ServeBlob(ctx *context.Base, repo *repo_model.Repository, filePath string, blob *git.Blob, lastModified *time.Time) error

ServeBlob download a git.Blob

func ServeContentByReadSeeker

func ServeContentByReadSeeker(ctx *context.Base, filePath string, modTime *time.Time, reader io.ReadSeeker)

func ServeContentByReader

func ServeContentByReader(ctx *context.Base, filePath string, size int64, reader io.Reader)

Types

type AuthResult

type AuthResult struct {
	Doer        *user_model.User
	IsBasicAuth bool
}

func AuthShared

func AuthShared(ctx *context.Base, sessionStore auth_service.SessionStore, authMethod auth_service.Method) (ar AuthResult, err error)

type CompareRouterReq

type CompareRouterReq struct {
	BaseOriRef       string
	BaseOriRefSuffix string

	CompareSeparator string

	HeadOwner    string
	HeadRepoName string
	HeadOriRef   string
}

func ParseCompareRouterParam

func ParseCompareRouterParam(routerParam string) *CompareRouterReq

ParseCompareRouterParam Get compare information from the router parameter. A full compare url is of the form:

0. /{:baseOwner}/{:baseRepoName}/compare 1. /{:baseOwner}/{:baseRepoName}/compare/{:baseBranch}...{:headBranch} 2. /{:baseOwner}/{:baseRepoName}/compare/{:baseBranch}...{:headOwner}:{:headBranch} 3. /{:baseOwner}/{:baseRepoName}/compare/{:baseBranch}...{:headOwner}/{:headRepoName}:{:headBranch} 4. /{:baseOwner}/{:baseRepoName}/compare/{:headBranch} 5. /{:baseOwner}/{:baseRepoName}/compare/{:headOwner}:{:headBranch} 6. /{:baseOwner}/{:baseRepoName}/compare/{:headOwner}/{:headRepoName}:{:headBranch}

Here we obtain the infoPath "{:baseBranch}...[{:headOwner}/{:headRepoName}:]{:headBranch}" as ctx.PathParam("*") with the :baseRepo in ctx.Repo.

Note: Generally :headRepoName is not provided here - we are only passed :headOwner.

How do we determine the :headRepo?

1. If :headOwner is not set then the :headRepo = :baseRepo 2. If :headOwner is set - then look for the fork of :baseRepo owned by :headOwner 3. But... :baseRepo could be a fork of :headOwner's repo - so check that 4. Now, :baseRepo and :headRepos could be forks of the same repo - so check that

format: <base branch>...[<head repo>:]<head branch> base<-head: master...head:feature same repo: master...feature

func (*CompareRouterReq) DirectComparison

func (cr *CompareRouterReq) DirectComparison() bool

type Priority

type Priority int

func (Priority) String

func (p Priority) String() string

type StopwatchTmplInfo

type StopwatchTmplInfo struct {
	IssueLink  string
	RepoSlug   string
	IssueIndex int64
	Seconds    int64
}

StopwatchTmplInfo is a view on a stopwatch specifically for template rendering

type VerifyOptions

type VerifyOptions struct {
	SignInRequired               bool
	SignOutRequired              bool
	AdminRequired                bool
	DisableCrossOriginProtection bool
}

VerifyOptions contains required or check options

Source Files

  • actions.go
  • auth.go
  • blockexpensive.go
  • codesearch.go
  • compare.go
  • db.go
  • deadline.go
  • errpage.go
  • issue_filter.go
  • lfs.go
  • markup.go
  • middleware.go
  • pagetmpl.go
  • qos.go
  • redirect.go
  • serve.go

Jump to

Keyboard shortcuts

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