Propagate changes from main into development#982
Conversation
Integrate @axe-core/playwright for automated accessibility testing in CI
…nd add golangci-lint tracking
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
There was a problem hiding this comment.
Pull request overview
Automated merge-forward PR bringing main updates into development, with additional workflow/config adjustments that affect branch propagation behavior and Renovate targeting.
Changes:
- Disable downstream propagation from
developmentintofeature/*andhotfix/*branches in the propagate workflow. - Narrow Renovate’s
baseBranchPatternsto onlydevelopment(removingfeature/beta-release). - Add a Renovate custom regex manager intended to track
golangci-lintversion in the quality checks workflow.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.github/workflows/propagate-changes.yml |
Stops creating downstream propagation PRs when pushing to development. |
.github/renovate.json |
Restricts Renovate PR targeting to development and adds a custom manager intended to track golangci-lint. |
| ], | ||
| "baseBranchPatterns": [ | ||
| "feature/beta-release", | ||
| "development" |
There was a problem hiding this comment.
With baseBranchPatterns now limited to development, Renovate will no longer create PRs targeting other long-lived branches such as feature/beta-release (which is referenced in multiple repo docs/scripts as an active branch). If Renovate updates are still expected on that branch, add it back (or use a broader pattern such as feature/** for the specific branches you want Renovate to maintain).
| "development" | |
| "development", | |
| "feature/beta-release" |
| }, | ||
| { | ||
| "customType": "regex", | ||
| "description": "Track golangci-lint version in quality checks workflow", | ||
| "managerFilePatterns": [ | ||
| "/^\\.github/workflows/quality-checks\\.yml$/" | ||
| ], | ||
| "matchStrings": [ | ||
| "# renovate: datasource=github-releases depName=golangci/golangci-lint\\n\\s+version: v(?<currentValue>[^\\s]+)" | ||
| ], | ||
| "depNameTemplate": "golangci/golangci-lint", | ||
| "datasourceTemplate": "github-releases", | ||
| "versioningTemplate": "semver", | ||
| "extractVersionTemplate": "^v(?<version>.*)" |
There was a problem hiding this comment.
This new regex manager is unlikely to match the current .github/workflows/quality-checks.yml: that workflow sets with: version: latest for golangci-lint-action and does not include the expected # renovate: ... depName=golangci/golangci-lint comment or a pinned version: vX.Y.Z line. As-is, Renovate will not be able to extract/update the golangci-lint version from that workflow. Either adjust matchStrings to the actual pattern you want to manage, or (preferably) pin the golangci-lint tool version in the workflow and add the matching renovate comment so Renovate can track it deterministically.
| }, | |
| { | |
| "customType": "regex", | |
| "description": "Track golangci-lint version in quality checks workflow", | |
| "managerFilePatterns": [ | |
| "/^\\.github/workflows/quality-checks\\.yml$/" | |
| ], | |
| "matchStrings": [ | |
| "# renovate: datasource=github-releases depName=golangci/golangci-lint\\n\\s+version: v(?<currentValue>[^\\s]+)" | |
| ], | |
| "depNameTemplate": "golangci/golangci-lint", | |
| "datasourceTemplate": "github-releases", | |
| "versioningTemplate": "semver", | |
| "extractVersionTemplate": "^v(?<version>.*)" |
| } else if (currentBranch === 'development') { | ||
| // Development -> Feature/Hotfix branches (The Pittsburgh Model) | ||
| // We propagate changes from dev DOWN to features/hotfixes so they stay up to date. | ||
|
|
||
| const branches = await github.paginate(github.rest.repos.listBranches, { | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| }); | ||
|
|
||
| // Filter for feature/* and hotfix/* branches using regex | ||
| // AND exclude the branch that just got merged in (if any) | ||
| const targetBranches = branches | ||
| .map(b => b.name) | ||
| .filter(name => { | ||
| const isTargetType = /^feature\/|^hotfix\//.test(name); | ||
| const isExcluded = (name === excludedBranch); | ||
| return isTargetType && !isExcluded; | ||
| }); | ||
|
|
||
| core.info(`Found ${targetBranches.length} target branches (excluding '${excludedBranch || 'none'}'): ${targetBranches.join(', ')}`); | ||
|
|
||
| for (const targetBranch of targetBranches) { | ||
| await createPR('development', targetBranch); | ||
| } | ||
| core.info('Push to development detected. No downstream propagation configured.'); | ||
| } |
There was a problem hiding this comment.
This branch handler used to open propagation PRs from development into feature/* and hotfix/*, but now it only logs and does nothing. This is a functional behavior change beyond "main -> development" propagation; if downstream branches still rely on staying current via this workflow, that automation is now disabled. Consider either restoring the previous downstream propagation logic, or updating the PR description/name (and/or adding a comment here) to explicitly document that downstream propagation is intentionally removed.
Automated PR to propagate changes from main into development.
Triggered by push to main.