@@ -616,6 +616,86 @@ func TestGitlabDisableCommentsOnMR(t *testing.T) {
616
616
assert .Equal (t , 2 , successCommentsPost )
617
617
}
618
618
619
+ func TestGitlabMergeRequestOnUpdateAtAndLabelChange (t * testing.T ) {
620
+ targetNS := names .SimpleNameGenerator .RestrictLengthWithRandomSuffix ("pac-e2e-ns" )
621
+ ctx := context .Background ()
622
+ runcnx , opts , glprovider , err := tgitlab .Setup (ctx )
623
+ assert .NilError (t , err )
624
+ ctx , err = cctx .GetControllerCtxInfo (ctx , runcnx )
625
+ assert .NilError (t , err )
626
+ runcnx .Clients .Log .Info ("Testing with Gitlab" )
627
+
628
+ projectinfo , resp , err := glprovider .Client ().Projects .GetProject (opts .ProjectID , nil )
629
+ assert .NilError (t , err )
630
+ if resp != nil && resp .StatusCode == http .StatusNotFound {
631
+ t .Errorf ("Repository %s not found in %s" , opts .Organization , opts .Repo )
632
+ }
633
+
634
+ err = tgitlab .CreateCRD (ctx , projectinfo , runcnx , opts , targetNS , nil )
635
+ assert .NilError (t , err )
636
+
637
+ entries , err := payload .GetEntries (map [string ]string {
638
+ ".tekton/pipelinerun.yaml" : "testdata/pipelinerun.yaml" ,
639
+ ".tekton/pipelinerun-clone.yaml" : "testdata/pipelinerun-clone.yaml" ,
640
+ }, targetNS , projectinfo .DefaultBranch ,
641
+ triggertype .PullRequest .String (), map [string ]string {})
642
+ assert .NilError (t , err )
643
+
644
+ targetRefName := names .SimpleNameGenerator .RestrictLengthWithRandomSuffix ("pac-e2e-test" )
645
+
646
+ gitCloneURL , err := scm .MakeGitCloneURL (projectinfo .WebURL , opts .UserName , opts .Password )
647
+ assert .NilError (t , err )
648
+ commitTitle := "Committing files from test on " + targetRefName
649
+ scmOpts := & scm.Opts {
650
+ GitURL : gitCloneURL ,
651
+ CommitTitle : commitTitle ,
652
+ Log : runcnx .Clients .Log ,
653
+ WebURL : projectinfo .WebURL ,
654
+ TargetRefName : targetRefName ,
655
+ BaseRefName : projectinfo .DefaultBranch ,
656
+ }
657
+ _ = scm .PushFilesToRefGit (t , scmOpts , entries )
658
+
659
+ runcnx .Clients .Log .Infof ("Branch %s has been created and pushed with files" , targetRefName )
660
+ mrTitle := "TestMergeRequest - " + targetRefName
661
+ mrID , err := tgitlab .CreateMR (glprovider .Client (), opts .ProjectID , targetRefName , projectinfo .DefaultBranch , mrTitle )
662
+ assert .NilError (t , err )
663
+ runcnx .Clients .Log .Infof ("MergeRequest %s/-/merge_requests/%d has been created" , projectinfo .WebURL , mrID )
664
+ defer tgitlab .TearDown (ctx , t , runcnx , glprovider , mrID , targetRefName , targetNS , opts .ProjectID )
665
+
666
+ // Send another Push to make an update and make sure we react to it
667
+ entries , err = payload .GetEntries (map [string ]string {
668
+ "hello-world.yaml" : "testdata/pipelinerun.yaml" ,
669
+ }, targetNS , projectinfo .DefaultBranch ,
670
+ triggertype .PullRequest .String (), map [string ]string {})
671
+ assert .NilError (t , err )
672
+ scmOpts .BaseRefName = targetRefName
673
+ _ = scm .PushFilesToRefGit (t , scmOpts , entries )
674
+
675
+ sopt := twait.SuccessOpt {
676
+ Title : commitTitle ,
677
+ OnEvent : "Merge Request" ,
678
+ TargetNS : targetNS ,
679
+ NumberofPRMatch : 4 ,
680
+ SHA : "" ,
681
+ }
682
+ twait .Succeeded (ctx , t , runcnx , opts , sopt )
683
+ prsNew , err := runcnx .Clients .Tekton .TektonV1 ().PipelineRuns (targetNS ).List (ctx , metav1.ListOptions {})
684
+ assert .NilError (t , err )
685
+ assert .Assert (t , len (prsNew .Items ) == 4 )
686
+
687
+ for i := 0 ; i < len (prsNew .Items ); i ++ {
688
+ assert .Equal (t , "Merge Request" , prsNew .Items [i ].Annotations [keys .EventType ])
689
+ }
690
+
691
+ runcnx .Clients .Log .Infof ("Changing Title on MergeRequest %s/-/merge_requests/%d" , projectinfo .WebURL , mrID )
692
+ _ , _ , err = glprovider .Client ().MergeRequests .UpdateMergeRequest (opts .ProjectID , mrID , & clientGitlab.UpdateMergeRequestOptions {
693
+ Title : clientGitlab .Ptr ("test" ),
694
+ })
695
+ assert .NilError (t , err )
696
+ assert .Assert (t , len (prsNew .Items ) == 4 )
697
+ }
698
+
619
699
// Local Variables:
620
700
// compile-command: "go test -tags=e2e -v -run ^TestGitlabMergeRequest$"
621
701
// End:
0 commit comments