Skip to content

fix(install): skip enrollment in PR mode + e2e PR-based scaffold flow#2567

Merged
waynesun09 merged 2 commits into
mainfrom
e2e-pr-flow-install
Jun 24, 2026
Merged

fix(install): skip enrollment in PR mode + e2e PR-based scaffold flow#2567
waynesun09 merged 2 commits into
mainfrom
e2e-pr-flow-install

Conversation

@waynesun09

@waynesun09 waynesun09 commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Fix enrollment layer fatal error when scaffold files are delivered via PR (the default since feat(install): default to PR-based scaffold delivery #2533)
  • Add WithScaffoldPending() to EnrollmentLayer to defer enrollment until the scaffold PR is merged
  • Update e2e to exercise the default PR-based scaffold install flow: install without --direct, merge scaffold PR, then verify files

Problem

When scaffold files are delivered via PR, the enrollment layer waits 5 minutes for repo-maintenance.yml to be registered on the default branch — but the workflow file only exists on the scaffold feature branch. This always times out with:

Error: installation failed: layer enrollment: waiting for repo-maintenance workflow:
repo-maintenance workflow not ready after 5m0s (last state: not found)

Solution

Add a scaffoldPending flag to EnrollmentLayer. When scaffold was delivered via PR, enrollment skips the workflow dispatch and prints an informational message. After the user merges the scaffold PR, repo-maintenance.yml triggers automatically via its on: push handler.

Changes

  1. internal/layers/enrollment.go — add WithScaffoldPending() builder and early-return in Install()
  2. internal/cli/admin.go — wire WithScaffoldPending() when !direct
  3. e2e/admin/admin_test.go — remove --direct, add mergeScaffoldPR helper, increase enrollment PR retry window

Closes #2558

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

E2E: exercise default PR-based scaffold install flow
🧪 Tests 🕐 20-40 Minutes

Grey Divider

Description

• Update admin install e2e to use the default PR-based scaffold delivery (no --direct).
• Merge the generated scaffold PR before asserting scaffold files on the default branch.
• Add a dedicated helper to reliably find/merge the scaffold PR with retry/409 handling.
Diagram

graph TD
  A["TestAdminInstallUninstall"] --> B["Run: admin install"] --> C[(".fullsend repo")] --> D("Scaffold PR") --> E["mergeScaffoldPR"] --> F["Verify scaffold files"] --> G["mergeEnrollmentPR"]

  subgraph Legend
    direction LR
    _step["Test step/helper"] ~~~ _repo[("Repo")] ~~~ _pr("Pull request")
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Capture scaffold PR URL/number from CLI output
  • ➕ Avoids brittle PR discovery via title substring matching
  • ➕ Eliminates an extra ListRepoPullRequests call/retry loop
  • ➖ Requires CLI to reliably emit/structure the PR identifier (or tests to parse logs)
  • ➖ Couples test behavior to CLI output format
2. Identify scaffold PR via branch naming/labels/author instead of title
  • ➕ More robust than title matching if titles change
  • ➕ Can disambiguate if multiple scaffold-related PRs exist
  • ➖ Requires the install flow to enforce stable branch naming/labeling
  • ➖ May still need retries for eventual consistency
3. Validate scaffold content on the PR head branch (no merge)
  • ➕ Avoids merge flakiness and 409 conflict handling
  • ➕ Still validates scaffold generation
  • ➖ Does not exercise the default-branch post-merge state, which is what downstream steps rely on
  • ➖ Diverges from the real “install then merge” user workflow

Recommendation: Current approach is appropriate for exercising the real default PR-based install path (including merge behavior). The main improvement to consider is making PR identification less title-dependent (e.g., using a stable branch prefix or label), which would reduce the risk of false matches if PR titles change.

Files changed (1) +70 / -5

Tests (1) +70 / -5
admin_test.goMake admin install e2e merge scaffold PR before asserting default-branch files +70/-5

Make admin install e2e merge scaffold PR before asserting default-branch files

• Removes the --direct install flag so the test follows the default PR-based scaffold delivery mode. Inserts a new phase to find and merge the scaffold PR on .fullsend before verifying scaffold artifacts on the default branch, and adds a mergeScaffoldPR helper with retry and 409-conflict branch-update handling.

e2e/admin/admin_test.go

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 3:27 PM UTC · Completed 3:38 PM UTC
Commit: 373c6f7 · View workflow run →

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (2) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 51 rules

Grey Divider


Action required

1. mergeScaffoldPR lacks branch assertion 📎 Requirement gap ≡ Correctness
Description
The e2e helper mergeScaffoldPR identifies the scaffold PR solely via `strings.Contains(pr.Title,
"scaffold") instead of asserting the PR’s head branch is fullsend/scaffold-install`. This can
merge the wrong PR or become flaky if titles change or multiple open PRs contain the substring, and
it fails to meet the compliance requirement to validate the expected scaffold branch is used in the
default install flow.
Code

e2e/admin/admin_test.go[R353-357]

+		for _, pr := range prs {
+			if strings.Contains(pr.Title, "scaffold") {
+				cp := pr
+				scaffoldPR = &cp
+				break
Relevance

⭐⭐ Medium

No direct precedent for asserting scaffold PR head ref; related scaffold-branch hardening
suggestions were rejected (PR #2201).

PR-#2201

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Compliance ID 1062108 requires the e2e test to explicitly assert that the scaffold install PR is
created from the fixed branch fullsend/scaffold-install. However, the current mergeScaffoldPR
selection logic relies only on a title substring match, and the PR listing data being used does not
provide head/base ref information (it returns only fields like title/URL/number), forcing a
non-deterministic approach that neither guarantees the correct scaffold PR is chosen nor verifies
the required branch/ref.

E2E asserts scaffold PR is created on fullsend/scaffold-install branch
e2e/admin/admin_test.go[353-357]
e2e/admin/admin_test.go[345-365]
internal/layers/commit.go[35-59]
internal/forge/github/github.go[1258-1283]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`mergeScaffoldPR` currently finds the scaffold PR by checking whether the PR title contains the substring `"scaffold"`, but it does not verify the PR’s head branch is the deterministic scaffold branch `fullsend/scaffold-install`. This can lead to merging the wrong PR (or failing to find the intended one) when titles change or multiple PRs match, and it does not satisfy the compliance requirement to assert the scaffold PR is on `fullsend/scaffold-install`.

## Issue Context
- Compliance requires an explicit assertion in e2e that the PR-based scaffold install creates a PR on `fullsend/scaffold-install`.
- The scaffold delivery flow uses a fixed head branch name (`fullsend/scaffold-install`), so PR selection should be based on that stable identifier rather than a human-readable title substring.
- The current PR listing interface used by `mergeScaffoldPR` does not expose head/base refs (only title/URL/number), which is why the implementation fell back to title matching.

## Fix Focus Areas
- e2e/admin/admin_test.go[345-365]
- internal/forge/forge.go[64-70]
- internal/forge/github/github.go[1258-1283]
- internal/layers/commit.go[35-59]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. No PR-mode activateRepoMaintenance check 📎 Requirement gap ☼ Reliability
Description
The updated PR-based install flow does not include any assertion that activateRepoMaintenance is
skipped in PR mode (e.g., by checking CLI output or absence of an activation commit). This leaves
regressions where PR mode accidentally performs the activation behavior undetected.
Code

e2e/admin/admin_test.go[R143-167]

		"--app-set", e2eAppSet,
		"--enroll-all",
		"--vendor",
-		"--direct",
	}
	if env.cfg.gcpProjectID != "" {
		installArgs = append(installArgs, "--inference-project", env.cfg.gcpProjectID)
	}
	runCLI(t, env.binary, env.token, installArgs...)

-	// Verify install artifacts.
+	// Verify install artifacts that exist regardless of delivery mode.
	_, err := env.client.GetRepo(ctx, env.org, forge.ConfigRepoName)
	require.NoError(t, err, ".fullsend repo should exist")
	mintURLExists, err := env.client.OrgVariableExists(ctx, env.org, "FULLSEND_MINT_URL")
	require.NoError(t, err)
	require.True(t, mintURLExists, "FULLSEND_MINT_URL org variable should exist")
+
+	// Register .fullsend cleanup (in case later phases fail).
+	registerRepoCleanup(t, env.client, env.org, forge.ConfigRepoName)
+
+	// Phase 1.5: Merge the scaffold PR.
+	// Default install mode creates a PR instead of pushing directly.
+	// Merge it so scaffold files land on the default branch.
+	t.Log("=== Phase 1.5: Merge Scaffold PR ===")
+	mergeScaffoldPR(t, env)
+
Relevance

⭐⭐ Medium

No prior reviews about asserting PR-mode skips repo-maintenance; team does accept adding targeted
e2e regressions (PR #1962).

PR-#1962

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062113 requires a verification that activateRepoMaintenance is skipped in PR
mode. In the updated flow, the test runs admin install and proceeds to merge the scaffold PR, but
adds no assertion about activation being skipped (no output check, no commit/history check, no other
observable-effect check).

E2E validates PR mode skips activateRepoMaintenance behavior
e2e/admin/admin_test.go[136-167]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR-based e2e flow merges the scaffold PR but does not verify that `activateRepoMaintenance` is skipped in PR mode.

## Issue Context
The compliance requirement explicitly calls for an e2e verification (directly or via observable effects) that PR mode skips `activateRepoMaintenance`.

## Fix Focus Areas
- e2e/admin/admin_test.go[136-167]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread e2e/admin/admin_test.go
Comment on lines +353 to +357
for _, pr := range prs {
if strings.Contains(pr.Title, "scaffold") {
cp := pr
scaffoldPR = &cp
break

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. mergescaffoldpr lacks branch assertion 📎 Requirement gap ≡ Correctness

The e2e helper mergeScaffoldPR identifies the scaffold PR solely via `strings.Contains(pr.Title,
"scaffold") instead of asserting the PR’s head branch is fullsend/scaffold-install`. This can
merge the wrong PR or become flaky if titles change or multiple open PRs contain the substring, and
it fails to meet the compliance requirement to validate the expected scaffold branch is used in the
default install flow.
Agent Prompt
## Issue description
`mergeScaffoldPR` currently finds the scaffold PR by checking whether the PR title contains the substring `"scaffold"`, but it does not verify the PR’s head branch is the deterministic scaffold branch `fullsend/scaffold-install`. This can lead to merging the wrong PR (or failing to find the intended one) when titles change or multiple PRs match, and it does not satisfy the compliance requirement to assert the scaffold PR is on `fullsend/scaffold-install`.

## Issue Context
- Compliance requires an explicit assertion in e2e that the PR-based scaffold install creates a PR on `fullsend/scaffold-install`.
- The scaffold delivery flow uses a fixed head branch name (`fullsend/scaffold-install`), so PR selection should be based on that stable identifier rather than a human-readable title substring.
- The current PR listing interface used by `mergeScaffoldPR` does not expose head/base refs (only title/URL/number), which is why the implementation fell back to title matching.

## Fix Focus Areas
- e2e/admin/admin_test.go[345-365]
- internal/forge/forge.go[64-70]
- internal/forge/github/github.go[1258-1283]
- internal/layers/commit.go[35-59]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread e2e/admin/admin_test.go
Comment on lines 143 to +167
"--app-set", e2eAppSet,
"--enroll-all",
"--vendor",
"--direct",
}
if env.cfg.gcpProjectID != "" {
installArgs = append(installArgs, "--inference-project", env.cfg.gcpProjectID)
}
runCLI(t, env.binary, env.token, installArgs...)

// Verify install artifacts.
// Verify install artifacts that exist regardless of delivery mode.
_, err := env.client.GetRepo(ctx, env.org, forge.ConfigRepoName)
require.NoError(t, err, ".fullsend repo should exist")
mintURLExists, err := env.client.OrgVariableExists(ctx, env.org, "FULLSEND_MINT_URL")
require.NoError(t, err)
require.True(t, mintURLExists, "FULLSEND_MINT_URL org variable should exist")

// Register .fullsend cleanup (in case later phases fail).
registerRepoCleanup(t, env.client, env.org, forge.ConfigRepoName)

// Phase 1.5: Merge the scaffold PR.
// Default install mode creates a PR instead of pushing directly.
// Merge it so scaffold files land on the default branch.
t.Log("=== Phase 1.5: Merge Scaffold PR ===")
mergeScaffoldPR(t, env)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

2. No pr-mode activaterepomaintenance check 📎 Requirement gap ☼ Reliability

The updated PR-based install flow does not include any assertion that activateRepoMaintenance is
skipped in PR mode (e.g., by checking CLI output or absence of an activation commit). This leaves
regressions where PR mode accidentally performs the activation behavior undetected.
Agent Prompt
## Issue description
The PR-based e2e flow merges the scaffold PR but does not verify that `activateRepoMaintenance` is skipped in PR mode.

## Issue Context
The compliance requirement explicitly calls for an e2e verification (directly or via observable effects) that PR mode skips `activateRepoMaintenance`.

## Fix Focus Areas
- e2e/admin/admin_test.go[136-167]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@codecov

codecov Bot commented Jun 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 27.27273% with 8 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/layers/enrollment.go 0.00% 5 Missing and 1 partial ⚠️
internal/cli/admin.go 60.00% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

Looks good to me


Labels: PR modifies install layer and e2e admin tests

Previous run

Review

Reason: stale-head

The review agent reviewed commit fef3e5e85963679c926805e14af7fbc56fbb53c9 but the PR HEAD is now 3f537ad4c7da68d138f43d6f028ee174e1e45526. This review was discarded to avoid approving unreviewed code.

Previous run (2)

Looks good to me.

Low

  • [edge-case] e2e/admin/admin_test.go:355mergeScaffoldPR matches the scaffold PR by strings.Contains(pr.Title, "scaffold files"), which could match an unrelated PR whose title happens to contain that substring. The production code uses the fixed title "chore: add fullsend scaffold files" (internal/layers/workflows.go:128), so the match works correctly in practice. The e2e org pool is cleaned before each run, making a false positive unlikely. This mirrors the same broad-match pattern used by mergeEnrollmentPR.

  • [warning-message-capitalization] e2e/admin/admin_test.go:350 — The warning message Warning: could not update PR branch uses title-case Warning:, but the majority pattern in this file is lowercase warning: (lines 66, 99, 371). However, the new code directly mirrors the existing mergeEnrollmentPR function (line 318), which already uses the same capitalized Warning: form. Consider normalizing both occurrences to lowercase warning: to match the dominant pattern.

Previous run (3)

Looks good to me.

Low

  • [edge-case] e2e/admin/admin_test.go:355mergeScaffoldPR matches the scaffold PR by strings.Contains(pr.Title, "scaffold"), which could match an unrelated PR if one existed with "scaffold" in its title. The existing mergeEnrollmentPR uses the same broad-match pattern ("fullsend"), and the e2e org pool is clean, so this is unlikely in practice.

  • [duplicate-pattern-deviation] e2e/admin/admin_test.go:341mergeScaffoldPR duplicates the structure of mergeEnrollmentPR (poll for PR, retry merge on 409, update branch). A shared helper like findAndMergePR(t, env, repo, titleSubstring, label) would reduce duplication.

  • [function-documentation] e2e/admin/admin_test.go:335 — The mergeScaffoldPR doc comment is slightly more verbose than the mergeEnrollmentPR comment style, though the extra context about PR-based delivery mode is useful for readers unfamiliar with the install modes.


Labels: PR modifies only e2e test code for the admin install flow.

Comment thread e2e/admin/admin_test.go

for _, pr := range prs {
if strings.Contains(pr.Title, "scaffold") {
cp := pr

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] edge-case

mergeScaffoldPR matches the scaffold PR by strings.Contains(pr.Title, "scaffold"), which could match an unrelated PR if one existed with "scaffold" in its title. The existing mergeEnrollmentPR uses the same broad-match pattern, and the e2e org pool is clean, so this is unlikely in practice.

Comment thread e2e/admin/admin_test.go
// repo. In default (PR-based) install mode, scaffold files land on a feature
// branch and a PR is opened; this helper merges it so subsequent assertions
// can verify files on the default branch.
func mergeScaffoldPR(t *testing.T, env *e2eEnv) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] duplicate-pattern-deviation

mergeScaffoldPR duplicates the structure of mergeEnrollmentPR (poll for PR, retry merge on 409, update branch). A shared helper like findAndMergePR(t, env, repo, titleSubstring, label) would reduce duplication.

Suggested fix: Extract a shared helper function parameterized by repo, title substring, and log label.

Comment thread e2e/admin/admin_test.go
@@ -327,6 +334,64 @@ func mergeEnrollmentPR(t *testing.T, env *e2eEnv) {
t.Log("Enrollment PR merged")
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] function-documentation

The mergeScaffoldPR doc comment is more verbose than the mergeEnrollmentPR comment style. The extra context about PR-based delivery mode is useful but diverges from the concise two-sentence pattern used by the sibling function.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge component/e2e End-to-end tests labels Jun 23, 2026
@waynesun09 waynesun09 force-pushed the e2e-pr-flow-install branch from 373c6f7 to 3f6ea9c Compare June 23, 2026 16:11
@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 4:16 PM UTC · Completed 4:25 PM UTC
Commit: 3f6ea9c · View workflow run →

Comment thread e2e/admin/admin_test.go

for _, pr := range prs {
if strings.Contains(pr.Title, "scaffold files") {
cp := pr

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] edge-case

mergeScaffoldPR matches the scaffold PR by strings.Contains(pr.Title, "scaffold files"), which could match an unrelated PR whose title happens to contain that substring. The production code uses the fixed title "chore: add fullsend scaffold files" (internal/layers/workflows.go:128), so the match works correctly in practice. The e2e org pool is cleaned before each run, making a false positive unlikely. This mirrors the same broad-match pattern used by mergeEnrollmentPR.

Comment thread e2e/admin/admin_test.go
if attempt > 0 {
time.Sleep(3 * time.Second)
}
prs, err := env.client.ListRepoPullRequests(ctx, env.org, forge.ConfigRepoName)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] warning-message-capitalization

The warning message Warning: could not update PR branch uses title-case Warning:, but the majority pattern in this file is lowercase warning: (lines 66, 99, 371). The new code mirrors the existing mergeEnrollmentPR (line 318) which already used the capitalized form. Consider normalizing both to lowercase warning: to match the dominant pattern.

Suggested fix: Change both occurrences (line 318 in mergeEnrollmentPR and the new line in mergeScaffoldPR) to lowercase warning: to match the dominant pattern.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge and removed ready-for-merge All reviewers approved — ready to merge labels Jun 23, 2026
@waynesun09 waynesun09 changed the title test(e2e): exercise default PR-based scaffold install flow fix(install): skip enrollment in PR mode + e2e PR-based scaffold flow Jun 23, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:13 PM UTC · Completed 5:25 PM UTC
Commit: fef3e5e · View workflow run →

When scaffold files are delivered via PR (the default), the enrollment
layer cannot dispatch repo-maintenance because the workflow file has not
reached the default branch yet. Add WithScaffoldPending() to defer
enrollment until the scaffold PR is merged, at which point
repo-maintenance triggers automatically via its on-push handler.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09 waynesun09 force-pushed the e2e-pr-flow-install branch from fef3e5e to 3f537ad Compare June 23, 2026 17:24
@fullsend-ai-review

Copy link
Copy Markdown

/fs-review

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 5:28 PM UTC · Ended 5:33 PM UTC
Commit: 6bd5f3a · View workflow run →

@waynesun09 waynesun09 force-pushed the e2e-pr-flow-install branch 2 times, most recently from bfd6fc3 to 42705b4 Compare June 23, 2026 17:35
@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 5:36 PM UTC · Ended 5:36 PM UTC
Commit: 6bd5f3a · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 23, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:39 PM UTC · Completed 5:50 PM UTC
Commit: 42705b4 · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge component/install CLI install and app setup and removed ready-for-merge All reviewers approved — ready to merge labels Jun 23, 2026
@waynesun09 waynesun09 requested a review from ralphbean June 23, 2026 18:22
@waynesun09 waynesun09 added this pull request to the merge queue Jun 24, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 24, 2026
@waynesun09 waynesun09 force-pushed the e2e-pr-flow-install branch from 42705b4 to 4054692 Compare June 24, 2026 14:20
@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown

Site preview

Preview: https://7241f9ed-site.fullsend-ai.workers.dev

Commit: 91c43bbd1335763cac6097a6278289949a68dee8

Remove --direct from TestAdminInstallUninstall so the e2e exercises the
new default PR-based delivery. Add mergeScaffoldPR helper (same pattern
as mergeEnrollmentPR) to find and merge the scaffold PR before verifying
files on the default branch. TestVendorFromSubdirectory keeps --direct
since it only tests GOMOD discovery.

Closes #2558

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09 waynesun09 force-pushed the e2e-pr-flow-install branch from 4054692 to 91c43bb Compare June 24, 2026 14:33
@waynesun09 waynesun09 added this pull request to the merge queue Jun 24, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 24, 2026
@waynesun09 waynesun09 added this pull request to the merge queue Jun 24, 2026
Merged via the queue into main with commit b5c0114 Jun 24, 2026
11 of 12 checks passed
@waynesun09 waynesun09 deleted the e2e-pr-flow-install branch June 24, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/e2e End-to-end tests component/install CLI install and app setup ready-for-merge All reviewers approved — ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

e2e: exercise default PR-based scaffold install flow

2 participants