@@ -352,6 +352,24 @@ func TestAccGitlabProject_transfer(t *testing.T) {
352
352
})
353
353
}
354
354
355
+ func TestAccImportURL (t * testing.T ) {
356
+ var received gitlab.Project
357
+ resource .Test (t , resource.TestCase {
358
+ PreCheck : func () { testAccPreCheck (t ) },
359
+ Providers : testAccProviders ,
360
+ CheckDestroy : testAccCheckGitlabProjectDestroy ,
361
+ Steps : []resource.TestStep {
362
+ {
363
+ Config : testImportURLOptions (),
364
+ Check : resource .ComposeTestCheckFunc (
365
+ testAccCheckGitlabProjectExists ("gitlab_project.import_url" , & received ),
366
+ testAccCheckImportURL ("gitlab/resource_gitlab_project.go" , & received ),
367
+ ),
368
+ },
369
+ },
370
+ })
371
+ }
372
+
355
373
func testAccCheckGitlabProjectExists (n string , project * gitlab.Project ) resource.TestCheckFunc {
356
374
return func (s * terraform.State ) error {
357
375
var err error
@@ -667,3 +685,49 @@ resource "gitlab_project" "foo" {
667
685
}
668
686
` , rInt , rInt )
669
687
}
688
+
689
+ func testImportURLOptions () string {
690
+ return fmt .Sprintf (`
691
+ resource "gitlab_project" "import_url" {
692
+ name = "import"
693
+ path = "import"
694
+ description = "Terraform Import URL Acceptance test"
695
+
696
+ # So that acceptance tests can be run in a gitlab organization
697
+ # with no billing
698
+ visibility_level = "public"
699
+ merge_method = "ff"
700
+ only_allow_merge_if_pipeline_succeeds = true
701
+ only_allow_merge_if_all_discussions_are_resolved = true
702
+
703
+ issues_enabled = false
704
+ merge_requests_enabled = false
705
+ approvals_before_merge = 0
706
+ wiki_enabled = false
707
+ snippets_enabled = false
708
+ container_registry_enabled = false
709
+ shared_runners_enabled = false
710
+ archived = false
711
+ import_url = "https://github.com/terraform-providers/terraform-provider-gitlab.git"
712
+ default_branch = "master"
713
+ }
714
+ ` )
715
+ }
716
+
717
+ func testAccCheckImportURL (fp string , project * gitlab.Project ) resource.TestCheckFunc {
718
+ return func (s * terraform.State ) error {
719
+ conn := testAccProvider .Meta ().(* gitlab.Client )
720
+ ref := & gitlab.GetFileOptions {
721
+ Ref : gitlab .String ("master" ),
722
+ }
723
+ f , _ , err := conn .RepositoryFiles .GetFile (project .ID , fp , ref , nil )
724
+ if err != nil {
725
+ return fmt .Errorf ("Cannot find file %s, error %s\n " , fp , err )
726
+ }
727
+ if f == nil {
728
+ return fmt .Errorf ("Did not find file\n " )
729
+ }
730
+
731
+ return nil
732
+ }
733
+ }
0 commit comments