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. |