fix(#6602): skip .gitlab-ci.yml during GitLab scaffold install - #6640
fix(#6602): skip .gitlab-ci.yml during GitLab scaffold install#6640fullsend-ai-coder[bot] wants to merge 1 commit into
Conversation
CollectGitLabPerRepoInstallFiles and the remote scaffold path (scaffoldGitLabPaths) unconditionally included .gitlab-ci.yml in the install payload. This overwrote a consumer's existing CI pipeline configuration when running fullsend repos install on a repo that already had CI set up. Skip .gitlab-ci.yml from install output, matching the existing .gitignore skip pattern. The fullsend-owned sub-files under .gitlab/ci/ (dispatch, agent, poll) are still installed unconditionally. Adopters add the corresponding include: directives to their own .gitlab-ci.yml. The upgrade path (collectGitLabUpgradeTemplates) already skipped .gitlab-ci.yml for the same reason — this aligns the install path. Closes #6602
|
🤖 Finished Review · ✅ Success · Started 1:32 PM UTC · Completed 1:47 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.79 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Risk Assessment: moderate (2/5) DetailsSmall, well-scoped bug fix (45 lines, 5 files) that adds a file exclusion to the GitLab scaffold installer. No protected paths, no security-sensitive files, no CI workflow or dependency changes. Test ratio is decent at 0.40. Bot author with prior contributions. Overall low-to-moderate risk. |
ReviewFindingsLow
Labels: PR modifies GitLab scaffold install and remote scaffold code paths under internal/scaffold/ and internal/repos/ |
|
Closing — this approach (skip See #6717 for the full decomposition. The only remaining item is #6721 (drift detection to skip unnecessary writes when fullsend entries are already present). |
|
🤖 Finished Retro · ✅ Success · Started 2:25 PM UTC · Completed 2:43 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.89 |
Retro: PR #6640 — skip
|
Summary
Skip
.gitlab-ci.ymlfrom the GitLab scaffold install payload so thatfullsend repos install --forge gitlabno longer overwrites a consumer's existing CI pipeline configuration. The fullsend-owned sub-files under.gitlab/ci/(dispatch, agent, poll) are still installed unconditionally — adopters add the correspondinginclude:directives to their own.gitlab-ci.yml.Changes
internal/scaffold/installfiles.go: Add.gitlab-ci.ymlto the skip list inCollectGitLabPerRepoInstallFiles(), matching the existing.gitignoreskip patterninternal/repos/remote_scaffold.go: Remove.gitlab-ci.ymlfromscaffoldGitLabPathsso the remote scaffold fetch (pinned-ref installs) matches the local scaffold behaviorinternal/repos/ref_ops.go: Update comment incollectGitLabUpgradeTemplatesto note the install path now also skips.gitlab-ci.yml(defensive guard kept)internal/scaffold/scaffold_gitlab_test.go: AddTestCollectGitLabPerRepoInstallFiles_SkipsRootPipelineverifying the skip and confirming sub-files are still presentinternal/repos/install_test.go: UpdateTestBuildScaffoldFiles_GitLabto assert.gitlab-ci.ymlis absent from install outputTesting
go test ./internal/scaffold/...passesgo test ./internal/repos/...passesTestCollectGitLabPerRepoInstallFiles_SkipsRootPipelinevalidates the fixCloses #6602
Post-script verification
agent/6602-preserve-existing-gitlab-ci)d0d567bb7f882f797898e1d478948a4d82bfd1d6..HEAD)