Creates a weekly deps upgrade skill and workflow - #263
Creates a weekly deps upgrade skill and workflow#263Diego Luces (dluces) wants to merge 6 commits into
Conversation
Diego Luces (dluces)
commented
Aug 14, 2026
- Add weekly dependency upgrade skill
- Require sample validation evidence for agent PRs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds automated weekly dependency upgrades and repository-wide validation evidence handling.
Changes:
- Adds dependency-upgrade workflow, agent, and skills.
- Adds validation orchestration, sanitization, and publishing scripts.
- Establishes mandatory PR validation evidence requirements.
Validation gate: Required validation evidence is absent from the provided PR metadata.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
AGENTS.md |
Defines validation requirements. |
.gitattributes |
Marks generated workflow locks. |
.github/agents/dependency-upgrade.agent.md |
Configures the upgrade agent. |
.github/copilot-instructions.md |
Enforces validation evidence. |
.github/skills/sample-validation-evidence/SKILL.md |
Documents evidence publication. |
.github/skills/weekly-dependency-upgrade/SKILL.md |
Defines upgrade procedures. |
.github/workflows/weekly-dependency-upgrades.md |
Defines weekly automation. |
.github/workflows/weekly-dependency-upgrades.lock.yml |
Compiled workflow definition. |
Tools/powershell/Invoke-RepositoryValidation.ps1 |
Runs sample validators. |
Tools/powershell/Publish-ValidationArtifacts.ps1 |
Publishes sanitized evidence. |
Tools/powershell/README.md |
Documents validation tooling. |
Tools/powershell/Sanitize-ValidationArtifacts.ps1 |
Sanitizes validation artifacts. |
Suppressed comments (1)
.github/workflows/weekly-dependency-upgrades.md:50
- The installed upgrade skill requires both
gnjosephanddluces, but the compiled safe-output configuration derives reviewers only from this list and currently assigns justgnjoseph. Adddluceshere and recompile the lock file so the workflow can satisfy its own reviewer requirement.
reviewers:
- gnjoseph
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| $outputPath = [System.IO.Path]::GetFullPath($OutputDirectory) | ||
| $allowedOutputRoot = [System.IO.Path]::GetFullPath((Join-Path $repositoryRootPath '.validation/sanitized')) | ||
| if (-not $outputPath.StartsWith($allowedOutputRoot, [System.StringComparison]::OrdinalIgnoreCase)) { | ||
| throw "OutputDirectory must be under '$allowedOutputRoot'." |
| $artifactPath = (Resolve-Path $ArtifactDirectory).Path | ||
| if (-not $artifactPath.StartsWith($sanitizedRoot, [System.StringComparison]::OrdinalIgnoreCase)) { | ||
| throw "ArtifactDirectory must be under '$sanitizedRoot'. Raw validation artifacts cannot be published." |
| foreach ($validationDirectory in $validationDirectories) { | ||
| foreach ($sourceFile in Get-ChildItem -Path $validationDirectory.FullName -File -Recurse -Force) { |
| $discoveredScripts = Get-ChildItem -Path $repositoryRoot -Filter 'validate-sample.ps1' -File -Recurse | | ||
| Where-Object { $_.FullName -notmatch '[\\/](?:node_modules|bin|obj)[\\/]' } | | ||
| ForEach-Object { [System.IO.Path]::GetRelativePath($repositoryRoot, $_.FullName).Replace('\', '/') } |
There was a problem hiding this comment.
Copilot update the README to remove support for PowerShell 5.1 or any version of .NET Framework (only the latest PowerShell version and .Net core should be supported).
| continue | ||
| } | ||
|
|
||
| $relativePath = [System.IO.Path]::GetRelativePath($repositoryRootPath, $sourceFile.FullName) |
There was a problem hiding this comment.
Copilot declare PowerShell 7 as required.
Co-authored-by: dluces <262662+dluces@users.noreply.github.com>
Agent-Logs-Url: https://github.com/microsoft/SharePoint-Embedded-Samples/sessions/d28f0ca7-1959-47ee-9096-c11d59f17ae9 Co-authored-by: dluces <262662+dluces@users.noreply.github.com>
|
|
||
| Before opening or updating a pull request: | ||
|
|
||
| 1. Run every sample validator with: |
There was a problem hiding this comment.
should the agent just limit the validator to the sample code it changess
| $homePath = [Environment]::GetFolderPath('UserProfile') | ||
| $sensitiveKeyPattern = '(?i)(authorization|proxy-authorization|cookie|set-cookie|x-api-key|api-key|client[_-]?secret|password|passwd|access[_-]?token|refresh[_-]?token|id[_-]?token|private[_-]?key|connection[_-]?string|account[_-]?key|sas[_-]?token|secret)' |
There was a problem hiding this comment.
Do we have an eval for this
| $repositoryRoot = (Resolve-Path (Join-Path $PSScriptRoot '../..')).Path | ||
| $sanitizedRoot = [System.IO.Path]::GetFullPath((Join-Path $repositoryRoot '.validation/sanitized')) | ||
|
|
||
| function Test-PathIsInDirectory { |
There was a problem hiding this comment.
nit, a lot of these are repeated across different scripts, maybe they should be moved to a utility script thats preimported
|
|
||
| Before creating or updating any pull request, use the | ||
| `sample-validation-evidence` skill in | ||
| `.github/skills/sample-validation-evidence/SKILL.md`. Run all sample validation |
There was a problem hiding this comment.
i still suspect that validations should only be run for the project the agent is changing
| pull-requests: read | ||
| issues: read | ||
| copilot-requests: write | ||
| engine: copilot |
There was a problem hiding this comment.
can we select a model here? gpt vs claude?