Commit Graph

6 Commits

Author SHA1 Message Date
Sebastian Poxhofer 97327c3d28 refactor(linters): add prefer-coerce-array rule (#45492)
* refactor(linters): add prefer-coerce-array rule

Refs #45217

`x ?? []` and `coerceArray(x)` say the same thing, but only the second
one is searchable and consistent. The rule flags a `??` whose default is
a bare `[]` literal; a non-empty default or an asserted `([] as Foo[])`
still passes.

Applying it across `lib/` surfaced three spots the helper cannot cover,
which keep `?? []` with a disable comment or a narrower fix:

- `package-files.ts` destructures a tuple, which `coerceArray()` widens
- `generate.spec.ts` defaults `matchAll()`, an iterator rather than an array
- `mise/upgradeable-tooling.ts` declares a `Record` return, so its
  `?? []` fallback was wrong to begin with and becomes `coerceObject()`

* refactor(platform/github): hoist the GHE version header lookup

`Object.entries(...).find()` returns a tuple, and defaulting it with
`?? []` only to destructure the second element reads as an array
default when it is not one. Name the found entry instead, which drops
the `?? []` rather than routing a tuple through `coerceArray()`.
2026-08-28 09:27:58 +00:00
Go Takagi 09ba737f09 feat(manager/swift): support SSH URLs in Package.swift (#42297)
* feat(manager/swift): support SSH URLs in Package.swift extraction and artifact matching

Swift packages can use SSH URLs (e.g. `git@github.com:owner/repo.git`) for
dependencies, but the Swift manager only supported HTTPS URLs. This caused
SSH-based dependencies to be silently ignored during extraction, and
Package.resolved pin matching to fail when protocols differed.

- Convert SCP-style SSH and `ssh://` URLs to HTTPS in `parseUrl()` using
  the existing `getHttpUrl()` utility before platform detection
- Enhance `normalizeUrl()` in artifacts to use `parseGitUrl()` for
  protocol-agnostic URL comparison (falls back to basic normalization
  when parsed components are incomplete)

* test(manager/swift): add edge case tests to improve coverage

- Add test for unparseable SSH URL in extraction
- Add test for host-only URL fallback in artifact matching

* fix(manager/swift): remove redundant .git stripping in normalizeUrl

parseGitUrl() already strips the .git suffix from full_name,
so the additional regex replacement is unnecessary.

* test(manager/swift): add ssh:// protocol test for artifact matching

Cover the ssh://git@github.com/... URL format in addition to the
existing git@ SCP-style test for Package.resolved pin matching.

* refactor(manager/swift): use trimTrailingSlash helper in normalizeUrl

* refactor(manager/swift): always normalize URLs in parseUrl
2026-05-16 10:13:20 +00:00
swiftty e9297edca6 feat(swift): add support for Package.swift traits argument (#41563)
* test: add test cases

* fix(swift): fix for the handling of the `traits` argument

* chore: use codeBlock tag

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-03-09 13:05:34 +00:00
Sergei Zharinov 9d857c1f68 refactor(lint): Organize imports with biome (#40966) 2026-02-06 13:40:01 +00:00
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00
IKEDA Sho a017e2a5b6 feat(swift): add support for GitHub and GitLab specific datasources (#38417)
* 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>
2025-11-05 21:52:15 +00:00