hbmartin/Swift Package Version Updates

Report available Swift Package Manager dependency updates from Package.swift manifests or Xcode projects

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 18, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: hbmartin/github-action-spm_version_updates@77ecdd3798d102e93b3b5ab78130e6a740d35ed3 # v2.0.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
xcode-project-pathXcode mode: path to the .xcodeproj file. Mutually exclusive with package-manifest-paths and package-resolved-paths-only mode.no""
package-manifest-pathsManifest mode: newline-separated Package.swift paths. Mutually exclusive with xcode-project-path.no""
package-resolved-pathsNewline-separated Package.resolved paths. With package-manifest-paths, overrides default adjacent resolved files; alone, activates Package.resolved-only mode.no""
check-when-exactInclude exact version constraints when checking for updatesnofalse
check-branchesCheck branch-pinned dependencies for newer commitsnotrue
check-revisionsReport the latest tagged release for revision-pinned dependenciesnofalse
report-above-maximumAlso report versions above the maximum allowed constraint rangenofalse
report-pre-releasesInclude pre-release versions when choosing available updatesnofalse
ignore-reposComma-separated repository URLs to skip before any git lookupno""
repo-rules-pathPath to a YAML file with per-repository semantic update suppression rulesno""
allow-hostsComma-separated git remote hostnames allowed for version lookups. Empty allows any host for allowed git protocols.no""
version-lookup-workersMaximum concurrent git tag lookups. Must be a positive integer.no4
allow-missing-resolvedWhen true, missing Package.resolved files are reported as warnings instead of failing the run.nofalse
apply-updatesRewrite supported Package.swift version requirements in the workspace. Manifest mode only; pair with a pull-request creation step.nofalse
enrich-release-notesFetch GitHub release notes for updated packages and include them in PR comments or tracking issues.notrue
fail-onFail when updates are found: true/any for any update, major/minor/patch for semantic updates at or above that severity, or empty/false/none to never fail.no""
commentPost or update the pull request comment. Set false to disable all PR commenting; outputs, the step summary, and annotations are still produced, and a comment left by a prior run is kept as-is rather than deleted. Tracking issues (open-tracking-issue) are unaffected.notrue
comment-on-successPost an up-to-date pull request comment on clean runs. By default, clean runs delete the prior generated comment instead.nofalse
open-tracking-issueOn runs without a pull request context (schedule, workflow_dispatch, push), open or update a single tracking issue with the update report, and close it when everything is up to date. Requires issues: write permission.nofalse
cache-version-tagsCache git tag lookup results with actions/cache to make repeated runs fasternotrue
version-tags-cache-ttlFreshness window, in seconds, for persisted git tag lookups. Must be a non-negative integer; set 0 to disable persistent cache reads and writes.no21600
setup-rubySet up Ruby and install this action bundle. Set false only for later invocations in the same job after an earlier invocation has already run setup.notrue
github-tokenToken used to create or update pull request comments. Defaults to github.token.no${{ github.token }}
namedescription
updates-foundNumber of dependency updates found
major-updates-foundNumber of major semantic-version updates found
minor-updates-foundNumber of minor semantic-version updates found
patch-updates-foundNumber of patch semantic-version updates found
parse-warningsNumber of .package(...) declarations that could not be parsed and were skipped. Not counted in updates-found and never fails the run, but skipped declarations are listed in the step summary and PR comment with a link to open an issue — a PR comment is posted even when no updates were found so skips are never silent.
missing-resolvedNumber of missing Package.resolved files reported when allow-missing-resolved is true
applied-updatesNumber of Package.swift requirement updates applied when apply-updates is true
applied-updates-jsonJSON array of applied Package.swift update records. Empty array when apply-updates is false or nothing was applied.
updates-jsonJSON array of update objects. Each object has a message field and, when available, structured fields such as type, package, repository_url, current_version, available_version, severity, note, source, requirement_kind, package_identity, suggested_command, and suggested_requirement.
blockedWhether the run was blocked before version lookup by a security gate such as allow-hosts
error-messageFailure message when blocked is true
tracking-issue-numberNumber of the tracking issue created or updated, when open-tracking-issue is enabled and the run had no pull request context. Empty otherwise.
tracking-issue-urlHTML URL of the tracking issue created or updated. Empty otherwise.