From e4ff2a27f7699954c87d81d723012c1c3f0de0f1 Mon Sep 17 00:00:00 2001 From: Francis Chuang <2263040+F21@users.noreply.github.com> Date: Tue, 10 Jan 2023 14:57:59 +1100 Subject: [PATCH] Omit OpenID Connect customization template claims when none are set (#2620) --- github/actions_oidc.go | 2 +- github/actions_oidc_test.go | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/github/actions_oidc.go b/github/actions_oidc.go index 5132ad3a3f..b7f2d26ae9 100644 --- a/github/actions_oidc.go +++ b/github/actions_oidc.go @@ -13,7 +13,7 @@ import ( // OIDCSubjectClaimCustomTemplate represents an OIDC subject claim customization template. type OIDCSubjectClaimCustomTemplate struct { UseDefault *bool `json:"use_default,omitempty"` - IncludeClaimKeys []string `json:"include_claim_keys"` + IncludeClaimKeys []string `json:"include_claim_keys,omitempty"` } // GetOrgOIDCSubjectClaimCustomTemplate gets the subject claim customization template for an organization. diff --git a/github/actions_oidc_test.go b/github/actions_oidc_test.go index 99a9a5b3b6..c56dfef3d9 100644 --- a/github/actions_oidc_test.go +++ b/github/actions_oidc_test.go @@ -148,3 +148,34 @@ func TestActionsService_SetRepoOIDCSubjectClaimCustomTemplate(t *testing.T) { return client.Actions.SetRepoOIDCSubjectClaimCustomTemplate(ctx, "o", "r", input) }) } + +func TestActionService_SetRepoOIDCSubjectClaimCustomTemplateToDefault(t *testing.T) { + client, mux, _, teardown := setup() + defer teardown() + + mux.HandleFunc("/repos/o/r/actions/oidc/customization/sub", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, "PUT") + testHeader(t, r, "Content-Type", "application/json") + testBody(t, r, `{"use_default":true}`+"\n") + w.WriteHeader(http.StatusCreated) + }) + + input := &OIDCSubjectClaimCustomTemplate{ + UseDefault: Bool(true), + } + ctx := context.Background() + _, err := client.Actions.SetRepoOIDCSubjectClaimCustomTemplate(ctx, "o", "r", input) + if err != nil { + t.Errorf("Actions.SetRepoOIDCSubjectClaimCustomTemplate returned error: %v", err) + } + + const methodName = "SetRepoOIDCSubjectClaimCustomTemplate" + testBadOptions(t, methodName, func() (err error) { + _, err = client.Actions.SetRepoOIDCSubjectClaimCustomTemplate(ctx, "\n", "\n", input) + return err + }) + + testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { + return client.Actions.SetRepoOIDCSubjectClaimCustomTemplate(ctx, "o", "r", input) + }) +}