Documentation
¶
Index ¶
- Constants
- func Block(h http.Handler) http.Handler
- type API
- type ChannelSettings
- func (t *ChannelSettings) Clone() *ChannelSettings
- func (t *ChannelSettings) Dial() (*websocket.Conn, *http.Response, error)
- func (t *ChannelSettings) Dialer() *websocket.Dialer
- func (t *ChannelSettings) IsEqual(other *ChannelSettings) bool
- func (t *ChannelSettings) URL() (*url.URL, error)
- func (t *ChannelSettings) Validate() error
- type HandleFunc
- type MultipartUploadParams
- type RemoteObject
- type Response
Constants ¶
View Source
const (
// Custom content type for API responses, to catch routing / programming mistakes
ResponseContentType = "application/vnd.gitlab-workhorse+json"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type API ¶
func (*API) PreAuthorize ¶ added in v1.2.0
func (api *API) PreAuthorize(suffix string, r *http.Request) (httpResponse *http.Response, authResponse *Response, outErr error)
PreAuthorize performs a pre-authorization check against the API for the given HTTP request
If `outErr` is set, the other fields will be nil and it should be treated as a 500 error.
If httpResponse is present, the caller is responsible for closing its body ¶
authResponse will only be present if the authorization check was successful
func (*API) PreAuthorizeHandler ¶
func (api *API) PreAuthorizeHandler(next HandleFunc, suffix string) http.Handler
type ChannelSettings ¶
type ChannelSettings struct {
// The channel provider may require use of a particular subprotocol. If so,
// it must be specified here, and Workhorse must have a matching codec.
Subprotocols []string
// The websocket URL to connect to.
Url string
// Any headers (e.g., Authorization) to send with the websocket request
Header http.Header
// The CA roots to validate the remote endpoint with, for wss:// URLs. The
// system-provided CA pool will be used if this is blank. PEM-encoded data.
CAPem string
// The value is specified in seconds. It is converted to time.Duration
// later.
MaxSessionTime int
}
func (*ChannelSettings) Clone ¶
func (t *ChannelSettings) Clone() *ChannelSettings
func (*ChannelSettings) Dialer ¶
func (t *ChannelSettings) Dialer() *websocket.Dialer
func (*ChannelSettings) IsEqual ¶
func (t *ChannelSettings) IsEqual(other *ChannelSettings) bool
func (*ChannelSettings) Validate ¶
func (t *ChannelSettings) Validate() error
type HandleFunc ¶
type HandleFunc func(http.ResponseWriter, *http.Request, *Response)
type MultipartUploadParams ¶
type MultipartUploadParams struct {
// PartSize is the exact size of each uploaded part. Only the last one can be smaller
PartSize int64
// PartURLs contains the presigned URLs for each part
PartURLs []string
// CompleteURL is a presigned URL for CompleteMulipartUpload
CompleteURL string
// AbortURL is a presigned URL for AbortMultipartUpload
AbortURL string
}
type RemoteObject ¶
type RemoteObject struct {
// GetURL is an S3 GetObject URL
GetURL string
// DeleteURL is a presigned S3 RemoveObject URL
DeleteURL string
// StoreURL is the temporary presigned S3 PutObject URL to which upload the first found file
StoreURL string
// Boolean to indicate whether to use headers included in PutHeaders
CustomPutHeaders bool
// PutHeaders are HTTP headers (e.g. Content-Type) to be sent with StoreURL
PutHeaders map[string]string
// ID is a unique identifier of object storage upload
ID string
// Timeout is a number that represents timeout in seconds for sending data to StoreURL
Timeout int
// MultipartUpload contains presigned URLs for S3 MultipartUpload
MultipartUpload *MultipartUploadParams
}
type Response ¶
type Response struct {
// GL_ID is an environment variable used by gitlab-shell hooks during 'git
// push' and 'git pull'
GL_ID string
// GL_USERNAME holds gitlab username of the user who is taking the action causing hooks to be invoked
GL_USERNAME string
// GL_REPOSITORY is an environment variable used by gitlab-shell hooks during
// 'git push' and 'git pull'
GL_REPOSITORY string
// GitConfigOptions holds the custom options that we want to pass to the git command
GitConfigOptions []string
// StoreLFSPath is provided by the GitLab Rails application to mark where the tmp file should be placed.
// This field is deprecated. GitLab will use TempPath instead
StoreLFSPath string
// LFS object id
LfsOid string
// LFS object size
LfsSize int64
// TmpPath is the path where we should store temporary files
// This is set by authorization middleware
TempPath string
// RemoteObject is provided by the GitLab Rails application
// and defines a way to store object on remote storage
RemoteObject RemoteObject
// Archive is the path where the artifacts archive is stored
Archive string `json:"archive"`
// Entry is a filename inside the archive point to file that needs to be extracted
Entry string `json:"entry"`
// Used to communicate channel session details
Channel *ChannelSettings
// GitalyServer specifies an address and authentication token for a gitaly server we should connect to.
GitalyServer gitaly.Server
// Repository object for making gRPC requests to Gitaly.
Repository gitalypb.Repository
// For git-http, does the requestor have the right to view all refs?
ShowAllRefs bool
}
Click to show internal directories.
Click to hide internal directories.