diff --git a/github/orgs_members.go b/github/orgs_members.go index c66b495..c326ff8 100644 --- a/github/orgs_members.go +++ b/github/orgs_members.go @@ -238,14 +238,16 @@ func (s *OrganizationsService) GetOrgMembership(user, org string) (*Membership, // GitHub API docs: https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership // GitHub API docs: https://developer.github.com/v3/orgs/members/#edit-your-organization-membership func (s *OrganizationsService) EditOrgMembership(user, org string, membership *Membership) (*Membership, *Response, error) { - var u string + var u, method string if user != "" { u = fmt.Sprintf("orgs/%v/memberships/%v", org, user) + method = "PUT" } else { u = fmt.Sprintf("user/memberships/orgs/%v", org) + method = "PATCH" } - req, err := s.client.NewRequest("PATCH", u, membership) + req, err := s.client.NewRequest(method, u, membership) if err != nil { return nil, nil, err } diff --git a/github/orgs_members_test.go b/github/orgs_members_test.go index 973e3aa..6613efe 100644 --- a/github/orgs_members_test.go +++ b/github/orgs_members_test.go @@ -321,7 +321,7 @@ func TestOrganizationsService_EditOrgMembership_SpecifiedUser(t *testing.T) { v := new(Membership) json.NewDecoder(r.Body).Decode(v) - testMethod(t, r, "PATCH") + testMethod(t, r, "PUT") if !reflect.DeepEqual(v, input) { t.Errorf("Request body = %+v, want %+v", v, input) }