From e71b3af080ab08bf922326e9250c123c997bbb90 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Tue, 3 Feb 2026 00:54:52 +0000 Subject: [PATCH] fix: update repository references from githubnext to github - Corrected repository references in tests and code to use "github/gh-aw" instead of "githubnext/gh-aw". - Updated error messages and documentation to reflect the new repository format. - Ensured consistency across all instances where the repository slug was previously referenced. --- .github/aw/create-shared-agentic-workflow.md | 2 +- .../agent-performance-analyzer.lock.yml | 4 +- .../workflows/agent-persona-explorer.lock.yml | 4 +- .github/workflows/daily-fact.lock.yml | 10 ++-- .../daily-observability-report.lock.yml | 4 +- .../example-workflow-analyzer.lock.yml | 4 +- .github/workflows/metrics-collector.lock.yml | 4 +- .github/workflows/python-data-charts.lock.yml | 4 +- .github/workflows/security-review.lock.yml | 4 +- .github/workflows/smoke-copilot.lock.yml | 4 +- pkg/cli/copilot_setup.go | 6 +-- pkg/cli/copilot_setup_test.go | 8 ++-- pkg/cli/git_helpers_test.go | 12 ++--- pkg/cli/logs_parsing_test.go | 6 +-- pkg/cli/mcp_validation.go | 4 +- pkg/cli/repo.go | 2 +- pkg/cli/repo_error_messages_test.go | 12 ++--- pkg/cli/spec.go | 2 +- pkg/cli/spec_github_url_test.go | 6 +-- pkg/cli/spec_test.go | 10 ++-- .../create-shared-agentic-workflow.md | 2 +- pkg/cli/trial_issue_mode_test.go | 4 +- pkg/cli/trial_repository.go | 2 +- pkg/cli/update_check.go | 2 +- pkg/cli/update_extension_check.go | 8 ++-- pkg/repoutil/repoutil_test.go | 16 +++---- pkg/workflow/action_pins_test.go | 2 +- pkg/workflow/action_reference.go | 14 +++--- pkg/workflow/action_reference_test.go | 48 +++++++++---------- pkg/workflow/action_sha_checker.go | 3 -- pkg/workflow/agentic_workflow_test.go | 6 +-- pkg/workflow/codex_logs_test.go | 4 +- pkg/workflow/compiler_custom_actions_test.go | 6 +-- pkg/workflow/compiler_yaml_helpers.go | 6 +-- pkg/workflow/local_action_permissions_test.go | 4 +- pkg/workflow/mcp_gateway_config.go | 6 +-- pkg/workflow/mcp_setup_generator.go | 4 +- .../repository_error_messages_test.go | 6 +-- .../repository_features_validation.go | 2 +- ...ry_features_validation_integration_test.go | 6 +-- .../repository_features_validation_test.go | 24 +++++----- pkg/workflow/schedule_preprocessing_test.go | 6 +-- pkg/workflow/script_registry.go | 2 +- 43 files changed, 146 insertions(+), 149 deletions(-) diff --git a/.github/aw/create-shared-agentic-workflow.md b/.github/aw/create-shared-agentic-workflow.md index c7ace9159b..a7b6f8e5e6 100644 --- a/.github/aw/create-shared-agentic-workflow.md +++ b/.github/aw/create-shared-agentic-workflow.md @@ -101,7 +101,7 @@ mcp-servers: ```yaml mcp-servers: serena: - container: "ghcr.io/githubnext/serena-mcp-server" + container: "ghcr.io/github/serena-mcp-server" version: "latest" args: # args come before the docker image argument - "-v" diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index f58f7ec175..ad7b8cb41e 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -175,12 +175,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index ac36dd236e..b9c7640297 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -177,12 +177,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index d6bf066dfe..a96bbd3ed3 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -46,7 +46,7 @@ jobs: comment_repo: "" steps: - name: Setup Scripts - uses: githubnext/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c + uses: github/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c with: destination: /opt/gh-aw/actions - name: Check workflow file timestamps @@ -88,7 +88,7 @@ jobs: secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }} steps: - name: Setup Scripts - uses: githubnext/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c + uses: github/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c with: destination: /opt/gh-aw/actions - name: Checkout repository @@ -724,7 +724,7 @@ jobs: total_count: ${{ steps.missing_tool.outputs.total_count }} steps: - name: Setup Scripts - uses: githubnext/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c + uses: github/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c with: destination: /opt/gh-aw/actions - name: Debug job inputs @@ -829,7 +829,7 @@ jobs: success: ${{ steps.parse_results.outputs.success }} steps: - name: Setup Scripts - uses: githubnext/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c + uses: github/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c with: destination: /opt/gh-aw/actions - name: Download agent artifacts @@ -933,7 +933,7 @@ jobs: process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }} steps: - name: Setup Scripts - uses: githubnext/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c + uses: github/gh-aw/actions/setup@623e612ff6a684e9a8634449508bdda21e2c178c # 623e612ff6a684e9a8634449508bdda21e2c178c with: destination: /opt/gh-aw/actions - name: Download agent output artifact diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index bfd26a22df..43a46359b2 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -172,12 +172,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index b205df338b..a2f92b81ac 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -169,12 +169,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index bd7f1fa699..1fa2bb43ed 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -159,12 +159,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 22d316f77d..f881e348c7 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -196,12 +196,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml index 8e2cac9984..7e408a3c81 100644 --- a/.github/workflows/security-review.lock.yml +++ b/.github/workflows/security-review.lock.yml @@ -207,12 +207,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index e7aadd4584..f355561c24 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -205,12 +205,12 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | # Check if gh-aw extension is already installed - if gh extension list | grep -q "githubnext/gh-aw"; then + if gh extension list | grep -q "github/gh-aw"; then echo "gh-aw extension already installed, upgrading..." gh extension upgrade gh-aw || true else echo "Installing gh-aw extension..." - gh extension install githubnext/gh-aw + gh extension install github/gh-aw fi gh aw --version # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization diff --git a/pkg/cli/copilot_setup.go b/pkg/cli/copilot_setup.go index 96289f3b3a..3341f14717 100644 --- a/pkg/cli/copilot_setup.go +++ b/pkg/cli/copilot_setup.go @@ -46,7 +46,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - name: Install gh-aw extension - uses: githubnext/gh-aw/actions/setup-cli%s + uses: github/gh-aw/actions/setup-cli%s with: version: %s `, actionRef, version) @@ -281,7 +281,7 @@ func upgradeSetupCliVersion(workflow *Workflow, actionMode workflow.ActionMode, oldUses := step.Uses if actionMode.IsRelease() { // Update to the new version tag - newUses := fmt.Sprintf("githubnext/gh-aw/actions/setup-cli%s", actionRef) + newUses := fmt.Sprintf("github/gh-aw/actions/setup-cli%s", actionRef) step.Uses = newUses // Update the with.version parameter @@ -321,7 +321,7 @@ func injectExtensionInstallStep(workflow *Workflow, actionMode workflow.ActionMo } installStep = CopilotWorkflowStep{ Name: "Install gh-aw extension", - Uses: fmt.Sprintf("githubnext/gh-aw/actions/setup-cli%s", actionRef), + Uses: fmt.Sprintf("github/gh-aw/actions/setup-cli%s", actionRef), With: map[string]any{ "version": version, }, diff --git a/pkg/cli/copilot_setup_test.go b/pkg/cli/copilot_setup_test.go index 597f45e7c9..797a1d5a5e 100644 --- a/pkg/cli/copilot_setup_test.go +++ b/pkg/cli/copilot_setup_test.go @@ -852,7 +852,7 @@ jobs: copilot-setup-steps: runs-on: ubuntu-latest steps: - - uses: githubnext/gh-aw/actions/setup-cli@v1.0.0 + - uses: github/gh-aw/actions/setup-cli@v1.0.0 with: version: v1.0.0 ` @@ -972,7 +972,7 @@ func TestInjectExtensionInstallStep_ReleaseMode(t *testing.T) { if job.Steps[1].Name != "Install gh-aw extension" { t.Errorf("Second step should be install, got: %s", job.Steps[1].Name) } - expectedUses := "githubnext/gh-aw/actions/setup-cli@v4.5.6" + expectedUses := "github/gh-aw/actions/setup-cli@v4.5.6" if job.Steps[1].Uses != expectedUses { t.Errorf("Install should use %s, got: %s", expectedUses, job.Steps[1].Uses) } @@ -1056,7 +1056,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - name: Install gh-aw extension - uses: githubnext/gh-aw/actions/setup-cli@v1.0.0 + uses: github/gh-aw/actions/setup-cli@v1.0.0 with: version: v1.0.0 - name: Verify gh-aw installation @@ -1203,7 +1203,7 @@ func TestUpgradeSetupCliVersion(t *testing.T) { }, { Name: "Install gh-aw", - Uses: "githubnext/gh-aw/actions/setup-cli@v1.0.0", + Uses: "github/gh-aw/actions/setup-cli@v1.0.0", With: map[string]any{"version": "v1.0.0"}, }, }, diff --git a/pkg/cli/git_helpers_test.go b/pkg/cli/git_helpers_test.go index 17bcc40dbe..9e8a07dfaf 100644 --- a/pkg/cli/git_helpers_test.go +++ b/pkg/cli/git_helpers_test.go @@ -15,22 +15,22 @@ func TestParseGitHubRepoSlugFromURL(t *testing.T) { { name: "HTTPS URL with .git", url: "https://github.com/github/gh-aw.git", - expected: "githubnext/gh-aw", + expected: "github/gh-aw", }, { name: "HTTPS URL without .git", url: "https://github.com/github/gh-aw", - expected: "githubnext/gh-aw", + expected: "github/gh-aw", }, { name: "SSH URL with .git", - url: "git@github.com:githubnext/gh-aw.git", - expected: "githubnext/gh-aw", + url: "git@github.com:github/gh-aw.git", + expected: "github/gh-aw", }, { name: "SSH URL without .git", - url: "git@github.com:githubnext/gh-aw", - expected: "githubnext/gh-aw", + url: "git@github.com:github/gh-aw", + expected: "github/gh-aw", }, { name: "Invalid URL", diff --git a/pkg/cli/logs_parsing_test.go b/pkg/cli/logs_parsing_test.go index 6f04542918..3bf9ac0bab 100644 --- a/pkg/cli/logs_parsing_test.go +++ b/pkg/cli/logs_parsing_test.go @@ -288,7 +288,7 @@ func TestParseLogFileWithCodexFormat(t *testing.T) { I need to analyze the pull request details first. [2025-08-13T00:24:50] codex -I'm ready to generate a Codex PR summary, but I need the pull request number to fetch its details. Could you please share the PR number (and confirm the repo/owner if it isn't ` + "`githubnext/gh-aw`" + `)? +I'm ready to generate a Codex PR summary, but I need the pull request number to fetch its details. Could you please share the PR number (and confirm the repo/owner if it isn't ` + "`github/gh-aw`" + `)? [2025-08-13T00:24:50] thinking Now I need to wait for the user's response. [2025-08-13T00:24:50] tokens used: 13934 @@ -546,7 +546,7 @@ func TestExtractEngineFromAwInfoNestedDirectory(t *testing.T) { "run_id": 123456789, "run_number": 42, "run_attempt": "1", - "repository": "githubnext/gh-aw", + "repository": "github/gh-aw", "ref": "refs/heads/main", "sha": "abc123", "actor": "testuser", @@ -591,7 +591,7 @@ func TestExtractEngineFromAwInfoNestedDirectory(t *testing.T) { "run_id": 987654321, "run_number": 7, "run_attempt": "1", - "repository": "githubnext/gh-aw", + "repository": "github/gh-aw", "ref": "refs/heads/copilot/fix-24", "sha": "def456", "actor": "testuser2", diff --git a/pkg/cli/mcp_validation.go b/pkg/cli/mcp_validation.go index 2a6cefcb8e..aacad6d0a2 100644 --- a/pkg/cli/mcp_validation.go +++ b/pkg/cli/mcp_validation.go @@ -202,9 +202,9 @@ func validateMCPServerConfiguration(cmdPath string) error { fmt.Fprintln(os.Stderr, console.FormatErrorMessage(errMsg)) return fmt.Errorf("failed to run status command with custom command '%s': %w\nOutput: %s\n\nPlease ensure:\n - The command path is correct and executable\n - You are in a git repository with .github/workflows directory", cmdPath, err, string(output)) } - errMsg := fmt.Sprintf("failed to run status command: %v\nOutput: %s\n\nPlease ensure:\n - gh CLI is installed and in PATH\n - gh aw extension is installed (run: gh extension install githubnext/gh-aw)\n - You are in a git repository with .github/workflows directory", err, string(output)) + errMsg := fmt.Sprintf("failed to run status command: %v\nOutput: %s\n\nPlease ensure:\n - gh CLI is installed and in PATH\n - gh aw extension is installed (run: gh extension install github/gh-aw)\n - You are in a git repository with .github/workflows directory", err, string(output)) fmt.Fprintln(os.Stderr, console.FormatErrorMessage(errMsg)) - return fmt.Errorf("failed to run status command: %w\nOutput: %s\n\nPlease ensure:\n - gh CLI is installed and in PATH\n - gh aw extension is installed (run: gh extension install githubnext/gh-aw)\n - You are in a git repository with .github/workflows directory", err, string(output)) + return fmt.Errorf("failed to run status command: %w\nOutput: %s\n\nPlease ensure:\n - gh CLI is installed and in PATH\n - gh aw extension is installed (run: gh extension install github/gh-aw)\n - You are in a git repository with .github/workflows directory", err, string(output)) } // Status command succeeded - configuration is valid diff --git a/pkg/cli/repo.go b/pkg/cli/repo.go index 856d60521e..3558f8093f 100644 --- a/pkg/cli/repo.go +++ b/pkg/cli/repo.go @@ -84,7 +84,7 @@ func getCurrentRepoSlugUncached() (string, error) { parts := strings.Split(repoPath, "/") if len(parts) != 2 || parts[0] == "" || parts[1] == "" { repoLog.Printf("Invalid repository format: %s", repoPath) - return "", fmt.Errorf("invalid repository format: %s. Expected format: owner/repo. Example: githubnext/gh-aw", repoPath) + return "", fmt.Errorf("invalid repository format: %s. Expected format: owner/repo. Example: github/gh-aw", repoPath) } repoLog.Printf("Successfully parsed repository slug from git remote: %s", repoPath) diff --git a/pkg/cli/repo_error_messages_test.go b/pkg/cli/repo_error_messages_test.go index 1b45c31a94..d2ae082b3d 100644 --- a/pkg/cli/repo_error_messages_test.go +++ b/pkg/cli/repo_error_messages_test.go @@ -20,7 +20,7 @@ func TestRepoSlugErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { @@ -29,7 +29,7 @@ func TestRepoSlugErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { @@ -38,7 +38,7 @@ func TestRepoSlugErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { @@ -47,7 +47,7 @@ func TestRepoSlugErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, } @@ -84,7 +84,7 @@ func TestParseRepoSpecErrorMessages(t *testing.T) { repoSpec: "justname", expectInMessage: []string{ "must be in format", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { @@ -92,7 +92,7 @@ func TestParseRepoSpecErrorMessages(t *testing.T) { repoSpec: "owner/repo/extra", expectInMessage: []string{ "must be in format", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { diff --git a/pkg/cli/spec.go b/pkg/cli/spec.go index e4c6b6e622..7338736db0 100644 --- a/pkg/cli/spec.go +++ b/pkg/cli/spec.go @@ -117,7 +117,7 @@ func parseRepoSpec(repoSpec string) (*RepoSpec, error) { // Validate repository format (org/repo) repoParts := strings.Split(repo, "/") if len(repoParts) != 2 || repoParts[0] == "" || repoParts[1] == "" { - return nil, fmt.Errorf("repository must be in format 'owner/repo'. Example: githubnext/gh-aw") + return nil, fmt.Errorf("repository must be in format 'owner/repo'. Example: github/gh-aw") } } diff --git a/pkg/cli/spec_github_url_test.go b/pkg/cli/spec_github_url_test.go index 1f9292ef70..560edd762d 100644 --- a/pkg/cli/spec_github_url_test.go +++ b/pkg/cli/spec_github_url_test.go @@ -21,7 +21,7 @@ func TestParseGitHubURL(t *testing.T) { { name: "blob URL with main branch", url: "https://github.com/github/gh-aw-trial/blob/main/workflows/release-issue-linker.md", - wantRepo: "githubnext/gh-aw-trial", + wantRepo: "github/gh-aw-trial", wantWorkflowPath: "workflows/release-issue-linker.md", wantWorkflowName: "release-issue-linker", wantVersion: "main", @@ -72,7 +72,7 @@ func TestParseGitHubURL(t *testing.T) { { name: "raw.githubusercontent.com with refs/heads/branch", url: "https://raw.githubusercontent.com/github/gh-aw/refs/heads/main/.github/workflows/shared/mcp/serena.md", - wantRepo: "githubnext/gh-aw", + wantRepo: "github/gh-aw", wantWorkflowPath: ".github/workflows/shared/mcp/serena.md", wantWorkflowName: "serena", wantVersion: "main", @@ -81,7 +81,7 @@ func TestParseGitHubURL(t *testing.T) { { name: "raw.githubusercontent.com with commit SHA", url: "https://raw.githubusercontent.com/github/gh-aw/fc7992627494253a869e177e5d1985d25f3bb316/.github/workflows/shared/mcp/serena.md", - wantRepo: "githubnext/gh-aw", + wantRepo: "github/gh-aw", wantWorkflowPath: ".github/workflows/shared/mcp/serena.md", wantWorkflowName: "serena", wantVersion: "fc7992627494253a869e177e5d1985d25f3bb316", diff --git a/pkg/cli/spec_test.go b/pkg/cli/spec_test.go index 34fa1b4628..7bb0cbe119 100644 --- a/pkg/cli/spec_test.go +++ b/pkg/cli/spec_test.go @@ -138,7 +138,7 @@ func TestParseWorkflowSpec(t *testing.T) { { name: "GitHub URL - blob with main branch", spec: "https://github.com/github/gh-aw-trial/blob/main/workflows/release-issue-linker.md", - wantRepo: "githubnext/gh-aw-trial", + wantRepo: "github/gh-aw-trial", wantWorkflowPath: "workflows/release-issue-linker.md", wantWorkflowName: "release-issue-linker", wantVersion: "main", @@ -272,8 +272,8 @@ func TestParseWorkflowSpec(t *testing.T) { }, { name: "/files/ format with branch", - spec: "githubnext/gh-aw/files/main/.github/workflows/shared/mcp/serena.md", - wantRepo: "githubnext/gh-aw", + spec: "github/gh-aw/files/main/.github/workflows/shared/mcp/serena.md", + wantRepo: "github/gh-aw", wantWorkflowPath: ".github/workflows/shared/mcp/serena.md", wantWorkflowName: "serena", wantVersion: "main", @@ -281,8 +281,8 @@ func TestParseWorkflowSpec(t *testing.T) { }, { name: "/files/ format with commit SHA", - spec: "githubnext/gh-aw/files/fc7992627494253a869e177e5d1985d25f3bb316/.github/workflows/shared/mcp/serena.md", - wantRepo: "githubnext/gh-aw", + spec: "github/gh-aw/files/fc7992627494253a869e177e5d1985d25f3bb316/.github/workflows/shared/mcp/serena.md", + wantRepo: "github/gh-aw", wantWorkflowPath: ".github/workflows/shared/mcp/serena.md", wantWorkflowName: "serena", wantVersion: "fc7992627494253a869e177e5d1985d25f3bb316", diff --git a/pkg/cli/templates/create-shared-agentic-workflow.md b/pkg/cli/templates/create-shared-agentic-workflow.md index c7ace9159b..a7b6f8e5e6 100644 --- a/pkg/cli/templates/create-shared-agentic-workflow.md +++ b/pkg/cli/templates/create-shared-agentic-workflow.md @@ -101,7 +101,7 @@ mcp-servers: ```yaml mcp-servers: serena: - container: "ghcr.io/githubnext/serena-mcp-server" + container: "ghcr.io/github/serena-mcp-server" version: "latest" args: # args come before the docker image argument - "-v" diff --git a/pkg/cli/trial_issue_mode_test.go b/pkg/cli/trial_issue_mode_test.go index 5ed639eef9..4020832dd8 100644 --- a/pkg/cli/trial_issue_mode_test.go +++ b/pkg/cli/trial_issue_mode_test.go @@ -85,8 +85,8 @@ func TestTrialWorkflowSpecParsing(t *testing.T) { }{ { name: "GitHub URL workflow spec", - spec: "githubnext/gh-aw-trial/.github/workflows/release-issue-linker.md", - expectedRepo: "githubnext/gh-aw-trial", + spec: "github/gh-aw-trial/.github/workflows/release-issue-linker.md", + expectedRepo: "github/gh-aw-trial", expectedName: "release-issue-linker", shouldError: false, }, diff --git a/pkg/cli/trial_repository.go b/pkg/cli/trial_repository.go index 48d0742041..b9bde84610 100644 --- a/pkg/cli/trial_repository.go +++ b/pkg/cli/trial_repository.go @@ -26,7 +26,7 @@ func ensureTrialRepository(repoSlug string, cloneRepoSlug string, forceDeleteHos parts := strings.Split(repoSlug, "/") if len(parts) != 2 || parts[0] == "" || parts[1] == "" { - return fmt.Errorf("invalid repository slug format: %s. Expected format: owner/repo. Example: githubnext/gh-aw", repoSlug) + return fmt.Errorf("invalid repository slug format: %s. Expected format: owner/repo. Example: github/gh-aw", repoSlug) } // Check if repository already exists diff --git a/pkg/cli/update_check.go b/pkg/cli/update_check.go index 4a431251e6..4870dd573c 100644 --- a/pkg/cli/update_check.go +++ b/pkg/cli/update_check.go @@ -201,7 +201,7 @@ func checkForUpdates(noCheckUpdate bool, verbose bool) { updateCheckLog.Printf("Newer version available: %s (current: %s)", latestVersion, currentVersion) fmt.Fprintln(os.Stderr, "") fmt.Fprintln(os.Stderr, console.FormatInfoMessage(fmt.Sprintf("A new version of gh-aw is available: %s (current: %s)", latestVersion, currentVersion))) - fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Update with: gh extension upgrade githubnext/gh-aw")) + fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Update with: gh extension upgrade github/gh-aw")) fmt.Fprintln(os.Stderr, "") } diff --git a/pkg/cli/update_extension_check.go b/pkg/cli/update_extension_check.go index 5f7741ec27..9e779287dc 100644 --- a/pkg/cli/update_extension_check.go +++ b/pkg/cli/update_extension_check.go @@ -16,7 +16,7 @@ func checkExtensionUpdate(verbose bool) error { } // Run gh extension upgrade --dry-run to check for updates - output, err := workflow.RunGHCombined("Checking for extension updates...", "extension", "upgrade", "githubnext/gh-aw", "--dry-run") + output, err := workflow.RunGHCombined("Checking for extension updates...", "extension", "upgrade", "github/gh-aw", "--dry-run") if err != nil { if verbose { fmt.Fprintln(os.Stderr, console.FormatWarningMessage(fmt.Sprintf("Failed to check for extension updates: %v", err))) @@ -35,7 +35,7 @@ func checkExtensionUpdate(verbose bool) error { for _, line := range lines { if strings.Contains(line, "[agentics]: would have upgraded from") { fmt.Fprintln(os.Stderr, console.FormatInfoMessage(line)) - fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Run 'gh extension upgrade githubnext/gh-aw' to update")) + fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Run 'gh extension upgrade github/gh-aw' to update")) return nil } } @@ -70,7 +70,7 @@ func ensureLatestExtensionVersion(verbose bool) error { } // Run gh extension upgrade --dry-run to check for updates - output, err := workflow.RunGHCombined("Checking for extension updates...", "extension", "upgrade", "githubnext/gh-aw", "--dry-run") + output, err := workflow.RunGHCombined("Checking for extension updates...", "extension", "upgrade", "github/gh-aw", "--dry-run") outputStr := strings.TrimSpace(string(output)) // Check for authentication errors (missing or invalid token) @@ -100,7 +100,7 @@ func ensureLatestExtensionVersion(verbose bool) error { fmt.Fprintln(os.Stderr, console.FormatInfoMessage(line)) fmt.Fprintln(os.Stderr, "") fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Please upgrade the gh extension first:")) - fmt.Fprintln(os.Stderr, console.FormatCommandMessage(" gh extension upgrade githubnext/gh-aw")) + fmt.Fprintln(os.Stderr, console.FormatCommandMessage(" gh extension upgrade github/gh-aw")) fmt.Fprintln(os.Stderr, "") return fmt.Errorf("gh-aw extension must be upgraded before running this command") } diff --git a/pkg/repoutil/repoutil_test.go b/pkg/repoutil/repoutil_test.go index f2d84696ca..2b6e966141 100644 --- a/pkg/repoutil/repoutil_test.go +++ b/pkg/repoutil/repoutil_test.go @@ -14,7 +14,7 @@ func TestSplitRepoSlug(t *testing.T) { }{ { name: "valid slug", - slug: "githubnext/gh-aw", + slug: "github/gh-aw", expectedOwner: "githubnext", expectedRepo: "gh-aw", expectError: false, @@ -33,7 +33,7 @@ func TestSplitRepoSlug(t *testing.T) { }, { name: "invalid slug - multiple separators", - slug: "githubnext/gh-aw/extra", + slug: "github/gh-aw/extra", expectError: true, }, { @@ -80,7 +80,7 @@ func TestParseGitHubURL(t *testing.T) { }{ { name: "SSH format with .git", - url: "git@github.com:githubnext/gh-aw.git", + url: "git@github.com:github/gh-aw.git", expectedOwner: "githubnext", expectedRepo: "gh-aw", expectError: false, @@ -153,7 +153,7 @@ func TestSanitizeForFilename(t *testing.T) { }{ { name: "normal slug", - slug: "githubnext/gh-aw", + slug: "github/gh-aw", expected: "githubnext-gh-aw", }, { @@ -184,7 +184,7 @@ func TestSanitizeForFilename(t *testing.T) { } func BenchmarkSplitRepoSlug(b *testing.B) { - slug := "githubnext/gh-aw" + slug := "github/gh-aw" for i := 0; i < b.N; i++ { _, _, _ = SplitRepoSlug(slug) } @@ -198,7 +198,7 @@ func BenchmarkParseGitHubURL(b *testing.B) { } func BenchmarkSanitizeForFilename(b *testing.B) { - slug := "githubnext/gh-aw" + slug := "github/gh-aw" for i := 0; i < b.N; i++ { _ = SanitizeForFilename(slug) } @@ -446,7 +446,7 @@ func TestSplitRepoSlug_Idempotent(t *testing.T) { } func BenchmarkSplitRepoSlug_Valid(b *testing.B) { - slug := "githubnext/gh-aw" + slug := "github/gh-aw" for i := 0; i < b.N; i++ { _, _, _ = SplitRepoSlug(slug) } @@ -460,7 +460,7 @@ func BenchmarkSplitRepoSlug_Invalid(b *testing.B) { } func BenchmarkParseGitHubURL_SSH(b *testing.B) { - url := "git@github.com:githubnext/gh-aw.git" + url := "git@github.com:github/gh-aw.git" for i := 0; i < b.N; i++ { _, _, _ = ParseGitHubURL(url) } diff --git a/pkg/workflow/action_pins_test.go b/pkg/workflow/action_pins_test.go index 7e83306dd1..e683d26790 100644 --- a/pkg/workflow/action_pins_test.go +++ b/pkg/workflow/action_pins_test.go @@ -1214,7 +1214,7 @@ func TestActionPinWarningDeduplication(t *testing.T) { }, { name: "unknown action called 6 times - warn once", - repo: "githubnext/gh-aw/actions/setup", + repo: "github/gh-aw/actions/setup", version: "v0.37.0", callCount: 6, expectedWarns: 1, diff --git a/pkg/workflow/action_reference.go b/pkg/workflow/action_reference.go index b3a35e9877..b0cdd624a1 100644 --- a/pkg/workflow/action_reference.go +++ b/pkg/workflow/action_reference.go @@ -11,7 +11,7 @@ var actionRefLog = logger.New("workflow:action_reference") const ( // GitHubOrgRepo is the organization and repository name for custom action references - GitHubOrgRepo = "githubnext/gh-aw" + GitHubOrgRepo = "github/gh-aw" ) // ResolveSetupActionReference resolves the actions/setup action reference based on action mode and version. @@ -26,8 +26,8 @@ const ( // // Returns: // - For dev mode: "./actions/setup" (local path) -// - For release mode with data: "githubnext/gh-aw/actions/setup@ # " (SHA-pinned) -// - For release mode without data: "githubnext/gh-aw/actions/setup@" (tag-based, SHA resolved later) +// - For release mode with data: "github/gh-aw/actions/setup@ # " (SHA-pinned) +// - For release mode without data: "github/gh-aw/actions/setup@" (tag-based, SHA resolved later) // - Falls back to local path if version is invalid in release mode func ResolveSetupActionReference(actionMode ActionMode, version string, actionTag string, data *WorkflowData) string { localPath := "./actions/setup" @@ -54,7 +54,7 @@ func ResolveSetupActionReference(actionMode ActionMode, version string, actionTa return localPath } - // Construct the remote reference with tag: githubnext/gh-aw/actions/setup@tag + // Construct the remote reference with tag: github/gh-aw/actions/setup@tag remoteRef := fmt.Sprintf("%s/%s@%s", GitHubOrgRepo, actionPath, tag) // If WorkflowData is available, try to resolve the SHA @@ -88,7 +88,7 @@ func ResolveSetupActionReference(actionMode ActionMode, version string, actionTa // based on the current action mode (dev vs release). // If action-tag is specified in features, it overrides the mode check and enables release mode behavior. // For dev mode: returns the local path as-is (e.g., "./actions/create-issue") -// For release mode: converts to SHA-pinned remote reference (e.g., "githubnext/gh-aw/actions/create-issue@SHA # tag") +// For release mode: converts to SHA-pinned remote reference (e.g., "github/gh-aw/actions/create-issue@SHA # tag") func (c *Compiler) resolveActionReference(localActionPath string, data *WorkflowData) string { // Check if action-tag is specified in features - if so, override mode and use release behavior hasActionTag := false @@ -170,7 +170,7 @@ func (c *Compiler) resolveActionReference(localActionPath string, data *Workflow // that will be resolved to a SHA later in the release pipeline using action pins. // Uses the action-tag from WorkflowData.Features if specified (for testing), otherwise uses the version stored in the compiler binary. // If compiler has actionTag set, it takes priority over both. -// Example: "./actions/create-issue" -> "githubnext/gh-aw/actions/create-issue@v1.0.0" +// Example: "./actions/create-issue" -> "github/gh-aw/actions/create-issue@v1.0.0" func (c *Compiler) convertToRemoteActionRef(localPath string, data *WorkflowData) string { // Strip the leading "./" if present actionPath := strings.TrimPrefix(localPath, "./") @@ -205,7 +205,7 @@ func (c *Compiler) convertToRemoteActionRef(localPath string, data *WorkflowData actionRefLog.Printf("Using tag from binary version: %s", tag) } - // Construct the remote reference with tag: githubnext/gh-aw/actions/name@tag + // Construct the remote reference with tag: github/gh-aw/actions/name@tag // The SHA will be resolved later by action pinning infrastructure remoteRef := fmt.Sprintf("%s/%s@%s", GitHubOrgRepo, actionPath, tag) actionRefLog.Printf("Remote reference: %s (SHA will be resolved via action pins)", remoteRef) diff --git a/pkg/workflow/action_reference_test.go b/pkg/workflow/action_reference_test.go index bab6e9c14f..46c53b9798 100644 --- a/pkg/workflow/action_reference_test.go +++ b/pkg/workflow/action_reference_test.go @@ -11,7 +11,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.2.3") data := &WorkflowData{} ref := compiler.convertToRemoteActionRef("./actions/create-issue", data) - expected := "githubnext/gh-aw/actions/create-issue@v1.2.3" + expected := "github/gh-aw/actions/create-issue@v1.2.3" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -21,7 +21,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.0.0") data := &WorkflowData{} ref := compiler.convertToRemoteActionRef("actions/create-issue", data) - expected := "githubnext/gh-aw/actions/create-issue@v1.0.0" + expected := "github/gh-aw/actions/create-issue@v1.0.0" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -31,7 +31,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v2.0.0") data := &WorkflowData{} ref := compiler.convertToRemoteActionRef("./actions/nested/action", data) - expected := "githubnext/gh-aw/actions/nested/action@v2.0.0" + expected := "github/gh-aw/actions/nested/action@v2.0.0" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -59,7 +59,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.0.0") data := &WorkflowData{Features: map[string]any{"action-tag": "latest"}} ref := compiler.convertToRemoteActionRef("./actions/create-issue", data) - expected := "githubnext/gh-aw/actions/create-issue@latest" + expected := "github/gh-aw/actions/create-issue@latest" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -69,7 +69,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.0.0") data := &WorkflowData{Features: map[string]any{"action-tag": "abc123def456"}} ref := compiler.convertToRemoteActionRef("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@abc123def456" + expected := "github/gh-aw/actions/setup@abc123def456" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -79,7 +79,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.0.0") data := &WorkflowData{Features: map[string]any{"action-tag": "v2.5.0"}} ref := compiler.convertToRemoteActionRef("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@v2.5.0" + expected := "github/gh-aw/actions/setup@v2.5.0" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -89,7 +89,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { compiler := NewCompilerWithVersion("v1.5.0") data := &WorkflowData{Features: map[string]any{"action-tag": ""}} ref := compiler.convertToRemoteActionRef("./actions/create-issue", data) - expected := "githubnext/gh-aw/actions/create-issue@v1.5.0" + expected := "github/gh-aw/actions/create-issue@v1.5.0" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -98,7 +98,7 @@ func TestConvertToRemoteActionRef(t *testing.T) { t.Run("nil data falls back to version", func(t *testing.T) { compiler := NewCompilerWithVersion("v1.5.0") ref := compiler.convertToRemoteActionRef("./actions/create-issue", nil) - expected := "githubnext/gh-aw/actions/create-issue@v1.5.0" + expected := "github/gh-aw/actions/create-issue@v1.5.0" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -129,7 +129,7 @@ func TestResolveActionReference(t *testing.T) { actionMode: ActionModeRelease, localPath: "./actions/create-issue", version: "v1.0.0", - expectedRef: "githubnext/gh-aw/actions/create-issue@v1.0.0", + expectedRef: "github/gh-aw/actions/create-issue@v1.0.0", description: "Release mode should return version-based reference", }, { @@ -146,7 +146,7 @@ func TestResolveActionReference(t *testing.T) { localPath: "./actions/setup", version: "v1.0.0", actionTag: "latest", - expectedRef: "githubnext/gh-aw/actions/setup@latest", + expectedRef: "github/gh-aw/actions/setup@latest", description: "Release mode with action-tag should use action-tag instead of version", }, { @@ -155,7 +155,7 @@ func TestResolveActionReference(t *testing.T) { localPath: "./actions/setup", version: "v1.0.0", actionTag: "abc123def456789", - expectedRef: "githubnext/gh-aw/actions/setup@abc123def456789", + expectedRef: "github/gh-aw/actions/setup@abc123def456789", description: "Release mode with action-tag SHA should use the SHA", }, { @@ -164,7 +164,7 @@ func TestResolveActionReference(t *testing.T) { localPath: "./actions/setup", version: "v1.0.0", actionTag: "latest", - expectedRef: "githubnext/gh-aw/actions/setup@latest", + expectedRef: "github/gh-aw/actions/setup@latest", description: "Dev mode with action-tag should override and use remote reference", }, } @@ -202,7 +202,7 @@ func TestCompilerActionTag(t *testing.T) { // Frontmatter has action-tag but compiler actionTag should take precedence data := &WorkflowData{Features: map[string]any{"action-tag": "v1.5.0"}} ref := compiler.convertToRemoteActionRef("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@v2.0.0" + expected := "github/gh-aw/actions/setup@v2.0.0" if ref != expected { t.Errorf("Expected compiler actionTag to take precedence: got %q, want %q", ref, expected) } @@ -215,7 +215,7 @@ func TestCompilerActionTag(t *testing.T) { data := &WorkflowData{} ref := compiler.convertToRemoteActionRef("./actions/create-issue", data) - expected := "githubnext/gh-aw/actions/create-issue@abc123def456" + expected := "github/gh-aw/actions/create-issue@abc123def456" if ref != expected { t.Errorf("Expected %q, got %q", expected, ref) } @@ -230,7 +230,7 @@ func TestCompilerActionTag(t *testing.T) { data := &WorkflowData{} ref := compiler.resolveActionReference("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@v2.0.0" + expected := "github/gh-aw/actions/setup@v2.0.0" if ref != expected { t.Errorf("Expected compiler actionTag with release mode: got %q, want %q", ref, expected) } @@ -243,7 +243,7 @@ func TestCompilerActionTag(t *testing.T) { data := &WorkflowData{Features: map[string]any{"action-tag": "v1.5.0"}} ref := compiler.convertToRemoteActionRef("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@v1.5.0" + expected := "github/gh-aw/actions/setup@v1.5.0" if ref != expected { t.Errorf("Expected frontmatter action-tag to be used: got %q, want %q", ref, expected) } @@ -255,7 +255,7 @@ func TestCompilerActionTag(t *testing.T) { data := &WorkflowData{} ref := compiler.convertToRemoteActionRef("./actions/setup", data) - expected := "githubnext/gh-aw/actions/setup@v1.2.3" + expected := "github/gh-aw/actions/setup@v1.2.3" if ref != expected { t.Errorf("Expected compiler version to be used: got %q, want %q", ref, expected) } @@ -284,7 +284,7 @@ func TestResolveSetupActionReference(t *testing.T) { actionMode: ActionModeRelease, version: "v1.0.0", actionTag: "", - expectedRef: "githubnext/gh-aw/actions/setup@v1.0.0", + expectedRef: "github/gh-aw/actions/setup@v1.0.0", description: "Release mode should return remote reference with version", }, { @@ -292,7 +292,7 @@ func TestResolveSetupActionReference(t *testing.T) { actionMode: ActionModeRelease, version: "v1.0.0", actionTag: "v2.5.0", - expectedRef: "githubnext/gh-aw/actions/setup@v2.5.0", + expectedRef: "github/gh-aw/actions/setup@v2.5.0", description: "Release mode with actionTag should use actionTag instead of version", }, { @@ -300,7 +300,7 @@ func TestResolveSetupActionReference(t *testing.T) { actionMode: ActionModeRelease, version: "v1.0.0", actionTag: "abc123def456789012345678901234567890abcd", - expectedRef: "githubnext/gh-aw/actions/setup@abc123def456789012345678901234567890abcd", + expectedRef: "github/gh-aw/actions/setup@abc123def456789012345678901234567890abcd", description: "Release mode with SHA actionTag should use the SHA", }, { @@ -316,7 +316,7 @@ func TestResolveSetupActionReference(t *testing.T) { actionMode: ActionModeRelease, version: "dev", actionTag: "v2.0.0", - expectedRef: "githubnext/gh-aw/actions/setup@v2.0.0", + expectedRef: "github/gh-aw/actions/setup@v2.0.0", description: "Release mode with actionTag should work even with 'dev' version", }, { @@ -352,12 +352,12 @@ func TestResolveSetupActionReferenceWithData(t *testing.T) { StrictMode: false, } - // The resolver will fail to resolve githubnext/gh-aw/actions/setup@v1.0.0 + // The resolver will fail to resolve github/gh-aw/actions/setup@v1.0.0 // since it's not a real tag, but it should fall back gracefully ref := ResolveSetupActionReference(ActionModeRelease, "v1.0.0", "", data) // Without a valid pin or successful resolution, should return tag-based reference - expectedRef := "githubnext/gh-aw/actions/setup@v1.0.0" + expectedRef := "github/gh-aw/actions/setup@v1.0.0" if ref != expectedRef { t.Errorf("Expected %q, got %q", expectedRef, ref) } @@ -365,7 +365,7 @@ func TestResolveSetupActionReferenceWithData(t *testing.T) { t.Run("release mode with nil data returns tag-based reference", func(t *testing.T) { ref := ResolveSetupActionReference(ActionModeRelease, "v1.0.0", "", nil) - expectedRef := "githubnext/gh-aw/actions/setup@v1.0.0" + expectedRef := "github/gh-aw/actions/setup@v1.0.0" if ref != expectedRef { t.Errorf("Expected %q, got %q", expectedRef, ref) } diff --git a/pkg/workflow/action_sha_checker.go b/pkg/workflow/action_sha_checker.go index ae08204aec..74d8ac7a42 100644 --- a/pkg/workflow/action_sha_checker.go +++ b/pkg/workflow/action_sha_checker.go @@ -201,9 +201,6 @@ func ValidateActionSHAsInLockFile(lockFilePath string, cache *ActionCache, verbo } } else { actionSHACheckerLog.Print("All actions are up to date") - if verbose { - fmt.Fprintln(os.Stderr, console.FormatVerboseMessage("All pinned actions are up to date")) - } } return nil diff --git a/pkg/workflow/agentic_workflow_test.go b/pkg/workflow/agentic_workflow_test.go index ae9eac4202..a59d309292 100644 --- a/pkg/workflow/agentic_workflow_test.go +++ b/pkg/workflow/agentic_workflow_test.go @@ -162,7 +162,7 @@ func TestAgenticWorkflowsInstallStepIncludesGHToken(t *testing.T) { "install step should use default GH_TOKEN fallback chain when no custom token is specified") // Verify the install commands are present - assert.Contains(t, result, "gh extension install githubnext/gh-aw", + assert.Contains(t, result, "gh extension install github/gh-aw", "install step should include command to install gh-aw extension") assert.Contains(t, result, "gh aw --version", "install step should include command to verify gh-aw installation") @@ -222,7 +222,7 @@ func TestAgenticWorkflowsInstallStepSkippedWithImport(t *testing.T) { "install step should be skipped when shared/mcp/gh-aw.md is imported") // Verify the install command is also not present - assert.NotContains(t, result, "gh extension install githubnext/gh-aw", + assert.NotContains(t, result, "gh extension install github/gh-aw", "gh extension install command should be absent when shared/mcp/gh-aw.md is imported") } @@ -247,7 +247,7 @@ func TestAgenticWorkflowsInstallStepPresentWithoutImport(t *testing.T) { "install step should be present when shared/mcp/gh-aw.md is NOT imported") // Verify the install command is present - assert.Contains(t, result, "gh extension install githubnext/gh-aw", + assert.Contains(t, result, "gh extension install github/gh-aw", "gh extension install command should be present when shared/mcp/gh-aw.md is NOT imported") } diff --git a/pkg/workflow/codex_logs_test.go b/pkg/workflow/codex_logs_test.go index c7b4d4ffe5..f68f9adc34 100644 --- a/pkg/workflow/codex_logs_test.go +++ b/pkg/workflow/codex_logs_test.go @@ -59,8 +59,8 @@ func TestCodexParseLogMetricsMultipleToolsWithOutputSizes(t *testing.T) { ], "isError": false } -[2025-08-31T12:38:18] tool github.search_pull_requests({"query":"is:pr repo:githubnext/gh-aw codex","perPage":10}) -[2025-08-31T12:38:20] github.search_pull_requests({"query":"is:pr repo:githubnext/gh-aw codex","perPage":10}) success in 331ms: +[2025-08-31T12:38:18] tool github.search_pull_requests({"query":"is:pr repo:github/gh-aw codex","perPage":10}) +[2025-08-31T12:38:20] github.search_pull_requests({"query":"is:pr repo:github/gh-aw codex","perPage":10}) success in 331ms: { "content": [ { diff --git a/pkg/workflow/compiler_custom_actions_test.go b/pkg/workflow/compiler_custom_actions_test.go index fcebac2ce0..d2bcc253d5 100644 --- a/pkg/workflow/compiler_custom_actions_test.go +++ b/pkg/workflow/compiler_custom_actions_test.go @@ -389,9 +389,9 @@ Test workflow with script mode. lockStr := string(lockContent) // Verify script mode behavior: - // 1. Checkout should use repository: githubnext/gh-aw - if !strings.Contains(lockStr, "repository: githubnext/gh-aw") { - t.Error("Expected 'repository: githubnext/gh-aw' in checkout step for script mode") + // 1. Checkout should use repository: github/gh-aw + if !strings.Contains(lockStr, "repository: github/gh-aw") { + t.Error("Expected 'repository: github/gh-aw' in checkout step for script mode") } // 2. Checkout should target path: /tmp/gh-aw/actions-source diff --git a/pkg/workflow/compiler_yaml_helpers.go b/pkg/workflow/compiler_yaml_helpers.go index 0ccc9fa7c2..0919e1601f 100644 --- a/pkg/workflow/compiler_yaml_helpers.go +++ b/pkg/workflow/compiler_yaml_helpers.go @@ -114,13 +114,13 @@ func (c *Compiler) generateCheckoutActionsFolder(data *WorkflowData) []string { } } - // Script mode: checkout .github folder from githubnext/gh-aw to /tmp/gh-aw/actions-source/ + // Script mode: checkout .github folder from github/gh-aw to /tmp/gh-aw/actions-source/ if c.actionMode.IsScript() { return []string{ " - name: Checkout actions folder\n", fmt.Sprintf(" uses: %s\n", GetActionPin("actions/checkout")), " with:\n", - " repository: githubnext/gh-aw\n", + " repository: github/gh-aw\n", " sparse-checkout: |\n", " actions\n", " path: /tmp/gh-aw/actions-source\n", @@ -169,7 +169,7 @@ func generateGitHubScriptWithRequire(scriptPath string) string { // In other modes (dev/release), it uses the setup action. // // Parameters: -// - setupActionRef: The action reference for setup action (e.g., "./actions/setup" or "githubnext/gh-aw/actions/setup@sha") +// - setupActionRef: The action reference for setup action (e.g., "./actions/setup" or "github/gh-aw/actions/setup@sha") // - destination: The destination path where files should be copied (e.g., SetupActionDestination) // - enableSafeOutputProjects: Whether to enable safe-output-projects support (installs @actions/github for project handlers) // diff --git a/pkg/workflow/local_action_permissions_test.go b/pkg/workflow/local_action_permissions_test.go index 7021c72159..9a84e8b4a5 100644 --- a/pkg/workflow/local_action_permissions_test.go +++ b/pkg/workflow/local_action_permissions_test.go @@ -199,7 +199,7 @@ command: /fix } // Should use remote action references instead - if !strings.Contains(lockContentStr, "githubnext/gh-aw/actions/setup@v1.0.0") { - t.Error("Release mode should use remote action references like 'githubnext/gh-aw/actions/setup@v1.0.0'") + if !strings.Contains(lockContentStr, "github/gh-aw/actions/setup@v1.0.0") { + t.Error("Release mode should use remote action references like 'github/gh-aw/actions/setup@v1.0.0'") } } diff --git a/pkg/workflow/mcp_gateway_config.go b/pkg/workflow/mcp_gateway_config.go index 8c73d3b23a..13ec2eccf9 100644 --- a/pkg/workflow/mcp_gateway_config.go +++ b/pkg/workflow/mcp_gateway_config.go @@ -13,7 +13,7 @@ // - Managing gateway port, domain, and API key settings // // The gateway configuration includes: -// - Container image and version (defaults to githubnext/gh-aw-mcpg) +// - Container image and version (defaults to github/gh-aw-mcpg) // - Network port (default: 80) // - Domain for gateway access (localhost or host.docker.internal) // - API key for authentication @@ -36,7 +36,7 @@ // // sandbox: // mcp: -// container: githubnext/gh-aw-mcpg +// container: github/gh-aw-mcpg // version: v0.0.12 // port: 80 // domain: host.docker.internal @@ -53,7 +53,7 @@ import ( var mcpGatewayConfigLog = logger.New("workflow:mcp_gateway_config") // ensureDefaultMCPGatewayConfig ensures MCP gateway has default configuration if not provided -// The MCP gateway is mandatory and defaults to GitHubnext/gh-aw-mcpg +// The MCP gateway is mandatory and defaults to github/gh-aw-mcpg func ensureDefaultMCPGatewayConfig(workflowData *WorkflowData) { if workflowData == nil { return diff --git a/pkg/workflow/mcp_setup_generator.go b/pkg/workflow/mcp_setup_generator.go index 18850dd800..fee808bbfd 100644 --- a/pkg/workflow/mcp_setup_generator.go +++ b/pkg/workflow/mcp_setup_generator.go @@ -173,12 +173,12 @@ func (c *Compiler) generateMCPSetup(yaml *strings.Builder, tools map[string]any, fmt.Fprintf(yaml, " GH_TOKEN: %s\n", effectiveToken) yaml.WriteString(" run: |\n") yaml.WriteString(" # Check if gh-aw extension is already installed\n") - yaml.WriteString(" if gh extension list | grep -q \"githubnext/gh-aw\"; then\n") + yaml.WriteString(" if gh extension list | grep -q \"github/gh-aw\"; then\n") yaml.WriteString(" echo \"gh-aw extension already installed, upgrading...\"\n") yaml.WriteString(" gh extension upgrade gh-aw || true\n") yaml.WriteString(" else\n") yaml.WriteString(" echo \"Installing gh-aw extension...\"\n") - yaml.WriteString(" gh extension install githubnext/gh-aw\n") + yaml.WriteString(" gh extension install github/gh-aw\n") yaml.WriteString(" fi\n") yaml.WriteString(" gh aw --version\n") yaml.WriteString(" # Copy the gh-aw binary to /opt/gh-aw for MCP server containerization\n") diff --git a/pkg/workflow/repository_error_messages_test.go b/pkg/workflow/repository_error_messages_test.go index f09a8256cb..26e5eb8e4a 100644 --- a/pkg/workflow/repository_error_messages_test.go +++ b/pkg/workflow/repository_error_messages_test.go @@ -22,7 +22,7 @@ func TestRepositoryFormatErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository format", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { @@ -32,12 +32,12 @@ func TestRepositoryFormatErrorMessages(t *testing.T) { expectInMessage: []string{ "invalid repository format", "Expected format: owner/repo", - "Example: githubnext/gh-aw", + "Example: github/gh-aw", }, }, { name: "valid format", - repo: "githubnext/gh-aw", + repo: "github/gh-aw", expectError: false, }, } diff --git a/pkg/workflow/repository_features_validation.go b/pkg/workflow/repository_features_validation.go index 22ba966f51..3de406e98a 100644 --- a/pkg/workflow/repository_features_validation.go +++ b/pkg/workflow/repository_features_validation.go @@ -284,7 +284,7 @@ func checkRepositoryHasDiscussionsUncached(repo string) (bool, error) { // Split repo into owner and name parts := strings.SplitN(repo, "/", 2) if len(parts) != 2 || parts[0] == "" || parts[1] == "" { - return false, fmt.Errorf("invalid repository format: %s. Expected format: owner/repo. Example: githubnext/gh-aw", repo) + return false, fmt.Errorf("invalid repository format: %s. Expected format: owner/repo. Example: github/gh-aw", repo) } owner, name := parts[0], parts[1] diff --git a/pkg/workflow/repository_features_validation_integration_test.go b/pkg/workflow/repository_features_validation_integration_test.go index cf02359ea1..167b414971 100644 --- a/pkg/workflow/repository_features_validation_integration_test.go +++ b/pkg/workflow/repository_features_validation_integration_test.go @@ -51,9 +51,9 @@ func TestRepositoryFeaturesValidationIntegration(t *testing.T) { } t.Logf("Repository %s has issues enabled: %v", repo, hasIssues) - // Issues should be enabled for githubnext/gh-aw - if repo == "githubnext/gh-aw" && !hasIssues { - t.Error("Expected githubnext/gh-aw to have issues enabled") + // Issues should be enabled for github/gh-aw + if repo == "github/gh-aw" && !hasIssues { + t.Error("Expected github/gh-aw to have issues enabled") } }) diff --git a/pkg/workflow/repository_features_validation_test.go b/pkg/workflow/repository_features_validation_test.go index 74864b9f7b..d29678d9b4 100644 --- a/pkg/workflow/repository_features_validation_test.go +++ b/pkg/workflow/repository_features_validation_test.go @@ -128,9 +128,9 @@ func TestGetCurrentRepository(t *testing.T) { } func TestCheckRepositoryHasDiscussions(t *testing.T) { - // Test with the current repository (githubnext/gh-aw) + // Test with the current repository (github/gh-aw) // This test will only pass when GitHub CLI is authenticated - repo := "githubnext/gh-aw" + repo := "github/gh-aw" hasDiscussions, err := checkRepositoryHasDiscussions(repo, false) if err != nil { @@ -143,9 +143,9 @@ func TestCheckRepositoryHasDiscussions(t *testing.T) { } func TestCheckRepositoryHasIssues(t *testing.T) { - // Test with the current repository (githubnext/gh-aw) + // Test with the current repository (github/gh-aw) // This test will only pass when GitHub CLI is authenticated - repo := "githubnext/gh-aw" + repo := "github/gh-aw" hasIssues, err := checkRepositoryHasIssues(repo, false) if err != nil { @@ -156,9 +156,9 @@ func TestCheckRepositoryHasIssues(t *testing.T) { t.Logf("Repository %s has issues enabled: %v", repo, hasIssues) - // Issues should definitely be enabled for githubnext/gh-aw + // Issues should definitely be enabled for github/gh-aw if !hasIssues { - t.Error("Expected githubnext/gh-aw to have issues enabled") + t.Error("Expected github/gh-aw to have issues enabled") } } @@ -179,7 +179,7 @@ func TestCheckRepositoryInvalidFormat(t *testing.T) { func TestCheckRepositoryHasIssuesUncached(t *testing.T) { // Test the REST client code path directly // This test exercises the api.DefaultRESTClient() and client.Get() path - repo := "githubnext/gh-aw" + repo := "github/gh-aw" hasIssues, err := checkRepositoryHasIssuesUncached(repo) if err != nil { @@ -190,9 +190,9 @@ func TestCheckRepositoryHasIssuesUncached(t *testing.T) { t.Logf("Repository %s has issues enabled: %v", repo, hasIssues) - // Issues should definitely be enabled for githubnext/gh-aw + // Issues should definitely be enabled for github/gh-aw if !hasIssues { - t.Error("Expected githubnext/gh-aw to have issues enabled") + t.Error("Expected github/gh-aw to have issues enabled") } } @@ -220,7 +220,7 @@ func TestCheckRepositoryHasIssuesWithCaching(t *testing.T) { // Clear cache first to ensure clean state ClearRepositoryFeaturesCache() - repo := "githubnext/gh-aw" + repo := "github/gh-aw" // First call - should fetch from API hasIssues1, err1 := checkRepositoryHasIssues(repo, false) @@ -241,8 +241,8 @@ func TestCheckRepositoryHasIssuesWithCaching(t *testing.T) { t.Errorf("cached result differs from first result: first=%v, second=%v", hasIssues1, hasIssues2) } - // Issues should definitely be enabled for githubnext/gh-aw + // Issues should definitely be enabled for github/gh-aw if !hasIssues1 { - t.Error("Expected githubnext/gh-aw to have issues enabled") + t.Error("Expected github/gh-aw to have issues enabled") } } diff --git a/pkg/workflow/schedule_preprocessing_test.go b/pkg/workflow/schedule_preprocessing_test.go index 689cb269b9..c5acc93970 100644 --- a/pkg/workflow/schedule_preprocessing_test.go +++ b/pkg/workflow/schedule_preprocessing_test.go @@ -999,8 +999,8 @@ func TestFuzzyScheduleScatteringWithRepositorySlug(t *testing.T) { { name: "with repository slug", workflowIdentifier: "test-workflow.md", - repositorySlug: "githubnext/gh-aw", - expectedSeedFormat: "githubnext/gh-aw/test-workflow.md", + repositorySlug: "github/gh-aw", + expectedSeedFormat: "github/gh-aw/test-workflow.md", }, { name: "with different org, same workflow name", @@ -1071,7 +1071,7 @@ func TestFuzzyScheduleScatteringWithRepositorySlug(t *testing.T) { // Verify that different org/repo combinations produce different schedules // for the same workflow name - sameWorkflowDifferentOrg := results["githubnext/gh-aw/test-workflow.md"] + sameWorkflowDifferentOrg := results["github/gh-aw/test-workflow.md"] sameWorkflowOtherOrg := results["otherorg/gh-aw/test-workflow.md"] sameWorkflowOtherRepo := results["githubnext/other-repo/test-workflow.md"] workflowWithoutSlug := results["test-workflow.md"] diff --git a/pkg/workflow/script_registry.go b/pkg/workflow/script_registry.go index d6940b5b2d..c210af4f35 100644 --- a/pkg/workflow/script_registry.go +++ b/pkg/workflow/script_registry.go @@ -168,7 +168,7 @@ func (r *ScriptRegistry) RegisterWithMode(name string, source string, mode Runti // // The actionPath should be a relative path from the repository root for development mode. // In the future, this can be extended to support versioned references like -// "githubnext/gh-aw/.github/actions/create-issue@SHA" for release mode. +// "github/gh-aw/.github/actions/create-issue@SHA" for release mode. // // Returns an error if validation fails, allowing the caller to handle gracefully // instead of crashing the process.