Skip to content

Fix add-wizard existing Copilot token flow - #55438

Merged
dsyme merged 23 commits into
mainfrom
fix/add-wizard-existing-copilot-token
Aug 24, 2026
Merged

Fix add-wizard existing Copilot token flow#55438
dsyme merged 23 commits into
mainfrom
fix/add-wizard-existing-copilot-token

Conversation

@dsyme

@dsyme dsyme commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Improve gh aw add-wizard from credential selection through pull request handoff. The wizard now reuses existing Copilot credentials safely, records the choices it makes, keeps interactive output compact and consistently spaced, handles local repository state precisely, and creates a pull request that gives reviewers enough context to move the workflow forward.

Authentication and secrets

  • Detect existing repository secrets and organization secrets that are visible to the target repository.
  • Default to reusing an existing COPILOT_GITHUB_TOKEN, while retaining an explicit option to replace it.
  • Explain that reusing the stored token asserts it is a valid fine-grained PAT with Copilot Requests permission; GitHub does not expose secret values for direct validation.
  • Respect organization-secret visibility instead of treating every organization secret as available.
  • Let Copilot users choose between PAT authentication and organization billing through permissions.copilot-requests: write.
  • Reuse fetched repository metadata across the wizard instead of repeating repository lookups.

Wizard flow and output

  • Resolve workflow metadata early so the wizard can show names, descriptions, files, triggers, and schedules before applying changes.
  • Make repository authoring support optional and describe it consistently as coding agent prompts and skills.
  • Skip the prompts-and-skills question when support is already present.
  • Keep local-write and pull-request delivery paths distinct, including when secrets may be collected or configured.
  • When offering the first workflow run, leave optional workflow_dispatch inputs unset and prompt only for required inputs.
  • Condense workflow handoff output to a single local-branch update status followed by the trigger, run URL, audit command, and completion wait.
  • Add phase-specific progress feedback while preparing workflow files, staging and committing changes, and pushing the pull request branch.
  • Replace persistent Huh forms with a shared PromptForm that centrally owns one leading blank line, reserves inline terminal space to remain clearable after scrolling, and removes completed questions.
  • Keep completed decisions as concise status lines, remove redundant separators, improve wrapping, and suppress noisy compiler advice in the quiet wizard path.

Repository and pull request safety

  • Track the exact workflow and initialization files written by the wizard for staging and rollback.
  • Allow unrelated unstaged or untracked work when creating a pull request.
  • Block staged changes and changes that overlap planned output files unless the overlap can be explicitly and safely overwritten.
  • Preserve the user’s original branch and provide actionable recovery instructions when commit or push operations fail.
  • Route pull request operations to the already resolved target repository rather than looking it up again.

Workflow compilation

  • Add --gh-aw-ref to both gh aw add and gh aw add-wizard.
  • Resolve symbolic github/gh-aw branches and tags to immutable commit SHAs before compiling action references.
  • Preserve existing add behavior for callers that do not provide the flag.

Generated pull request descriptions

Pull requests created by add or add-wizard now include:

  • the command and gh-aw version, with documentation and repository links;
  • each workflow name, source link pinned to the fetched commit, description, triggers, and selected schedule;
  • wizard choices such as delivery, engine, authentication, scanner, stop-after guard, initialization, overwrite behavior, and GitHub App inference;
  • concrete review criteria covering permissions, network access, tools, safe outputs, and compiled lock files; and
  • numbered next steps for editing, recompiling, merging, configuring credentials, and monitoring the first run.

YAML block-scalar descriptions are treated as Markdown, preserving paragraphs and - lists instead of collapsing them into one line.

Documentation and tests

  • Update the CLI setup documentation and add a patch changeset.
  • Add focused coverage for existing-secret reuse, organization-secret visibility, authentication choices, --gh-aw-ref, dirty-tree handling, prompt rendering, wizard orchestration, pull request routing, and generated pull request Markdown.
  • Include repository-tooling updates to the affected generated workflow lock files.

Validation

  • make fmt
  • go build ./cmd/gh-aw
  • focused pkg/console, pkg/cli, and pkg/workflow tests for the changed behavior
  • git diff --check

At the time of this update, hosted checks report 7 successful, 12 pending, 2 skipped, and no failures. Local make agent-report-progress completes formatting, build, and synchronization checks but has repeatedly stalled after starting the parallel lint, schema, and impacted-test phase in this environment.


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 21.1 AIC · ⌖ 7.98 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Copilot AI balanced review requested due to automatic review settings August 24, 2026 15:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an explicit choice to reuse or replace an existing Copilot token.

