Documentation
¶
Overview ¶
Package server is the main package for Atlantis. It handles the web server and executing commands that come in via pull request comments.
Index ¶
- Constants
- type Config
- type EventsController
- func (e *EventsController) HandleCommentEvent(w http.ResponseWriter, event *github.IssueCommentEvent, githubReqID string)
- func (e *EventsController) HandlePullRequestEvent(w http.ResponseWriter, pullEvent *github.PullRequestEvent, githubReqID string)
- func (e *EventsController) Post(w http.ResponseWriter, r *http.Request)
- type GHRequestValidation
- type GHRequestValidator
- type LockDetailData
- type LockIndexData
- type RequestLogger
- type Server
- func (s *Server) DeleteLock(w http.ResponseWriter, _ *http.Request, id string)
- func (s *Server) DeleteLockRoute(w http.ResponseWriter, r *http.Request)
- func (s *Server) GetLock(w http.ResponseWriter, _ *http.Request, id string)
- func (s *Server) GetLockRoute(w http.ResponseWriter, r *http.Request)
- func (s *Server) Index(w http.ResponseWriter, _ *http.Request)
- func (s *Server) Start() error
- type TemplateWriter
Constants ¶
const LockRouteName = "lock-detail"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶ added in v0.1.3
type Config struct {
AtlantisURL string `mapstructure:"atlantis-url"`
DataDir string `mapstructure:"data-dir"`
GithubHostname string `mapstructure:"gh-hostname"`
GithubToken string `mapstructure:"gh-token"`
GithubUser string `mapstructure:"gh-user"`
GithubWebHookSecret string `mapstructure:"gh-webhook-secret"`
LogLevel string `mapstructure:"log-level"`
Port int `mapstructure:"port"`
RequireApproval bool `mapstructure:"require-approval"`
}
Config configures Server. The mapstructure tags correspond to flags in cmd/server.go and are used when the config is parsed from a YAML file.
type EventsController ¶ added in v0.1.3
type EventsController struct {
CommandRunner events.CommandRunner
PullCleaner events.PullCleaner
Logger *logging.SimpleLogger
Parser events.EventParsing
// GithubWebHookSecret is the secret added to this webhook via the GitHub
// UI that identifies this call as coming from GitHub. If empty, no
// request validation is done.
GithubWebHookSecret []byte
Validator GHRequestValidator
}
func (*EventsController) HandleCommentEvent ¶ added in v0.1.3
func (e *EventsController) HandleCommentEvent(w http.ResponseWriter, event *github.IssueCommentEvent, githubReqID string)
func (*EventsController) HandlePullRequestEvent ¶ added in v0.1.3
func (e *EventsController) HandlePullRequestEvent(w http.ResponseWriter, pullEvent *github.PullRequestEvent, githubReqID string)
HandlePullRequestEvent will delete any locks associated with the pull request
func (*EventsController) Post ¶ added in v0.1.3
func (e *EventsController) Post(w http.ResponseWriter, r *http.Request)
type GHRequestValidation ¶ added in v0.1.3
type GHRequestValidation struct{}
GHRequestValidation implements the GHRequestValidator interface.
type GHRequestValidator ¶ added in v0.1.3
type GHRequestValidator interface {
// Validate returns the JSON payload of the request.
// If secret is not empty, it checks that the request was signed
// by secret and returns an error if it was not.
// If secret is empty, it does not check if the request was signed.
Validate(r *http.Request, secret []byte) ([]byte, error)
}
GHRequestValidator validates GitHub requests.
type LockDetailData ¶ added in v0.1.3
type LockIndexData ¶ added in v0.1.3
type RequestLogger ¶
type RequestLogger struct {
// contains filtered or unexported fields
}
RequestLogger logs requests and their response codes
func NewRequestLogger ¶
func NewRequestLogger(logger *logging.SimpleLogger) *RequestLogger
func (*RequestLogger) ServeHTTP ¶
func (l *RequestLogger) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)
type Server ¶
type Server struct {
Router *mux.Router
Port int
CommandHandler *events.CommandHandler
Logger *logging.SimpleLogger
Locker locking.Locker
AtlantisURL string
EventsController *EventsController
IndexTemplate TemplateWriter
LockDetailTemplate TemplateWriter
}
Server listens for GitHub events and runs the necessary Atlantis command
func (*Server) DeleteLock ¶ added in v0.1.3
func (*Server) DeleteLockRoute ¶ added in v0.1.3
func (s *Server) DeleteLockRoute(w http.ResponseWriter, r *http.Request)
func (*Server) GetLock ¶ added in v0.1.3
GetLock handles a lock detail page view. getLockRoute is expected to be called before. This function was extracted to make it testable.
func (*Server) GetLockRoute ¶ added in v0.1.3
func (s *Server) GetLockRoute(w http.ResponseWriter, r *http.Request)
type TemplateWriter ¶ added in v0.1.3
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
github
Package github provides convenience wrappers around the go-github package.
|
Package github provides convenience wrappers around the go-github package. |
|
locking
Package locking handles locking projects when they have in-progress runs.
|
Package locking handles locking projects when they have in-progress runs. |
|
locking/boltdb
Package boltdb provides a locking implementation using Bolt.
|
Package boltdb provides a locking implementation using Bolt. |
|
models
Package models holds all models that are needed across packages.
|
Package models holds all models that are needed across packages. |
|
run
Package run handles running commands prior and following the regular Atlantis commands.
|
Package run handles running commands prior and following the regular Atlantis commands. |
|
terraform
Package terraform handles the actual running of terraform commands
|
Package terraform handles the actual running of terraform commands |
|
Package logging handles logging throughout Atlantis.
|
Package logging handles logging throughout Atlantis. |
|
Package recovery is aken from https://github.com/gin-gonic/gin/blob/master/recovery.go License of source below: Copyright 2014 Manu Martinez-Almeida.
|
Package recovery is aken from https://github.com/gin-gonic/gin/blob/master/recovery.go License of source below: Copyright 2014 Manu Martinez-Almeida. |