From 35105d8a0e33fc413b68808ca825cedf935d0423 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 2 Aug 2026 14:51:01 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20remove=20dead=20functions=20=E2=80=94?= =?UTF-8?q?=204=20functions=20removed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- pkg/workflow/github_cli.go | 26 --------------------- pkg/workflow/permissions_factory.go | 27 ---------------------- pkg/workflow/spec_test.go | 36 ----------------------------- 3 files changed, 89 deletions(-) diff --git a/pkg/workflow/github_cli.go b/pkg/workflow/github_cli.go index 0ce85418a88..706c3879c0d 100644 --- a/pkg/workflow/github_cli.go +++ b/pkg/workflow/github_cli.go @@ -224,32 +224,6 @@ func RunGHCombinedContext(ctx context.Context, spinnerMessage string, args ...st return runGHWithSpinnerContext(ctx, spinnerMessage, true, nil, args...) } -// RunGHWithHost executes a gh CLI command with a spinner, targeting a specific GitHub host. -// For non-github.com hosts (GHES, Proxima/data residency), the GH_HOST environment variable -// is set on the command. This is necessary because most gh subcommands (repo, pr, run, etc.) -// do not accept a --hostname flag — only `gh api` does. -// -// Deprecated: Use RunGHContextWithHost to support context cancellation and timeouts. -// -// Usage: -// -// output, err := RunGHWithHost("Fetching repo info...", "myorg.ghe.com", "repo", "view", "--json", "owner,name") -func RunGHWithHost(spinnerMessage string, host string, args ...string) ([]byte, error) { - cmd := ExecGH(args...) - SetGHHostEnv(cmd, host) - - if tty.IsStderrTerminal() { - spinner := console.NewSpinner(spinnerMessage) - spinner.Start() - defer spinner.Stop() - output, err := cmd.Output() - return output, enrichGHError(err) - } - - output, err := cmd.Output() - return output, enrichGHError(err) -} - // RunGHContextWithHost executes a gh CLI command with context support, a spinner, // and an explicit GitHub host. func RunGHContextWithHost(ctx context.Context, spinnerMessage string, host string, args ...string) ([]byte, error) { diff --git a/pkg/workflow/permissions_factory.go b/pkg/workflow/permissions_factory.go index 128a17f52fc..68f6bd9008d 100644 --- a/pkg/workflow/permissions_factory.go +++ b/pkg/workflow/permissions_factory.go @@ -81,15 +81,6 @@ func NewPermissionsContentsReadIssuesWrite() *Permissions { }) } -// NewPermissionsContentsReadIssuesWritePRWrite creates permissions with contents: read, issues: write, pull-requests: write -func NewPermissionsContentsReadIssuesWritePRWrite() *Permissions { - return NewPermissionsFromMap(map[PermissionScope]PermissionLevel{ - PermissionContents: PermissionRead, - PermissionIssues: PermissionWrite, - PermissionPullRequests: PermissionWrite, - }) -} - // NewPermissionsActionsWrite creates permissions with actions: write // This is required for dispatching workflows via workflow_dispatch func NewPermissionsActionsWrite() *Permissions { @@ -131,16 +122,6 @@ func NewPermissionsContentsReadDiscussionsWrite() *Permissions { }) } -// NewPermissionsContentsReadIssuesWriteDiscussionsWrite creates permissions with contents: read, issues: write, discussions: write -// This is used for create-discussion jobs that support fallback-to-issue when discussion creation fails -func NewPermissionsContentsReadIssuesWriteDiscussionsWrite() *Permissions { - return NewPermissionsFromMap(map[PermissionScope]PermissionLevel{ - PermissionContents: PermissionRead, - PermissionIssues: PermissionWrite, - PermissionDiscussions: PermissionWrite, - }) -} - // NewPermissionsContentsReadPRWrite creates permissions with contents: read and pull-requests: write func NewPermissionsContentsReadPRWrite() *Permissions { return NewPermissionsFromMap(map[PermissionScope]PermissionLevel{ @@ -186,14 +167,6 @@ func (p *Permissions) Clone() *Permissions { return clone } -// Note: organization-projects is only valid for GitHub App tokens, not workflow permissions -func NewPermissionsContentsReadProjectsWrite() *Permissions { - return NewPermissionsFromMap(map[PermissionScope]PermissionLevel{ - PermissionContents: PermissionRead, - PermissionOrganizationProj: PermissionWrite, - }) -} - // NewPermissionsIssuesWrite creates permissions with issues: write only. // Used for output-only handlers (create-issue, close-issue, etc.) that call the // issues API without accessing repository file contents. diff --git a/pkg/workflow/spec_test.go b/pkg/workflow/spec_test.go index 9e9f93bdd87..b6aa87d2824 100644 --- a/pkg/workflow/spec_test.go +++ b/pkg/workflow/spec_test.go @@ -60,25 +60,6 @@ func TestSpec_Permissions_ContentsReadDiscussionsWrite(t *testing.T) { assert.Equal(t, workflow.PermissionWrite, discussionsLevel, "discussions must be write") } -// TestSpec_Permissions_ContentsReadIssuesWriteDiscussionsWrite validates the documented combination. -// Spec: "NewPermissionsContentsReadIssuesWriteDiscussionsWrite — contents:read + issues:write + discussions:write" -func TestSpec_Permissions_ContentsReadIssuesWriteDiscussionsWrite(t *testing.T) { - p := workflow.NewPermissionsContentsReadIssuesWriteDiscussionsWrite() - require.NotNil(t, p, "NewPermissionsContentsReadIssuesWriteDiscussionsWrite must return a non-nil Permissions") - - contentsLevel, ok := p.Get(workflow.PermissionContents) - assert.True(t, ok, "contents scope must be present") - assert.Equal(t, workflow.PermissionRead, contentsLevel, "contents must be read") - - issuesLevel, ok := p.Get(workflow.PermissionIssues) - assert.True(t, ok, "issues scope must be present") - assert.Equal(t, workflow.PermissionWrite, issuesLevel, "issues must be write") - - discussionsLevel, ok := p.Get(workflow.PermissionDiscussions) - assert.True(t, ok, "discussions scope must be present") - assert.Equal(t, workflow.PermissionWrite, discussionsLevel, "discussions must be write") -} - // TestSpec_Permissions_ContentsReadPRWrite validates the documented permission combination. // Spec: "NewPermissionsContentsReadPRWrite — contents:read + pull-requests:write" func TestSpec_Permissions_ContentsReadPRWrite(t *testing.T) { @@ -109,23 +90,6 @@ func TestSpec_Permissions_ContentsReadSecurityEventsWrite(t *testing.T) { assert.Equal(t, workflow.PermissionWrite, secLevel, "security-events must be write") } -// TestSpec_Permissions_ContentsReadProjectsWrite validates the documented permission combination. -// Spec: "NewPermissionsContentsReadProjectsWrite — contents:read + projects:write" -// Note: organization-projects is a GitHub App-only scope per the spec. -func TestSpec_Permissions_ContentsReadProjectsWrite(t *testing.T) { - p := workflow.NewPermissionsContentsReadProjectsWrite() - require.NotNil(t, p, "NewPermissionsContentsReadProjectsWrite must return a non-nil Permissions") - - contentsLevel, ok := p.Get(workflow.PermissionContents) - assert.True(t, ok, "contents scope must be present") - assert.Equal(t, workflow.PermissionRead, contentsLevel, "contents must be read") - - // Spec: the permissions factory uses "organization-projects" for GitHub App tokens - projLevel, ok := p.GetExplicit(workflow.PermissionOrganizationProj) - assert.True(t, ok, "organization-projects scope must be explicitly set") - assert.Equal(t, workflow.PermissionWrite, projLevel, "organization-projects must be write") -} - // TestSpec_SafeOutputs_SafeOutputsConfigFromKeys validates that SafeOutputsConfigFromKeys // builds a minimal SafeOutputsConfig from a list of safe-output key names, as documented // in the workflow package README.md.