Changes:

  • Defaults to reusing the detected token.
  • Adds replacement-path tests and a patch changeset.
Show a summary per file
File Description
pkg/cli/engine_secrets.go Adds existing-token confirmation flow.
pkg/cli/engine_secrets_test.go Tests reuse and replacement choices.
.changeset/patch-use-existing-copilot-token-add-wizard.md Documents the patch.

Review details

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread pkg/cli/engine_secrets.go
Comment thread .changeset/patch-use-existing-copilot-token-add-wizard.md Outdated
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot this PR has unresolved review feedback that needs follow-up before merge. Please address these threads, push the fixes, and then run the pr-finisher skill.

Run: https://github.com/github/gh-aw/actions/runs/32748984422

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 12.4 AIC · ⌖ 10.3 AIC · ⊞ 6.2K ·
Comment /souschef to run again

@dsyme
dsyme marked this pull request as draft August 24, 2026 16:16
dsyme and others added 3 commits August 24, 2026 18:18
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

@copilot this PR has unresolved review feedback that needs follow-up before merge. Please address these threads, push the fixes, and then run the pr-finisher skill.

  • copilot-pull-request-reviewer:...

Addressed both review threads in 37c58e4: organization secrets are reused only when visible to the target repository, and the release-note wording is corrected.

Copilot AI requested a review from gh-aw-bot August 24, 2026 16:33
@github-actions github-actions Bot mentioned this pull request Aug 24, 2026
@dsyme
dsyme requested a balanced review from Copilot August 24, 2026 19:09
@dsyme
dsyme marked this pull request as ready for review August 24, 2026 19:09
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ failed to deliver outputs during design decision gate check.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Ponytail Reviewer completed successfully!

Generated by Ponytail Reviewer for #55438

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-08-24T00:00:00Z
review_event: REQUEST_CHANGES
top_themes:
  - local-write path still applies repository initialization side effects
  - PR description overstates Copilot secret readiness/source
files_reviewed:
  - pkg/cli/add_interactive_orchestrator.go
  - pkg/cli/add_interactive_git.go
  - pkg/cli/add_interactive_engine.go
  - pkg/cli/add_interactive_secrets.go
  - pkg/cli/add_workflow_pr.go
  - pkg/cli/add_workflow_compilation.go
  - pkg/console/prompt_form.go
  - pkg/cli/pr_command.go
comment_count: 2

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

🔎 Code quality review by PR Code Quality Reviewer · pi · gpt54 · 39.2 AIC · ⌖ 8.18 AIC · ⊞ 7K ·
Comment /review to run again

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request changes

The wizard flow still has a correctness hole around local writes, and the generated PR description is overstating secret readiness.

Blocking themes
  • The refactored add-wizard path now applies repository initialization side effects even when the user chooses local writes, which breaks the stated separation between PR and local delivery.
  • The new PR body collapses repo and org secret availability into one vague “existing secret” state, so reviewers cannot tell what authentication setup actually exists.

🔎 Code quality review by PR Code Quality Reviewer · pi · gpt54 · 39.2 AIC · ⌖ 8.18 AIC · ⊞ 7K
Comment /review to run again

Comment thread pkg/cli/add_interactive_orchestrator.go Outdated
Comment thread pkg/cli/add_interactive_git.go Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pkg/cli/add_command.go:81-102: yagni: AddOptions now carries wizard-specific state (workingTreePrevalidated, showInteractiveProgress, createdByAddWizard, etc.) for one path. Keep that state in a small wizard-specific struct or local values.
pkg/cli/add_workflow_pr.go:199-270: yagni: PR body formatting now has a mini formatter library (workflowSourceMarkdown, workflowTriggerSummary, enabledText, markdownBlock, joinCodeValues) for one output. Inline the few formatting calls and keep the builder as a straight string writer.
net: -22 lines possible.

Generated by ✂️ Ponytail Reviewer for #55438 · codex · mai10 · 14.8 AIC · ⌖ 1.31 AIC · ⊞ 16.7K
Comment /ponytail to run again

Comment thread pkg/cli/add_command.go
Comment thread pkg/cli/add_workflow_pr.go

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Fix add-wizard existing Copilot token flow

Overall: The PR's core intent — defaulting to the existing COPILOT_GITHUB_TOKEN instead of always re-prompting, filtering org secrets by visibility, and splitting working-tree validation from the AddResolvedWorkflows path — is well-structured and well-tested. Two issues need attention before merge.

