diff --git a/.golangci.yml b/.golangci.yml index 500111fff38..fcd1e11fafb 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -237,7 +237,6 @@ linters: - PagesUpdate - PagesUpdateWithoutCNAME - PendingDeploymentsRequest - - PreReceiveHook - ProtectionRequest - PublishCodespaceOptions - PullRequestBranchUpdateOptions diff --git a/github/github-accessors.go b/github/github-accessors.go index c7b472ac943..8e2e5200a3b 100644 --- a/github/github-accessors.go +++ b/github/github-accessors.go @@ -43582,6 +43582,14 @@ func (u *UpdateOrganizationPrivateRegistry) GetVisibility() *PrivateRegistryVisi return u.Visibility } +// GetEnforcement returns the Enforcement field if it's non-nil, zero value otherwise. +func (u *UpdatePreReceiveHookRequest) GetEnforcement() string { + if u == nil || u.Enforcement == nil { + return "" + } + return *u.Enforcement +} + // GetArchived returns the Archived field if it's non-nil, zero value otherwise. func (u *UpdateProjectItemOptions) GetArchived() bool { if u == nil || u.Archived == nil { diff --git a/github/github-accessors_test.go b/github/github-accessors_test.go index c164347030c..22aa3803ee9 100644 --- a/github/github-accessors_test.go +++ b/github/github-accessors_test.go @@ -54602,6 +54602,17 @@ func TestUpdateOrganizationPrivateRegistry_GetVisibility(tt *testing.T) { u.GetVisibility() } +func TestUpdatePreReceiveHookRequest_GetEnforcement(tt *testing.T) { + tt.Parallel() + var zeroValue string + u := &UpdatePreReceiveHookRequest{Enforcement: &zeroValue} + u.GetEnforcement() + u = &UpdatePreReceiveHookRequest{} + u.GetEnforcement() + u = nil + u.GetEnforcement() +} + func TestUpdateProjectItemOptions_GetArchived(tt *testing.T) { tt.Parallel() var zeroValue bool diff --git a/github/repos_prereceive_hooks.go b/github/repos_prereceive_hooks.go index 7e1afe84764..7786a6c5f14 100644 --- a/github/repos_prereceive_hooks.go +++ b/github/repos_prereceive_hooks.go @@ -22,6 +22,12 @@ func (p PreReceiveHook) String() string { return Stringify(p) } +// UpdatePreReceiveHookRequest represents a request to update the enforcement +// of a pre-receive hook for a repository. +type UpdatePreReceiveHookRequest struct { + Enforcement *string `json:"enforcement,omitempty"` +} + // ListPreReceiveHooks lists all pre-receive hooks for the specified repository. // // GitHub API docs: https://docs.github.com/enterprise-server@3.21/rest/enterprise-admin/repo-pre-receive-hooks#list-pre-receive-hooks-for-a-repository @@ -78,7 +84,7 @@ func (s *RepositoriesService) GetPreReceiveHook(ctx context.Context, owner, repo // GitHub API docs: https://docs.github.com/enterprise-server@3.21/rest/enterprise-admin/repo-pre-receive-hooks#update-pre-receive-hook-enforcement-for-a-repository // //meta:operation PATCH /repos/{owner}/{repo}/pre-receive-hooks/{pre_receive_hook_id} -func (s *RepositoriesService) UpdatePreReceiveHook(ctx context.Context, owner, repo string, id int64, body *PreReceiveHook) (*PreReceiveHook, *Response, error) { +func (s *RepositoriesService) UpdatePreReceiveHook(ctx context.Context, owner, repo string, id int64, body UpdatePreReceiveHookRequest) (*PreReceiveHook, *Response, error) { u := fmt.Sprintf("repos/%v/%v/pre-receive-hooks/%v", owner, repo, id) req, err := s.client.NewRequest(ctx, "PATCH", u, body) if err != nil { diff --git a/github/repos_prereceive_hooks_test.go b/github/repos_prereceive_hooks_test.go index 07d77d28141..15ee94702aa 100644 --- a/github/repos_prereceive_hooks_test.go +++ b/github/repos_prereceive_hooks_test.go @@ -110,7 +110,7 @@ func TestRepositoriesService_UpdatePreReceiveHook(t *testing.T) { t.Parallel() client, mux, _ := setup(t) - input := &PreReceiveHook{} + input := UpdatePreReceiveHookRequest{Enforcement: Ptr("enabled")} mux.HandleFunc("/repos/o/r/pre-receive-hooks/1", func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "PATCH") @@ -149,7 +149,7 @@ func TestRepositoriesService_PreReceiveHook_invalidOwner(t *testing.T) { client, _, _ := setup(t) ctx := t.Context() - _, _, err := client.Repositories.UpdatePreReceiveHook(ctx, "%", "%", 1, nil) + _, _, err := client.Repositories.UpdatePreReceiveHook(ctx, "%", "%", 1, UpdatePreReceiveHookRequest{}) testURLParseError(t, err) }