Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add namespcace ID attribute #14483

Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions builtin/providers/gitlab/resource_gitlab_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ func resourceGitlabProject() *schema.Resource {
Type: schema.TypeString,
Required: true,
},
"namespace_id": {
Type: schema.TypeInt,
Optional: true,
},
"description": {
Type: schema.TypeString,
Optional: true,
Expand Down Expand Up @@ -56,6 +60,10 @@ func resourceGitlabProject() *schema.Resource {
Default: "private",
},

"id": {
Type: schema.TypeInt,
Computed: true,
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't needed. The reason you cite for adding it is to help work with the gitlab_project_hook resource, but if you look at the acceptance tests for that code you'll see that the id is already exposed and used in its tests: https://github.com/hashicorp/terraform/blob/master/builtin/providers/gitlab/resource_gitlab_project_hook_test.go#L189 Its just an automatically exported attribute that all resources get.

"ssh_url_to_repo": {
Type: schema.TypeString,
Computed: true,
Expand All @@ -82,6 +90,7 @@ func resourceGitlabProjectSetToState(d *schema.ResourceData, project *gitlab.Pro
d.Set("snippets_enabled", project.SnippetsEnabled)
d.Set("visibility_level", visibilityLevelToString(project.VisibilityLevel))

d.Set("id", project.ID)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this, it's already done elsewhere

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@richardc it would be worth documenting then as I cannot see that in gitlab_project Attributes Reference

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, the docs are in the repo too. Probably also worth adding the missing example to gitlab_project_hooks too, so the next user doesn't think that "${gitlab_project.foo.id}" isn't usable already.

d.Set("ssh_url_to_repo", project.SSHURLToRepo)
d.Set("http_url_to_repo", project.HTTPURLToRepo)
d.Set("web_url", project.WebURL)
Expand All @@ -91,6 +100,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
client := meta.(*gitlab.Client)
options := &gitlab.CreateProjectOptions{
Name: gitlab.String(d.Get("name").(string)),
NamespaceID: gitlab.Int(d.Get("namespace_id").(int)),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One change needed here, this is optional, so it needs to move from here and go with the d.GetOk("") patterned stuff:

if v, ok := d.GetOk("namespace_id"); ok {
   options.NamespaceID = gitlab.Int(v.(int))
}

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)),
Expand Down
8 changes: 4 additions & 4 deletions builtin/providers/gitlab/resource_gitlab_project_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,10 +182,10 @@ resource "gitlab_project" "foo" {
# with no billing
visibility_level = "public"

issues_enabled = false
merge_requests_enabled = false
wiki_enabled = false
snippets_enabled = false
issues_enabled = false
merge_requests_enabled = false
wiki_enabled = false
snippets_enabled = false
}
`, rInt)
}