Blocking

1. copilotAuthMethodDescription always says "existing" secret (line 317, add_interactive_engine.go)

The PAT option description is hardcoded to "Use the existing COPILOT_GITHUB_TOKEN repository secret" regardless of whether the secret actually exists. When COPILOT_GITHUB_TOKEN is absent, a first-time user sees misleading copy that implies they already have the secret configured. The function should accept a copilotSecretExists bool and vary the text accordingly (see inline comment).

2. addRepositoryInitializationPlan.files is stored but never consumed (line 444, add_command.go)

confirmAddRepositoryInitialization populates plan.files with the set of missing markers discovered during the confirmation step, but applyAddRepositoryInitialization ignores plan.files entirely and re-queries via ensureAddRepositoryInitializedWithDetails. The files field on the exported struct signals a contract that isn't honoured, and the silent re-discover creates a minor TOCTOU window. The field should either be removed or actually used to avoid the second scan (see inline comment).

Non-blocking observations

  • The new organizationSecretAvailable logic correctly handles all, private, and selected visibility — good hardening of the previous flat-list approach.
  • The workingTreePrevalidated bypass is set to createPR, which is safe: local writes don't need the new interactive blocker resolution loop.
  • The spinner deferral (defer stopProgress()) in addWorkflowWithTracking will call Stop even on error paths, which is correct.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet46 · 129.7 AIC · ⌖ 9.49 AIC · ⊞ 6.2K

Comments that could not be inline-anchored

pkg/cli/add_interactive_engine.go:317

Hardening — misleading PAT description when secret does not exist

copilotAuthMethodDescription unconditionally produces "Use the existing COPILOT_GITHUB_TOKEN repository secret" regardless of whether existingSecrets actually contains COPILOT_GITHUB_TOKEN. When the secret does not yet exist, the user reads a description that implies an existing secret is available, while they will actually be asked to create and store a new one.

selectCopilotAuthMethod is a receiver method on `*A…

pkg/cli/add_command.go:444

Harden — plan.files is populated but silently ignored in applyAddRepositoryInitialization

confirmAddRepositoryInitialization stores the list of missing support files in addRepositoryInitializationPlan.files, but applyAddRepositoryInitialization discards it and calls ensureAddRepositoryInitializedWithDetails, which re-discovers missing markers from scratch:

func applyAddRepositoryInitialization(plan ...) ([]string, error) {
    if !plan.enabled {
        return nil, nil</details>

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Summary

Applied /diagnosing-bugs and /codebase-design — requesting changes on 6 issues.

📋 Issues raised (click to expand)
# File Issue
1 add_interactive_secrets.go:76 isPublicRepo used in organizationSecretAvailable before it's guaranteed to be set — implicit call-order dependency
2 add_interactive_git.go:716 Unbounded for {} loop in checkCleanWorkingDirectoryForPR — no context cancellation
3 add_interactive_git.go:771 addFindGitRoot() called twice in the same operation, risking path-normalisation mismatch
4 add_workflow_pr.go:1782 Auth description logic duplicated across buildAddWorkflowPRBody and engine-selection display
5 add_workflow_pr.go:1759 Two different hardcoded documentation URLs — no single source of truth
6 add_init.go:440 applyAddRepositoryInitialization re-derives plan.files instead of reusing the confirmed set

@copilot please address the review comments above.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet46 · 140.7 AIC · ⌖ 10.5 AIC · ⊞ 7.6K ·
Comment /matt to run again

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skills-Based Review 🧠

Applied /diagnosing-bugs and /codebase-design — requesting changes on several correctness and maintainability issues.

📋 Key Themes & Highlights

Key Themes

  • Implicit ordering dependency (isPublicRepo set in auth flow, consumed in secrets check) with no guard.
  • Unbounded retry loop in checkCleanWorkingDirectoryForPR with no context cancellation.
  • Double addFindGitRoot() call in the same logical operation, risking path-mismatch bugs.
  • Duplicated three-way auth decision between buildAddWorkflowPRBody and engine-selection helpers.
  • Hardcoded, mismatched URL pair in PR body builder.
  • Confirm/apply TOCTOUplan.files computed during confirmation is discarded and re-derived during apply.

Positive Highlights

  • ✅ Excellent improvement replacing the "assume all org secrets are visible" bug with proper visibility-aware filtering.
  • ✅ Clean separation of confirm / apply init phases — the intent is right, just the apply implementation re-derives instead of reusing.
  • ✅ The working-tree blocker model (staged vs overlapping) is precise and well-tested.
  • ✅ Strong test coverage upgrade on checkExistingSecrets — the new mock-based approach is much more reliable than the previous "don't panic" check.
  • addInteractiveRunGH var injection pattern gives tests clean control over gh API calls.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet46 · 140.7 AIC · ⌖ 10.5 AIC · ⊞ 7.6K
Comment /matt to run again

Comments that could not be inline-anchored

pkg/cli/add_interactive_secrets.go:76

[/diagnosing-bugs] organizationSecretAvailable reads c.isPublicRepo, but isPublicRepo is set in checkGHAuthStatus (auth flow) which runs before selectAIEngineAndKeycheckExistingSecrets. The ordering is currently correct, but there is no guard — if any future refactor calls checkExistingSecrets before checkGHAuthStatus, private-visibility org secrets will be incorrectly offered on public repos.

<details>
<summary>💡 Suggested guard</summary>

Make the dependency explicit …

pkg/cli/add_interactive_git.go:716

[/diagnosing-bugs] The for {} retry loop in checkCleanWorkingDirectoryForPR has no iteration limit or context-cancellation check on the workingTreeCleaned path. If inspectAddWorkingTree consistently returns blockers (e.g. a background editor auto-saving to a planned path), the user cannot escape without killing the process.

<details>
<summary>💡 Suggested fix</summary>

Check the context on each iteration so Ctrl-C terminates cleanly:

for {
    select {
    case &lt;-ctx.Done()…

</details>

<details><summary>pkg/cli/add_interactive_git.go:771</summary>

**[/diagnosing-bugs]** `inspectAddWorkingTree` calls `addFindGitRoot()` independently from `plannedAddPaths`, which also calls `addFindGitRoot()`. Two separate calls means the git root could theoretically differ between them (test stubs, CWD changes), leading to path-normalisation mismatches and incorrect blocker classification.

&lt;details&gt;
&lt;summary&gt;💡 Suggested fix&lt;/summary&gt;

Compute the git root once in `checkCleanWorkingDirectoryForPR` and pass it to both helpers:

```go
func inspectAddWorkin…

