Skip to content

Commit d60393e

Browse files
committed
resource/gitlab_project: officially support creating project in users namespace
Closes: #85
1 parent effe580 commit d60393e

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

docs/resources/project.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ resource "gitlab_project" "example-two" {
3737
prevent_secrets = true
3838
}
3939
}
40+
41+
# Create a project for a given user (requires admin access)
42+
data "gitlab_user" "peter_parker" {
43+
username = "peter_parker"
44+
}
45+
46+
resource "gitlab_project" "peters_repo" {
47+
name = "peters-repo"
48+
description = "This is a description"
49+
namespace_id = data.gitlab_user.peter_parker.namespace_id
50+
}
4051
```
4152

4253
<!-- schema generated by tfplugindocs -->

examples/resources/gitlab_project/resource.tf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,14 @@ resource "gitlab_project" "example-two" {
1616
prevent_secrets = true
1717
}
1818
}
19+
20+
# Create a project for a given user (requires admin access)
21+
data "gitlab_user" "peter_parker" {
22+
username = "peter_parker"
23+
}
24+
25+
resource "gitlab_project" "peters_repo" {
26+
name = "peters-repo"
27+
description = "This is a description"
28+
namespace_id = data.gitlab_user.peter_parker.namespace_id
29+
}

internal/provider/resource_gitlab_project_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,43 @@ resource "gitlab_project" "foo" {
867867
})
868868
}
869869

870+
func TestAccGitlabProject_CreateProjectInUserNamespace(t *testing.T) {
871+
testAccCheck(t)
872+
873+
var project gitlab.Project
874+
rInt := acctest.RandInt()
875+
876+
user := testAccCreateUsers(t, 1)[0]
877+
878+
resource.Test(t, resource.TestCase{
879+
PreCheck: func() { testAccPreCheck(t) },
880+
ProviderFactories: providerFactories,
881+
CheckDestroy: testAccCheckGitlabProjectDestroy,
882+
Steps: []resource.TestStep{
883+
{
884+
Config: fmt.Sprintf(`
885+
resource "gitlab_project" "foo" {
886+
name = "foo-%d"
887+
description = "Terraform acceptance tests"
888+
visibility_level = "public"
889+
890+
namespace_id = %d
891+
}
892+
`, rInt, user.NamespaceID),
893+
Check: resource.ComposeTestCheckFunc(
894+
testAccCheckGitlabProjectExists("gitlab_project.foo", &project),
895+
func(s *terraform.State) error {
896+
if project.Namespace.ID != user.NamespaceID {
897+
return fmt.Errorf("project was created in namespace %d but expected %d", project.Namespace.ID, user.NamespaceID)
898+
}
899+
return nil
900+
},
901+
),
902+
},
903+
},
904+
})
905+
}
906+
870907
type testAccGitlabProjectMirroredExpectedAttributes struct {
871908
Mirror bool
872909
MirrorTriggerBuilds bool

0 commit comments

Comments
 (0)