Repository navigation
ci: strengthen dependency security checks - #80
Merged
Merged
Conversation
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR strengthens dependency and release validation in GitHub Actions. It adds checks for vulnerable dependency changes, scans the committed Dart lockfile with OSV, tests both the stable and minimum supported Dart environments, validates the package before publication, and replaces the deprecated release asset uploader reported in #75.
Only GitHub Actions workflow files change. This PR does not modify application code, package dependencies, or
pubspec.lock.Dependency review policy
A new pull request workflow runs
actions/dependency-review-actionwhenever a PR targetsmain.This check evaluates the dependency changes introduced by the PR rather than rescanning only the resulting dependency graph.
OSV lockfile scanning
A separate OSV-Scanner workflow explicitly scans
pubspec.lock.mainby using OSV's PR workflow.mainThe full scan is intentionally skipped during pull request events because the PR-specific scan handles that event. The workflow grants only the permissions required to read the repository and upload security results.
Dart and package validation
The primary CI job now selects the stable Dart SDK explicitly and runs
dart pub publish --dry-runafter formatting, analysis, and tests. This catches package metadata and archive-content problems before a release.A new
minimum-versionsjob validates the lower edge of the supported SDK and dependency ranges:dart pub downgradeto resolve minimum dependency versions.frontend_server_clientpackage.The targeted
frontend_server_clientexception is required because the version selected by a full downgrade expectsfrontend_server.dart.snapshot, which Dart 3.11 no longer provides. Upgrading that one transitive package keeps the rest of the graph at its minimum versions while allowing the test runner to start.Release upload hardening (#75)
Problem
The Linux, macOS, and Windows release jobs used
AButler/[email protected]. GitHub now runs that Node.js 20 action under Node.js 24 and emits a deprecation warning in every release job.Change
Each platform job now uploads its archive with the GitHub CLI that is already installed on GitHub-hosted runners:
GH_TOKENuses the workflow-provided${{ github.token }}value.contents: writepermission explicitly.--clobbermakes a rerun replace an existing same-named asset instead of failing after a partial release.pubspec.lock,build-manifest.txt, andSHA256SUMS.End-to-end test results
The upload path was tested with a temporary
2.0.4-alpha.0GitHub prerelease at PR head commitc2be2ae89a05865e0b2ac6566f88bc831b7a6efe.Release workflow run 37404773292 completed successfully:
gh release uploadstep.raygun-cli-linux.zipraygun-cli-macos.zipraygun-cli-windows.zipSHA256SUMSvalidated the executable,pubspec.lock, andbuild-manifest.txt.refs/tags/2.0.4-alpha.0and the exact PR head commit.AButler/upload-release-assetsnor the Node.js 20 deprecation warning.Other verification
pubspec.lock.dart pub publish --dry-runcompletes with zero warnings.gh release upload --clobberinvocation is supported by the installed GitHub CLI.Intentional policy choices
Closes #75