Verified Commit 1dd2358e authored by Heidi Berry's avatar Heidi Berry Committed by GitLab
Browse files

Merge branch 'add-provider-for-saml-group-link' into 'main'

feat(groups): Add provider to AddGroupSAMLLinkOptions

Closes #2227

See merge request !2776
parents bdfb7ed9 bb97c7f3
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -236,6 +236,7 @@ type SAMLGroupLink struct {
	Name         string           `json:"name"`
	AccessLevel  AccessLevelValue `json:"access_level"`
	MemberRoleID int64            `json:"member_role_id,omitempty"`
	Provider     string           `json:"provider,omitempty"`
}

// ListGroupsOptions represents the available ListGroups() options.
@@ -839,6 +840,7 @@ type AddGroupSAMLLinkOptions struct {
	SAMLGroupName *string           `url:"saml_group_name,omitempty" json:"saml_group_name,omitempty"`
	AccessLevel   *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	MemberRoleID  *int64            `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
	Provider      *string           `url:"provider,omitempty" json:"provider,omitempty"`
}

// AddGroupSAMLLink creates a new group SAML link. Available only for users who
+32 −0
Original line number Diff line number Diff line
@@ -869,6 +869,38 @@ func TestAddGroupSAMLLinkCustomRole(t *testing.T) {
	}
}

func TestAddGroupSAMLLinkWithProvider(t *testing.T) {
	t.Parallel()
	mux, client := setup(t)

	mux.HandleFunc("/api/v4/groups/1/saml_group_links",
		func(w http.ResponseWriter, r *http.Request) {
			testMethod(t, r, http.MethodPost)
			fmt.Fprint(w, `
{
    "access_level":30,
    "name":"gitlab_group_example_developer",
    "provider":"example_saml_provider"
}`)
		})

	opt := &AddGroupSAMLLinkOptions{
		SAMLGroupName: Ptr("gitlab_group_example_developer"),
		AccessLevel:   Ptr(DeveloperPermissions),
		Provider:      Ptr("example_saml_provider"),
	}

	link, _, err := client.Groups.AddGroupSAMLLink(1, opt)
	require.NoError(t, err)

	want := &SAMLGroupLink{
		AccessLevel: DeveloperPermissions,
		Name:        "gitlab_group_example_developer",
		Provider:    "example_saml_provider",
	}
	assert.Equal(t, want, link)
}

func TestGroupsService_ListGroupSharedProjects(t *testing.T) {
	t.Parallel()
	mux, client := setup(t)