Dependabot auto approve & SemVer improvements#266
Merged
DecSmith42 merged 10 commits intomainfrom Jan 15, 2026
Merged
Conversation
…logic Converted `SemVer` from a class to a readonly struct to improve performance and immutability. Added new methods for parsing and TryParse with `ReadOnlySpan<char>` support. Improved null handling, default initialization, and error robustness. Updated related test cases for consistency.
Also some refactoring
Introduced a GitHub Actions workflow to automatically approve pull requests from Dependabot. Implemented the `IApproveDependabotPr` target to handle pull request validation, approval, and auto-merge via GitHub GraphQL API. Added new triggers for the workflow and integrated it into the build system.
…onality Renamed the `ApprovePr` target and related workflow jobs to `ApproveDependabotPr` for improved clarity and alignment with purpose. Modified GitHub token permissions from `Read` to `Write` to facilitate approval. Removed redundant review mutation logic from the `IApproveDependabotPr` target for better maintainability. Updated product header name in GraphQL connection to "Atom".
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces automated Dependabot PR approval capabilities, along with SemVer improvements and various code quality enhancements. The changes refactor interfaces to clarify property mutability, consolidate test files, and improve code maintainability.
Changes:
- Added automated Dependabot PR approval workflow with GitHub GraphQL API integration
- Improved SemVer build number extraction with comprehensive test coverage
- Fixed OverrideSourcesScope disposal logic to properly restore previous state
- Refactored extension methods to use C# 13
extensionsyntax
Reviewed changes
Copilot reviewed 35 out of 36 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| _atom/_atom.csproj | Added Octokit.GraphQL dependency for GitHub API interactions |
| _atom/Targets/IApproveDependabotPr.cs | New target implementing automated Dependabot PR approval logic |
| _atom/Build.cs | Registered new Dependabot auto-approval workflow |
| DecSm.Atom/Paths/AtomPaths.cs | Converted to C# 13 extension syntax |
| DecSm.Atom/Paths/AtomFileSystem.cs | Reordered field declarations |
| DecSm.Atom/Params/ParamService.cs | Fixed OverrideSourcesScope disposal bug and reordered fields |
| DecSm.Atom/IValidateBuild.cs | Added PublicAPI attribute |
| DecSm.Atom/Build/Definition/IBuildDefinition.cs | Fixed XML comment formatting |
| DecSm.Atom.Tool/RunArgsFilter.cs | Fixed operator precedence issue |
| DecSm.Atom.Tool/Commands/RunCommand.cs | Simplified conditional logic |
| DecSm.Atom.Tool.Tests/_usings.cs | Removed unused using directives |
| DecSm.Atom.Tool.Tests/RunCommandTests.cs | Made helper method static and reordered fields |
| DecSm.Atom.Tests/ClassTests/SemVerTests.cs | Consolidated build number extraction tests and added nullable handling |
| DecSm.Atom.Tests/ClassTests/SemVerBuildNumberExtractionTests.cs | Removed duplicate test file |
| DecSm.Atom.Tests/ClassTests/Build/DefaultBuildVersionProviderTests.cs | Improved assertion formatting |
| DecSm.Atom.Tests/BuildTests/Targets/*.cs | Changed property accessors from { get; set; } to { set; } or { get; } |
| DecSm.Atom.SourceGenerators/Symbols.cs | Removed unused constant |
| DecSm.Atom.Module.GithubWorkflows/Generation/Options/IGithubCustomStepOption.cs | Reordered interface members |
| DecSm.Atom.Module.GithubWorkflows/Generation/Options/GithubTokenPermissionsOption.cs | Made helper method static |
| DecSm.Atom.Module.GithubWorkflows/Generation/GithubWorkflowWriter.cs | Fixed SemVer version formatting for pre-release versions and simplified conditional |
| DecSm.Atom.Module.GithubWorkflows.Tests/Workflows/WorkflowTests.SnapshotImageBuild_GeneratesWorkflow.verified.txt | Updated verified workflow output to match interface rename |
| DecSm.Atom.Module.GithubWorkflows.Tests/Workflows/SnapshotImageBuild.cs | Renamed interface from ICheckoutOptionTarget to ISnapshotImageTarget |
| DecSm.Atom.Module.GithubWorkflows.Tests/Workflows/DuplicateDependencyBuild.cs | Removed blank line |
| DecSm.Atom.Module.GitVersion/GitVersionBuildVersionProvider.cs | Removed redundant nullable annotations |
| DecSm.Atom.Module.DevopsWorkflows.Tests/Workflows/DuplicateDependencyBuild.cs | Removed blank line |
| DecSm.Atom.Module.AzureStorage/_usings.cs | Removed unused using directive |
| DecSm.Atom.Module.AzureStorage/IAzureArtifactStorage.cs | Removed blank line |
| DecSm.Atom.Module.AzureKeyVault/AzureKeySecretsProvider.cs | Improved exception message formatting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…te logic Renamed the `PushToNuget` target and associated jobs to `PushToNugetDevops` for improved clarity and consistency within the DevOps pipeline. Updated related steps to include distinct download tasks for platform-specific artifacts. Adjusted invocation of the new target in `_atom.csproj` to align with the updated workflow.
Introduced `PublicApiSurfaceTests` to validate the assembly's public API surface. Implemented logic to collect and serialize public types and their members, ensuring API stability through JSON-based verification. Added the initial verified API representation file.
This was referenced Feb 12, 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.
This pull request includes a variety of improvements and refactorings across the codebase, focusing on workflow automation, interface and property consistency, and minor code cleanups. The most notable changes are the introduction of an auto-approve workflow for Dependabot PRs, updates to workflow and test target interfaces to clarify property mutability, and several small code and documentation improvements.
Workflow Automation and Generation:
.github/workflows/Dependabot - Auto Approve.ymlto automatically approve Dependabot pull requests targeting themainbranch. This workflow checks out the repository, sets up .NET, and runs an approval command with appropriate secrets and variables.SnapshotImageBuildworkflow and its associated test to use the correct target interface and naming (ISnapshotImageTargetandSnapshotImageTarget), improving clarity and correctness in workflow definitions and verification. [1] [2] [3] [4]Interface and Property Consistency:
{ get; set; }to{ set; }or{ get; }as appropriate, clarifying intended usage and mutability. This affects parameter, secret, and target execution properties across multiple test files. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]Code Cleanup and Minor Refactoring:
static. [1] [2]GeneratedBuildDefinitionAttributeconstant fromSymbols.cs.GitHub Workflow Step Improvements:
Other Minor Fixes:
These changes collectively improve automation, code clarity, and maintainability across the project.