</details>

<details><summary>pkg/cli/add_workflow_pr.go:1782</summary>

**[/codebase-design]** The three-way auth decision (`AddCopilotRequestsPermission` → `addWizardSecretExists` → `addWizardSkipSecret`) is duplicated here and in the engine-selection display helpers. Both sites must be kept in sync when precedence rules change.

&lt;details&gt;
&lt;summary&gt;💡 Suggested refactor&lt;/summary&gt;

Extract a `copilotAuthSummary(opts AddOptions) string` helper and call it from both `buildAddWorkflowPRBody` and the engine-selection path, so there is a single source of truth.

&lt;/detai…

</details>

<details><summary>pkg/cli/add_workflow_pr.go:1759</summary>

**[/codebase-design]** Two different documentation URLs appear next to each other: `https://github.github.com/gh-aw/` and `https://github.com/github/gh-aw`. If either URL changes both sites must be updated. Consider defining them as package-level constants so they are maintained in one place.

@copilot please address this.

</details>

<details><summary>pkg/cli/add_init.go:440</summary>

**[/diagnosing-bugs]** `applyAddRepositoryInitialization` calls `ensureAddRepositoryInitializedWithDetails` which re-derives the missing markers internally, ignoring the pre-computed `plan.files`. If the working tree changes between `confirmAddRepositoryInitialization` and `applyAddRepositoryInitialization` (e.g. the user creates a file while answering the delivery-method prompt), additional files may be written that were never shown to the user during confirmation.

&lt;details&gt;
&lt;summary&gt;💡 Sugge</details>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review details

  • Files reviewed: 37/37 changed files
  • Comments generated: 9
  • Review effort level: Balanced

Comment thread pkg/cli/add_init.go Outdated
Comment thread pkg/cli/add_interactive_git.go Outdated
Comment thread pkg/cli/add_interactive_secrets.go Outdated
Comment thread pkg/cli/add_interactive_secrets.go
Comment thread pkg/cli/add_workflow_pr.go Outdated
Comment thread pkg/cli/add_workflow_pr.go Outdated
Comment thread pkg/cli/add_interactive_engine.go Outdated
Comment thread .changeset/patch-use-existing-copilot-token-add-wizard.md Outdated
Comment thread pkg/cli/add_interactive_secrets.go Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Warning

