-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Auto-merge non-breaking vendor updates with improved messaging #3059
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: DRSDavidSoft <[email protected]>
Co-authored-by: DRSDavidSoft <[email protected]>
Co-authored-by: DRSDavidSoft <[email protected]>
Co-authored-by: DRSDavidSoft <[email protected]>
| Set-GHVariable -Name COUNT_UPDATED -Value $count | ||
| $newVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) | ||
| $listUpdated = "" | ||
| $updateMessage = "| Name | Old Version | New Version |`n| :--- | ---- | ---- |`n" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot Please remove Change Type column as it is excessive, instead if the update is major, add a <details> with <summary> of changes below the table that contains the changelog between the old and new version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in commit bf90303. Removed the "Change Type" column and added a collapsible <details> section below the table for major version updates with changelog and release notes links.
Example output with major update:
The table now shows only Name, Old Version, and New Version columns with emoji indicators (
| $emoji = if ($count -eq 1) { '📦' } else { '📦📦' } | ||
| echo "### 🔄 Updates Found" >> $env:GITHUB_STEP_SUMMARY | ||
| echo "" >> $env:GITHUB_STEP_SUMMARY | ||
| echo "**$count** vendor $word updated:" >> $env:GITHUB_STEP_SUMMARY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot Don't use multiple emoji icons, always use one.
Instead, if there is only an update to one dependency, use that name and version information, instead of 1 vendor updated message
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in commit e6fea0b. Removed double emoji logic and updated single dependency messages to show the dependency name and version.
Example output for single update:
The workflow now displays "📦 Updated git-for-windows from 2.52.0.windows.1 to 2.53.0.windows.1" instead of "📦 Automatically updated 1 dependency".
| title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies' | ||
| title: ${{ env.COUNT_UPDATED == '1' && format('⬆️ Update {0}', env.LIST_UPDATED) || format('⬆️ Update {0} vendored dependencies', env.COUNT_UPDATED) }} | ||
| body: | | ||
| ### Automatically updated `${{ env.COUNT_UPDATED }}` dependencies: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot Likewise, instead of "Automatically updated 1 dependency" message, just state the name and version of the package instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in commit e6fea0b. The PR body now shows the package name and version for single updates.
Example output:
For single updates, the heading displays "📦 Updated {name} from {old_version} to {new_version}" instead of the generic "Automatically updated 1 dependency" message.
…ates Co-authored-by: DRSDavidSoft <[email protected]>
Co-authored-by: DRSDavidSoft <[email protected]>



The vendor update workflow creates PRs for all dependency updates, including trivial patch/minor changes, and uses generic messaging that doesn't indicate severity or properly handle singular dependencies.
Changes
Auto-merge for non-breaking updates
Semantic version analysis
2.52.0.windows.1) by extracting numeric componentsImproved messaging
⬆️ Update git-for-windows v2.52.0(singular) vs⬆️ Update 3 vendored dependencies(plural)2.52.0.windows.1to2.53.0.windows.1") instead of generic "1 dependency" messages<details>section with links to full changelog comparison and release notesExample version comparison logic:
PR output examples
Multiple dependencies (collapsed view):

Multiple dependencies (expanded changelog for major updates):

Single dependency update:

Modified files:
.github/workflows/vendor.yml- auto-merge logic, enhanced UI, changelog generation, and improved single dependency messagingscripts/update.ps1- version analysis and environment variable exportsOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.