From b7cc25fff411259c1e409933727ab162a4e19829 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 13 Aug 2026 06:03:07 +0000 Subject: [PATCH 1/5] chore: update copyright year to 2026, bump version to 7.5, automate release and copyright updates Co-authored-by: wforney <79032+wforney@users.noreply.github.com> --- .github/workflows/release.yml | 6 ++-- .github/workflows/update-copyright.yml | 50 ++++++++++++++++++++++++++ Directory.Build.props | 4 +-- README.md | 2 +- 4 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/update-copyright.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d005744..1943984 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,8 @@ name: .NET Continuous Deployment on: + push: + branches: [ main ] workflow_dispatch: permissions: @@ -14,7 +16,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 @@ -31,7 +33,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 diff --git a/.github/workflows/update-copyright.yml b/.github/workflows/update-copyright.yml new file mode 100644 index 0000000..3252a84 --- /dev/null +++ b/.github/workflows/update-copyright.yml @@ -0,0 +1,50 @@ +name: Update Copyright Year + +on: + schedule: + - cron: '0 0 1 1 *' # January 1st at midnight UTC + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + update-copyright: + name: Update Copyright Year + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Update copyright year + id: update + shell: pwsh + run: | + $year = (Get-Date).Year + $files = @("Directory.Build.props", "README.md") + $changed = $false + foreach ($file in $files) { + $content = Get-Content $file -Raw + $updated = $content -replace 'Copyright © \d{4}', "Copyright © $year" + if ($updated -ne $content) { + Set-Content $file -Value $updated -NoNewline + $changed = $true + Write-Output "Updated $file" + } + } + echo "changed=$changed" >> $env:GITHUB_OUTPUT + + - name: Create pull request + if: steps.update.outputs.changed == 'true' + uses: peter-evans/create-pull-request@v7 + with: + commit-message: "chore: update copyright year" + branch: chore/update-copyright-year + title: "chore: update copyright year" + body: | + Automated annual copyright year update. + + This pull request was created by the `update-copyright` workflow. + labels: automated diff --git a/Directory.Build.props b/Directory.Build.props index 3595c88..827dc98 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,7 +9,7 @@ true true improvGroup, LLC - Copyright © 2025 improvGroup, LLC and contributors. All Rights Reserved. + Copyright © 2026 improvGroup, LLC and contributors. All Rights Reserved. portable A library of code shared for free use to help with common scenarios. true @@ -54,7 +54,7 @@ $([System.DateTime]::op_Subtraction($([System.DateTime]::get_Now().get_Date()),$([System.DateTime]::new(2000,1,1))).get_TotalDays()) $([MSBuild]::Divide($([System.DateTime]::get_Now().get_TimeOfDay().get_TotalSeconds()), 2).ToString('F0')) - 7.4.$(Build).$(Revision) + 7.5.$(Build).$(Revision) diff --git a/README.md b/README.md index 7f2860d..1cd8d31 100644 --- a/README.md +++ b/README.md @@ -358,4 +358,4 @@ contributing. ## License This project is licensed under the [MIT License](LICENSE). -Copyright © 2025 [improvGroup, LLC](https://github.com/improvgroup) and contributors. +Copyright © 2026 [improvGroup, LLC](https://github.com/improvgroup) and contributors. From c3f679bfbbf7f34deef89f4878461683b70c0a88 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 13 Aug 2026 06:03:48 +0000 Subject: [PATCH 2/5] fix: use year-specific branch name and preserve file trailing newlines in update-copyright workflow Co-authored-by: wforney <79032+wforney@users.noreply.github.com> --- .github/workflows/update-copyright.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-copyright.yml b/.github/workflows/update-copyright.yml index 3252a84..3d343d7 100644 --- a/.github/workflows/update-copyright.yml +++ b/.github/workflows/update-copyright.yml @@ -29,20 +29,21 @@ jobs: $content = Get-Content $file -Raw $updated = $content -replace 'Copyright © \d{4}', "Copyright © $year" if ($updated -ne $content) { - Set-Content $file -Value $updated -NoNewline + [System.IO.File]::WriteAllText($file, $updated) $changed = $true Write-Output "Updated $file" } } echo "changed=$changed" >> $env:GITHUB_OUTPUT + echo "year=$year" >> $env:GITHUB_OUTPUT - name: Create pull request if: steps.update.outputs.changed == 'true' uses: peter-evans/create-pull-request@v7 with: commit-message: "chore: update copyright year" - branch: chore/update-copyright-year - title: "chore: update copyright year" + branch: chore/update-copyright-year-${{ steps.update.outputs.year }} + title: "chore: update copyright year to ${{ steps.update.outputs.year }}" body: | Automated annual copyright year update. From f535cf9648e30984072c81e0e3320f909e55c479 Mon Sep 17 00:00:00 2001 From: Bill Forney Date: Wed, 12 Aug 2026 23:12:03 -0700 Subject: [PATCH 3/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1943984..84dba14 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,8 @@ jobs: contents: read steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 From 1451adb6cb65047c7b68df5f7bcd56329bc43d8d Mon Sep 17 00:00:00 2001 From: Bill Forney Date: Wed, 12 Aug 2026 23:12:25 -0700 Subject: [PATCH 4/5] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/update-copyright.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-copyright.yml b/.github/workflows/update-copyright.yml index 3d343d7..7e9ace4 100644 --- a/.github/workflows/update-copyright.yml +++ b/.github/workflows/update-copyright.yml @@ -34,7 +34,7 @@ jobs: Write-Output "Updated $file" } } - echo "changed=$changed" >> $env:GITHUB_OUTPUT + echo "changed=$($changed.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT echo "year=$year" >> $env:GITHUB_OUTPUT - name: Create pull request From 82361921fdca2d3db2faca964113bc60ead49798 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 13 Aug 2026 06:23:10 +0000 Subject: [PATCH 5/5] chore: upgrade GitHub Actions to Node.js 24-compatible versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - actions/checkout: v3/v4 → v6 - actions/setup-dotnet: v4 → v6 - actions/upload-artifact: v4/v4.6.1 → v5 - actions/download-artifact: v4.1.8 → v5 - marocchino/sticky-pull-request-comment: v2 → v3 All actions now natively target Node.js 24, eliminating the deprecation warnings. Co-authored-by: wforney <79032+wforney@users.noreply.github.com> --- .github/workflows/defender-for-devops.yml | 4 ++-- .github/workflows/devskim.yml | 2 +- .github/workflows/dotnet.yml | 8 ++++---- .github/workflows/eslint.yml | 2 +- .../maintain-copilot-instructions.yml | 2 +- .github/workflows/powershell.yml | 2 +- .github/workflows/release.yml | 18 +++++++++--------- .github/workflows/snyk-security.yml | 2 +- .github/workflows/update-copyright.yml | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/defender-for-devops.yml b/.github/workflows/defender-for-devops.yml index 7307f85..b76f822 100644 --- a/.github/workflows/defender-for-devops.yml +++ b/.github/workflows/defender-for-devops.yml @@ -35,8 +35,8 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-dotnet@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-dotnet@v6 with: dotnet-version: | 5.0.x diff --git a/.github/workflows/devskim.yml b/.github/workflows/devskim.yml index e375766..2179c2f 100644 --- a/.github/workflows/devskim.yml +++ b/.github/workflows/devskim.yml @@ -23,7 +23,7 @@ jobs: security-events: write steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Run DevSkim scanner uses: microsoft/DevSkim-Action@v1 diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index bc5012f..2286cae 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -15,10 +15,10 @@ jobs: name: Run Tests runs-on: windows-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v6 with: dotnet-version: 10.0.x @@ -55,14 +55,14 @@ jobs: - name: Post coverage comment on PR if: always() && github.event_name == 'pull_request' - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@v3 with: header: coverage path: coverage-report/SummaryGithub.md - name: Upload coverage report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: coverage-report path: coverage-report/ diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 3d1f567..18485ca 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -28,7 +28,7 @@ jobs: actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Install ESLint run: | diff --git a/.github/workflows/maintain-copilot-instructions.yml b/.github/workflows/maintain-copilot-instructions.yml index 1822b9a..571c9b0 100644 --- a/.github/workflows/maintain-copilot-instructions.yml +++ b/.github/workflows/maintain-copilot-instructions.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Detect projects not documented in copilot-instructions.md id: check diff --git a/.github/workflows/powershell.yml b/.github/workflows/powershell.yml index aa8b453..cb25a34 100644 --- a/.github/workflows/powershell.yml +++ b/.github/workflows/powershell.yml @@ -29,7 +29,7 @@ jobs: name: PSScriptAnalyzer runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Run PSScriptAnalyzer uses: microsoft/psscriptanalyzer-action@6b2948b1944407914a58661c49941824d149734f diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84dba14..5b94afb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,12 +16,12 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v6 with: dotnet-version: 10.0.x @@ -35,10 +35,10 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v6 with: dotnet-version: 10.0.x @@ -59,7 +59,7 @@ jobs: run: dotnet build -c Release SharedCode.sln && dotnet pack -c Release -p:PackageVersion=${{ steps.tag_version.outputs.new_version }} -o . SharedCode.sln - name: Upload Package for Publishing - uses: actions/upload-artifact@v4.6.1 + uses: actions/upload-artifact@v5 with: name: PackedLib path: ./*.nupkg @@ -72,12 +72,12 @@ jobs: packages: write steps: - name: Download built project - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v5 with: name: PackedLib - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v6 with: dotnet-version: 10.0.x @@ -92,12 +92,12 @@ jobs: packages: write steps: - name: Download built project - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v5 with: name: PackedLib - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v6 with: dotnet-version: 10.0.x diff --git a/.github/workflows/snyk-security.yml b/.github/workflows/snyk-security.yml index 578dcae..192453e 100644 --- a/.github/workflows/snyk-security.yml +++ b/.github/workflows/snyk-security.yml @@ -35,7 +35,7 @@ jobs: actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Snyk CLI to check for security issues # Snyk can be used to break the build when it detects security issues. # In this case we want to upload the SAST issues to GitHub Code Scanning diff --git a/.github/workflows/update-copyright.yml b/.github/workflows/update-copyright.yml index 7e9ace4..d78a4d0 100644 --- a/.github/workflows/update-copyright.yml +++ b/.github/workflows/update-copyright.yml @@ -14,7 +14,7 @@ jobs: name: Update Copyright Year runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0