The push_to_pull_request_branch operation failed: Cannot push to pull request branch: bundle modifies files outside the allowed-files list (pkg/cli/add_interactive_git.go). Add the files to the allowed-files configuration field or remove them from the bundle.. The code changes were not applied.

🏗️ Design Decision Gate — ADR Required

This PR makes significant changes to core business logic (1,385 new lines in business logic directories) but did not have a linked Architecture Decision Record (ADR).

📄 Draft ADR committed: docs/adr/55438-add-wizard-reuse-existing-copilot-token-and-targeted-tree-validation.md — review and complete it before merging.

🔒 This PR cannot merge until an ADR is linked in the PR body.

📋 What to do next
  1. Review the draft ADR committed to your branch — it was generated from the PR diff and covers the three primary decisions: defaulting to reuse of an existing COPILOT_GITHUB_TOKEN, targeted working-tree validation for PR creation, and opt-in repository authoring support files.
  2. Complete the missing sections — add context the AI couldn't infer, refine the decision rationale, and list any additional alternatives you considered.
  3. Commit the finalized ADR to docs/adr/ on your branch (or adjust the draft in place).
  4. Reference the ADR in this PR body by adding a line such as:

    ADR: ADR-55438: Default to Reusing Existing COPILOT_GITHUB_TOKEN and Targeted Working-Tree Validation in add-wizard

Once an ADR is linked in the PR body, this gate will re-run and verify the implementation matches the decision.

❓ Why ADRs Matter

"AI made me procrastinate on key design decisions. Because refactoring was cheap, I could always say 'I'll deal with this later.' Deferring decisions corroded my ability to think clearly."

ADRs create a searchable, permanent record of why the codebase looks the way it does. Future contributors (and your future self) will thank you.

📋 Michael Nygard ADR Format Reference

An ADR must contain these four sections to be considered complete:

  • Context — What is the problem? What forces are at play?
  • Decision — What did you decide? Why?
  • Alternatives Considered — What else could have been done?
  • Consequences — What are the trade-offs (positive and negative)?

All ADRs are stored in docs/adr/ as Markdown files numbered by PR number (e.g., 55438-my-decision.md for PR #55438).

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · claude · sonnet46 · 103.8 AIC · ⌖ 28.4 AIC · ⊞ 8.6K ·
Comment /review to run again

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

gh-aw-pr-sous-chef
@copilot PR Sous Chef triage: this PR still has unresolved review feedback and maintainer-facing concerns.

Please do one focused follow-up pass:

  • address the current blocking review items about local-write initialization side effects and the misleading Copilot secret readiness/description flow
  • review the latest maintainer-facing comments from the design gate, code quality review, impeccable review, and matt review, then close the loop directly in the relevant review threads
  • refresh the branch if needed, run make fmt, and then use the pr-finisher skill before handing back for review

I also attempted a branch refresh for this PR in this run.

Run: https://github.com/github/gh-aw/actions/runs/32768957910

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 21.1 AIC · ⌖ 7.98 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Copilot AI and others added 2 commits August 24, 2026 20:05
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

gh-aw-pr-sous-chef
@copilot PR Sous Chef triage: this PR still has unresolved review feedback and maintainer-facing concerns.
...

Addressed the focused follow-up in a5ccc64 and f84f90a: local writes no longer initialize support files; secret source/visibility and auth descriptions are precise; pagination, initialization tracking, PR rendering, cancellation, and release metadata feedback are covered. make fmt, focused/full tests, and make recompile pass; review threads have direct replies.

dsyme added 2 commits August 24, 2026 22:17
…b.com/github/gh-aw into fix/add-wizard-existing-copilot-token

# Conflicts:
#	pkg/cli/add_command.go
#	pkg/cli/add_init.go
#	pkg/cli/add_interactive_auth.go
#	pkg/cli/add_interactive_engine.go
#	pkg/cli/add_interactive_engine_test.go
#	pkg/cli/add_interactive_git.go
#	pkg/cli/add_interactive_orchestrator.go
#	pkg/cli/add_interactive_secrets.go
#	pkg/cli/add_interactive_secrets_test.go
#	pkg/cli/add_workflow_pr.go
#	pkg/cli/add_workflow_pr_test.go
#	pkg/cli/preconditions.go
@dsyme
dsyme merged commit e95e552 into main Aug 24, 2026
36 checks passed
@dsyme
dsyme deleted the fix/add-wizard-existing-copilot-token branch August 24, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants