Commit Graph

20 Commits

Author SHA1 Message Date
Sebastian Poxhofer 05e1271376 test: use expect().resolves instead of awaiting inside expect (#45672)
Enables the vitest/prefer-expect-resolves oxlint rule and applies its
autofix across the spec suite.
2026-09-04 10:40:46 +00:00
renovate[bot] 196101a6bb chore(deps): update dependency oxlint-tsgolint to v0.25.0 (main) (#44424)
* chore(deps): update dependency oxlint-tsgolint to v0.25.0

| datasource | package         | from   | to     |
| ---------- | --------------- | ------ | ------ |
| npm        | oxlint-tsgolint | 0.23.0 | 0.25.0 |

* chore: fix new no-unnecessary-type-assertion findings

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Poxhofer <sebastian.poxhofer@stedi.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 07:04:21 +00:00
Sebastian Poxhofer 58771bb183 refactor(linters): enabled oxlints func-style (#44691)
* refactor(oxlint): enable func-style

Enable the built-in func-style rule as ["warn", "declaration"] so that
named functions are written as function declarations instead of arrow or
function expressions assigned to variables, matching the convention in
docs/development/best-practices.md (Functions section). Inline arrow
callbacks are unaffected; prefer-arrow-callback continues to cover the
callback direction.

Severity is "warn" instead of "error" as a fallback: a repo-wide run
found 196 pre-existing violations (70 in spec files, 126 in production
code), exceeding the 80-violation fix threshold for this change, so no
violations were fixed here. Follow-up work can convert the offenders
(largest clusters: lib/modules/versioning/ruby, lib/util/cache/package,
lib/modules/versioning/maven, lib/modules/versioning/gradle) and then
raise the rule to "error". Note oxlint 1.72 also supports an
allowTypeAnnotation option if typed consts should remain arrows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ci(linter): enforce func-style at error

* refactor(func-style): convert const-arrow functions to declarations in with-cache spec and ruby versioning

* refactor(func-style): convert const-arrow functions to declarations in maven/gradle modules

* refactor(func-style): convert const-arrow functions to declarations in remaining versioning modules

* refactor(func-style): convert const-arrow functions to declarations in platform modules

Discriminated-union closures (ensureCommentRemoval byTopic/byContent
helpers in github, gitlab, bitbucket, bitbucket-server) needed the
narrowed field passed explicitly as a parameter, since function
declarations are hoisted and lose the outer if-narrowing that inline
arrow-function closures previously relied on.

* refactor(func-style): convert const-arrow functions to declarations across util/manager/datasource modules

One case (logger/renovate-logger.ts logOnceFn) is kept as an arrow
function with a documented oxlint-disable: it is stored on
this.logger.once[level] and relies on lexically-bound this, which a
hoisted function declaration would not preserve.

* refactor(func-style): convert remaining const-arrow test helpers to declarations

get-updated.spec.ts: hoisted expectPipCompilePackageAndLockFile to
module scope (it only closes over the module-level pipCompile mock)
and added a documented oxlint-disable for vitest/expect-expect on its
caller test, since oxlint's expect-expect check does not trace
assertions through an externally-defined helper function.

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 11:14:22 +00:00
Sebastian Poxhofer ad0b59f8b7 refactor(oxlint): enable vitest/require-to-throw-message (#44421) 2026-07-07 17:47:04 +00:00
Sebastian Poxhofer 7573fa98f2 feat(platform/forgejo): validate http request with schemas (#43900)
* fix(platform/forgejo): replace getJsonUnchecked with validated getJson

Migrate all getJsonUnchecked calls in the Forgejo platform module to use
getJson with Zod schemas for response validation. Add comprehensive Zod
schemas to schema.ts and update test mocks to use proper data formats.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* simplify by using infered types

* first pass on reducing duplications

* move PrStatus and CommitStatus to schema

* remove code handling BranchStatus values now ensured by schema

* remove now unreachable code

* fix coverage

* use forgejo schemas instead gitea for changelog fetching

* feat: do not abort repo on unrecognized default merge style

* refactor: instead of usages of `?? {}` with a default parameter

* tighten required parameters and move contentString generation to schema

* refactor: merge both content schemas and use a discriminated union

* refactor: move patchJson and postJson to schema validation

* Make body field required

* make schema more strict

* use DeepNullish

* simplify catch

* revert the gitea Content type change

* unify User

* log more nicely if accidentally not a file has been referenced

* Use fakeSha and LongCommitSha schema

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 14:22:01 +00:00
Sebastian Poxhofer 171a591d84 feat(git): validate commit shas (#43988)
* feat(git): validate length commit shas

* test: adapt test mocks

* chore: update import paths

* feat(git): make the validation more strict and support repositories using sha256

* test: add fakeSha function for deterministic git commit shas in tests
2026-06-15 06:36:57 +00:00
Roshan Banisetti 5a8b5bbedd feat(platform/gitea,forgejo): use login instead of username for user handles (#43904)
refactor(platform/gitea,forgejo): replace username with login in User types
2026-06-10 06:10:43 +00:00
Sebastian Poxhofer 03baf6ee4a test(noNewURL): add new rule enforcing parseUrl() from 'lib/util/url.ts' (#43247)
* test(noNewURL): add new rule enforcing parseUrl() from 'lib/util/url.ts'

* replace newURL with parseUrl

* remove non-null assertions marks if appropiate

* test: add additional tests

* test: add additional tests and ignore where it makes sense

* implement suggestions

* test: further improve coverage

* apply suggestion
2026-05-13 16:23:10 +00:00
Michael Kriese 57c6e77787 fix(forgejo,gitea): full name can be empty (#41950) 2026-03-16 13:38:54 +00:00
Adam Setch 579ff4c2ba feat: hyperlink warnings to dep dashboard (#40395)
* feat: hyperlink warnings to dep dashboard

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* feat: hyperlink warnings to dep dashboard

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* feat: hyperlink warnings to dep dashboard

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* feat: hyperlink warnings to dep dashboard

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* add tests

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* update tests

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* Merge branch 'main' into feat/hyperlink-dashboard

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* updated forgejo smartLinks

Signed-off-by: Adam Setch <adam.setch@outlook.com>

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-02-20 15:19:35 +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
Michael Kriese 0af770947b fix: ignorePrAuthor is a global repo config (#39578) 2025-11-27 09:05:15 +00:00
Michael Kriese 77de384ba7 fix(forgejo): properly handle team reviewers (#39533)
* fix(forgejo): properply handle team reviewers

* fix(forgejo): properply handle team reviewers like github
2025-11-25 14:36:30 +00:00
renovate[bot] b4ed9e65d9 chore(deps): update dependency @vitest/eslint-plugin to v1.3.23 (main) (#38702)
* chore(deps): update dependency @vitest/eslint-plugin to v1.3.23

| datasource | package               | from   | to     |
| ---------- | --------------------- | ------ | ------ |
| npm        | @vitest/eslint-plugin | 1.3.16 | 1.3.23 |

* remove now unnecessary exceptions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2025-10-31 07:50:48 +00:00
renovate[bot] 1280fe4dc7 chore(deps): update dependency @vitest/eslint-plugin to v1.3.16 (main) (#38502)
* chore(deps): update dependency @vitest/eslint-plugin to v1.3.16

| datasource | package               | from   | to     |
| ---------- | --------------------- | ------ | ------ |
| npm        | @vitest/eslint-plugin | 1.3.13 | 1.3.16 |

* fix linting errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2025-10-13 09:24:15 +00:00
dh-seanmurphy fbf6b49898 fix(forgejo): allow fallbacks in case default merge style not allowed (#38040) 2025-09-19 20:18:06 +00:00
Michael Kriese 7ac5c93070 fix(platform): open or update issue correctly (#37831) 2025-09-04 10:29:04 +00:00
Michael Kriese f3538c0502 feat(forgejo): support teams as reviewer (#37589) 2025-08-18 15:07:49 +00:00
Patrick Schratz 6c2bd9d197 feat: add forgejo as a standalone platform (#37075)
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2025-07-21 14:24:07 +00:00