Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

Commit cfed26b

Browse files
committed
feat: implement 'allowed_email_domains_list' group attribute
1 parent 8eaea58 commit cfed26b

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

groups.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ type Group struct {
8787
MarkedForDeletionOn *ISOTime `json:"marked_for_deletion_on"`
8888
CreatedAt *time.Time `json:"created_at"`
8989
IPRestrictionRanges string `json:"ip_restriction_ranges"`
90+
AllowedEmailDomainsList string `json:"allowed_email_domains_list"`
9091
WikiAccessLevel AccessControlValue `json:"wiki_access_level"`
9192

9293
// Deprecated: Use EmailsEnabled instead
@@ -532,6 +533,7 @@ type UpdateGroupOptions struct {
532533
SharedRunnersSetting *SharedRunnersSettingValue `url:"shared_runners_setting,omitempty" json:"shared_runners_setting,omitempty"`
533534
PreventSharingGroupsOutsideHierarchy *bool `url:"prevent_sharing_groups_outside_hierarchy,omitempty" json:"prevent_sharing_groups_outside_hierarchy,omitempty"`
534535
IPRestrictionRanges *string `url:"ip_restriction_ranges,omitempty" json:"ip_restriction_ranges,omitempty"`
536+
AllowedEmailDomainsList *string `url:"allowed_email_domains_list,omitempty" json:"allowed_email_domains_list,omitempty"`
535537
WikiAccessLevel *AccessControlValue `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`
536538

537539
// Deprecated: Use EmailsEnabled instead

groups_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,3 +1124,42 @@ func TestEditGroupPushRules(t *testing.T) {
11241124
t.Errorf("Groups.EditGroupPushRule returned %+v, want %+v", rule, want)
11251125
}
11261126
}
1127+
1128+
func TestUpdateGroupWithAllowedEmailDomainsList(t *testing.T) {
1129+
mux, client := setup(t)
1130+
const domain = "example.com"
1131+
1132+
mux.HandleFunc("/api/v4/groups/1",
1133+
func(w http.ResponseWriter, r *http.Request) {
1134+
testMethod(t, r, http.MethodPut)
1135+
1136+
body, err := io.ReadAll(r.Body)
1137+
if err != nil {
1138+
t.Fatalf("Failed to read the request body. Error: %v", err)
1139+
}
1140+
1141+
var bodyJson map[string]interface{}
1142+
err = json.Unmarshal(body, &bodyJson)
1143+
if err != nil {
1144+
t.Fatalf("Failed to parse the request body into JSON. Error: %v", err)
1145+
}
1146+
1147+
if bodyJson["allowed_email_domains_list"] != domain {
1148+
t.Fatalf("Test failed. `allowed_email_domains_list` expected to be '%v', got %v", domain, bodyJson["allowed_email_domains_list"])
1149+
}
1150+
1151+
fmt.Fprintf(w, `{"id": 1, "allowed_email_domains_list" : "%v"}`, domain)
1152+
})
1153+
1154+
group, _, err := client.Groups.UpdateGroup(1, &UpdateGroupOptions{
1155+
AllowedEmailDomainsList: Ptr(domain),
1156+
})
1157+
if err != nil {
1158+
t.Errorf("Groups.UpdateGroup returned error: %v", err)
1159+
}
1160+
1161+
want := &Group{ID: 1, AllowedEmailDomainsList: domain}
1162+
if !reflect.DeepEqual(want, group) {
1163+
t.Errorf("Groups.UpdatedGroup returned %+v, want %+v", group, want)
1164+
}
1165+
}

0 commit comments

Comments
 (0)