* feat(swift): update Package.resolved when updating Package.swift
Add artifact support to the Swift Package Manager module so that
Package.resolved lockfiles are updated alongside Package.swift manifest
changes. Uses direct JSON modification (targeted regex replacement of
version and revision within each pin block) instead of requiring the
Swift toolchain, avoiding the need for a macOS runner or private repo
authentication.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(swift): achieve 100% coverage for artifacts.ts
Add tests for missing datasource/packageName, missing pins array, and
getDigest exceptions. Mark three unreachable defensive guards with
istanbul ignore (valid JSON always has matching braces and identities).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(swift): address review feedback from viceice
- Inline test fixtures instead of using fixture files
- Remove unnecessary beforeEach/resetAllMocks
- Use PackageDependency and Upgrade types instead of inline type literals
- Add Zod schema for safe Package.resolved parsing
- Move PackageResolvedPin/PackageResolvedJson types to schema.ts
- Delete fixture files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat(swift): add support for GitHub and GitLab specific datasources
Previously the Swift manager used git-tags datasource for all dependencies.
Now it uses github-tags for GitHub URLs and gitlab-tags for GitLab URLs to enable releaseTimestamp support for minimumReleaseAge functionality.
* Update supportedDatasources as well
* Fix lint errors
* Update snapshots
* Remove unnecessary test cases
* Revert "Remove unnecessary test cases"
This reverts commit aa68a06fe5.
* Fix to set packageName only when datasource is git-tags
* Remove unnecessary variable
* Remove unnecessary packageName setting
* feat(swift): add support for self-hosted GitHub and GitLab instances
Add registryUrls support for self-hosted GitHub Enterprise and GitLab
instances by detecting non-public hosts and setting the base URL as
the registry. This enables the datasources to query the correct API
endpoints for self-hosted installations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor(swift): improve registryUrls condition check
Use optional chaining with length check to exclude empty arrays
in addition to undefined and null values for registryUrls.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Changes `rangeStrategy` default value from `'replace'` to `'auto'`. Also changes `auto` behavior so that `update-lockfile` is preferred if the manager
supports the `updateLockedDependency()` function.
Closes#19800
BREAKING CHANGE: Renovate will now default to updating locked dependency versions. To revert to previous behavior, configure rangeStrategy=replace.
Moves datasource, manager, platform and versioning code from lib/ into new lib/modules/
BREAKING CHANGE: External tools must update paths to datasource, manager, platform and versioning