mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-28 21:28:20 +00:00
@@ -469,7 +469,7 @@ None
|
||||
your Git host (ex. via GitHub protected branches). If so, you'll need to change
|
||||
your settings to require the new names to pass and un-require the old names.
|
||||
|
||||
> If you were on a version lower than `v0.5.*` then read the backwards compatiblity
|
||||
> If you were on a version lower than `v0.5.*` then read the backwards compatibility
|
||||
notes for release `0.5.0`.
|
||||
|
||||
**NOTE from the maintainer**: I take backwards compatibility seriously and I
|
||||
|
||||
@@ -5,7 +5,7 @@ LABEL authors="Anubhav Mishra, Luke Kysow"
|
||||
# install terraform binaries
|
||||
ENV DEFAULT_TERRAFORM_VERSION=0.12.19
|
||||
|
||||
# In the official Atlantis image we only have the latest of each Terrafrom version.
|
||||
# In the official Atlantis image we only have the latest of each Terraform version.
|
||||
RUN AVAILABLE_TERRAFORM_VERSIONS="0.8.8 0.9.11 0.10.8 0.11.14 ${DEFAULT_TERRAFORM_VERSION}" && \
|
||||
for VERSION in ${AVAILABLE_TERRAFORM_VERSIONS}; do \
|
||||
curl -LOks https://releases.hashicorp.com/terraform/${VERSION}/terraform_${VERSION}_linux_amd64.zip && \
|
||||
|
||||
@@ -488,8 +488,8 @@ func (s *ServerCmd) validate(userConfig server.UserConfig) error {
|
||||
if logLevel != "debug" && logLevel != "info" && logLevel != "warn" && logLevel != "error" {
|
||||
return errors.New("invalid log level: not one of debug, info, warn, error")
|
||||
}
|
||||
checkoutStrat := userConfig.CheckoutStrategy
|
||||
if checkoutStrat != "branch" && checkoutStrat != "merge" {
|
||||
checkoutStrategy := userConfig.CheckoutStrategy
|
||||
if checkoutStrategy != "branch" && checkoutStrategy != "merge" {
|
||||
return errors.New("invalid checkout strategy: not one of branch or merge")
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ In Azure DevOps, all pull requests are mergeable unless there is a conflict. You
|
||||
* Allow users to approve their own changes
|
||||
* Allow completion even if some reviewers vote "Waiting" or "Reject"
|
||||
* Reset code reviewer votes when there are new changes
|
||||
* Require a specfic merge strategy (squash, rebase, etc.)
|
||||
* Require a specific merge strategy (squash, rebase, etc.)
|
||||
|
||||
::: warning
|
||||
At this time, the Azure DevOps client only supports merging using the default 'no fast-forward' strategy. Make sure your branch policies permit this type of merge.
|
||||
|
||||
@@ -453,7 +453,7 @@ Values are chosen in this order:
|
||||
# or (recommended)
|
||||
ATLANTIS_TFE_TOKEN='xxx.atlasv1.yyy' atlantis server
|
||||
```
|
||||
A token for Terraform Cloud/Terraform Enteprise integration. See [Terraform Cloud](terraform-cloud.html) for more details.
|
||||
A token for Terraform Cloud/Terraform Enterprise integration. See [Terraform Cloud](terraform-cloud.html) for more details.
|
||||
|
||||
* ### `--vcs-status-name`
|
||||
```bash
|
||||
|
||||
@@ -306,7 +306,7 @@ If you set a workflow with the key `default`, it will override this.
|
||||
### Repo
|
||||
| Key | Type | Default | Required | Description |
|
||||
|------------------------|----------|---------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| id | string | none | yes | Value can be a regular expresion when specified as /<regex>/ or an exact string match. Repo IDs are of the form `{vcs hostname}/{org}/{name}`, ex. `github.com/owner/repo`. Hostname is specified without scheme or port. For Bitbucket Server, {org} is the **name** of the project, not the key. |
|
||||
| id | string | none | yes | Value can be a regular expression when specified as /<regex>/ or an exact string match. Repo IDs are of the form `{vcs hostname}/{org}/{name}`, ex. `github.com/owner/repo`. Hostname is specified without scheme or port. For Bitbucket Server, {org} is the **name** of the project, not the key. |
|
||||
| workflow | string | none | no | A custom workflow. |
|
||||
| apply_requirements | []string | none | no | Requirements that must be satisfied before `atlantis apply` can be run. Currently the only supported requirements are `approved` and `mergeable`. See [Apply Requirements](apply-requirements.html) for more details. |
|
||||
| allowed_overrides | []string | none | no | A list of restricted keys that `atlantis.yaml` files can override. The only supported keys are `apply_requirements` and `workflow` |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
::: tip NOTE
|
||||
Terraform Enterprise was [recently renamed](https://www.hashicorp.com/blog/introducing-terraform-cloud-remote-state-management) Terraform Cloud
|
||||
and Private Terraform Enteprise was renamed Terraform Enterprise.
|
||||
and Private Terraform Enterprise was renamed Terraform Enterprise.
|
||||
:::
|
||||
|
||||
Atlantis integrates seamlessly with Terraform Cloud and Terraform Enterprise, whether you're using:
|
||||
|
||||
@@ -12,7 +12,7 @@ if you don't wish to do so.
|
||||
The only change from v2 to v3 is that we're parsing custom `run` steps differently.
|
||||
```yaml
|
||||
# atlantis.yaml
|
||||
worklows:
|
||||
workflows:
|
||||
custom:
|
||||
plan:
|
||||
steps:
|
||||
|
||||
@@ -455,7 +455,7 @@ func (c *DefaultCommandRunner) deletePlans(ctx *CommandContext) {
|
||||
|
||||
func (c *DefaultCommandRunner) updateDB(ctx *CommandContext, pull models.PullRequest, results []models.ProjectResult) (models.PullStatus, error) {
|
||||
// Filter out results that errored due to the directory not existing. We
|
||||
// don't store these in the database because they would never be "applyable"
|
||||
// don't store these in the database because they would never be "apply-able"
|
||||
// and so the pull request would always have errors.
|
||||
var filtered []models.ProjectResult
|
||||
for _, r := range results {
|
||||
|
||||
@@ -384,9 +384,9 @@ func (e *EventParser) ParseGithubIssueCommentEvent(comment *github.IssueCommentE
|
||||
err = errors.New("comment.user.login is null")
|
||||
return
|
||||
}
|
||||
commentorUsername := comment.Comment.User.GetLogin()
|
||||
commenterUsername := comment.Comment.User.GetLogin()
|
||||
user = models.User{
|
||||
Username: commentorUsername,
|
||||
Username: commenterUsername,
|
||||
}
|
||||
pullNum = comment.Issue.GetNumber()
|
||||
if pullNum == 0 {
|
||||
|
||||
@@ -98,7 +98,7 @@ func TestWriteGitCreds_ConfigureGitCredentialHelper(t *testing.T) {
|
||||
}
|
||||
|
||||
// Test that git is configured to use https instead of ssh
|
||||
func TestWriteGitCreds_ConfigureGitUrlOveride(t *testing.T) {
|
||||
func TestWriteGitCreds_ConfigureGitUrlOverride(t *testing.T) {
|
||||
tmp, cleanup := TempDir(t)
|
||||
defer cleanup()
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import (
|
||||
. "github.com/runatlantis/atlantis/testing"
|
||||
)
|
||||
|
||||
func TestMustConstraint_PancisOnBadConstraint(t *testing.T) {
|
||||
func TestMustConstraint_PanicsOnBadConstraint(t *testing.T) {
|
||||
t.Log("MustConstraint should panic on a bad constraint")
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
|
||||
@@ -32,14 +32,14 @@ var client webhooks.DefaultSlackClient
|
||||
var result webhooks.ApplyResult
|
||||
|
||||
func TestAuthTest_Success(t *testing.T) {
|
||||
t.Log("When the underylying client succeeds, function should succeed")
|
||||
t.Log("When the underlying client succeeds, function should succeed")
|
||||
setup(t)
|
||||
err := client.AuthTest()
|
||||
Ok(t, err)
|
||||
}
|
||||
|
||||
func TestAuthTest_Error(t *testing.T) {
|
||||
t.Log("When the underylying slack client errors, an error should be returned")
|
||||
t.Log("When the underlying slack client errors, an error should be returned")
|
||||
setup(t)
|
||||
When(underlying.AuthTest()).ThenReturn(nil, errors.New(""))
|
||||
err := client.AuthTest()
|
||||
@@ -82,7 +82,7 @@ func TestChannelExists_True(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestChannelExists_Error(t *testing.T) {
|
||||
t.Log("When the underylying slack client errors, an error should be returned")
|
||||
t.Log("When the underlying slack client errors, an error should be returned")
|
||||
setup(t)
|
||||
When(underlying.GetChannels(true)).ThenReturn(nil, errors.New(""))
|
||||
|
||||
@@ -135,7 +135,7 @@ func TestPostMessage_Success(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPostMessage_Error(t *testing.T) {
|
||||
t.Log("When the underylying slack client errors, an error should be returned")
|
||||
t.Log("When the underlying slack client errors, an error should be returned")
|
||||
setup(t)
|
||||
|
||||
expParams := slack.NewPostMessageParameters()
|
||||
|
||||
@@ -116,7 +116,7 @@ func TestNewWebhooksManager_NoConfigSuccess(t *testing.T) {
|
||||
Assert(t, m != nil, "manager shouldn't be nil")
|
||||
Equals(t, 0, len(m.Webhooks))
|
||||
|
||||
t.Log("passing nil client hould succeed")
|
||||
t.Log("passing nil client should succeed")
|
||||
m, err = webhooks.NewMultiWebhookSender(emptyConfigs, nil)
|
||||
Ok(t, err)
|
||||
Assert(t, m != nil, "manager shouldn't be nil")
|
||||
|
||||
@@ -220,7 +220,7 @@ func (w *FileWorkspace) forceClone(log *logging.SimpleLogger,
|
||||
cmd.Dir = cloneDir
|
||||
// The git merge command requires these env vars are set.
|
||||
cmd.Env = append(os.Environ(), []string{
|
||||
"EMAIL=atlantis@runatlants.io",
|
||||
"EMAIL=atlantis@runatlantis.io",
|
||||
"GIT_AUTHOR_NAME=atlantis",
|
||||
"GIT_COMMITTER_NAME=atlantis",
|
||||
}...)
|
||||
|
||||
@@ -236,7 +236,7 @@ func TestConfig_ToValid(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "automerge ommitted",
|
||||
description: "automerge omitted",
|
||||
input: raw.RepoCfg{
|
||||
Version: Int(2),
|
||||
},
|
||||
|
||||
@@ -92,10 +92,10 @@ func NewGlobalCfg(allowRepoCfg bool, mergeableReq bool, approvedReq bool) Global
|
||||
applyReqs = append(applyReqs, ApprovedApplyReq)
|
||||
}
|
||||
|
||||
allowCustomWorkfows := false
|
||||
allowCustomWorkflows := false
|
||||
if allowRepoCfg {
|
||||
allowedOverrides = []string{ApplyRequirementsKey, WorkflowKey}
|
||||
allowCustomWorkfows = true
|
||||
allowCustomWorkflows = true
|
||||
}
|
||||
|
||||
return GlobalCfg{
|
||||
@@ -105,7 +105,7 @@ func NewGlobalCfg(allowRepoCfg bool, mergeableReq bool, approvedReq bool) Global
|
||||
ApplyRequirements: applyReqs,
|
||||
Workflow: &defaultWorkflow,
|
||||
AllowedOverrides: allowedOverrides,
|
||||
AllowCustomWorkflows: &allowCustomWorkfows,
|
||||
AllowCustomWorkflows: &allowCustomWorkflows,
|
||||
},
|
||||
},
|
||||
Workflows: map[string]Workflow{
|
||||
@@ -238,16 +238,16 @@ func (g GlobalCfg) ValidateRepoCfg(rCfg RepoCfg, repoID string) error {
|
||||
}
|
||||
|
||||
// Check custom workflows.
|
||||
var allowCustomWorklows bool
|
||||
var allowCustomWorkflows bool
|
||||
for _, repo := range g.Repos {
|
||||
if repo.IDMatches(repoID) {
|
||||
if repo.AllowCustomWorkflows != nil {
|
||||
allowCustomWorklows = *repo.AllowCustomWorkflows
|
||||
allowCustomWorkflows = *repo.AllowCustomWorkflows
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(rCfg.Workflows) > 0 && !allowCustomWorklows {
|
||||
if len(rCfg.Workflows) > 0 && !allowCustomWorkflows {
|
||||
return fmt.Errorf("repo config not allowed to define custom workflows: server-side config needs '%s: true'", AllowCustomWorkflowsKey)
|
||||
}
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ func NewServer(userConfig UserConfig, config Config) (*Server, error) {
|
||||
}
|
||||
if userConfig.BitbucketUser != "" {
|
||||
// The default BitbucketBaseURL is https://api.bitbucket.org which can't actually be used for git
|
||||
// so we overide it here only if it's that to be bitbucket.org
|
||||
// so we override it here only if it's that to be bitbucket.org
|
||||
bitbucketBaseURL := userConfig.BitbucketBaseURL
|
||||
if bitbucketBaseURL == "https://api.bitbucket.org" {
|
||||
bitbucketBaseURL = "bitbucket.org"
|
||||
|
||||
@@ -232,7 +232,7 @@ func TestParseAtlantisURL(t *testing.T) {
|
||||
ExpErr: "http or https must be specified",
|
||||
},
|
||||
{
|
||||
In: "httpl://localhost/test",
|
||||
In: "http0://localhost/test",
|
||||
ExpErr: "http or https must be specified",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -265,7 +265,7 @@ var _bindata = map[string]func() (*asset, error){
|
||||
// b.png
|
||||
// then AssetDir("data") would return []string{"foo.txt", "img"}
|
||||
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
||||
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
||||
// AssetDir("foo.txt") and AssetDir("nonexistent") would return an error
|
||||
// AssetDir("") will return []string{"data"}.
|
||||
func AssetDir(name string) ([]string, error) {
|
||||
node := _bintree
|
||||
|
||||
@@ -125,7 +125,7 @@ tbody {
|
||||
left: 0; }
|
||||
.has-docked-nav .navbar-spacer {
|
||||
display: block; }
|
||||
/* Re-overiding the width 100% declaration to match size of % based container */
|
||||
/* Re-overriding the width 100% declaration to match size of % based container */
|
||||
.has-docked-nav .navbar > .container {
|
||||
width: 80%; }
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"created_at": "2015-05-05T23:40:28Z",
|
||||
"updated_at": "2015-05-05T23:40:28Z",
|
||||
"closed_at": null,
|
||||
"body": "It looks like you accidently spelled 'commit' with two 't's."
|
||||
"body": "It looks like you accidentally spelled 'commit' with two 't's."
|
||||
},
|
||||
"comment": {
|
||||
"url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments/99262140",
|
||||
|
||||
Reference in New Issue
Block a user