Skip to content

ci: fix the dependency bot's instructions and make releases all-or-nothing - #52

Merged
michaelstonis merged 3 commits into
developfrom
fix/dependency-bot-instructions
Oct 5, 2026
Merged

michaelstonis merged 3 commits into
developfrom
fix/dependency-bot-instructions

Conversation

@michaelstonis

@michaelstonis michaelstonis commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Why

Dependency bot. The model pin from #50 worked: the 2026-10-05 scheduled run (37343711720) started on claude-sonnet-5. It then gave up and opened #51 reporting that network access was blocked. That diagnosis was wrong: the firewall summary shows 21 requests, 21 allowed, 0 blocked. What was refused were command lines containing commands outside the shell allowlist (curl, and cd … && timeout 60 dotnet restore …). echo and dotnet --version ran fine in the same session.

Release workflow. nuget.yml built, packed and pushed each package in its own matrix job, so a failure part-way left a version on nuget.org that could never be completed (v2.1.3: four of eleven packages). It also still ran on macos-26, which CI moved off in #49.

What

dependency-update.md:

  • The shell you have — names the allowed commands, says a refusal is the allowlist and not a network block, and tells the agent to retry without the disallowed part.
  • How to find newer versions — dotnet list Stellar.slnf package --outdated (and --highest-minor), plus dotnet package search <id> --exact-match for the MAUI packages Stellar.slnf leaves out.
  • skip-samples — the bot was told to apply it to batches containing a major bump, while ci.yml says never to skip the samples for a major. The bot now never applies it; the label stays available to people. The ci.yml comment says so too.
  • ReactiveUI hold — the rule no longer describes ReactiveUI.SourceGenerators (3.x) as part of the 24.x line. The same hold is recorded beside the versions in Directory.Packages.props.

nuget.yml:

  • pack matrix job (fail-fast: false) builds and packs each package and uploads it as an artifact.
  • publish job needs every pack job, downloads the packages and pushes them with --skip-duplicate.
  • Runs on xcode-27 with Xcode 27.0, matching ci.yml.

The bot's shell allowlist is unchanged.

Verification

  • Both version-lookup commands were run locally against current develop.
  • gh aw compile: 0 errors, 0 warnings.
  • nuget.yml parses, and a local dotnet pack writes one package to the path the upload step reads.
  • Not verifiable before use: the bot completing a run, and the new release workflow end to end. The latter first runs on the next version tag.

🤖 Generated with Claude Code

The 2026-10-05 run reached the model but gave up, reporting a network
block. Nothing was blocked at the network: the commands it tried used
curl, cd and timeout, which are outside the allowlist, so the whole
command line was refused. The instructions now name the allowed commands
and give dotnet-only ways to find newer versions, including the MAUI
packages that Stellar.slnf leaves out.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 5, 2026 19:51

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.

Note

Copilot was unable to run its full agentic suite in this review.

Copilot review overview

Review effort: Lite
Findings: 1 Medium severity · 1 Low severity

Open (2)
What changed in this PR

Adds additional guidance to the dependency update workflow docs, focusing on the restricted shell environment and how to discover newer NuGet versions (including packages not included in the solution filter).

Changes:

  • Documented the workflow shell allowlist constraints and common “permission denied” causes.
  • Added steps/commands for listing outdated packages and manually looking up MAUI-related packages by package ID.
  • Updated the workflow lock metadata to reflect the doc change.
File Description
.github/​workflows/​dependency-update.md Adds documentation for the restricted shell + version discovery commands for dependency updates.
.github/​workflows/​dependency-update.lock.yml Updates gh-aw metadata hashes due to the modified workflow markdown.

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

`Microsoft.AspNetCore.Components.WebView.Maui`, `ReactiveUI.Maui.Reactive`,
`CommunityToolkit.Maui`, `CommunityToolkit.Maui.Markup`, `CommunityToolkit.Mvvm`,
`Mopups`):

Comment on lines +58 to +60
workflow's `tools.bash` list, the `git` commands needed to branch and commit, and
a few read-only basics (`cat`, `ls`, `grep`, `head`, `tail`, `sort`, `uniq`, `wc`,
`echo`, `printf`). A command line that
michaelstonis and others added 2 commits October 5, 2026 16:24
…veUI hold

The bot was told to apply skip-samples to batches with a major bump, while
ci.yml says never to skip the samples for a major. The bot cannot build
MAUI itself, so it now never applies the label.

The ReactiveUI rule named ReactiveUI.SourceGenerators, which is on 3.x, as
part of the 24.x line. The hold is also recorded beside the versions in
Directory.Packages.props.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A release that failed part-way left a version on nuget.org that could not
be completed, as v2.1.3 did. Packing is now a matrix job that uploads its
package, and a single publish job runs only when all of them succeeded.
The push uses --skip-duplicate so a failed publish can be re-run.

Packing also moves to the xcode-27 image with Xcode 27.0, matching ci.yml.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@michaelstonis michaelstonis changed the title ci(deps): tell the dependency bot how to work within its shell allowlist ci: fix the dependency bot's instructions and make releases all-or-nothing Oct 5, 2026
@michaelstonis
michaelstonis merged commit 4d39639 into develop Oct 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants