Repository navigation
Fix dependency filenames containing commas - #2403
Merged
Alexander Holstrup (aholstrup1) merged 2 commits intoOct 14, 2026
Merged
Alexander Holstrup (aholstrup1) merged 2 commits into
Alexander Holstrup (aholstrup1) merged 2 commits into
Conversation
Preserve install app arrays at the Run-AlPipeline boundary and warn non-fatally about missing resolved dependency files. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Alexander Holstrup (aholstrup1)
requested a review
from a team
as a code owner
October 12, 2026 14:17
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The core array-casting regression lacks coverage, and exception diagnostics report marker-wrapped test-app paths.
2 open findings
What changed in this PR
Fixes comma-containing dependency filenames by preserving array semantics and adding path diagnostics.
Changes:
- Casts dependency inputs to
string[]beforeRun-AlPipeline. - Warns about missing or inaccessible resolved dependencies.
- Adds tests and release notes.
| File | Description |
|---|---|
Actions/RunPipeline/RunPipeline.ps1 |
Preserves dependency arrays at the pipeline boundary. |
Actions/DownloadProjectDependencies/DownloadProjectDependencies.psm1 |
Adds dependency-file validation warnings. |
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 |
Invokes dependency validation. |
Tests/DownloadProjectDependencies.Test.ps1 |
Tests validation behavior and literal paths. |
RELEASENOTES.md |
Documents the fix. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Alexander Holstrup (aholstrup1)
enabled auto-merge (squash)
October 13, 2026 06:12
Jonas Blunck (jonasblunck)
approved these changes
Oct 13, 2026
spetersenms
approved these changes
Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


❔What, Why & How
A single dependency read from JSON can become a scalar string. BCContainerHelper interprets string inputs as comma-separated lists, splitting valid filenames such as
Example Publisher, LLC_Core_1.0.0.0.appinto two missing paths.Cast
installAppsandinstallTestAppsto[string[]]at theRun-AlPipelinecall boundary. This preserves arrays or null, including after the test-app marker transformation.Download Project Dependencies also checks resolved files using
Test-Path -LiteralPath -PathType Leafbefore writing its output lists. Missing files and check exceptions produce warnings with the full path; checks continue and outputs remain unchanged. This is diagnostic only and does not change BCContainerHelper's separate failed-path comma-splitting fallback.Related to issue: #2398
Fixes: #2398
Validation:
Invoke-Pester -Path .\Tests\DownloadProjectDependencies.Test.ps1 -Output Minimal -PassThrupassed with 59 tests on PowerShell 7. Coverage includes literal filenames, test-app markers, missing files, and non-blocking check exceptions. Final changes have not been tested on Linux or rerun on Windows PowerShell 5.1.✅ Checklist