Documentation ¶
Index ¶
- type Client
- type ClientProxy
- type CommitStatus
- type DefaultClientProxy
- func (d *DefaultClientProxy) CreateComment(repo models.Repo, pullNum int, comment string, host Host) error
- func (d *DefaultClientProxy) GetModifiedFiles(repo models.Repo, pull models.PullRequest, host Host) ([]string, error)
- func (d *DefaultClientProxy) PullIsApproved(repo models.Repo, pull models.PullRequest, host Host) (bool, error)
- func (d *DefaultClientProxy) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, ...) error
- type GithubClient
- func (g *GithubClient) CreateComment(repo models.Repo, pullNum int, comment string) error
- func (g *GithubClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
- func (g *GithubClient) GetPullRequest(repo models.Repo, num int) (*github.PullRequest, error)
- func (g *GithubClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GithubClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, ...) error
- type GitlabClient
- func (g *GitlabClient) CreateComment(repo models.Repo, pullNum int, comment string) error
- func (g *GitlabClient) GetMergeRequest(repoFullName string, pullNum int) (*gitlab.MergeRequest, error)
- func (g *GitlabClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
- func (g *GitlabClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GitlabClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, ...) error
- type Host
- type NotConfiguredVCSClient
- func (a *NotConfiguredVCSClient) CreateComment(repo models.Repo, pullNum int, comment string) error
- func (a *NotConfiguredVCSClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
- func (a *NotConfiguredVCSClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (a *NotConfiguredVCSClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error) CreateComment(repo models.Repo, pullNum int, comment string) error PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string) error }
Client is used to make API calls to a VCS host like GitHub or GitLab.
type ClientProxy ¶
type ClientProxy interface { GetModifiedFiles(repo models.Repo, pull models.PullRequest, host Host) ([]string, error) CreateComment(repo models.Repo, pullNum int, comment string, host Host) error PullIsApproved(repo models.Repo, pull models.PullRequest, host Host) (bool, error) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string, host Host) error }
ClientProxy proxies calls to the correct VCS client depending on which VCS host is required.
type CommitStatus ¶
type CommitStatus int
CommitStatus is the result of executing an Atlantis command for the commit. In Github the options are: error, failure, pending, success. In Gitlab the options are: failed, canceled, pending, running, success. We only support Failed, Pending, Success.
const ( Pending CommitStatus = iota Success Failed )
func (CommitStatus) String ¶
func (s CommitStatus) String() string
type DefaultClientProxy ¶
DefaultClientProxy proxies calls to the correct VCS client depending on which VCS host is required.
func NewDefaultClientProxy ¶
func NewDefaultClientProxy(githubClient Client, gitlabClient Client) *DefaultClientProxy
func (*DefaultClientProxy) CreateComment ¶
func (*DefaultClientProxy) GetModifiedFiles ¶
func (d *DefaultClientProxy) GetModifiedFiles(repo models.Repo, pull models.PullRequest, host Host) ([]string, error)
func (*DefaultClientProxy) PullIsApproved ¶
func (d *DefaultClientProxy) PullIsApproved(repo models.Repo, pull models.PullRequest, host Host) (bool, error)
func (*DefaultClientProxy) UpdateStatus ¶
func (d *DefaultClientProxy) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string, host Host) error
type GithubClient ¶
type GithubClient struct {
// contains filtered or unexported fields
}
GithubClient is used to perform GitHub actions.
func NewGithubClient ¶
func NewGithubClient(hostname string, user string, pass string) (*GithubClient, error)
NewGithubClient returns a valid GitHub client.
func (*GithubClient) CreateComment ¶
CreateComment creates a comment on the pull request. If comment length is greater than the max comment length we split into multiple comments.
func (*GithubClient) GetModifiedFiles ¶
func (g *GithubClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
GetModifiedFiles returns the names of files that were modified in the pull request. The names include the path to the file from the repo root, ex. parent/child/file.txt.
func (*GithubClient) GetPullRequest ¶
func (g *GithubClient) GetPullRequest(repo models.Repo, num int) (*github.PullRequest, error)
GetPullRequest returns the pull request.
func (*GithubClient) PullIsApproved ¶
func (g *GithubClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsApproved returns true if the pull request was approved.
func (*GithubClient) UpdateStatus ¶
func (g *GithubClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string) error
UpdateStatus updates the status badge on the pull request. See https://github.com/blog/1227-commit-status-api.
type GitlabClient ¶
type GitlabClient struct {
Client *gitlab.Client
}
func (*GitlabClient) CreateComment ¶
CreateComment creates a comment on the merge request.
func (*GitlabClient) GetMergeRequest ¶
func (g *GitlabClient) GetMergeRequest(repoFullName string, pullNum int) (*gitlab.MergeRequest, error)
func (*GitlabClient) GetModifiedFiles ¶
func (g *GitlabClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
GetModifiedFiles returns the names of files that were modified in the merge request. The names include the path to the file from the repo root, ex. parent/child/file.txt.
func (*GitlabClient) PullIsApproved ¶
func (g *GitlabClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsApproved returns true if the merge request was approved.
func (*GitlabClient) UpdateStatus ¶
func (g *GitlabClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string) error
UpdateStatus updates the build status of a commit.
type NotConfiguredVCSClient ¶
type NotConfiguredVCSClient struct {
Host Host
}
NotConfiguredVCSClient is used as a placeholder when Atlantis isn't configured on startup to support a certain VCS host. For example, if there is no GitHub config then this client will be used which will error if it's ever called.
func (*NotConfiguredVCSClient) CreateComment ¶
func (*NotConfiguredVCSClient) GetModifiedFiles ¶
func (a *NotConfiguredVCSClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
func (*NotConfiguredVCSClient) PullIsApproved ¶
func (a *NotConfiguredVCSClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
func (*NotConfiguredVCSClient) UpdateStatus ¶
func (a *NotConfiguredVCSClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state CommitStatus, description string) error