Documentation ¶
Index ¶
- func MustConstraint(constraint string) version.Constraints
- func SplitAzureDevopsRepoFullName(repoFullName string) (owner string, project string, repo string)
- type AzureDevopsClient
- func (g *AzureDevopsClient) CreateComment(repo models.Repo, pullNum int, comment string) error
- func (g *AzureDevopsClient) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
- func (g *AzureDevopsClient) GetPullRequest(repo models.Repo, num int) (*azuredevops.GitPullRequest, error)
- func (g *AzureDevopsClient) MergePull(pull models.PullRequest) error
- func (g *AzureDevopsClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *AzureDevopsClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *AzureDevopsClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, ...) error
- type Client
- type ClientProxy
- func (d *ClientProxy) CreateComment(repo models.Repo, pullNum int, comment string) error
- func (d *ClientProxy) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
- func (d *ClientProxy) MergePull(pull models.PullRequest) error
- func (d *ClientProxy) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (d *ClientProxy) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
- func (d *ClientProxy) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.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) MergePull(pull models.PullRequest) error
- func (g *GithubClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GithubClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GithubClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.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) GetVersion() (*version.Version, error)
- func (g *GitlabClient) MergePull(pull models.PullRequest) error
- func (g *GitlabClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GitlabClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
- func (g *GitlabClient) SupportsCommonMark() bool
- func (g *GitlabClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, ...) error
- 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) MergePull(pull models.PullRequest) error
- func (a *NotConfiguredVCSClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
- func (a *NotConfiguredVCSClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
- func (a *NotConfiguredVCSClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MustConstraint ¶ added in v0.4.12
func MustConstraint(constraint string) version.Constraints
MustConstraint returns a constraint. It panics on error.
func SplitAzureDevopsRepoFullName ¶ added in v0.10.0
SplitAzureDevopsRepoFullName splits a repo full name up into its owner, repo and project name segments. If the repoFullName is malformed, may return empty strings for owner, repo, or project. Azure DevOps uses repoFullName format owner/project/repo.
Ex. runatlantis/atlantis => (runatlantis, atlantis)
gitlab/subgroup/runatlantis/atlantis => (gitlab/subgroup/runatlantis, atlantis) azuredevops/project/atlantis => (azuredevops, project, atlantis)
Types ¶
type AzureDevopsClient ¶ added in v0.10.0
type AzureDevopsClient struct { Client *azuredevops.Client // contains filtered or unexported fields }
AzureDevopsClient represents an Azure DevOps VCS client
func NewAzureDevopsClient ¶ added in v0.10.0
func NewAzureDevopsClient(hostname string, token string) (*AzureDevopsClient, error)
NewAzureDevopsClient returns a valid Azure DevOps client.
func (*AzureDevopsClient) CreateComment ¶ added in v0.10.0
CreateComment creates a comment on a pull request.
If comment length is greater than the max comment length we split into multiple comments. Azure DevOps doesn't support markdown in Work Item comments, but it will convert text to HTML. We use the blackfriday library to convert Atlantis comment markdown before submission.
func (*AzureDevopsClient) GetModifiedFiles ¶ added in v0.10.0
func (g *AzureDevopsClient) 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 (*AzureDevopsClient) GetPullRequest ¶ added in v0.10.0
func (g *AzureDevopsClient) GetPullRequest(repo models.Repo, num int) (*azuredevops.GitPullRequest, error)
GetPullRequest returns the pull request.
func (*AzureDevopsClient) MergePull ¶ added in v0.10.0
func (g *AzureDevopsClient) MergePull(pull models.PullRequest) error
MergePull merges the merge request using the default no fast-forward strategy If the user has set a branch policy that disallows no fast-forward, the merge will fail until we handle branch policies https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=azure-devops
func (*AzureDevopsClient) PullIsApproved ¶ added in v0.10.0
func (g *AzureDevopsClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsApproved returns true if the merge request was approved. https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=azure-devops#require-a-minimum-number-of-reviewers
func (*AzureDevopsClient) PullIsMergeable ¶ added in v0.10.0
func (g *AzureDevopsClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsMergeable returns true if the merge request can be merged.
func (*AzureDevopsClient) UpdateStatus ¶ added in v0.10.0
func (g *AzureDevopsClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url string) error
UpdateStatus updates the build status of a commit.
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) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error) // UpdateStatus updates the commit status to state for pull. src is the // source of this status. This should be relatively static across runs, // ex. atlantis/plan or atlantis/apply. // description is a description of this particular status update and can // change across runs. // url is an optional link that users should click on for more information // about this status. UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url string) error MergePull(pull models.PullRequest) error }
Client is used to make API calls to a VCS host like GitHub or GitLab.
type ClientProxy ¶
type ClientProxy struct {
// contains filtered or unexported fields
}
ClientProxy proxies calls to the correct VCS client depending on which VCS host is required.
func NewClientProxy ¶ added in v0.5.0
func (*ClientProxy) CreateComment ¶
func (*ClientProxy) GetModifiedFiles ¶
func (d *ClientProxy) GetModifiedFiles(repo models.Repo, pull models.PullRequest) ([]string, error)
func (*ClientProxy) MergePull ¶ added in v0.4.14
func (d *ClientProxy) MergePull(pull models.PullRequest) error
func (*ClientProxy) PullIsApproved ¶
func (d *ClientProxy) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
func (*ClientProxy) PullIsMergeable ¶ added in v0.4.13
func (d *ClientProxy) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
func (*ClientProxy) UpdateStatus ¶
func (d *ClientProxy) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url string) 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) MergePull ¶ added in v0.4.14
func (g *GithubClient) MergePull(pull models.PullRequest) error
MergePull merges 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) PullIsMergeable ¶ added in v0.4.13
func (g *GithubClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsMergeable returns true if the pull request is mergeable.
func (*GithubClient) UpdateStatus ¶
func (g *GithubClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url 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 // Version is set to the server version. Version *version.Version }
func NewGitlabClient ¶ added in v0.4.12
func NewGitlabClient(hostname string, token string, logger *logging.SimpleLogger) (*GitlabClient, error)
NewGitlabClient returns a valid 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) GetVersion ¶ added in v0.4.12
func (g *GitlabClient) GetVersion() (*version.Version, error)
GetVersion returns the version of the Gitlab server this client is using.
func (*GitlabClient) MergePull ¶ added in v0.4.14
func (g *GitlabClient) MergePull(pull models.PullRequest) error
MergePull merges the merge request.
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) PullIsMergeable ¶ added in v0.4.13
func (g *GitlabClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
PullIsMergeable returns true if the merge request can be merged. In GitLab, there isn't a single field that tells us if the pull request is mergeable so for now we check the merge_status and approvals_before_merge fields. We aren't checking if there are unresolved discussions or failing pipelines because those only block merges if the repo is set to require that. In order to check if the repo required these, we'd need to make another API call to get the repo settings. For now I'm going to leave this as is and if some users require checking this as well then we can revisit. It's also possible that GitLab implements their own "mergeable" field in their API in the future. See: - https://gitlab.com/gitlab-org/gitlab-ee/issues/3169 - https://gitlab.com/gitlab-org/gitlab-ce/issues/42344
func (*GitlabClient) SupportsCommonMark ¶ added in v0.4.12
func (g *GitlabClient) SupportsCommonMark() bool
SupportsCommonMark returns true if the version of Gitlab this client is using supports the CommonMark markdown format.
func (*GitlabClient) UpdateStatus ¶
func (g *GitlabClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url string) error
UpdateStatus updates the build status of a commit.
type NotConfiguredVCSClient ¶
type NotConfiguredVCSClient struct {
Host models.VCSHostType
}
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) MergePull ¶ added in v0.4.14
func (a *NotConfiguredVCSClient) MergePull(pull models.PullRequest) error
func (*NotConfiguredVCSClient) PullIsApproved ¶
func (a *NotConfiguredVCSClient) PullIsApproved(repo models.Repo, pull models.PullRequest) (bool, error)
func (*NotConfiguredVCSClient) PullIsMergeable ¶ added in v0.4.13
func (a *NotConfiguredVCSClient) PullIsMergeable(repo models.Repo, pull models.PullRequest) (bool, error)
func (*NotConfiguredVCSClient) UpdateStatus ¶
func (a *NotConfiguredVCSClient) UpdateStatus(repo models.Repo, pull models.PullRequest, state models.CommitStatus, src string, description string, url string) error
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitbucketcloud holds code for Bitbucket Cloud aka (bitbucket.org).
|
Package bitbucketcloud holds code for Bitbucket Cloud aka (bitbucket.org). |
Package common is used to share common code between all VCS clients without running into circular dependency issues.
|
Package common is used to share common code between all VCS clients without running into circular dependency issues. |
matchers
Code generated by pegomock.
|
Code generated by pegomock. |