Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 32 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:

permissions:
contents: write
pull-requests: write

jobs:
release:
Expand Down Expand Up @@ -47,8 +48,10 @@ jobs:
}
Set-Content -Path "src/Solution Items/usedComponents.json" -Value $output -Encoding UTF8

- name: Commit generated files to Development
- name: Open PR with generated files
shell: pwsh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
Expand All @@ -59,20 +62,42 @@ jobs:
Copy-Item "src/Solution Items/usedComponents.json" $tempComponents
Copy-Item "src/PluginRegistry/PluginHashGenerator.Generated.cs" $tempHashes

# Switch to Development and apply both updates
# Development is PR-protected, so apply the updates on a fresh branch off Development
git fetch origin Development
git checkout Development
$branch = "chore/generated-files-${{ github.ref_name }}"
git checkout -B $branch origin/Development

Copy-Item $tempComponents "src/Solution Items/usedComponents.json"
Copy-Item $tempHashes "src/PluginRegistry/PluginHashGenerator.Generated.cs"

git add "src/Solution Items/usedComponents.json"
git add "src/PluginRegistry/PluginHashGenerator.Generated.cs"

git diff --staged --quiet
if ($LASTEXITCODE -ne 0) {
git commit -m "chore: update plugin hashes and usedComponents.json for ${{ github.ref_name }} [skip ci]"
git push origin Development
if ($LASTEXITCODE -eq 0) {
Write-Host "No changes to commit; skipping PR."
exit 0
}

git commit -m "chore: update plugin hashes and usedComponents.json for ${{ github.ref_name }} [skip ci]"
# Force-push so re-running the release for the same tag updates the existing branch
git push --force origin $branch

# Create the PR if one does not already exist for this branch
$existing = gh pr list --head $branch --base Development --state open --json number --jq '.[0].number'
if ([string]::IsNullOrWhiteSpace($existing)) {
gh pr create --base Development --head $branch `
--title "chore: update generated files for ${{ github.ref_name }} [skip ci]" `
--body "Automated update of plugin hashes and ``usedComponents.json`` for release ${{ github.ref_name }}."
} else {
Write-Host "No changes to commit"
Write-Host "PR #$existing already exists for $branch"
}

# Best-effort auto-merge. Will complete once branch rules are satisfied;
# if the ruleset requires a manual review, merge the PR by hand.
gh pr merge $branch --auto --squash --delete-branch 2>&1 | Write-Host
if ($LASTEXITCODE -ne 0) {
Write-Host "::warning::Could not enable auto-merge for $branch; merge the PR manually."
}

- name: Create GitHub Release
Expand Down
32 changes: 16 additions & 16 deletions src/PluginRegistry/PluginHashGenerator.Generated.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,35 @@ public static partial class PluginValidator
{
/// <summary>
/// Gets pre-calculated SHA256 hashes for built-in plugins.
/// Generated: 2026-06-08 18:22:43 UTC
/// Generated: 2026-06-09 06:55:04 UTC
/// Configuration: Release
/// Plugin count: 21
/// </summary>
public static Dictionary<string, string> GetBuiltInPluginHashes()
{
return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["AutoColumnizer.dll"] = "FF45688846E19EDDF7244BD9D69254926E32DD5A79730018160696C9F9B5B735",
["AutoColumnizer.dll"] = "3D6748C5E935505FFBFE24830208B11FAACF4EDCD672FBEABA4DD239B05D927A",
["BouncyCastle.Cryptography.dll"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
["BouncyCastle.Cryptography.dll (x86)"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
["CsvColumnizer.dll"] = "3865D9280E673C03185B2B39053708DD6D782D97C5292AF4DD123AFA19531CD3",
["CsvColumnizer.dll (x86)"] = "3865D9280E673C03185B2B39053708DD6D782D97C5292AF4DD123AFA19531CD3",
["DefaultPlugins.dll"] = "36C050D6380D6F7B9403D43AACFA060F542D225E8C6B027B2E4F3CB18C5E298B",
["FlashIconHighlighter.dll"] = "3A02E81476958DA1C411C8A2425A6482A55C05CADDFEAE60E7E4B282EA8CDBDF",
["GlassfishColumnizer.dll"] = "135C0D23AB6A44376B01AB3FB19A2EADDDEBC6EDFDEDBA6682F30C57D988DC36",
["JsonColumnizer.dll"] = "6270BE7D27EE4A5AB5AB1D9967ED97F3EC91B553C7D3A5968350933AB892F772",
["JsonCompactColumnizer.dll"] = "8E5F12FE7BD86DDC9B3B0B1D3C04B49AD0394C81A9F899684A5F16532A5B0A35",
["Log4jXmlColumnizer.dll"] = "3C4806DBD51DA3CECF152EB19C0A267DC0F8B977DF9457DAEEFA1F0A099525ED",
["LogExpert.Resources.dll"] = "2D1743296A62E8BB1089635043A46A036AAD45E92E981C77ECA3373E3D9CCB5B",
["CsvColumnizer.dll"] = "D5435B1886C4FA665A59FB647CE488C092CD2BF0587BB219B3A623C656BA8BF6",
["CsvColumnizer.dll (x86)"] = "D5435B1886C4FA665A59FB647CE488C092CD2BF0587BB219B3A623C656BA8BF6",
["DefaultPlugins.dll"] = "675EACAA0B1700FC6163ED29058124553DF9D6E935020CF04B38DAA9F33C279C",
["FlashIconHighlighter.dll"] = "47605D179B3646F81BF44E8626251CDD30752C0535293AF4C4AA89A1CAF76B06",
["GlassfishColumnizer.dll"] = "1C30B9D350C46B33A76C96C88DA4B9DCF2B1474BB1ACD92461878365F704A2EC",
["JsonColumnizer.dll"] = "27F5ED050CEDBC1BD72250DD7C9FC330DB32825FE04FB9C899376BF45F347D92",
["JsonCompactColumnizer.dll"] = "08F189DE85381709A10DD506DA2DC1F4D9885C68AD0A63799557166295CAD590",
["Log4jXmlColumnizer.dll"] = "D21498D4B727AA8F2DAF59CD470AEEB11603FF64936E8AB11EDD92A1370BC681",
["LogExpert.Resources.dll"] = "C8390BB994FACB178D34EC2023F8862F685489549F52726FD9E742B6497B7781",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll (x86)"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.Logging.Abstractions.dll"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
["Microsoft.Extensions.Logging.Abstractions.dll (x86)"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
["RegexColumnizer.dll"] = "082BF04B54570B54F4BCF323338174F5818ED1A0992F56E6D7B367D36BAD2D57",
["SftpFileSystem.dll"] = "5E8378F4FB45D51A635B471F743326F40199AB70FBDB8D2527F8D0A00C33AC78",
["SftpFileSystem.dll (x86)"] = "9F2C46E0C878EE92BBA225A859872A7BE3E9F6584931DE45FC087192945D41F4",
["SftpFileSystem.Resources.dll"] = "394C36CE8D4CFD7735E200FEF7ADC6C0F133AD94221B72AE7977600ABB25AA4B",
["SftpFileSystem.Resources.dll (x86)"] = "394C36CE8D4CFD7735E200FEF7ADC6C0F133AD94221B72AE7977600ABB25AA4B",
["RegexColumnizer.dll"] = "76A856BE58511F40B5E89D7F100AA7843AC62CD380717F924CCFDC234375BDAD",
["SftpFileSystem.dll"] = "73D71AF4831468722C327DE246879343B9F95E4BA931B07F03A4B60C70B4A2A2",
["SftpFileSystem.dll (x86)"] = "107BD9DF13EB1C0FB7F8B4C1B0D77B79A62A804FEA5F656FFADEBCDE3FFD4E5B",
["SftpFileSystem.Resources.dll"] = "12539CBB43138C4D1AF4FFFC0D2D6370B6969E358DF9A03FD29720CA18D34287",
["SftpFileSystem.Resources.dll (x86)"] = "12539CBB43138C4D1AF4FFFC0D2D6370B6969E358DF9A03FD29720CA18D34287",

};
}
Expand Down