Conversation
Improve security and prevent abuse in merge-bot workflows. Introduce a new workflow for running the codegen app and creating pull requests, along with a periodic workflow for weekly execution. Update documentation to include Git and commit rules for AI coding agents. Adjust date in the CodeGen class for accurate quote generation. --------- Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
- Introduced Directory.Build.props and Directory.Packages.props for shared MSBuild properties and centralized NuGet package versions. - Updated various project files to remove specific properties and use centralized versions. - Enhanced GitHub workflows for code generation and pull requests. - Refactored launch configurations and tasks for better organization. Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com> Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Introduces centralized .NET project configuration (shared MSBuild properties + central NuGet version management) and updates projects/tooling/workflows to consume those shared settings, including adding a parallel GitHub App-based codegen path.
Changes:
- Add
Directory.Build.propsandDirectory.Packages.propsand refactor projects to inherit shared MSBuild properties and central package versions. - Update GitHub Actions codegen/merge workflows to support both PAT-based and GitHub App-based automation with tightened conditions.
- Refactor VS Code launch/tasks (including a new benchmark task) and remove redundant
global usingentries now covered by implicit usings.
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Tests/Tests.csproj | Removes per-project properties and package versions to rely on central props/packages. |
| Tests/GlobalUsings.cs | Removes redundant System global usings. |
| README.md | Documents PAT vs App codegen workflow behavior and schedules. |
| Library/LogOptions.cs | Removes redundant using now covered by implicit/global usings. |
| Library/Library.csproj | Removes duplicated analyzer/nullable/TFM and centralizes package versions. |
| Library/GlobalUsings.cs | Removes redundant System global using. |
| Directory.Packages.props | Adds central NuGet package version declarations. |
| Directory.Build.props | Adds shared MSBuild properties (TFM, analyzers, nullable, artifacts path, CPM). |
| Console/GlobalUsings.cs | Removes redundant System global usings. |
| Console/Console.csproj | Removes duplicated properties and centralizes package versions. |
| CodeGen/HttpClientFactory.cs | Refactors resilience handler creation and documents singleton vs per-client behavior. |
| CodeGen/GlobalUsings.cs | Removes redundant System global usings. |
| CodeGen/CodeGen.csproj | Removes duplicated properties and centralizes package versions. |
| CodeGen/CodeGen.cs | Updates generated output timestamp. |
| Benchmarks/GlobalUsings.cs | Removes redundant System global using. |
| Benchmarks/Benchmarks.csproj | Removes duplicated properties and centralizes package versions. |
| AGENTS.md | Documents central props/packages conventions and git/commit rules. |
| .vscode/tasks.json | Adds a dedicated benchmark task. |
| .vscode/launch.json | Updates debug launch paths to use .artifacts layout. |
| .github/workflows/run-periodic-codegen-pull-request.yml | Adjusts schedule/concurrency for PAT-based weekly codegen. |
| .github/workflows/run-periodic-codegen-app-pull-request.yml | Adds weekly scheduled GitHub App-based codegen workflow. |
| .github/workflows/run-codegen-pull-request-task.yml | Clarifies PAT/GITHUB_TOKEN roles via comments. |
| .github/workflows/run-codegen-app-pull-request-task.yml | Adds reusable workflow to run codegen using GitHub App auth/token. |
| .github/workflows/merge-bot-pull-request.yml | Adds app-based auto-merge job and clarifies/strengthens conditions. |
| .github/copilot-instructions.md | Documents central MSBuild/package management and git/commit rules. |
Uh oh!
There was an error while loading. Please reload this page.
Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com> --------- Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.
ptr727 added a commit
that referenced
this pull request
Jul 17, 2026
Fixes#332 (core gap + the six bundled nits from the #330 sweep reviews; two of the six live in the blessed downstream reference and propagate via the Vantage-Config carry, not this repo - see below). ## configure.sh: model inference on downstream carries In a carry the registry is absent, so the no-arg form defaulted to `release` and then hit the intended fail-safe abort on operational carries (missing `develop.json`) - arg 2 was effectively mandatory there. Now the model is inferred from which `develop` payload is carried (a carry holds exactly its own model's); ambiguous layouts (both or neither - e.g. a partial copy) abort rather than guess. Also: the model may be passed as the sole argument (`configure.sh operational`) - previously arg 1 was always parsed as a repo name (bundled nit, Utilities #417). Matrix-tested with the apply path stubbed: infer release, infer operational, both-present abort (exit 1), neither-present abort (exit 1), explicit arg-2 override, model-as-sole-arg, unknown-model abort. Hub behavior unchanged (registry present -> registry lookup, as before). shellcheck + bash -n clean. ## Ruleset snippet hardening (duplicate-name id corruption) The `id=$(gh api ... select(.name==...).id)` pattern in the README regen snippet and AUDIT.md section 6 produced a **multiline id** when duplicate same-name rulesets exist, silently corrupting the follow-up API path (bundled nit, Utilities #417 + LanguageTags #278). Both snippets now fetch the list once and enforce **exactly one** ruleset per name: the regen snippet fails loudly (never regen from a guess); the audit snippet reports `found N (defect/drift)` and continues - matching the declared drift semantics. Live-tested read-only against this repo (develop + main in sync; duplicate simulation counts correctly). ## README wording Documents the inference fallback and the model-only argument form (bundled nit, Utilities #417). ## Bundled nits NOT in this PR (with rationale) - `gh api --input -` portability (MediaTools #19): declined - fleet standard is current gh; not worth temp-file churn. - jq-derived secret name lists + `--paginate` in the secrets check (MediaTools #19, LanguageTags #278, PlexCleaner #854): these live in the **blessed downstream self-audit reference** (the Vantage-Config carry), not in hub files - propagated there directly after this merges (the hub's fleet audit reads `spec/secrets.json` programmatically already). ## Propagation caveat This re-drifts the five existing carries (Vantage-Config + the four #330 sweep repos) until their next conformance touch; Vantage-Config is updated immediately after this merges since it is the blessed reference the queued operational standups (HomeAssistant-Config #16, ESPHome-Config #46, HomeAutomation-Config #21) will adapt from. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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 freeto 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.
Signed-off-by: Pieter Viljoen ptr727@users.noreply.github.com
Signed-off-by: Pieter Viljoen ptr727@users.noreply.github.com