provider/gitlab: Addition of the documentation link for gitlab to sidebar
``` % make testacc TEST=./builtin/providers/gitlab ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /terraform/vendor/) 2017/04/27 05:37:02 Generated command/internal_plugin_list.go TF_ACC=1 go test ./builtin/providers/gitlab -v -timeout 120m === RUN TestProvider --- PASS: TestProvider (0.00s) === RUN TestProvider_impl --- PASS: TestProvider_impl (0.00s) === RUN TestAccGitlabProject_basic --- PASS: TestAccGitlabProject_basic (41.11s) === RUN TestGitlab_validation --- PASS: TestGitlab_validation (0.00s) === RUN TestGitlab_visbilityHelpers --- PASS: TestGitlab_visbilityHelpers (0.00s) PASS ok github.com/hashicorp/terraform/builtin/providers/gitlab 41.125s ```
This commit is contained in:
parent
898ac02854
commit
fd48f91876
|
@ -11,13 +11,13 @@ func Provider() terraform.ResourceProvider {
|
|||
// The actual provider
|
||||
return &schema.Provider{
|
||||
Schema: map[string]*schema.Schema{
|
||||
"token": &schema.Schema{
|
||||
"token": {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
DefaultFunc: schema.EnvDefaultFunc("GITLAB_TOKEN", nil),
|
||||
Description: descriptions["token"],
|
||||
},
|
||||
"base_url": &schema.Schema{
|
||||
"base_url": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
DefaultFunc: schema.EnvDefaultFunc("GITLAB_BASE_URL", ""),
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"log"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
"github.com/hashicorp/terraform/helper/validation"
|
||||
gitlab "github.com/xanzy/go-gitlab"
|
||||
)
|
||||
|
||||
|
@ -16,54 +17,54 @@ func resourceGitlabProject() *schema.Resource {
|
|||
Delete: resourceGitlabProjectDelete,
|
||||
|
||||
Schema: map[string]*schema.Schema{
|
||||
"name": &schema.Schema{
|
||||
"name": {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
},
|
||||
"description": &schema.Schema{
|
||||
"description": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
"default_branch": &schema.Schema{
|
||||
"default_branch": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
},
|
||||
"issues_enabled": &schema.Schema{
|
||||
"issues_enabled": {
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Default: true,
|
||||
},
|
||||
"merge_requests_enabled": &schema.Schema{
|
||||
"merge_requests_enabled": {
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Default: true,
|
||||
},
|
||||
"wiki_enabled": &schema.Schema{
|
||||
"wiki_enabled": {
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Default: true,
|
||||
},
|
||||
"snippets_enabled": &schema.Schema{
|
||||
"snippets_enabled": {
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
Default: true,
|
||||
},
|
||||
"visibility_level": &schema.Schema{
|
||||
"visibility_level": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
ValidateFunc: validateValueFunc([]string{"private", "internal", "public"}),
|
||||
ValidateFunc: validation.StringInSlice([]string{"private", "internal", "public"}, true),
|
||||
Default: "private",
|
||||
},
|
||||
|
||||
"ssh_url_to_repo": &schema.Schema{
|
||||
"ssh_url_to_repo": {
|
||||
Type: schema.TypeString,
|
||||
Computed: true,
|
||||
},
|
||||
"http_url_to_repo": &schema.Schema{
|
||||
"http_url_to_repo": {
|
||||
Type: schema.TypeString,
|
||||
Computed: true,
|
||||
},
|
||||
"web_url": &schema.Schema{
|
||||
"web_url": {
|
||||
Type: schema.TypeString,
|
||||
Computed: true,
|
||||
},
|
||||
|
@ -71,7 +72,7 @@ func resourceGitlabProject() *schema.Resource {
|
|||
}
|
||||
}
|
||||
|
||||
func resourceGitlabProjectUpdateFromAPI(d *schema.ResourceData, project *gitlab.Project) {
|
||||
func resourceGitlabProjectSetToState(d *schema.ResourceData, project *gitlab.Project) {
|
||||
d.Set("name", project.Name)
|
||||
d.Set("description", project.Description)
|
||||
d.Set("default_branch", project.DefaultBranch)
|
||||
|
@ -90,28 +91,16 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
|
|||
client := meta.(*gitlab.Client)
|
||||
options := &gitlab.CreateProjectOptions{
|
||||
Name: gitlab.String(d.Get("name").(string)),
|
||||
IssuesEnabled: gitlab.Bool(d.Get("issues_enabled").(bool)),
|
||||
MergeRequestsEnabled: gitlab.Bool(d.Get("merge_requests_enabled").(bool)),
|
||||
WikiEnabled: gitlab.Bool(d.Get("wiki_enabled").(bool)),
|
||||
SnippetsEnabled: gitlab.Bool(d.Get("snippets_enabled").(bool)),
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("description"); ok {
|
||||
options.Description = gitlab.String(v.(string))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("issues_enabled"); ok {
|
||||
options.IssuesEnabled = gitlab.Bool(v.(bool))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("merge_requests_enabled"); ok {
|
||||
options.MergeRequestsEnabled = gitlab.Bool(v.(bool))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("wiki_enabled"); ok {
|
||||
options.WikiEnabled = gitlab.Bool(v.(bool))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("snippets_enabled"); ok {
|
||||
options.SnippetsEnabled = gitlab.Bool(v.(bool))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("visibility_level"); ok {
|
||||
options.VisibilityLevel = stringToVisibilityLevel(v.(string))
|
||||
}
|
||||
|
@ -125,9 +114,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
|
|||
|
||||
d.SetId(fmt.Sprintf("%d", project.ID))
|
||||
|
||||
resourceGitlabProjectUpdateFromAPI(d, project)
|
||||
|
||||
return nil
|
||||
return resourceGitlabProjectRead(d, meta)
|
||||
}
|
||||
|
||||
func resourceGitlabProjectRead(d *schema.ResourceData, meta interface{}) error {
|
||||
|
@ -145,7 +132,7 @@ func resourceGitlabProjectRead(d *schema.ResourceData, meta interface{}) error {
|
|||
return err
|
||||
}
|
||||
|
||||
resourceGitlabProjectUpdateFromAPI(d, project)
|
||||
resourceGitlabProjectSetToState(d, project)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -188,19 +175,17 @@ func resourceGitlabProjectUpdate(d *schema.ResourceData, meta interface{}) error
|
|||
|
||||
log.Printf("[DEBUG] update gitlab project %s", d.Id())
|
||||
|
||||
project, _, err := client.Projects.EditProject(d.Id(), options)
|
||||
_, _, err := client.Projects.EditProject(d.Id(), options)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
resourceGitlabProjectUpdateFromAPI(d, project)
|
||||
|
||||
return nil
|
||||
return resourceGitlabProjectRead(d, meta)
|
||||
}
|
||||
|
||||
func resourceGitlabProjectDelete(d *schema.ResourceData, meta interface{}) error {
|
||||
client := meta.(*gitlab.Client)
|
||||
log.Printf("[DEBUG] update gitlab project %s", d.Id())
|
||||
log.Printf("[DEBUG] Delete gitlab project %s", d.Id())
|
||||
|
||||
_, err := client.Projects.DeleteProject(d.Id())
|
||||
return err
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/acctest"
|
||||
"github.com/hashicorp/terraform/helper/resource"
|
||||
"github.com/hashicorp/terraform/terraform"
|
||||
"github.com/xanzy/go-gitlab"
|
||||
|
@ -11,6 +12,7 @@ import (
|
|||
|
||||
func TestAccGitlabProject_basic(t *testing.T) {
|
||||
var project gitlab.Project
|
||||
rInt := acctest.RandInt()
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
|
@ -18,12 +20,12 @@ func TestAccGitlabProject_basic(t *testing.T) {
|
|||
CheckDestroy: testAccCheckGitlabProjectDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
// Create a project with all the features on
|
||||
resource.TestStep{
|
||||
Config: testAccGitlabProjectConfig,
|
||||
{
|
||||
Config: testAccGitlabProjectConfig(rInt),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
|
||||
testAccCheckGitlabProjectAttributes(&project, &testAccGitlabProjectExpectedAttributes{
|
||||
Name: "foo",
|
||||
Name: fmt.Sprintf("foo-%d", rInt),
|
||||
Description: "Terraform acceptance tests",
|
||||
IssuesEnabled: true,
|
||||
MergeRequestsEnabled: true,
|
||||
|
@ -34,24 +36,24 @@ func TestAccGitlabProject_basic(t *testing.T) {
|
|||
),
|
||||
},
|
||||
// Update the project to turn the features off
|
||||
resource.TestStep{
|
||||
Config: testAccGitlabProjectUpdateConfig,
|
||||
{
|
||||
Config: testAccGitlabProjectUpdateConfig(rInt),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
|
||||
testAccCheckGitlabProjectAttributes(&project, &testAccGitlabProjectExpectedAttributes{
|
||||
Name: "foo",
|
||||
Name: fmt.Sprintf("foo-%d", rInt),
|
||||
Description: "Terraform acceptance tests!",
|
||||
VisibilityLevel: 20,
|
||||
}),
|
||||
),
|
||||
},
|
||||
// Update the project to turn the features on again
|
||||
resource.TestStep{
|
||||
Config: testAccGitlabProjectConfig,
|
||||
//Update the project to turn the features on again
|
||||
{
|
||||
Config: testAccGitlabProjectConfig(rInt),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
|
||||
testAccCheckGitlabProjectAttributes(&project, &testAccGitlabProjectExpectedAttributes{
|
||||
Name: "foo",
|
||||
Name: fmt.Sprintf("foo-%d", rInt),
|
||||
Description: "Terraform acceptance tests",
|
||||
IssuesEnabled: true,
|
||||
MergeRequestsEnabled: true,
|
||||
|
@ -157,20 +159,23 @@ func testAccCheckGitlabProjectDestroy(s *terraform.State) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
const testAccGitlabProjectConfig = `
|
||||
func testAccGitlabProjectConfig(rInt int) string {
|
||||
return fmt.Sprintf(`
|
||||
resource "gitlab_project" "foo" {
|
||||
name = "foo"
|
||||
name = "foo-%d"
|
||||
description = "Terraform acceptance tests"
|
||||
|
||||
# So that acceptance tests can be run in a gitlab organization
|
||||
# with no billing
|
||||
visibility_level = "public"
|
||||
}
|
||||
`
|
||||
`, rInt)
|
||||
}
|
||||
|
||||
const testAccGitlabProjectUpdateConfig = `
|
||||
func testAccGitlabProjectUpdateConfig(rInt int) string {
|
||||
return fmt.Sprintf(`
|
||||
resource "gitlab_project" "foo" {
|
||||
name = "foo"
|
||||
name = "foo-%d"
|
||||
description = "Terraform acceptance tests!"
|
||||
|
||||
# So that acceptance tests can be run in a gitlab organization
|
||||
|
@ -182,4 +187,5 @@ resource "gitlab_project" "foo" {
|
|||
wiki_enabled = false
|
||||
snippets_enabled = false
|
||||
}
|
||||
`
|
||||
`, rInt)
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ Use the navigation to the left to read about the available resources.
|
|||
|
||||
## Example Usage
|
||||
|
||||
```
|
||||
```hcl
|
||||
# Configure the GitLab Provider
|
||||
provider "gitlab" {
|
||||
token = "${var.github_token}"
|
||||
|
|
|
@ -14,7 +14,7 @@ GitLab organization.
|
|||
|
||||
## Example Usage
|
||||
|
||||
```
|
||||
```hcl
|
||||
resource "gitlab_repository" "example" {
|
||||
name = "example"
|
||||
description = "My awesome codebase"
|
||||
|
|
|
@ -272,6 +272,10 @@
|
|||
<a href="/docs/providers/github/index.html">GitHub</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-providers-gitlab") %>>
|
||||
<a href="/docs/providers/gitlab/index.html">Gitlab</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-providers-google") %>>
|
||||
<a href="/docs/providers/google/index.html">Google Cloud</a>
|
||||
</li>
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<% wrap_layout :inner do %>
|
||||
<% content_for :sidebar do %>
|
||||
<div class="docs-sidebar hidden-print affix-top" role="complementary">
|
||||
<ul class="nav docs-sidenav">
|
||||
<li<%= sidebar_current("docs-home") %>>
|
||||
<a href="/docs/providers/index.html">All Providers</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-gitlab-index") %>>
|
||||
<a href="/docs/providers/gitlab/index.html">Gitlab Provider</a>
|
||||
</li>
|
||||
|
||||
<li<%= sidebar_current("docs-gitlab-resource") %>>
|
||||
<a href="#">Resources</a>
|
||||
<ul class="nav nav-visible">
|
||||
<li<%= sidebar_current("docs-gitlab-resource-project") %>>
|
||||
<a href="/docs/providers/gitlab/r/project.html">gitlab_project</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= yield %>
|
||||
<% end %>
|
Loading…
Reference in New Issue