Documentation ¶
Overview ¶
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
Copyright 2017 HootSuite Media Inc.
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Modified hereafter by contributors to runatlantis/atlantis.
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