Compare commits

...

369 Commits

Author SHA1 Message Date
dependabot[bot]
9ac31b619a chore(deps-dev): bump sinon from 19.0.4 to 20.0.0 (#10980)
Bumps [sinon](https://github.com/sinonjs/sinon) from 19.0.4 to 20.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v19.0.4...v20.0.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:20:11 +00:00
dependabot[bot]
8dcf813bbc chore(deps): bump simple-icons from 14.11.0 to 14.11.1 (#10976)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.11.0 to 14.11.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.11.0...14.11.1)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:16:56 +00:00
dependabot[bot]
1d332848f6 chore(deps-dev): bump eslint-plugin-prettier from 5.2.3 to 5.2.5 (#10978)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.3 to 5.2.5.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.3...v5.2.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:06:46 +00:00
dependabot[bot]
39184c3be4 chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.8 to 50.6.9 (#10972)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.8 to 50.6.9.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.8...v50.6.9)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:06:23 +00:00
dependabot[bot]
a1d9867e68 chore(deps-dev): bump @typescript-eslint/parser from 8.27.0 to 8.28.0 (#10973)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.27.0 to 8.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.28.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:06:05 +00:00
dependabot[bot]
fdd2b94afb chore(deps): bump @sentry/node from 9.8.0 to 9.10.0 (#10974)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 9.8.0 to 9.10.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/9.8.0...9.10.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:05:31 +00:00
dependabot[bot]
9979d142f2 chore(deps-dev): bump eslint from 9.22.0 to 9.23.0 (#10975)
Bumps [eslint](https://github.com/eslint/eslint) from 9.22.0 to 9.23.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.22.0...v9.23.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:05:14 +00:00
dependabot[bot]
d027188727 chore(deps-dev): bump cypress from 14.2.0 to 14.2.1 (#10979)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.2.0 to 14.2.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.2.0...v14.2.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-28 18:04:40 +00:00
Djordy Koert
b7fd897103 fix(#10970): codecov branch badge (#10971) 2025-03-26 21:17:17 +00:00
Moritz Zwerger
1fcc0f7aa5 docker: cleanup some building (#10957)
* docker: cleanup some building

Somehow `npm prune --omit=dev` does not properly remove unneeded dependencies, this is workarounded by deleting the `node_modules` folder and the running install again.

It also removes some unneeded large files in the docker container.

* docker building: improve caching, don't download node_modules twice
2025-03-25 21:38:35 +00:00
dependabot[bot]
d3875f10ff chore(deps-dev): bump sinon from 19.0.2 to 19.0.4 (#10965)
Bumps [sinon](https://github.com/sinonjs/sinon) from 19.0.2 to 19.0.4.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v19.0.2...v19.0.4)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 17:09:43 +00:00
dependabot[bot]
1a3f14591b chore(deps): bump simple-icons from 14.10.0 to 14.11.0 (#10966)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.10.0 to 14.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.10.0...14.11.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 17:07:01 +00:00
dependabot[bot]
7a068167eb chore(deps): bump @sentry/node from 9.5.0 to 9.8.0 (#10961)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 9.5.0 to 9.8.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/9.5.0...9.8.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 16:58:26 +00:00
dependabot[bot]
1765c2d02d chore(deps): bump pg from 8.14.0 to 8.14.1 (#10967)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.14.0 to 8.14.1.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.14.1/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 16:58:11 +00:00
dependabot[bot]
cdf0e273b1 chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.6 to 50.6.8 (#10962)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.6 to 50.6.8.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.6...v50.6.8)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 16:57:56 +00:00
dependabot[bot]
301b96e067 chore(deps-dev): bump @typescript-eslint/parser from 8.26.1 to 8.27.0 (#10964)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.26.1 to 8.27.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.27.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 16:57:40 +00:00
dependabot[bot]
a9b715ffaf chore(deps-dev): bump simple-git-hooks from 2.11.1 to 2.12.1 (#10963)
Bumps [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) from 2.11.1 to 2.12.1.
- [Release notes](https://github.com/toplenboren/simple-git-hooks/releases)
- [Changelog](https://github.com/toplenboren/simple-git-hooks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/toplenboren/simple-git-hooks/compare/2.11.1...2.12.1)

---
updated-dependencies:
- dependency-name: simple-git-hooks
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 16:57:06 +00:00
Moritz Zwerger
eb14f9b088 graceful shutdown (#10958)
* graceful shutdown

The main entrypoint now handles the SIGTERM signal and stops the server.

* Don't call process.exit on shutdown

That is not graceful in nodejs, see https://kostasbariotis.com/why-you-should-not-use-process-exit/
2025-03-16 22:11:09 +00:00
jNullj
834e4e1f96 Update [SourceForge] commit count badge to support repository parameter (#10954)
* [sourceforge] update commit count service to support repo param

follow-up to #10935
sourceforge commit count also requires the new repo param for some projects.

* [sourceforge] add redirector for legacy commit count URLs

* fix missing openapi path
2025-03-16 20:27:43 +00:00
jNullj
b23a8ec307 ignore package.json files in linting (#10956) 2025-03-16 15:16:02 +00:00
dependabot[bot]
5fdb3f585f chore(deps): bump simple-icons from 14.9.0 to 14.10.0 (#10947)
* chore(deps): bump simple-icons from 14.9.0 to 14.10.0

Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.9.0 to 14.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.9.0...14.10.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* change test example for logo that is not re-coloured

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2025-03-14 19:53:33 +00:00
dependabot[bot]
2b41dc5dcf chore(deps-dev): bump lint-staged from 15.4.3 to 15.5.0 (#10942)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.4.3 to 15.5.0.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.4.3...v15.5.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:41:36 +00:00
dependabot[bot]
c0326a1862 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10944)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.48.5 to 0.49.1.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.49.1/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:34:42 +00:00
dependabot[bot]
a9d5434ac6 chore(deps-dev): bump @typescript-eslint/parser from 8.26.0 to 8.26.1 (#10946)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.26.0 to 8.26.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:28:45 +00:00
dependabot[bot]
1378777b7b chore(deps-dev): bump eslint-plugin-cypress from 4.1.0 to 4.2.0 (#10945)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:28:15 +00:00
dependabot[bot]
959682b0e3 chore(deps-dev): bump cypress from 14.1.0 to 14.2.0 (#10948)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.1.0...v14.2.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:27:16 +00:00
dependabot[bot]
8409f85e37 chore(deps-dev): bump portfinder from 1.0.33 to 1.0.35 (#10949)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.33 to 1.0.35.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.33...v1.0.35)

---
updated-dependencies:
- dependency-name: portfinder
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:26:54 +00:00
dependabot[bot]
cf0307552c chore(deps): bump pg from 8.13.3 to 8.14.0 (#10950)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.13.3 to 8.14.0.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.14.0/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:25:48 +00:00
dependabot[bot]
701df37900 chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.3 to 50.6.6 (#10951)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.3 to 50.6.6.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.3...v50.6.6)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:25:30 +00:00
dependabot[bot]
0b37ae8be8 chore(deps-dev): bump start-server-and-test from 2.0.10 to 2.0.11 (#10953)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.10 to 2.0.11.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.10...v2.0.11)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:24:35 +00:00
dependabot[bot]
669a690c8b chore(deps-dev): bump eslint from 9.21.0 to 9.22.0 (#10952)
Bumps [eslint](https://github.com/eslint/eslint) from 9.21.0 to 9.22.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 19:24:15 +00:00
chris48s
9b738fc300 add node 22 to engines declaration (#10940) 2025-03-14 19:23:47 +00:00
dependabot[bot]
1f92791440 chore(deps): bump fast-xml-parser from 5.0.8 to 5.0.9 (#10943)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.0.8 to 5.0.9.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.0.8...v5.0.9)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 16:01:46 +00:00
Ari Kalfus
abf0a2970b feat: add new badges for new [ansible] collection APIs (#10938)
* feat: add ansible collection v2 badge for latest version

* feat: add ansible collection downloads count badge

* set default galaxy version label and fixed ansible tests

* apply PR requested changes

* slim down schemas to minimal required elements
2025-03-13 18:00:29 +00:00
Ari Kalfus
9b91a60c75 build: creates a devcontainer configuration for contributors (#10937)
* set up a devcontainer configuration

* also install postgresql for that part of the CONTRIBUTING guidance

* set up a devcontainer configuration

* also install postgresql for that part of the CONTRIBUTING guidance

* forgot to revert node 22 to node 20

* slim down devcontainer file
2025-03-12 17:54:34 +00:00
dependabot[bot]
4eb5d9a7ac chore(deps): bump @babel/runtime-corejs3 from 7.26.0 to 7.26.10 (#10941)
Bumps [@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3) from 7.26.0 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime-corejs3)

---
updated-dependencies:
- dependency-name: "@babel/runtime-corejs3"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 21:06:59 +00:00
dependabot[bot]
a5d50446ed chore(deps): bump prismjs from 1.29.0 to 1.30.0 (#10939)
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.29.0 to 1.30.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.29.0...v1.30.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 20:42:01 +00:00
jNullj
231a48fa87 [sourceforge] add repo param to last commit service (#10935)
* [sourceforge] add repo param to last commit service

some sourceforge projects have multiple repositories, so we need to
specify the repository to use for the last commit service.

* [sourceforge] add redirect for old project param only URLs
2025-03-09 16:23:39 +00:00
dependabot[bot]
dc43239bcb chore(deps-dev): bump axios from 1.7.9 to 1.8.2 (#10936)
Bumps [axios](https://github.com/axios/axios) from 1.7.9 to 1.8.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.9...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-08 21:04:26 +00:00
jNullj
313cced050 nodemon watch yml conf files and ignore .github (#10924)
this makes nodemon restart on every configuration change

ignored .github folder as it is not needed for nodemon to watch and has yml files

Fixes #10923
2025-03-08 18:20:29 +00:00
chris48s
309b0fe33f update security policy: clarify we don't pay bounties (#10934) 2025-03-08 18:19:50 +00:00
dependabot[bot]
7d7ec20ae0 chore(deps): bump simple-icons from 14.8.0 to 14.9.0 (#10933)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.8.0 to 14.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.8.0...14.9.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:26:51 +00:00
dependabot[bot]
0e552b63c6 chore(deps): bump @xmldom/xmldom from 0.9.7 to 0.9.8 (#10928)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.7 to 0.9.8.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.7...0.9.8)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:26:00 +00:00
dependabot[bot]
affdb4c0bb chore(deps-dev): bump prettier from 3.5.2 to 3.5.3 (#10927)
Bumps [prettier](https://github.com/prettier/prettier) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.2...3.5.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:15:21 +00:00
dependabot[bot]
8c62644314 chore(deps-dev): bump @typescript-eslint/parser from 8.25.0 to 8.26.0 (#10930)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.25.0 to 8.26.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:15:05 +00:00
dependabot[bot]
811069280f chore(deps): bump @sentry/node from 9.2.0 to 9.5.0 (#10929)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 9.2.0 to 9.5.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/9.2.0...9.5.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:14:52 +00:00
dependabot[bot]
ee587919a8 chore(deps-dev): bump eslint-config-prettier from 10.0.2 to 10.1.1 (#10932)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.0.2 to 10.1.1.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.0.2...v10.1.1)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:14:37 +00:00
dependabot[bot]
4af92d7ae6 chore(deps-dev): bump eslint-plugin-react-hooks from 5.1.0 to 5.2.0 (#10931)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 15:14:19 +00:00
chris48s
5fb5a30188 tweak default cache lengths by category (#10919) 2025-03-06 17:30:49 +00:00
Jordi Boggiano
be9cdc2276 [Packagist] Update default domain for repo metadata (#10920)
* Update default packagist domain for repo metadata

* prettier

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2025-03-05 07:32:22 +00:00
chris48s
8a98824e5e use SVG2 hrefs (#10918)
* use SVG2 hrefs

* add note to badge-maker changelog
2025-03-03 17:58:48 +00:00
jNullj
42e78083ab remove logoWidth param (#10878)
* remove `logoWidth` param
Fixes #10285

* remove `logoWidth` param
Fixes #10285

* fix: add `logoWidth` parameter to BaseService test
2025-03-02 11:16:02 +00:00
github-actions[bot]
779f8ae61c Changelog for Release server-2025-03-02 (#10917)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2025-03-02 10:26:38 +00:00
github-actions[bot]
9d4a8f87ce Changelog for Release server-2025-03-01 (#10915)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2025-03-01 17:33:35 +00:00
dependabot[bot]
4346e37421 chore(deps-dev): bump portfinder from 1.0.32 to 1.0.33 (#10913)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.32 to 1.0.33.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.32...v1.0.33)

---
updated-dependencies:
- dependency-name: portfinder
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:29:06 +00:00
dependabot[bot]
0ca8c95874 chore(deps-dev): bump eslint from 9.20.1 to 9.21.0 (#10907)
Bumps [eslint](https://github.com/eslint/eslint) from 9.20.1 to 9.21.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.20.1...v9.21.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:28:41 +00:00
dependabot[bot]
5aa0fdb821 chore(deps): bump simple-icons from 14.7.0 to 14.8.0 (#10914)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.7.0 to 14.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.7.0...14.8.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:24:44 +00:00
dependabot[bot]
49636311ba chore(deps-dev): bump @typescript-eslint/parser from 8.24.1 to 8.25.0 (#10911)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.24.1 to 8.25.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:15:19 +00:00
dependabot[bot]
d0af75f721 chore(deps-dev): bump cypress from 14.0.3 to 14.1.0 (#10912)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.0.3 to 14.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.0.3...v14.1.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:14:58 +00:00
dependabot[bot]
1d3af05758 chore(deps-dev): bump eslint-config-prettier from 10.0.1 to 10.0.2 (#10910)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.0.1...v10.0.2)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:14:10 +00:00
dependabot[bot]
ac1cfd9fc9 chore(deps): bump @sentry/node from 8.54.0 to 9.2.0 (#10906)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.54.0 to 9.2.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.54.0...9.2.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:13:54 +00:00
dependabot[bot]
1f87e181ce chore(deps-dev): bump prettier from 3.5.1 to 3.5.2 (#10909)
Bumps [prettier](https://github.com/prettier/prettier) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.1...3.5.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:13:37 +00:00
dependabot[bot]
5ba86df981 chore(deps): bump fast-xml-parser from 4.5.3 to 5.0.8 (#10908)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.5.3 to 5.0.8.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits/v5.0.8)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 19:13:20 +00:00
dependabot[bot]
7734784de3 chore(deps): bump @octokit/request (#10895)
Bumps [@octokit/request](https://github.com/octokit/request.js) from 8.1.4 to 8.4.1.
- [Release notes](https://github.com/octokit/request.js/releases)
- [Commits](https://github.com/octokit/request.js/compare/v8.1.4...v8.4.1)

---
updated-dependencies:
- dependency-name: "@octokit/request"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 15:30:11 +00:00
dependabot[bot]
7254e4a840 chore(deps): bump @octokit/plugin-paginate-rest (#10896)
Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) from 9.0.0 to 9.2.2.
- [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases)
- [Commits](https://github.com/octokit/plugin-paginate-rest.js/compare/v9.0.0...v9.2.2)

---
updated-dependencies:
- dependency-name: "@octokit/plugin-paginate-rest"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 15:17:37 +00:00
dependabot[bot]
c86c9cd484 chore(deps-dev): bump @typescript-eslint/parser from 8.24.0 to 8.24.1 (#10902)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.24.0 to 8.24.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 14:42:26 +00:00
dependabot[bot]
62ae049fa8 chore(deps-dev): bump chai from 5.1.2 to 5.2.0 (#10901)
Bumps [chai](https://github.com/chaijs/chai) from 5.1.2 to 5.2.0.
- [Release notes](https://github.com/chaijs/chai/releases)
- [Changelog](https://github.com/chaijs/chai/blob/main/History.md)
- [Commits](https://github.com/chaijs/chai/compare/v5.1.2...v5.2.0)

---
updated-dependencies:
- dependency-name: chai
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 12:47:04 +00:00
dependabot[bot]
b3ac7e115b chore(deps-dev): bump globals from 15.15.0 to 16.0.0 (#10897)
Bumps [globals](https://github.com/sindresorhus/globals) from 15.15.0 to 16.0.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v15.15.0...v16.0.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 12:01:29 +00:00
dependabot[bot]
be20741e9a chore(deps-dev): bump form-data from 4.0.1 to 4.0.2 (#10898)
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.1...v4.0.2)

---
updated-dependencies:
- dependency-name: form-data
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 11:39:01 +00:00
dependabot[bot]
b739d57ee7 chore(deps): bump @renovatebot/pep440 from 4.0.1 to 4.1.0 (#10899)
Bumps [@renovatebot/pep440](https://github.com/renovatebot/pep440) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/renovatebot/pep440/releases)
- [Changelog](https://github.com/renovatebot/pep440/blob/main/.releaserc.json)
- [Commits](https://github.com/renovatebot/pep440/compare/4.0.1...4.1.0)

---
updated-dependencies:
- dependency-name: "@renovatebot/pep440"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 11:18:46 +00:00
dependabot[bot]
92d1d7dc21 chore(deps): bump fast-xml-parser from 4.5.1 to 4.5.3 (#10900)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.5.1 to 4.5.3.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 11:00:03 +00:00
dependabot[bot]
1610226eb4 chore(deps): bump simple-icons from 14.6.0 to 14.7.0 (#10903)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.6.0 to 14.7.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.6.0...14.7.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-22 10:41:36 +00:00
dependabot[bot]
0457d078f8 chore(deps): bump @octokit/request-error (#10892)
Bumps [@octokit/request-error](https://github.com/octokit/request-error.js) from 5.0.1 to 5.1.1.
- [Release notes](https://github.com/octokit/request-error.js/releases)
- [Commits](https://github.com/octokit/request-error.js/compare/v5.0.1...v5.1.1)

---
updated-dependencies:
- dependency-name: "@octokit/request-error"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-17 09:08:27 +00:00
dependabot[bot]
838f284d04 chore(deps): bump got from 14.4.5 to 14.4.6 (#10880)
Bumps [got](https://github.com/sindresorhus/got) from 14.4.5 to 14.4.6.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.4.5...v14.4.6)

---
updated-dependencies:
- dependency-name: got
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:37:21 +00:00
dependabot[bot]
7a5da5781c chore(deps-dev): bump prettier from 3.4.2 to 3.5.1 (#10887)
Bumps [prettier](https://github.com/prettier/prettier) from 3.4.2 to 3.5.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.2...3.5.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:36:10 +00:00
dependabot[bot]
3ca22147c0 chore(deps): bump emojic from 1.1.17 to 1.1.18 (#10884)
Bumps [emojic](https://github.com/IonicaBizau/emojic) from 1.1.17 to 1.1.18.
- [Release notes](https://github.com/IonicaBizau/emojic/releases)
- [Commits](https://github.com/IonicaBizau/emojic/compare/1.1.17...1.1.18)

---
updated-dependencies:
- dependency-name: emojic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:35:36 +00:00
dependabot[bot]
2e9812d0aa chore(deps-dev): bump globals from 15.14.0 to 15.15.0 (#10882)
Bumps [globals](https://github.com/sindresorhus/globals) from 15.14.0 to 15.15.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v15.14.0...v15.15.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:34:32 +00:00
dependabot[bot]
b1d765665b chore(deps): bump jsonpath-plus from 10.2.0 to 10.3.0 (#10883)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/compare/v10.2.0...v10.3.0)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:33:13 +00:00
dependabot[bot]
e3d6e38a26 chore(deps-dev): bump @typescript-eslint/parser from 8.23.0 to 8.24.0 (#10886)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.23.0 to 8.24.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:32:54 +00:00
dependabot[bot]
1d5c9a109e chore(deps): bump simple-icons from 14.5.0 to 14.6.0 (#10891)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.5.0 to 14.6.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.5.0...14.6.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:32:20 +00:00
dependabot[bot]
d2b2c31962 chore(deps): bump node-pg-migrate from 7.9.0 to 7.9.1 (#10885)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.9.0 to 7.9.1.
- [Release notes](https://github.com/salsita/node-pg-migrate/releases)
- [Changelog](https://github.com/salsita/node-pg-migrate/blob/main/CHANGELOG.md)
- [Commits](https://github.com/salsita/node-pg-migrate/compare/v7.9.0...v7.9.1)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:22:31 +00:00
dependabot[bot]
e7488b4329 chore(deps): bump pg from 8.13.1 to 8.13.3 (#10879)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.13.1 to 8.13.3.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.13.3/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:22:14 +00:00
dependabot[bot]
903c62ab9f chore(deps-dev): bump danger from 12.3.3 to 12.3.4 (#10888)
Bumps [danger](https://github.com/danger/danger-js) from 12.3.3 to 12.3.4.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/12.3.3...12.3.4)

---
updated-dependencies:
- dependency-name: danger
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:21:17 +00:00
dependabot[bot]
5518521b73 chore(deps-dev): bump cypress from 14.0.2 to 14.0.3 (#10889)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.0.2 to 14.0.3.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.0.2...v14.0.3)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:20:56 +00:00
dependabot[bot]
692de451e3 chore(deps-dev): bump eslint from 9.19.0 to 9.20.1 (#10890)
Bumps [eslint](https://github.com/eslint/eslint) from 9.19.0 to 9.20.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.20.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-14 18:20:40 +00:00
chris48s
1809d1ebbc link to upptime (#10876)
* link to upptime

* different words in menu
2025-02-08 19:09:53 +00:00
chris48s
9bc673f40b time out long running requests more aggressively (#10833) 2025-02-08 17:51:51 +00:00
chris48s
6b78b69fa5 remove docker pull command from homepage (#10867) 2025-02-08 17:51:10 +00:00
dependabot[bot]
4a38cfbdc7 chore(deps): bump simple-icons from 14.4.0 to 14.5.0 (#10873)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.4.0 to 14.5.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.4.0...14.5.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:36:30 +00:00
dependabot[bot]
d88ff2ad2a chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10875)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.48.4 to 0.48.5.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.48.5/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:30:50 +00:00
dependabot[bot]
083caa1c83 chore(deps): bump semver from 7.7.0 to 7.7.1 (#10871)
Bumps [semver](https://github.com/npm/node-semver) from 7.7.0 to 7.7.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.0...v7.7.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:22:19 +00:00
dependabot[bot]
b39afc1466 chore(deps): bump @sentry/node from 8.53.0 to 8.54.0 (#10874)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.53.0 to 8.54.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.53.0...8.54.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:20:50 +00:00
dependabot[bot]
0987242032 chore(deps-dev): bump cypress from 14.0.1 to 14.0.2 (#10870)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.0.1 to 14.0.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.0.1...v14.0.2)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:20:29 +00:00
dependabot[bot]
1d4da9e1f8 chore(deps-dev): bump neostandard from 0.12.0 to 0.12.1 (#10872)
Bumps [neostandard](https://github.com/neostandard/neostandard) from 0.12.0 to 0.12.1.
- [Release notes](https://github.com/neostandard/neostandard/releases)
- [Changelog](https://github.com/neostandard/neostandard/blob/main/CHANGELOG.md)
- [Commits](https://github.com/neostandard/neostandard/compare/v0.12.0...v0.12.1)

---
updated-dependencies:
- dependency-name: neostandard
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:20:13 +00:00
dependabot[bot]
3ad5900136 chore(deps-dev): bump @typescript-eslint/parser from 8.22.0 to 8.23.0 (#10869)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.22.0 to 8.23.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 19:19:48 +00:00
github-actions[bot]
67fe4fa095 Changelog for Release server-2025-02-02 (#10865)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2025-02-02 18:26:05 +00:00
dependabot[bot]
5273989a1e chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.2 to 50.6.3 (#10854)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.2 to 50.6.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.2...v50.6.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:15:45 +00:00
dependabot[bot]
80d4fafd8e chore(deps): bump @sentry/node from 8.51.0 to 8.53.0 (#10856)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.51.0 to 8.53.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.53.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.51.0...8.53.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:15:26 +00:00
dependabot[bot]
8b9bb470f5 chore(deps-dev): bump lint-staged from 15.4.2 to 15.4.3 (#10860)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.4.2 to 15.4.3.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.4.2...v15.4.3)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:14:56 +00:00
dependabot[bot]
fb7104b979 chore(deps-dev): bump @typescript-eslint/parser from 8.21.0 to 8.22.0 (#10859)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.21.0 to 8.22.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:14:39 +00:00
dependabot[bot]
57eefd230f chore(deps-dev): bump cypress from 14.0.0 to 14.0.1 (#10861)
Bumps [cypress](https://github.com/cypress-io/cypress) from 14.0.0 to 14.0.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.0.0...v14.0.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:13:39 +00:00
dependabot[bot]
15deac06e8 chore(deps-dev): bump eslint from 9.18.0 to 9.19.0 (#10858)
Bumps [eslint](https://github.com/eslint/eslint) from 9.18.0 to 9.19.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 17:13:26 +00:00
Danny Yang
94909ab29d Mark Stubs-only packages with [PypiTypes] badge (#10864)
* add python typing badge

* prettier

* Update services/pypi/pypi-typing.service.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* address comments

* rename

* fix test

* check Typing :: Stubs Only

* change test package to typeshed

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
2025-02-02 17:12:45 +00:00
dependabot[bot]
4d9de9f760 chore(deps): bump semver from 7.6.3 to 7.7.0 (#10862)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.3 to 7.7.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.3...v7.7.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 18:42:50 +00:00
dependabot[bot]
3829d9ba27 chore(deps): bump simple-icons from 14.3.0 to 14.4.0 (#10857)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.3.0 to 14.4.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.3.0...14.4.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 16:25:15 +00:00
LitoMore
d51b47a9fd fix badge style when logo only (#10794)
* fix badge style when logo only

* simply logo-only condition

* Update variable name

* Update and add snapshots

* Fixes

* Update test and snapshot

* fix tests
2025-01-26 16:10:03 +00:00
chris48s
2c32e02bd0 add tests for dynamic xml with lowercase doctype (#10845) 2025-01-24 21:22:12 +00:00
dependabot[bot]
d8101f8c03 chore(deps-dev): bump @typescript-eslint/parser from 8.20.0 to 8.21.0 (#10837)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.20.0 to 8.21.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:39:11 +00:00
dependabot[bot]
2e6fb0eabc chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10834)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.48.3 to 0.48.4.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.48.4/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:34:24 +00:00
dependabot[bot]
d4e04e5442 chore(deps): bump undici from 6.19.7 to 6.21.1 (#10832)
Bumps [undici](https://github.com/nodejs/undici) from 6.19.7 to 6.21.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.19.7...v6.21.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:32:56 +00:00
dependabot[bot]
8ba081a264 chore(deps-dev): bump mocha from 11.0.1 to 11.1.0 (#10836)
Bumps [mocha](https://github.com/mochajs/mocha) from 11.0.1 to 11.1.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v11.0.1...v11.1.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:27:36 +00:00
dependabot[bot]
574206e8fd chore(deps-dev): bump lint-staged from 15.4.1 to 15.4.2 (#10839)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.4.1 to 15.4.2.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.4.1...v15.4.2)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:26:53 +00:00
dependabot[bot]
bdfdcd9c48 chore(deps): bump @sentry/node from 8.50.0 to 8.51.0 (#10838)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.50.0 to 8.51.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.51.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.50.0...8.51.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:26:50 +00:00
dependabot[bot]
6c2ae7ce3a chore(deps-dev): bump eslint-plugin-prettier from 5.2.2 to 5.2.3 (#10840)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.2...v5.2.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:26:05 +00:00
dependabot[bot]
ff9a19268e chore(deps): bump undici in /.github/actions/docusaurus-swizzled-warning (#10844)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 20:24:18 +00:00
dependabot[bot]
223cb06ed6 chore(deps): bump @xmldom/xmldom from 0.9.6 to 0.9.7 (#10842)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.6 to 0.9.7.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.6...0.9.7)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 19:31:13 +00:00
dependabot[bot]
0f1c6b0bc9 chore(deps): bump simple-icons from 14.2.0 to 14.3.0 (#10841)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.2.0 to 14.3.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.2.0...14.3.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 18:29:34 +00:00
Christian Bewernitz
007a7e6c47 pass matching mime type to xmldom; test [dynamicxml] (#10830)
* feat: pass matching mime type to xmldom

If the `Content-Type` header contains one of the mime types supported by `DOMParser`, the first matching mime type will be used instead of `text/xml`.

The default is still `text/xml` for cases when the header is not present or none of the mime types from the list are present.

* factor out and add tests

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2025-01-21 19:52:59 +00:00
chris48s
152b8e9a64 fix badge-maker package tests (#10809) 2025-01-18 19:16:59 +00:00
chris48s
954147f7d9 URL validator tidyup; affects [discourse dynamic endpoint gerrit jira maven nexus osslifecycle python vpm website] securityheaders sonar swagger w3c (#10810)
* add a required url validator

* replace occurrences of optionalUrl.required() with url

* use standard validators in server.js
2025-01-18 19:16:41 +00:00
chris48s
49bcb52173 allow [chromewebstore] size to contain decimal point (#10812)
* allow [chromewebstore] size to contain decimal point

* Update services/chrome-web-store/chrome-web-store-size.service.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* Update services/chrome-web-store/chrome-web-store-size.spec.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* prettier

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
2025-01-18 19:14:45 +00:00
jNullj
2c089f7ba6 fix: cypress video (#10829)
Fixes #10828

Cypress v13 had breaking changes where the default value for video and videoCompression changed from true to false.
This re-adds video using the cypress config as mentioned in the migration [docs](https://docs.cypress.io/app/references/migration-guide#Migrating-to-Cypress-130)
2025-01-18 18:09:38 +00:00
Pierre-Yves Bigourdan
4a75cf09a7 Add auth support to [Reddit] badges (#10790)
* Add auth support to [Reddit] badges

* Simplify token response schema
2025-01-18 16:13:53 +01:00
dependabot[bot]
71f553e438 chore(deps-dev): bump eslint-config-prettier from 9.1.0 to 10.0.1 (#10821)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 9.1.0 to 10.0.1.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.1)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 20:13:17 +00:00
dependabot[bot]
d0a64291ea chore(deps-dev): bump @typescript-eslint/parser from 8.19.1 to 8.20.0 (#10822)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.19.1 to 8.20.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.20.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 20:01:17 +00:00
dependabot[bot]
082ad94a2b chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.1 to 50.6.2 (#10823)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.1 to 50.6.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.1...v50.6.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 20:00:42 +00:00
dependabot[bot]
5698c29bc8 chore(deps-dev): bump eslint-plugin-prettier from 5.2.1 to 5.2.2 (#10819)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.1...v5.2.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 20:00:30 +00:00
dependabot[bot]
46e0c0952b chore(deps-dev): bump eslint from 9.17.0 to 9.18.0 (#10815)
Bumps [eslint](https://github.com/eslint/eslint) from 9.17.0 to 9.18.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 20:00:08 +00:00
Eva
ffe8d88bfd Fixed mixed up Code climate endpoints (#10813) 2025-01-17 19:59:05 +00:00
dependabot[bot]
b6621e52e6 chore(deps-dev): bump cypress from 13.17.0 to 14.0.0 (#10820)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.17.0 to 14.0.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.17.0...v14.0.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 18:22:14 +00:00
dependabot[bot]
c7970fc310 chore(deps-dev): bump lint-staged from 15.3.0 to 15.4.1 (#10826)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.3.0 to 15.4.1.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.3.0...v15.4.1)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 17:47:56 +00:00
dependabot[bot]
cc5ca5873e chore(deps): bump node-pg-migrate from 7.8.0 to 7.9.0 (#10818)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.8.0 to 7.9.0.
- [Release notes](https://github.com/salsita/node-pg-migrate/releases)
- [Changelog](https://github.com/salsita/node-pg-migrate/blob/main/CHANGELOG.md)
- [Commits](https://github.com/salsita/node-pg-migrate/compare/v7.8.0...v7.9.0)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 16:58:36 +00:00
dependabot[bot]
4994199ddf chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10824)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.47.0 to 0.48.3.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.48.3/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 16:36:43 +00:00
dependabot[bot]
0a8d844bb4 chore(deps): bump @sentry/node from 8.48.0 to 8.50.0 (#10825)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.48.0 to 8.50.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.50.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.48.0...8.50.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 16:16:10 +00:00
dependabot[bot]
b93bbe322f chore(deps-dev): bump start-server-and-test from 2.0.9 to 2.0.10 (#10816)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.9 to 2.0.10.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.9...v2.0.10)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 16:02:33 +00:00
dependabot[bot]
d77e60a0f6 chore(deps): bump qs from 6.13.1 to 6.14.0 (#10817)
Bumps [qs](https://github.com/ljharb/qs) from 6.13.1 to 6.14.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.1...v6.14.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 15:54:35 +00:00
dependabot[bot]
8dbfd58972 chore(deps): bump simple-icons from 14.1.0 to 14.2.0 (#10814)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.1.0...14.2.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 15:47:08 +00:00
Arnaud Dezandee
4ba06c0ec7 feat: add terraform registry providers and modules downloads (#10793) 2025-01-13 18:30:53 +00:00
chris48s
8cd1480e5f fix missing comma in badge-maker docs example (#10808) 2025-01-12 10:11:12 +00:00
dependabot[bot]
fb16e56c3f chore(deps-dev): bump the docusaurus-version-updates group with 2 updates (#10797)
Bumps the docusaurus-version-updates group with 2 updates: [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) and [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic).


Updates `@docusaurus/core` from 3.6.3 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus)

Updates `@docusaurus/preset-classic` from 3.6.3 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus-preset-classic)

---
updated-dependencies:
- dependency-name: "@docusaurus/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: docusaurus-version-updates
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: docusaurus-version-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 20:24:10 +00:00
dependabot[bot]
0d436c92d8 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10798)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.46.1 to 0.47.0.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.47.0/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 20:13:21 +00:00
dependabot[bot]
6d320eff48 chore(deps): bump @sentry/node from 8.47.0 to 8.48.0 (#10801)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.47.0 to 8.48.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.48.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.47.0...8.48.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 20:01:52 +00:00
dependabot[bot]
c9e799ac8c chore(deps-dev): bump @typescript-eslint/parser from 8.19.0 to 8.19.1 (#10799)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.19.0 to 8.19.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 20:01:33 +00:00
LitoMore
1664b88ee6 add support for npm 11 (#10795) 2025-01-10 19:14:15 +00:00
dependabot[bot]
973dac7f28 chore(deps): bump glob from 11.0.0 to 11.0.1 (#10800)
Bumps [glob](https://github.com/isaacs/node-glob) from 11.0.0 to 11.0.1.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.0.1)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 19:03:45 +00:00
dependabot[bot]
2127976c0f chore(deps): bump simple-icons from 14.0.1 to 14.1.0 (#10802)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.0.1 to 14.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.0.1...14.1.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 18:45:38 +00:00
Niko Diamadis
41d072e1c9 Renew [Mastodon] docs and improve parameter handling (#10789)
* refactor: handle parameter as domain and not url

* docs: update Mastodon documentation

* test: adapt Mastodon tests to changes

* style: replace substring expressions with RegEx

Co-authored-by: chris48s <chris48s@users.noreply.github.com>

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2025-01-05 16:20:11 +00:00
dependabot[bot]
1b00489f57 chore(deps-dev): bump the docusaurus-version-updates group across 1 directory with 2 updates (#10708)
* chore(deps-dev): bump the docusaurus-version-updates group across 1 directory with 2 updates

Bumps the docusaurus-version-updates group with 2 updates in the / directory: [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) and [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic).


Updates `@docusaurus/core` from 3.5.2 to 3.6.3
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.3/packages/docusaurus)

Updates `@docusaurus/preset-classic` from 3.5.2 to 3.6.3
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.3/packages/docusaurus-preset-classic)

---
updated-dependencies:
- dependency-name: "@docusaurus/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: docusaurus-version-updates
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: docusaurus-version-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump docusaurus-preset-openapi from 0.7.5 to 0.7.6

Bumps [docusaurus-preset-openapi](https://github.com/cloud-annotations/docusaurus-openapi/tree/HEAD/packages/docusaurus-preset-openapi) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/cloud-annotations/docusaurus-openapi/releases)
- [Changelog](https://github.com/cloud-annotations/docusaurus-openapi/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cloud-annotations/docusaurus-openapi/commits/v0.7.6/packages/docusaurus-preset-openapi)

---
updated-dependencies:
- dependency-name: docusaurus-preset-openapi
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2025-01-03 15:32:18 +00:00
dependabot[bot]
4f49d545fb chore(deps): bump simple-icons from 14.0.0 to 14.0.1 (#10786)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 14.0.0 to 14.0.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/14.0.0...14.0.1)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-03 15:18:36 +00:00
dependabot[bot]
68d8287b62 chore(deps-dev): bump concurrently from 9.1.1 to 9.1.2 (#10785)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 9.1.1 to 9.1.2.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v9.1.1...v9.1.2)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-03 15:09:28 +00:00
dependabot[bot]
644fb5b7b5 chore(deps-dev): bump lint-staged from 15.2.11 to 15.3.0 (#10784)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.2.11 to 15.3.0.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.2.11...v15.3.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-03 15:08:35 +00:00
dependabot[bot]
e713989884 chore(deps-dev): bump @typescript-eslint/parser from 8.18.2 to 8.19.0 (#10783)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.18.2 to 8.19.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-03 15:08:04 +00:00
Niko Diamadis
2c653013c8 Support [Matrix] summary endpoint (#10782)
* feat: add support for Matrix summary endpoint

* docs: update Matrix documentation

* refactor: abstract logic into more functions

* refactor: revert custom timeout for tests

* test: add test for fetchMode override on matrix.org

* fix: validate the fetchMode value

* docs: extend fetchMode description

* fix: add await keywords

* clarify test description

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2025-01-03 10:20:55 +00:00
chris48s
18e17233c4 update monitoring docs/links (#10780) 2025-01-01 16:26:24 +00:00
chris48s
e499030e28 Improve donate Call To Action (#10777)
* add a 'donate' page to the site

* remove offer to pay expenses

* remove suggested amount from repo CTAs
2025-01-01 16:07:58 +00:00
chris48s
de1382d44d use metric() in [coderabbit] badge (#10779) 2025-01-01 16:07:22 +00:00
chris48s
3daef194fa cache matrix badges for 4 hours (#10778) 2025-01-01 16:07:16 +00:00
github-actions[bot]
72e9322f29 Changelog for Release server-2025-01-01 (#10781)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2025-01-01 10:26:16 +00:00
Danny Yang
bf91e268d6 Add [PypiTypes] badge (#10774)
* add python typing badge

* prettier

* Update services/pypi/pypi-typing.service.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* address comments

* rename

* fix test

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
2024-12-31 16:33:36 +00:00
LitoMore
85b44b9152 feat(endpoint-badge): add logoSize support (#10132) 2024-12-31 15:45:39 +00:00
chris48s
c567f6cde4 Migrate to ESLint 9 (#10762)
* update ESLint related packages

* migrate to flat config format

* Fix prefer-const error

Fixes
'overrideLogoSize' is never reassigned. Use 'const' instead

* remove irrelevant eslint-disable comment

These comments came from a swizzled upstream
component but never did anything in our codebase.

ESLint 9 does not allow disable comments
for rules that are not registered.

* remove irrelevant eslint-disable comments

These were here because in the past we were applying
mocha lint rules to files which contained no tests

ESLint 9 now flags eslint-disable comments
that aren't doing anythings

* remove irrelevant eslint-disable comment

ESLint 9 now flags eslint-disable comments
that aren't doing anything

* there are no .tsx files in our code any more

* include .mjs files in linting and formatting

* update sort-class-members rule for openApi property

and update the handful of files violating it
2024-12-31 13:54:25 +00:00
chris48s
7108e08670 use isDecimalPercentage in tests for github/lab top lang (#10752) 2024-12-31 13:25:38 +00:00
Pierre-Yves Bigourdan
b4c21fd65d Fix [JiraSprint] tests (#10746)
* Fix [JiraSprint] tests

* Switch to https URLs
2024-12-30 16:38:02 +00:00
LitoMore
00c73c872d fix auto-sized logo sizes (#10764) 2024-12-29 17:04:24 +00:00
LitoMore
e6b66a8865 fix parseDate() test for different timezones (#10765) 2024-12-29 16:50:17 +00:00
jNullj
56b9c78b65 docs: add blog post for Simple Icons 14 upgrade (#10773)
* docs: add blog post for Simple Icons 14 upgrade

* fix: simpleicons release renames

some of the removed icons are added in the release notes as new with a new name, these are marked as renamed with this commit.

* Update frontend/blog/2024-12-27-simpleicons14.md

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-12-29 16:44:40 +00:00
Aravind Putrevu
cb309028db Add [Coderabbit] PR Stats service and tests (#10749)
* Add Coderabbit PR Stats service and tests

- Implemented a new service `CoderabbitStats` to fetch and display pull request statistics from the CodeRabbit API.
- Created a corresponding tester file to validate the service's functionality, including tests for valid repositories, repository not found, and server errors.
- The service returns a badge with the number of PRs and appropriate error messages based on the API response.

This addition enhances the analysis capabilities of the application by integrating CodeRabbit statistics.

* Refactor CoderabbitStats service to track reviews instead of PRs

- Updated the service to fetch and display the number of reviews from the CodeRabbit API, changing the schema and badge labels accordingly.
- Modified the tester file to reflect the new endpoint and expected responses, including regex for message validation.
- Enhanced error handling in the service to return more descriptive error messages for invalid repositories and server errors.

This change improves the accuracy of the statistics provided by the service, aligning it with the intended functionality of tracking reviews.

* Enhance CodeRabbitStats service and tests

- Updated the CodeRabbitStats service to include OpenAPI documentation and improved error handling for repository not found scenarios.
- Changed badge label from 'CodeRabbit' to 'CodeRabbit Reviews' for clarity.
- Modified the tester file to reflect the new badge format and error messages, ensuring consistency with the service updates.
- Adjusted regex patterns for message validation in tests.

These changes improve the usability and accuracy of the CodeRabbit statistics service.

* Update services/coderabbit/coderabbit-stats.tester.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* Addressed codereview comments, changed tests.

* Fix label casing in CodeRabbitStats service and tests

* Update services/coderabbit/coderabbit-stats.service.js

Co-authored-by: chris48s <chris48s@users.noreply.github.com>

* Update CodeRabbitStats service and tests to improve error messaging

- Changed example section in CodeRabbitStats service from 'github, gitlab, bitbucket' to 'github' as per review comment.
- Updated error message for 404 response to 'provider or repo not found', to reflect the right code.

* Added github, gitlab, bitbucket to provider.

* Changing names to match the service name, removing unneeded test.

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-12-29 16:35:31 +00:00
dependabot[bot]
7174c5ad17 chore(deps-dev): bump @typescript-eslint/parser from 8.18.1 to 8.18.2 (#10770)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.18.1 to 8.18.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.2/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-29 16:27:12 +00:00
dependabot[bot]
8f8eff5e2f chore(deps-dev): bump eslint-plugin-react from 7.37.2 to 7.37.3 (#10767)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.37.2 to 7.37.3.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.2...v7.37.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-29 16:26:50 +00:00
dependabot[bot]
d4090a2665 chore(deps-dev): bump concurrently from 9.1.0 to 9.1.1 (#10768)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 9.1.0 to 9.1.1.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v9.1.0...v9.1.1)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-27 16:07:45 +00:00
dependabot[bot]
53eab46666 chore(deps): bump chalk from 5.4.0 to 5.4.1 (#10769)
Bumps [chalk](https://github.com/chalk/chalk) from 5.4.0 to 5.4.1.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v5.4.0...v5.4.1)

---
updated-dependencies:
- dependency-name: chalk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-27 16:00:02 +00:00
dependabot[bot]
2b90459bb4 chore(deps): bump simple-icons from 13.21.0 to 14.0.0 (#10771)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.21.0 to 14.0.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.21.0...14.0.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-27 13:54:02 +00:00
Jeevan Joshi
0cbc1319ce add [PUB] downloads badge (#10745)
* add PUB downloads badge

* test PUB downloads badge

* add PUB monthly downloads badge

* test PUB monthly downloads badge

* revert color override
2024-12-23 09:47:17 +00:00
dependabot[bot]
ac01fdefcc chore(deps-dev): bump cypress from 13.16.1 to 13.17.0 (#10755)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.16.1 to 13.17.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.16.1...v13.17.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 19:34:22 +00:00
dependabot[bot]
3d6c438df2 chore(deps): bump @sentry/node from 8.45.0 to 8.47.0 (#10756)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.45.0 to 8.47.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.47.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.45.0...8.47.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 19:34:01 +00:00
dependabot[bot]
a729e65393 chore(deps-dev): bump @typescript-eslint/parser from 8.18.0 to 8.18.1 (#10758)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.18.0 to 8.18.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 19:33:38 +00:00
dependabot[bot]
c4c0c2c6f6 chore(deps): bump fast-xml-parser from 4.5.0 to 4.5.1 (#10754)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.5.0...v4.5.1)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 16:15:27 +00:00
dependabot[bot]
e4eb6cb6c4 chore(deps): bump chalk from 5.3.0 to 5.4.0 (#10759)
Bumps [chalk](https://github.com/chalk/chalk) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v5.3.0...v5.4.0)

---
updated-dependencies:
- dependency-name: chalk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 15:15:18 +00:00
dependabot[bot]
c4b6b7923b chore(deps): bump graphql from 16.9.0 to 16.10.0 (#10761)
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.9.0 to 16.10.0.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v16.9.0...v16.10.0)

---
updated-dependencies:
- dependency-name: graphql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 14:58:24 +00:00
dependabot[bot]
d1058bc73d chore(deps): bump simple-icons from 13.20.0 to 13.21.0 (#10757)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.20.0 to 13.21.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.20.0...13.21.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 12:48:33 +00:00
Brijesh Kumar
f643515ee1 Add [GitLab] Top Language Badge (#10750)
* Add: GitLab Top Languages Badge

* Fix: Doc heading

* Add: Test cases + Rename service

* Update: Test URL

* Update: Requested Changes
2024-12-20 10:49:46 +00:00
chris48s
21a059d9a8 provide a non-repository scoped version of [githubcodesearch] (#10733)
and redirect /search/user/repo/q
to /search?query=q%20repo:user/repo

Co-authored-by: ccoVeille <3875889+ccoVeille@users.noreply.github.com>
2024-12-15 20:16:19 +00:00
dependabot[bot]
7c067fdcbf chore(deps): bump simple-icons from 13.19.0 to 13.20.0 (#10737)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.19.0 to 13.20.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.19.0...13.20.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:16:54 +00:00
dependabot[bot]
f6fde2b78b chore(deps-dev): bump prism-react-renderer from 2.4.0 to 2.4.1 (#10735)
Bumps [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/FormidableLabs/prism-react-renderer/releases)
- [Commits](https://github.com/FormidableLabs/prism-react-renderer/compare/prism-react-renderer@2.4.0...prism-react-renderer@2.4.1)

---
updated-dependencies:
- dependency-name: prism-react-renderer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:16:20 +00:00
dependabot[bot]
1da19cffaa chore(deps-dev): bump nodemon from 3.1.7 to 3.1.9 (#10734)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.7 to 3.1.9.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.7...v3.1.9)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:15:11 +00:00
dependabot[bot]
e1d0ab10ae chore(deps-dev): bump c8 from 10.1.2 to 10.1.3 (#10738)
Bumps [c8](https://github.com/bcoe/c8) from 10.1.2 to 10.1.3.
- [Release notes](https://github.com/bcoe/c8/releases)
- [Changelog](https://github.com/bcoe/c8/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bcoe/c8/compare/v10.1.2...v10.1.3)

---
updated-dependencies:
- dependency-name: c8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:14:56 +00:00
dependabot[bot]
e3f382114e chore(deps-dev): bump start-server-and-test from 2.0.8 to 2.0.9 (#10740)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.8 to 2.0.9.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.8...v2.0.9)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:14:40 +00:00
dependabot[bot]
ab16aa3c03 chore(deps): bump @sentry/node from 8.42.0 to 8.45.0 (#10736)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.42.0 to 8.45.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.42.0...8.45.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:03:41 +00:00
dependabot[bot]
deaf85f6fc chore(deps-dev): bump node-mocks-http from 1.16.1 to 1.16.2 (#10741)
Bumps [node-mocks-http](https://github.com/eugef/node-mocks-http) from 1.16.1 to 1.16.2.
- [Release notes](https://github.com/eugef/node-mocks-http/releases)
- [Changelog](https://github.com/eugef/node-mocks-http/blob/master/HISTORY.md)
- [Commits](https://github.com/eugef/node-mocks-http/compare/v1.16.1...v1.16.2)

---
updated-dependencies:
- dependency-name: node-mocks-http
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:02:44 +00:00
dependabot[bot]
d481322a3f chore(deps-dev): bump eslint-plugin-jsdoc from 50.6.0 to 50.6.1 (#10739)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.6.0 to 50.6.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.0...v50.6.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:02:20 +00:00
dependabot[bot]
71cddb7abc chore(deps-dev): bump lint-staged from 15.2.10 to 15.2.11 (#10743)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.2.10 to 15.2.11.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.2.10...v15.2.11)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:01:43 +00:00
dependabot[bot]
1756cb834e chore(deps-dev): bump @typescript-eslint/parser from 8.17.0 to 8.18.0 (#10742)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.17.0 to 8.18.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 17:01:25 +00:00
chris48s
fb816ecf93 Upgrade to Chai 5.x (#10732)
* remove chai-string plugin

* upgrade chai and sinon-chai

* update chai imports

* migrate badge-maker tests to ESM
2024-12-11 19:28:45 +00:00
Hervé Boutemy
075f1b450e [ReproducibleCentral] add Reproducible Central in Dependencies (#10705)
* add Reproducible Central in Dependencies

* first updates based on feedback

* use new artifact-level json data = map version -> RB result

* fix unit tests

* improve code with provided snippets: thank you

* add description
2024-12-11 08:07:39 +00:00
dependabot[bot]
d7bb13c0bc chore(deps-dev): bump cypress from 13.16.0 to 13.16.1 (#10723)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.16.0 to 13.16.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.16.0...v13.16.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-07 11:46:44 +00:00
dependabot[bot]
f79ed50c9b chore(deps-dev): bump mocha from 10.8.2 to 11.0.1 (#10725)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.8.2 to 11.0.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v10.8.2...v11.0.1)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-07 11:46:25 +00:00
dependabot[bot]
0d08f2ef50 chore(deps): bump @sentry/node from 8.41.0 to 8.42.0 (#10730)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.41.0 to 8.42.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.41.0...8.42.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-07 11:45:38 +00:00
dependabot[bot]
a87e1c32fb chore(deps): bump byte-size from 9.0.0 to 9.0.1 (#10722)
Bumps [byte-size](https://github.com/75lb/byte-size) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/75lb/byte-size/releases)
- [Commits](https://github.com/75lb/byte-size/compare/v9.0.0...v9.0.1)

---
updated-dependencies:
- dependency-name: byte-size
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-07 11:22:38 +00:00
dependabot[bot]
f48a205032 chore(deps-dev): bump @typescript-eslint/parser from 8.16.0 to 8.17.0 (#10729)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.16.0 to 8.17.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.17.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 18:15:12 +00:00
dependabot[bot]
6b6cc3ac70 chore(deps): bump @xmldom/xmldom from 0.9.5 to 0.9.6 (#10728)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.5 to 0.9.6.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.5...0.9.6)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 17:53:13 +00:00
dependabot[bot]
ab7aaff60e chore(deps-dev): bump prettier from 3.4.1 to 3.4.2 (#10719)
Bumps [prettier](https://github.com/prettier/prettier) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 17:28:08 +00:00
dependabot[bot]
e5dbfe7ea5 chore(deps): bump simple-icons from 13.18.0 to 13.19.0 (#10726)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.18.0 to 13.19.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.18.0...13.19.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 14:55:54 +00:00
chris48s
bed8a63d76 add a privacy policy (#10715)
* add a privacy policy

* formatting fix
2024-12-02 18:21:42 +00:00
chris48s
151c70dd17 Add ability to format bytes as metric or IEC; affects [bundlejs bundlephobia ChromeWebStoreSize CratesSize DockerSize GithubRepoSize GithubCodeSize GithubSize NpmUnpackedSize SpigetDownloadSize steam VisualStudioAppCenterReleasesSize whatpulse] (#10547)
* add renderSizeBadge helper, use it everywhere

- switch from pretty-bytes to byte-size
- add renderSizeBadge() helper function
- match upstream conventions for metric/IEC units
- add new test helpers and use them in service tests

* unrelated: fix npm unpacked size query param schema

not strictly related to this PR
but I noticed it was broken

* chromewebstore: reformat size string, test against isIecFileSize
2024-12-01 19:53:26 +00:00
chris48s
b7d7f4545d enable auto suspend/resume (#10699) 2024-12-01 19:37:19 +00:00
github-actions[bot]
2a20f813df Changelog for Release server-2024-12-01 (#10716)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-12-01 12:39:41 +00:00
dependabot[bot]
3b465533fd chore(deps): bump simple-icons from 13.17.0 to 13.18.0 (#10712)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.17.0 to 13.18.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.17.0...13.18.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:44:01 +00:00
dependabot[bot]
df719ea2db chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10711)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.45.0 to 0.46.1.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.46.1/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:43:57 +00:00
dependabot[bot]
9ee8ee8cbf chore(deps): bump got from 14.4.4 to 14.4.5 (#10713)
Bumps [got](https://github.com/sindresorhus/got) from 14.4.4 to 14.4.5.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.4.4...v14.4.5)

---
updated-dependencies:
- dependency-name: got
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:32:40 +00:00
dependabot[bot]
def3007602 chore(deps): bump @sentry/node from 8.40.0 to 8.41.0 (#10710)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.40.0 to 8.41.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.40.0...8.41.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:32:19 +00:00
dependabot[bot]
7d7f70b4b5 chore(deps-dev): bump @typescript-eslint/parser from 8.15.0 to 8.16.0 (#10709)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.15.0 to 8.16.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.16.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:30:50 +00:00
dependabot[bot]
2ded4aa7b6 chore(deps-dev): bump prettier from 3.3.3 to 3.4.1 (#10714)
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.3 to 3.4.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:30:25 +00:00
dependabot[bot]
da2745d523 chore(deps-dev): bump chai-as-promised from 8.0.0 to 8.0.1 (#10707)
Bumps [chai-as-promised](https://github.com/chaijs/chai-as-promised) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/chaijs/chai-as-promised/releases)
- [Commits](https://github.com/chaijs/chai-as-promised/compare/v8.0.0...v8.0.1)

---
updated-dependencies:
- dependency-name: chai-as-promised
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:30:02 +00:00
dependabot[bot]
1338bf3192 chore(deps-dev): bump eslint-plugin-jsdoc from 50.5.0 to 50.6.0 (#10706)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.5.0 to 50.6.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.5.0...v50.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-29 13:29:37 +00:00
jNullj
e8e253d21e remove obsolete [CratesSize] test for null size (#10688)
* remove obsolete test for version without size

changes upstream removed all null crate_size
see also rust-lang/crates.io#9926

* remove null handling in CratesSize service
2024-11-26 21:01:29 +00:00
jNullj
60aa530966 fix [DockerVersion] service test (#10690)
* Update docker version tester to check Python instead of Memcached

Memcached tags don't follow semver, might fail depending on which  tag was last added.
Python seems to follow semver for all tags.
fixes #10689

* Update docker version tester to check docker-dev instead of python

its a depricated image and is not expected to change tags
tag is semver

* Update docker version tester to check example-voting-app-vote

deprecated yet by docker, i think we can count on that to be stable
2024-11-26 20:33:46 +00:00
dependabot[bot]
9447077c08 chore(deps): bump @sentry/node from 8.38.0 to 8.40.0 (#10691)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.38.0 to 8.40.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.38.0...8.40.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 17:23:11 +00:00
dependabot[bot]
b60d738999 chore(deps-dev): bump cypress from 13.15.2 to 13.16.0 (#10695)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.15.2 to 13.16.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.2...v13.16.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 16:59:48 +00:00
dependabot[bot]
85fb206c8b chore(deps-dev): bump @typescript-eslint/parser from 8.14.0 to 8.15.0 (#10696)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.14.0 to 8.15.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.15.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 16:38:42 +00:00
dependabot[bot]
d1210e2311 chore(deps): bump jsonpath-plus from 10.1.0 to 10.2.0 (#10693)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) from 10.1.0 to 10.2.0.
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/compare/v10.1.0...v10.2.0)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 16:13:16 +00:00
dependabot[bot]
85dd5a599f chore(deps): bump qs from 6.13.0 to 6.13.1 (#10698)
Bumps [qs](https://github.com/ljharb/qs) from 6.13.0 to 6.13.1.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.13.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 15:36:50 +00:00
dependabot[bot]
e108e40930 chore(deps): bump simple-icons from 13.16.0 to 13.17.0 (#10697)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.16.0 to 13.17.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.16.0...13.17.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 15:23:43 +00:00
dependabot[bot]
eaa4317039 chore(deps): bump smol-toml from 1.3.0 to 1.3.1 (#10694)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/commits)

---
updated-dependencies:
- dependency-name: smol-toml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 14:54:08 +00:00
chris48s
5cdef88bcc Add renderDateBadge helper; affects [aur BitbucketLastCommit chrome date eclipse factorio galaxytoolshed GiteaLastCommit GistLastCommit GithubCreatedAt GithubHacktoberfest GithubIssueDetail GithubLastCommit GithubReleaseDate GitlabLastCommit maven npm openvsx snapcraft SourceforgeLastCommit steam vaadin visualstudio wordpress] (#10682)
* add and consistently use parseDate and renderDateBadge helpers

also move

- age
- formatDate
- formatRelativeDate

to date.js

* fix bug in wordpress last update badge

* validate in formatDate() and age()

it is going to be unlikely we'll invoke either of these
directly now, but lets calidate here too

* remove unusued imports

* reverse colours for galaxy toolshed
2024-11-17 13:15:28 +00:00
chris48s
4132ca2e7e Add blog post about token pool, improve 'authorise our app' CTA (#10683)
* Add blog post about token pool, improve 'authorise our app' CTA

* simplify first sentence
2024-11-16 16:50:04 +00:00
dependabot[bot]
e1541acc11 chore(deps): bump @renovatebot/ruby-semver from 3.0.23 to 4.0.0 (#10677)
Bumps [@renovatebot/ruby-semver](https://github.com/renovatebot/ruby-semver) from 3.0.23 to 4.0.0.
- [Release notes](https://github.com/renovatebot/ruby-semver/releases)
- [Changelog](https://github.com/renovatebot/ruby-semver/blob/main/.releaserc.json)
- [Commits](https://github.com/renovatebot/ruby-semver/compare/3.0.23...4.0.0)

---
updated-dependencies:
- dependency-name: "@renovatebot/ruby-semver"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:26:36 +00:00
dependabot[bot]
f5dd749ae0 chore(deps-dev): bump eslint-plugin-jsdoc from 50.4.3 to 50.5.0 (#10680)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.4.3 to 50.5.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.3...v50.5.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:11:38 +00:00
dependabot[bot]
ef17850f7e chore(deps-dev): bump @typescript-eslint/parser from 8.13.0 to 8.14.0 (#10679)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.13.0 to 8.14.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.14.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:11:20 +00:00
dependabot[bot]
5bde4266c8 chore(deps): bump node-pg-migrate from 7.7.1 to 7.8.0 (#10676)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.7.1 to 7.8.0.
- [Release notes](https://github.com/salsita/node-pg-migrate/releases)
- [Changelog](https://github.com/salsita/node-pg-migrate/blob/main/CHANGELOG.md)
- [Commits](https://github.com/salsita/node-pg-migrate/compare/v7.7.1...v7.8.0)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:10:57 +00:00
dependabot[bot]
e57edb42bd chore(deps): bump @sentry/node from 8.37.1 to 8.38.0 (#10674)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.37.1 to 8.38.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.37.1...8.38.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:10:29 +00:00
dependabot[bot]
69f9251e1c chore(deps-dev): bump nock from 13.5.5 to 13.5.6 (#10675)
Bumps [nock](https://github.com/nock/nock) from 13.5.5 to 13.5.6.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.5.5...v13.5.6)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 21:09:36 +00:00
dependabot[bot]
39d3fd332b chore(deps): bump @renovatebot/pep440 from 3.0.20 to 4.0.1 (#10678)
Bumps [@renovatebot/pep440](https://github.com/renovatebot/pep440) from 3.0.20 to 4.0.1.
- [Release notes](https://github.com/renovatebot/pep440/releases)
- [Changelog](https://github.com/renovatebot/pep440/blob/main/.releaserc.json)
- [Commits](https://github.com/renovatebot/pep440/compare/3.0.20...4.0.1)

---
updated-dependencies:
- dependency-name: "@renovatebot/pep440"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 19:36:10 +00:00
chris48s
58f5b99fea remove 'operations' section from README (#10673) 2024-11-14 20:20:34 +00:00
chris48s
20959b15db add jNullj, remove inactive maintainers (#10672) 2024-11-14 18:21:04 +00:00
chris48s
cbb7ab5e8b reduce overhead of NPM Last Update badge; test [npm] (#10666)
* reduce overhead of [NpmLastUpdate] badge

* use buildRoute for version without tag
2024-11-13 19:02:48 +00:00
chris48s
2bd926e65f rename postfix param to suffix (#10667) 2024-11-11 19:34:08 +00:00
jNullj
04638ab0ee Refactor - use renderVersionBadge - part 4 [githubrelease githubtag] (#10656)
* feat: add forcePrerelease option to renderVersionBadge function

Sometimes API would indicate if a version is pre-release while the version number does not have to be semantically a prerelease like in github-release service.
We don't use a isPrerelease that can also force a non-preleases as we trust here developer semantic over API tagging.

* refactor: GithubRelease to use renderVersionBadge

* refactor: GithubTag use renderVersionBadge

* refactor: change forcePrerelease to isPrerelease
2024-11-11 19:16:14 +00:00
jNullj
4d203e1937 fix [githubpipenv] service tests (#10658)
* fix failing test 'Locked version of VCS dependency'

replaced tested package which is missing with another example

* Add regex validator for commit hash format

* fix vcs dependency test to use pipenv's pypiserver
2024-11-11 19:15:35 +00:00
dependabot[bot]
6219c6da82 chore(deps-dev): bump cypress from 13.15.1 to 13.15.2 (#10661)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.15.1 to 13.15.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.1...v13.15.2)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:42:45 +00:00
dependabot[bot]
a16cf24b52 chore(deps): bump simple-icons from 13.15.0 to 13.16.0 (#10660)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.15.0 to 13.16.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.15.0...13.16.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:36:52 +00:00
dependabot[bot]
d3a1ef2ff7 chore(deps): bump @sentry/node from 8.36.0 to 8.37.1 (#10665)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.36.0 to 8.37.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.36.0...8.37.1)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:28:43 +00:00
dependabot[bot]
32b1e341d7 chore(deps-dev): bump @typescript-eslint/parser from 8.12.2 to 8.13.0 (#10664)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.12.2 to 8.13.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.13.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:28:23 +00:00
dependabot[bot]
2d5b72b207 chore(deps-dev): bump concurrently from 9.0.1 to 9.1.0 (#10663)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 9.0.1 to 9.1.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v9.0.1...v9.1.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:28:08 +00:00
dependabot[bot]
0c4fed4dc6 chore(deps): bump got from 14.4.3 to 14.4.4 (#10662)
Bumps [got](https://github.com/sindresorhus/got) from 14.4.3 to 14.4.4.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.4.3...v14.4.4)

---
updated-dependencies:
- dependency-name: got
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-10 13:27:48 +00:00
jNullj
8af909d118 fix [githubmanifest] service tests (#10657)
* Change badge label from 'version' to 'manifest' in GitHub manifest tests

* revert version label for failed paths
2024-11-10 13:09:27 +00:00
anatawa12
00d72da97e add [WingetVersion] Badge (#10245)
* feat: add winget version badge

* chore: accept dotted path instead of slashed

* test: add test for winget-version

* fix: remove debug code

* chore: use winget-specific version compare algorithm

* fix: support latest and unknown

* fix(winget/version): trailing '.0' handling is incorrect

* fix(winget/version): latest returns last newest version instead of the first newest version

* fix(winget/version): confusing subpackage and version name

* fix(winget/version): example for latest is incorrect

* add a couple of extra test cases for latest()

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2024-11-04 19:05:32 +00:00
usr3
4ec62fa445 Fix broken URL for pingpong.one (#10655)
Fix broken URL for https://pingpong.one for uptime status monitoring.
2024-11-04 11:40:03 +00:00
Pierre-Yves Bigourdan
57520a974f Remove [Nuget MyGet] color tests (#10654) 2024-11-02 18:34:25 +00:00
Ambati Mohan Kumar
8c7872a666 [npm] - Last update badge added (#10641)
* Added npm last update badge

* extended NpmBase class instead of BaseJsonService.

* added scoped packages to last update.

* introduced additionalQueryParamSchema

this is to add other query params schema, other than the one present in NpmBase.

* removed version query param

* in absence of modified date, it'll fetch created.

* removed version query param.

* added dist-tags.

* Update services/npm/npm-last-update.service.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* refactored handle method for dist-tags.

* Update services/npm/npm-last-update.service.js

Co-authored-by: chris48s <chris48s@users.noreply.github.com>

* added date validation check.

* added date validation check.

* added date validation check.

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-11-02 17:37:07 +00:00
Pierre-Yves Bigourdan
ad82f7647a Add YouTube-specific privacy notes (#10646) 2024-11-02 11:20:57 +00:00
github-actions[bot]
43940aeeae Changelog for Release server-2024-11-02 (#10653)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-11-02 10:32:32 +00:00
dependabot[bot]
d05172557d chore(deps): bump simple-icons from 13.14.1 to 13.15.0 (#10651)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.14.1 to 13.15.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.14.1...13.15.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 10:00:46 +00:00
dependabot[bot]
4aa9aa339e chore(deps): bump @xmldom/xmldom from 0.9.4 to 0.9.5 (#10652)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.4 to 0.9.5.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.4...0.9.5)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 09:54:31 +00:00
dependabot[bot]
91e4f4a78a chore(deps-dev): bump @typescript-eslint/parser from 8.11.0 to 8.12.2 (#10650)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.11.0 to 8.12.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.12.2/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 09:51:55 +00:00
dependabot[bot]
383812e160 chore(deps): bump @sentry/node from 8.35.0 to 8.36.0 (#10649)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.35.0 to 8.36.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.35.0...8.36.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 09:51:34 +00:00
dependabot[bot]
20ab5255cd chore(deps-dev): bump mocha from 10.7.3 to 10.8.2 (#10648)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.7.3 to 10.8.2.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v10.7.3...v10.8.2)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 09:51:09 +00:00
chris48s
20ae47e5ff cleanly handle null or undefined result from jsonpath-plus (#10645) 2024-11-02 09:50:34 +00:00
chris48s
62430392f8 add content security policy header to SVG responses (#10642) 2024-10-27 15:09:26 +00:00
jNullj
cc90c190f2 Refactor - use renderVersionBadge - part 3 [luarocks gitlab nuget feedz] (#10630)
* Refactor luarocks to use renderVersionBadge

Loarocks does not appear to have version conventions and there are no issues in history that require usage of existing color usage.
For better consistency use color scheme as the rest of the badges.

Also add scm and cvs as preview in renderVersionBadge

* add missing test for version color formatter

* refactor nuget to use renderVersionBadge

* Refactor GitlabTag to use renderVersionBadge

* add comment about non-standard render of coljarsVersion

* Refactor FeedzVersionService to use renderVersionBadge from version.js

* Refactor nuget.tester.js to remove unnecessary version tests

* add missing label in gitlab-tag.spec
2024-10-27 13:35:03 +00:00
dependabot[bot]
48e25771ee chore(deps-dev): bump @mdx-js/react from 3.0.1 to 3.1.0 (#10631)
Bumps [@mdx-js/react](https://github.com/mdx-js/mdx/tree/HEAD/packages/react) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/mdx-js/mdx/releases)
- [Changelog](https://github.com/mdx-js/mdx/blob/main/changelog.md)
- [Commits](https://github.com/mdx-js/mdx/commits/3.1.0/packages/react)

---
updated-dependencies:
- dependency-name: "@mdx-js/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:34:06 +00:00
dependabot[bot]
fe2d2fbb44 chore(deps): bump simple-icons from 13.14.0 to 13.14.1 (#10639)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.14.0 to 13.14.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.14.0...13.14.1)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:33:26 +00:00
dependabot[bot]
d87673f6a8 chore(deps-dev): bump eslint-plugin-react from 7.37.1 to 7.37.2 (#10635)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.37.1 to 7.37.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.1...v7.37.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:28:36 +00:00
dependabot[bot]
ffee2e103c chore(deps-dev): bump jsdoc from 4.0.3 to 4.0.4 (#10632)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/4.0.4/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:23:12 +00:00
dependabot[bot]
bbc8c2035f chore(deps): bump pg from 8.13.0 to 8.13.1 (#10634)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.13.0 to 8.13.1.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.13.1/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:22:37 +00:00
dependabot[bot]
caa3ffef39 chore(deps-dev): bump cypress from 13.15.0 to 13.15.1 (#10633)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.15.0 to 13.15.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.0...v13.15.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:22:24 +00:00
dependabot[bot]
d37d6c8aab chore(deps-dev): bump @typescript-eslint/parser from 8.10.0 to 8.11.0 (#10636)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.10.0 to 8.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.11.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:21:26 +00:00
dependabot[bot]
51de256952 chore(deps): bump jsonpath-plus from 10.0.6 to 10.1.0 (#10638)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) from 10.0.6 to 10.1.0.
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/compare/v10.0.6...v10.1.0)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:20:38 +00:00
dependabot[bot]
3c7f38861a chore(deps-dev): bump eslint-plugin-sort-class-members (#10637)
Bumps [eslint-plugin-sort-class-members](https://github.com/bryanrsmith/eslint-plugin-sort-class-members) from 1.20.0 to 1.21.0.
- [Release notes](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/releases)
- [Commits](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/compare/v1.20.0...v1.21.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-sort-class-members
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:20:12 +00:00
dependabot[bot]
85e4ee6b2b chore(deps): bump @sentry/node from 8.34.0 to 8.35.0 (#10640)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.34.0 to 8.35.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.34.0...8.35.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 13:19:35 +00:00
Ambati Mohan Kumar
5e40080099 [Scoop] Added scoop-license badge. (#10627)
* scoop-license service is added.

* refactored scoop badges - added scoop base

* refactor - description changed to base class.

* refactor - description changed to base class.

* Update services/scoop/scoop-license.tester.js

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>

* refactor - buckets variable is moved to base class, also updated tester with createTestService.

* moved queryParamSchema to base class.

---------

Co-authored-by: jNullj <15849761+jNullj@users.noreply.github.com>
2024-10-25 16:35:16 +00:00
dependabot[bot]
28bee8681a chore(deps): bump jsonpath-plus from 10.0.0 to 10.0.6 (#10620)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) from 10.0.0 to 10.0.6.
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/commits)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 15:12:40 +00:00
dependabot[bot]
17a50b81e4 chore(deps): bump simple-icons from 13.13.0 to 13.14.0 (#10623)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.13.0 to 13.14.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.13.0...13.14.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 15:02:22 +00:00
dependabot[bot]
d186f7cfb5 chore(deps): bump @xmldom/xmldom from 0.9.3 to 0.9.4 (#10624)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.3 to 0.9.4.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.3...0.9.4)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 14:53:45 +00:00
dependabot[bot]
8ba3a74aa2 chore(deps-dev): bump @typescript-eslint/parser from 8.8.1 to 8.10.0 (#10626)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.8.1 to 8.10.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.10.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 14:53:10 +00:00
dependabot[bot]
9d22508df1 chore(deps-dev): bump eslint-plugin-cypress from 3.5.0 to 3.6.0 (#10625)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 14:48:56 +00:00
dependabot[bot]
d79879cd75 chore(deps-dev): bump eslint-plugin-jsdoc from 50.3.1 to 50.4.3 (#10621)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.3.1 to 50.4.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.1...v50.4.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 14:48:20 +00:00
Aiden Gardner
4e4e3f82c6 [Chromewebstore] Extension size & last updated (#10613)
* Bump webextension-store-meta

* Add extension last updated

* Add extension size

* Run linter

* Rename last updated badge
2024-10-21 08:22:43 +00:00
jNullj
04f4fbd156 Deprecate HackageDeps service (#10618)
HackageDeps will allways return a landing page with 200 and no text about outdated packages.
The site is down and looking for someone to take over.
Therefor api information is false and non functional.
2024-10-20 20:05:23 +00:00
jNullj
66631524c5 Add [CratesUserDownloads] service and tester (#10619)
* add jsdoc for crates fetch func

* add BaseCratesUserService for user stats api route

part of solution for #10614

* Add CratesUserDownloads service and tester

This commit adds the CratesUserDownloads service and tester files. The CratesUserDownloads service shows the user total downloads at Crates.io.

as requested by #10614

* render userid in code block

* add non-exsistent user CratesUserDownloads test

userid for API usage is int32, therefor to minimize chance of user taking the id used the max value for int32 is used.

* fixed typo
2024-10-20 20:03:54 +00:00
jNullj
e7d76b117e refactor - usage renderVersionBadge - part 2 [amo archlinux aur bower cdnjs chromewebstore cocoapods conan conda cookbook cpan cran crates ctan curseforge debian docker dub eclipsemarketplace elmpackage f-droid factorio fedora feedz flathub galaxytoolshed gem gitea github gitlab greasyfork hackage hexpm homebrew itunes jenkins jetbrains jitpack jsr mavenmetadata modrinth nexus npm nuget openvsx opm ore packagist piwheels polymart pub puppetforge pypi ros scoop snapcraft spack spiget thunderstore twitch ubuntu vaadindirectory vcpkg visualstudioappcenter visualstudiomarketplace vpm wordpress] (#10615)
* use defaultLabel in renderVersionBadge without tag

As we refactor the codebase to use renderVersionBadge.
some badges need to show default label regardless of tag existance.
This is usefull for cases where the label is dynamic.

This change requires fixing test for npm, not sure how it worked before.

* Refactor AurVersion to use renderVersionBadge

part of #2026

* Refactor CondaVersion to use renderVersionBadge

part of #2026

* Refactor WordpressRequiresVersion to use renderVersionBadge

* add postfix option to renderVersionBadge

* add missing tests for renderVersionBadge

add defaultLabel without tag test
add postfix test
add test for all options together

* Refactor WordpressPluginTestedVersion to use renderVersionBadge

* add prefix override to renderVersionBadge

adds tests for all options with prefix as well

used for #2026 but also usefull for usage letting people override v prefix for versions all over the project once #2026 is done as requested for example in #10574

* Refactor RequiresPHPVersionForType to use renderVersionBadge
2024-10-20 21:55:58 +02:00
chris48s
868643ee6c set VM size to shared-cpu-1x/256Mb on staging apps (#10617) 2024-10-17 16:24:50 +00:00
jNullj
0a57af28bd update failing test to use package iptables (#10616)
use iptables as its a stable long term package that uses more standard version numbers
archlinux uses upstream versions which makes version regex for tests hard to predict
2024-10-16 17:36:29 +00:00
Ambati Mohan Kumar
1d2bf19100 [Snapcraft] - Added snapcraft last update badge (#10610)
* Added badge for Maven-Cenral last update.

* Update services/maven-central/maven-central-last-update.service.js

Co-authored-by: chris48s <chris48s@users.noreply.github.com>

* updated according to the review comments.

* added Snapcraft last updated badges.

* made changes according to the review.

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-10-14 05:48:16 +00:00
Pierre-Yves Bigourdan
d502e7031f [GitHubHacktoberfest] 2024 support (#10612) 2024-10-13 18:15:07 +00:00
jNullj
a8a1e77433 change nexus test for valid version (#10609) 2024-10-13 17:11:40 +00:00
jNullj
d00c4de4a3 Refactor version rendering in [wordpress nexus] and [f-droid] services (#10608)
* Refactor version rendering in f-droid, nexus, and wordpress services

* add missing label in nexus test
2024-10-13 19:10:17 +02:00
valkyrie_pilot
9ab1a906b2 Add option for IDs to have a prefix (#10576)
* Add option for IDs to have a prefix

* Switch to suffixes to protect ID values

* Document idSuffix

* Fix validation error message consistency

* Fix ID suffix regex test

* Add tests

* snapshot tests for idSuffix covering all 5 badge styles

* tweak docs

* update typescript definitions

* badge-maker 4.1.0 release

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2024-10-13 16:47:50 +00:00
dependabot[bot]
5580b1cd5c chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10606)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.44.5 to 0.45.0.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.45.0/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:46:04 +00:00
dependabot[bot]
f28578f4e8 chore(deps): bump simple-icons from 13.12.0 to 13.13.0 (#10605)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.12.0 to 13.13.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.12.0...13.13.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:43:11 +00:00
dependabot[bot]
68e5eb6b8b chore(deps): bump query-string from 9.1.0 to 9.1.1 (#10604)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 9.1.0 to 9.1.1.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v9.1.0...v9.1.1)

---
updated-dependencies:
- dependency-name: query-string
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:37:10 +00:00
dependabot[bot]
58ea5aead3 chore(deps): bump jsonpath-plus from 9.0.0 to 10.0.0 (#10601)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) from 9.0.0 to 10.0.0.
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/commits)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:35:22 +00:00
dependabot[bot]
ba6a24e84c chore(deps-dev): bump form-data from 4.0.0 to 4.0.1 (#10600)
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: form-data
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:34:13 +00:00
dependabot[bot]
2170a022f0 chore(deps): bump node-pg-migrate from 7.7.0 to 7.7.1 (#10603)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.7.0 to 7.7.1.
- [Release notes](https://github.com/salsita/node-pg-migrate/releases)
- [Changelog](https://github.com/salsita/node-pg-migrate/blob/main/CHANGELOG.md)
- [Commits](https://github.com/salsita/node-pg-migrate/compare/v7.7.0...v7.7.1)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:30:32 +00:00
dependabot[bot]
7d0fd4a07a chore(deps-dev): bump @typescript-eslint/parser from 8.8.0 to 8.8.1 (#10602)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.8.0 to 8.8.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:30:13 +00:00
dependabot[bot]
64da4d07c2 chore(deps): bump got from 14.4.2 to 14.4.3 (#10599)
Bumps [got](https://github.com/sindresorhus/got) from 14.4.2 to 14.4.3.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.4.2...v14.4.3)

---
updated-dependencies:
- dependency-name: got
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:29:47 +00:00
dependabot[bot]
4c31202935 chore(deps): bump @sentry/node from 8.33.1 to 8.34.0 (#10598)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.33.1 to 8.34.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.33.1...8.34.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-12 14:29:34 +00:00
Tapaj Kumar Das
8ed3dc8db4 add [homebrew] cask download badge (#10595)
* add homebrew cask download badge

* add homebrew cask download badge

* fix: updates test cases

* fix: updates test cases

* tidy up homebrew filenames and docs site titles

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2024-10-12 12:02:23 +00:00
jNullj
f767fabf43 remove prefix v for commit hash version (#10597)
* addv ignore commit hash

some services might return version as a commit hash like aur.
it makes no sense to prefix v before the commit.

Fixes #10591

* add addv commit hash tests

add both full commit hash and short commit hash tests to addv.
expected result - no v prefix.
2024-10-12 09:21:27 +00:00
Ambati Mohan Kumar
e3808c1738 [Maven] Added badge for Maven-Cenral last-update (#10301) (#10585)
* Added badge for Maven-Cenral last update.

* Update services/maven-central/maven-central-last-update.service.js

Co-authored-by: chris48s <chris48s@users.noreply.github.com>

* updated according to the review comments.

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-10-12 08:52:08 +00:00
chris48s
f3e0cc06f4 [DynamicXml] parse doc as html if served with text/html content type (#10607) 2024-10-12 08:07:28 +00:00
chris48s
b85cfc7c1e add created timestamp to tokens table (#10573) 2024-10-12 08:07:10 +00:00
dependabot[bot]
b8abface20 chore(deps-dev): bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 (#10580)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.3.0 to 50.3.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.0...v50.3.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:58:08 +00:00
dependabot[bot]
c095e5c855 chore(deps): bump @actions/core (#10592)
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:52:12 +00:00
dependabot[bot]
b0fa13ba2d chore(deps-dev): bump eslint-plugin-react from 7.37.0 to 7.37.1 (#10579)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.37.0 to 7.37.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.0...v7.37.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:52:08 +00:00
dependabot[bot]
814311e488 chore(deps): bump simple-icons from 13.11.0 to 13.12.0 (#10583)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.11.0 to 13.12.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.11.0...13.12.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:50:45 +00:00
dependabot[bot]
ae8414a6f0 chore(deps-dev): bump node-mocks-http from 1.16.0 to 1.16.1 (#10582)
Bumps [node-mocks-http](https://github.com/eugef/node-mocks-http) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/eugef/node-mocks-http/releases)
- [Changelog](https://github.com/eugef/node-mocks-http/blob/master/HISTORY.md)
- [Commits](https://github.com/eugef/node-mocks-http/compare/v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: node-mocks-http
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:41:19 +00:00
dependabot[bot]
ee86905883 chore(deps-dev): bump @typescript-eslint/parser from 8.7.0 to 8.8.0 (#10581)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.7.0 to 8.8.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.8.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:40:41 +00:00
dependabot[bot]
f8404935e9 chore(deps): bump @sentry/node from 8.32.0 to 8.33.1 (#10584)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.32.0 to 8.33.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.32.0...8.33.1)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:40:23 +00:00
dependabot[bot]
114ebe0bb1 chore(deps-dev): bump eslint-plugin-import from 2.30.0 to 2.31.0 (#10578)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.30.0 to 2.31.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 13:37:58 +00:00
chris48s
2515cf9b27 Revert "Use old.stats.jenkins.io for JSON data (#10522)" (#10537)
This reverts commit 394a8271a6.
2024-09-30 10:09:27 +01:00
chris48s
da6002099f catch queries that cause TypeError (#10556) 2024-09-30 09:00:51 +00:00
dependabot[bot]
0f14eed035 chore(deps): bump simple-icons from 13.10.0 to 13.11.0 (#10566)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.10.0 to 13.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.10.0...13.11.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:46:08 +00:00
dependabot[bot]
2e6b1b8909 chore(deps): bump @xmldom/xmldom from 0.9.2 to 0.9.3 (#10561)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.2...0.9.3)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:42:37 +00:00
dependabot[bot]
808c6774ca chore(deps-dev): bump eslint-plugin-react from 7.36.1 to 7.37.0 (#10567)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.36.1 to 7.37.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.1...v7.37.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:39:44 +00:00
dependabot[bot]
5902dfc1cf chore(deps-dev): bump @typescript-eslint/parser from 8.6.0 to 8.7.0 (#10565)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.6.0 to 8.7.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.7.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:39:25 +00:00
dependabot[bot]
fdce66f470 chore(deps-dev): bump cypress from 13.14.2 to 13.15.0 (#10562)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.14.2 to 13.15.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.14.2...v13.15.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:39:09 +00:00
dependabot[bot]
d6df7f8edb chore(deps-dev): bump nodemon from 3.1.6 to 3.1.7 (#10563)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:38:54 +00:00
dependabot[bot]
6eff6a7110 chore(deps-dev): bump eslint-plugin-jsdoc from 50.2.4 to 50.3.0 (#10560)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.4 to 50.3.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.4...v50.3.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:38:30 +00:00
dependabot[bot]
a92c2f1e64 chore(deps): bump @sentry/node from 8.30.0 to 8.32.0 (#10559)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.30.0 to 8.32.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.30.0...8.32.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:38:13 +00:00
dependabot[bot]
a9ecbb064e chore(deps): bump node-pg-migrate from 7.6.1 to 7.7.0 (#10558)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.6.1 to 7.7.0.
- [Release notes](https://github.com/salsita/node-pg-migrate/releases)
- [Changelog](https://github.com/salsita/node-pg-migrate/blob/main/CHANGELOG.md)
- [Commits](https://github.com/salsita/node-pg-migrate/compare/v7.6.1...v7.7.0)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-28 18:37:51 +00:00
chris48s
b9955143db publish blog about security vuln (#10555) 2024-09-25 19:17:21 +01:00
chris48s
d07dd65dfe call out security advisory in changelog (#10554) 2024-09-25 18:53:30 +01:00
github-actions[bot]
ba3d436d1c Changelog for Release server-2024-09-25 (#10552)
* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-09-25 16:56:06 +00:00
chris48s
ec1b6c8dac [dynamicjson dynamicyaml dynamictoml] switch to jsonpath-plus (#10551) 2024-09-25 17:16:04 +01:00
dependabot[bot]
e237e40ab8 chore(deps-dev): bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 (#10542)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.3 to 50.2.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.3...v50.2.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:34:18 +00:00
dependabot[bot]
82927a11e8 chore(deps): bump simple-icons from 13.9.0 to 13.10.0 (#10543)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.9.0 to 13.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.9.0...13.10.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:28:07 +00:00
dependabot[bot]
83a27ca5ac chore(deps-dev): bump start-server-and-test from 2.0.7 to 2.0.8 (#10540)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.7 to 2.0.8.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.7...v2.0.8)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:21:22 +00:00
dependabot[bot]
d3431103f9 chore(deps-dev): bump eslint from 8.57.0 to 8.57.1 (#10541)
Bumps [eslint](https://github.com/eslint/eslint) from 8.57.0 to 8.57.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.57.0...v8.57.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:21:07 +00:00
dependabot[bot]
2abe950a9c chore(deps-dev): bump nodemon from 3.1.4 to 3.1.6 (#10545)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.4 to 3.1.6.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.4...v3.1.6)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:20:41 +00:00
dependabot[bot]
8d128de80d chore(deps): bump pg from 8.12.0 to 8.13.0 (#10544)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.12.0 to 8.13.0.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.13.0/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:20:37 +00:00
dependabot[bot]
a665148b62 chore(deps-dev): bump @typescript-eslint/parser from 8.5.0 to 8.6.0 (#10546)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.6.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 18:19:49 +00:00
Davide Piccinini
eca1b28234 [Snapcraft] license (#10520)
* Add snapcraft license. Update snapcraft version to inherit from snapcraft-base class. Add snapcraft base url in configurations.

* Fix spec tests after making method static

* remove snapcraft configurations, move into base class

* Update services/snapcraft/snapcraft-base.js

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-09-15 15:34:02 +00:00
chris48s
9eaa2ed507 deprecate [wheelmap] service (#10538)
* deprecate [wheelmap] service

* remove app.json
2024-09-15 15:20:22 +00:00
dependabot[bot]
8cd2718525 chore(deps-dev): bump sinon from 18.0.0 to 19.0.2 (#10536)
* chore(deps-dev): bump sinon from 18.0.0 to 19.0.2

Bumps [sinon](https://github.com/sinonjs/sinon) from 18.0.0 to 19.0.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v18.0.0...v19.0.2)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* only mock setInterval timer in influx test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2024-09-14 15:37:04 +00:00
dependabot[bot]
103921d443 chore(deps-dev): bump concurrently from 8.2.2 to 9.0.1 (#10525)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 8.2.2 to 9.0.1.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v8.2.2...v9.0.1)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 19:04:26 +00:00
dependabot[bot]
8f724c2c74 chore(deps): bump simple-icons from 13.8.0 to 13.9.0 (#10524)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.8.0 to 13.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.8.0...13.9.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:59:30 +00:00
dependabot[bot]
b9e5eb728e chore(deps-dev): bump @typescript-eslint/parser from 8.4.0 to 8.5.0 (#10527)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.4.0 to 8.5.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.5.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:53:17 +00:00
dependabot[bot]
38472deca2 chore(deps-dev): bump eslint-plugin-react from 7.35.2 to 7.36.1 (#10529)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.35.2 to 7.36.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.2...v7.36.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:53:15 +00:00
dependabot[bot]
b882ad65ad chore(deps): bump @sentry/node from 8.28.0 to 8.30.0 (#10526)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.28.0 to 8.30.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.28.0...8.30.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:52:48 +00:00
dependabot[bot]
6045cabaa4 chore(deps): bump peter-evans/create-pull-request from 6 to 7 (#10518)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:51:59 +00:00
dependabot[bot]
f0902d7d5b chore(deps-dev): bump eslint-plugin-jsdoc from 50.2.2 to 50.2.3 (#10530)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.2.2 to 50.2.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.2...v50.2.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:50:12 +00:00
dependabot[bot]
4aa29c1c70 chore(deps-dev): bump node-mocks-http from 1.15.1 to 1.16.0 (#10532)
Bumps [node-mocks-http](https://github.com/eugef/node-mocks-http) from 1.15.1 to 1.16.0.
- [Release notes](https://github.com/eugef/node-mocks-http/releases)
- [Changelog](https://github.com/eugef/node-mocks-http/blob/master/HISTORY.md)
- [Commits](https://github.com/eugef/node-mocks-http/compare/v1.15.1...v1.16.0)

---
updated-dependencies:
- dependency-name: node-mocks-http
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:49:57 +00:00
dependabot[bot]
10e63c8e85 chore(deps-dev): bump start-server-and-test from 2.0.5 to 2.0.7 (#10533)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.5 to 2.0.7.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.5...v2.0.7)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:49:22 +00:00
dependabot[bot]
1e40bfd50f chore(deps-dev): bump express from 4.19.2 to 4.21.0 (#10535)
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.21.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 18:48:55 +00:00
LitoMore
9e3a056ca2 perf: limit logoSize precision to 3 (#10521) 2024-09-13 18:48:15 +00:00
Filipe Roque
394a8271a6 Use old.stats.jenkins.io for JSON data (#10522)
Related with
 - https://github.com/jenkins-infra/helpdesk/issues/4265
 - https://github.com/jenkins-infra/plugin-site/pull/1890
2024-09-13 15:39:42 +00:00
dependabot[bot]
1fc26c978b chore(deps): bump path-to-regexp from 6.2.2 to 6.3.0 (#10523)
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v6.2.2...v6.3.0)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 15:38:35 +00:00
chris48s
cf656d3a4d catch xml ParseError (#10516) 2024-09-07 20:04:32 +01:00
dependabot[bot]
3e8dafbf01 chore(deps): bump @xmldom/xmldom from 0.9.0 to 0.9.2 (#10515)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.9.0 to 0.9.2.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.9.0...0.9.2)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 18:13:01 +00:00
dependabot[bot]
739c2fd9cf chore(deps): bump fast-xml-parser from 4.4.1 to 4.5.0 (#10506)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.4.1...v4.5.0)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 18:10:41 +00:00
dependabot[bot]
1ebf7cc605 chore(deps-dev): bump chai-datetime from 1.8.0 to 1.8.1 (#10514)
Bumps [chai-datetime](https://github.com/mguterl/chai-datetime) from 1.8.0 to 1.8.1.
- [Commits](https://github.com/mguterl/chai-datetime/commits)

---
updated-dependencies:
- dependency-name: chai-datetime
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 18:10:36 +00:00
Pierre-Yves Bigourdan
559c38f966 Remove failing [Packagist] tests (#10512) 2024-09-07 18:01:16 +00:00
Pierre-Yves Bigourdan
bbc8339789 Switch to shields server ID in [Discord] example and test (#10513) 2024-09-07 17:59:38 +00:00
dependabot[bot]
0227f7eab1 chore(deps-dev): bump tsd from 0.31.1 to 0.31.2 (#10509)
Bumps [tsd](https://github.com/tsdjs/tsd) from 0.31.1 to 0.31.2.
- [Release notes](https://github.com/tsdjs/tsd/releases)
- [Commits](https://github.com/tsdjs/tsd/compare/v0.31.1...v0.31.2)

---
updated-dependencies:
- dependency-name: tsd
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 17:59:01 +00:00
dependabot[bot]
812c8a7975 chore(deps): bump @sentry/node from 8.27.0 to 8.28.0 (#10507)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.27.0 to 8.28.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.27.0...8.28.0)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 17:58:41 +00:00
dependabot[bot]
d1b8bded24 chore(deps-dev): bump eslint-plugin-import from 2.29.1 to 2.30.0 (#10503)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.1 to 2.30.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 17:58:00 +00:00
dependabot[bot]
d2567f6173 chore(deps-dev): bump eslint-plugin-react from 7.35.0 to 7.35.2 (#10504)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.35.0 to 7.35.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.0...v7.35.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 17:57:46 +00:00
dependabot[bot]
745767650e chore(deps-dev): bump @typescript-eslint/parser from 8.3.0 to 8.4.0 (#10501)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.3.0 to 8.4.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.4.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 17:57:34 +00:00
chris48s
b0d9cb0894 migrate [MozillaObservatory] to /scan endpoint (#10491) 2024-09-07 17:56:45 +00:00
dependabot[bot]
ffd0903878 chore(deps): bump @xmldom/xmldom from 0.8.10 to 0.9.0; run [DynamicXml] (#10481)
* chore(deps): bump @xmldom/xmldom from 0.8.10 to 0.9.0

Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.8.10 to 0.9.0.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.8.10...0.9.0)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* invoke parseFromString with mimetype

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2024-09-07 17:56:13 +00:00
dependabot[bot]
5198a4142f chore(deps): bump simple-icons from 13.7.0 to 13.8.0 (#10505)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.7.0 to 13.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.7.0...13.8.0)

---
updated-dependencies:
- dependency-name: simple-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 14:50:21 +00:00
dependabot[bot]
9c7a71704f chore(deps-dev): bump lint-staged from 15.2.9 to 15.2.10 (#10500)
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.2.9 to 15.2.10.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.2.9...v15.2.10)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 14:49:44 +00:00
dependabot[bot]
069b139d29 chore(deps-dev): bump cypress from 13.14.1 to 13.14.2 (#10502)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.14.1 to 13.14.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.14.1...v13.14.2)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 14:49:14 +00:00
Zijian Zang
ecb5bf2e07 fix incorrect codecov config link (#10511) 2024-09-07 14:38:34 +00:00
Joe Izzard
9717fc202f [OSSLifecycle OSSLifecycleRedirect] Add file_url param to pull from non-github sources (#10489)
* add file_url param

Add file_url param to allow pulling from non-github sources

* add test for file_url param

Add test using file_url variant of OSS Lifecycle badge using Netflix OSSTracker repo

* remove old pattern from main service

Remove all references and code for the old /{user}/{repo} and /{user}/{repo}/{branch} functionality.
This will be replaced by a redirect service.

Also updated all tests to use the new file_url method

* add osslifecycle redirector

add a redirector for the original osslifecycle pattern

* tweaks to docs and handle function

Tweak the Description to remove reference to GitHub as now works with any repository,
and updated handle function to remove reference to unused variables.
2024-09-05 16:06:15 +00:00
Álvaro Mondéjar Rubio
f776f817bd perf: faster resetIconPosition avoiding to parse path twice (#10497) 2024-09-04 16:32:01 +00:00
chris48s
026b45e07d remove docusaurus css hacks (#10495) 2024-09-04 15:55:40 +00:00
chris48s
d98ebbd883 remove intermediate variable (#10496) 2024-09-04 04:03:34 +00:00
LitoMore
1a472982ed perf: improve logoSize performance (#10488)
* perf: improve logoSize performance

* Fix test
2024-09-03 19:17:08 +00:00
287 changed files with 14709 additions and 7192 deletions

View File

@@ -0,0 +1,14 @@
{
"name": "Node.js",
// "Officially" maintained node devcontainer image from Microsoft
// https://github.com/devcontainers/templates/tree/main/src/javascript-node
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bookworm",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
},
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "npm ci"
}

View File

@@ -2,8 +2,12 @@ node_modules/
shields.env
.git/
.gitignore
.github
.vscode/
fly.toml
*.md
doc/
# Improve layer cacheability.
Dockerfile

View File

@@ -1,7 +0,0 @@
/api-docs/
/build
/coverage
/__snapshots__
public
badge-maker/node_modules/
!.github/

View File

@@ -1,189 +0,0 @@
extends:
- standard
- standard-jsx
- standard-react
- prettier
- eslint:recommended
globals:
JSX: 'readonly'
parserOptions:
# Override eslint-config-standard, which incorrectly sets this to "module",
# though that setting is only for ES6 modules, not CommonJS modules.
sourceType: 'script'
settings:
react:
version: '16.8'
jsdoc:
mode: typescript
plugins:
- chai-friendly
- jsdoc
- mocha
- icedfrisby
- no-extension-in-require
- sort-class-members
- import
- react-hooks
- promise
overrides:
# For simplicity's sake, when possible prefer to add rules to the top-level
# list of rules, even if they only apply to certain files. That way the
# rules listed here are only ones which conflict.
- files:
- 'badge-maker/**/*.js'
- '**/*.cjs'
env:
node: true
es6: true
- files:
- '**/*.js'
- '!frontend/**/*.js'
- '!badge-maker/**/*.js'
env:
node: true
es6: true
parserOptions:
sourceType: 'module'
parser: '@typescript-eslint/parser'
rules:
no-console: 'off'
- files:
- '**/*.ts'
parserOptions:
sourceType: 'module'
parser: '@typescript-eslint/parser'
- files:
- 'frontend/**/*.js'
parserOptions:
sourceType: 'module'
env:
browser: true
rules:
import/extensions:
['error', 'never', { 'json': 'always', 'yml': 'always' }]
- files:
- 'core/base-service/**/*.js'
- 'services/**/*.js'
rules:
sort-class-members/sort-class-members:
[
'error',
{
order:
[
'name',
'category',
'isDeprecated',
'route',
'auth',
'examples',
'_cacheLength',
'defaultBadgeData',
'render',
'constructor',
'fetch',
'transform',
'handle',
],
},
]
- files:
- '**/*.spec.@(js|ts|tsx)'
- '**/*.integration.js'
- '**/test-helpers.js'
- 'core/service-test-runner/**/*.js'
env:
mocha: true
rules:
mocha/no-exclusive-tests: 'error'
mocha/no-skipped-tests: 'error'
mocha/no-mocha-arrows: 'error'
mocha/prefer-arrow-callback: 'error'
- files:
- 'services/**/*.tester.js'
rules:
icedfrisby/no-exclusive-tests: 'error'
icedfrisby/no-skipped-tests: 'error'
rules:
# Disable some rules from eslint:recommended.
no-empty: ['error', { 'allowEmptyCatch': true }]
no-use-before-define: 'off'
# These should be disabled by eslint-config-prettier, but are not.
no-extra-semi: 'off'
# Shields additions.
no-var: 'error'
prefer-const: 'error'
arrow-body-style: ['error', 'as-needed']
no-extension-in-require/main: 'error'
object-shorthand: ['error', 'properties']
prefer-template: 'error'
promise/prefer-await-to-then: 'error'
func-style: ['error', 'declaration', { 'allowArrowFunctions': true }]
new-cap: ['error', { 'capIsNew': true }]
import/order: ['error', { 'newlines-between': 'never' }]
quotes:
['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }]
# Account for destructuring responses from upstream services,
# many of which do not follow camelcase
# Based on original rule configuration from eslint-config-standard
camelcase:
[
'error',
{
ignoreDestructuring: true,
properties: 'never',
ignoreGlobals: true,
allow: ['^UNSAFE_'],
},
]
# Chai friendly.
no-unused-expressions: 'off'
chai-friendly/no-unused-expressions: 'error'
# jsdoc plugin:
# don't require every class/function to have a docblock
jsdoc/require-jsdoc: 'off'
# allow Joi as an undefined type
jsdoc/no-undefined-types: ['error', { definedTypes: ['Joi'] }]
# all the other recommended rules as errors (not warnings)
jsdoc/check-alignment: 'error'
jsdoc/check-param-names: 'error'
jsdoc/check-tag-names: 'error'
jsdoc/check-types: 'error'
jsdoc/implements-on-classes: 'error'
jsdoc/tag-lines: ['error', 'any', { 'startLines': 1 }]
jsdoc/require-param: 'error'
jsdoc/require-param-description: 'error'
jsdoc/require-param-name: 'error'
jsdoc/require-param-type: 'error'
jsdoc/require-returns: 'error'
jsdoc/require-returns-check: 'error'
jsdoc/require-returns-description: 'error'
jsdoc/require-returns-type: 'error'
jsdoc/valid-types: 'error'
react/prop-types: 'off'
react/jsx-sort-props: 'error'
react-hooks/rules-of-hooks: 'error'
react-hooks/exhaustive-deps: 'error'
jsx-quotes: ['error', 'prefer-double']

View File

@@ -41,4 +41,4 @@ body:
attributes:
value: |
## :heart: Love Shields?
Please consider donating $10 to sustain our activities: [https://opencollective.com/shields](https://opencollective.com/shields)
Please consider donating to sustain our activities: [https://opencollective.com/shields](https://opencollective.com/shields)

View File

@@ -28,5 +28,5 @@ labels: 'keep-service-tests-green'
<!--- Optional: only if you have suggestions on a fix/reason for the bug -->
<!-- Love Shields? Please consider donating $10 to sustain our activities:
<!-- Love Shields? Please consider donating to sustain our activities:
👉 https://opencollective.com/shields -->

View File

@@ -59,4 +59,4 @@ body:
attributes:
value: |
## :heart: Love Shields?
Please consider donating $10 to sustain our activities: [https://opencollective.com/shields](https://opencollective.com/shields)
Please consider donating to sustain our activities: [https://opencollective.com/shields](https://opencollective.com/shields)

View File

@@ -7,5 +7,5 @@ about: Ideas for other new features or improvements
<!-- A clear and concise description of the new feature. -->
<!-- Love Shields? Please consider donating $10 to sustain our activities:
<!-- Love Shields? Please consider donating to sustain our activities:
👉 https://opencollective.com/shields -->

View File

@@ -9,17 +9,25 @@
"version": "0.0.0",
"license": "CC0",
"dependencies": {
"@actions/core": "^1.10.1",
"@actions/core": "^1.11.1",
"@actions/github": "^6.0.0"
}
},
"node_modules/@actions/core": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
"integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
"dependencies": {
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
"@actions/exec": "^1.1.1",
"@actions/http-client": "^2.0.1"
}
},
"node_modules/@actions/exec": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
"integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
"dependencies": {
"@actions/io": "^1.0.1"
}
},
"node_modules/@actions/github": {
@@ -42,6 +50,11 @@
"undici": "^5.25.4"
}
},
"node_modules/@actions/io": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
},
"node_modules/@fastify/busboy": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz",
@@ -76,18 +89,33 @@
}
},
"node_modules/@octokit/endpoint": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.1.tgz",
"integrity": "sha512-hRlOKAovtINHQPYHZlfyFwaM8OyetxeoC81lAkBy34uLb8exrZB50SQdeW3EROqiY9G9yxQTpp5OHTV54QD+vA==",
"version": "9.0.6",
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz",
"integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==",
"license": "MIT",
"dependencies": {
"@octokit/types": "^12.0.0",
"is-plain-object": "^5.0.0",
"@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": {
"version": "23.0.1",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
"integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
"license": "MIT"
},
"node_modules/@octokit/endpoint/node_modules/@octokit/types": {
"version": "13.8.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
"integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
"license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^23.0.1"
}
},
"node_modules/@octokit/graphql": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz",
@@ -102,22 +130,24 @@
}
},
"node_modules/@octokit/openapi-types": {
"version": "19.0.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.0.tgz",
"integrity": "sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw=="
"version": "20.0.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
"integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==",
"license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.0.0.tgz",
"integrity": "sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==",
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz",
"integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==",
"license": "MIT",
"dependencies": {
"@octokit/types": "^12.0.0"
"@octokit/types": "^12.6.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": ">=5"
"@octokit/core": "5"
}
},
"node_modules/@octokit/plugin-rest-endpoint-methods": {
@@ -135,14 +165,14 @@
}
},
"node_modules/@octokit/request": {
"version": "8.1.4",
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.4.tgz",
"integrity": "sha512-M0aaFfpGPEKrg7XoA/gwgRvc9MSXHRO2Ioki1qrPDbl1e9YhjIwVoHE7HIKmv/m3idzldj//xBujcFNqGX6ENA==",
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz",
"integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==",
"license": "MIT",
"dependencies": {
"@octokit/endpoint": "^9.0.0",
"@octokit/request-error": "^5.0.0",
"@octokit/types": "^12.0.0",
"is-plain-object": "^5.0.0",
"@octokit/endpoint": "^9.0.6",
"@octokit/request-error": "^5.1.1",
"@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
@@ -150,11 +180,12 @@
}
},
"node_modules/@octokit/request-error": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
"integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz",
"integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==",
"license": "MIT",
"dependencies": {
"@octokit/types": "^12.0.0",
"@octokit/types": "^13.1.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
@@ -162,12 +193,43 @@
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.0.0.tgz",
"integrity": "sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==",
"node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": {
"version": "23.0.1",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
"integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
"license": "MIT"
},
"node_modules/@octokit/request-error/node_modules/@octokit/types": {
"version": "13.8.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
"integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
"license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^19.0.0"
"@octokit/openapi-types": "^23.0.1"
}
},
"node_modules/@octokit/request/node_modules/@octokit/openapi-types": {
"version": "23.0.1",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz",
"integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==",
"license": "MIT"
},
"node_modules/@octokit/request/node_modules/@octokit/types": {
"version": "13.8.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz",
"integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==",
"license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^23.0.1"
}
},
"node_modules/@octokit/types": {
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
"integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
"license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^20.0.0"
}
},
"node_modules/before-after-hook": {
@@ -180,14 +242,6 @@
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
"node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -205,9 +259,10 @@
}
},
"node_modules/undici": {
"version": "5.28.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"version": "5.28.5",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz",
"integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==",
"license": "MIT",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@@ -220,14 +275,6 @@
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@@ -10,7 +10,7 @@
"author": "jNullj",
"license": "CC0",
"dependencies": {
"@actions/core": "^1.10.1",
"@actions/core": "^1.11.1",
"@actions/github": "^6.0.0"
}
}

View File

@@ -36,10 +36,6 @@ inputs:
description: 'The SERVICETESTS_TWITCH_CLIENT_SECRET secret'
required: false
default: ''
wheelmap-token:
description: 'The SERVICETESTS_WHEELMAP_TOKEN secret'
required: false
default: ''
youtube-api-key:
description: 'The SERVICETESTS_YOUTUBE_API_KEY secret'
required: false
@@ -71,11 +67,12 @@ runs:
OBS_USER: '${{ inputs.obs-user }}'
OBS_PASS: '${{ inputs.obs-pass }}'
PEPY_KEY: '${{ inputs.pepy-key }}'
REDDIT_CLIENT_ID: '${{ inputs.reddit-client-id }}'
REDDIT_CLIENT_SECRET: '${{ inputs.reddit-client-secret }}'
SL_INSIGHT_USER_UUID: '${{ inputs.sl-insight-user-uuid }}'
SL_INSIGHT_API_TOKEN: '${{ inputs.sl-insight-api-token }}'
TWITCH_CLIENT_ID: '${{ inputs.twitch-client-id }}'
TWITCH_CLIENT_SECRET: '${{ inputs.twitch-client-secret }}'
WHEELMAP_TOKEN: '${{ inputs.wheelmap-token }}'
YOUTUBE_API_KEY: '${{ inputs.youtube-api-key }}'
- name: Write Markdown Summary

View File

@@ -60,11 +60,12 @@ jobs:
OBS_USER: '${{ secrets.SERVICETESTS_OBS_USER }}'
OBS_PASS: '${{ secrets.SERVICETESTS_OBS_PASS }}'
PEPY_KEY: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
REDDIT_CLIENT_ID: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_ID }}'
REDDIT_CLIENT_SECRET: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_SECRET }}'
SL_INSIGHT_USER_UUID: '${{ secrets.SERVICETESTS_SL_INSIGHT_USER_UUID }}'
SL_INSIGHT_API_TOKEN: '${{ secrets.SERVICETESTS_SL_INSIGHT_API_TOKEN }}'
TWITCH_CLIENT_ID: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_ID }}'
TWITCH_CLIENT_SECRET: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_SECRET }}'
WHEELMAP_TOKEN: '${{ secrets.SERVICETESTS_WHEELMAP_TOKEN }}'
YOUTUBE_API_KEY: '${{ secrets.SERVICETESTS_YOUTUBE_API_KEY }}'
shell: bash

View File

@@ -57,11 +57,12 @@ jobs:
OBS_USER: '${{ secrets.SERVICETESTS_OBS_USER }}'
OBS_PASS: '${{ secrets.SERVICETESTS_OBS_PASS }}'
PEPY_KEY: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
REDDIT_CLIENT_ID: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_ID }}'
REDDIT_CLIENT_SECRET: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_SECRET }}'
SL_INSIGHT_USER_UUID: '${{ secrets.SERVICETESTS_SL_INSIGHT_USER_UUID }}'
SL_INSIGHT_API_TOKEN: '${{ secrets.SERVICETESTS_SL_INSIGHT_API_TOKEN }}'
TWITCH_CLIENT_ID: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_ID }}'
TWITCH_CLIENT_SECRET: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_SECRET }}'
WHEELMAP_TOKEN: '${{ secrets.SERVICETESTS_WHEELMAP_TOKEN }}'
YOUTUBE_API_KEY: '${{ secrets.SERVICETESTS_YOUTUBE_API_KEY }}'
- name: Write Service Tests Markdown Summary

View File

@@ -36,9 +36,10 @@ jobs:
OBS_USER=${{ secrets.SERVICETESTS_OBS_USER }}
OBS_PASS=${{ secrets.SERVICETESTS_OBS_PASS }}
PEPY_KEY=${{ secrets.SERVICETESTS_PEPY_KEY }}
REDDIT_CLIENT_ID=${{ secrets.SERVICETESTS_REDDIT_CLIENT_ID }}
REDDIT_CLIENT_SECRET=${{ secrets.SERVICETESTS_REDDIT_CLIENT_SECRET }}
SL_INSIGHT_API_TOKEN=${{ secrets.SERVICETESTS_SL_INSIGHT_USER_UUID }}
SL_INSIGHT_USER_UUID=${{ secrets.SERVICETESTS_SL_INSIGHT_API_TOKEN }}
TWITCH_CLIENT_ID=${{ secrets.SERVICETESTS_TWITCH_CLIENT_ID }}
TWITCH_CLIENT_SECRET=${{ secrets.SERVICETESTS_TWITCH_CLIENT_SECRET }}
WHEELMAP_TOKEN=${{ secrets.SERVICETESTS_WHEELMAP_TOKEN }}
YOUTUBE_API_KEY=${{ secrets.SERVICETESTS_YOUTUBE_API_KEY }}

View File

@@ -23,7 +23,7 @@ jobs:
npm: '^10'
engine-strict: 'true'
- node: '22'
npm: '^10'
npm: '^11'
engine-strict: 'false'
steps:
- name: Checkout

View File

@@ -30,11 +30,12 @@ jobs:
obs-user: '${{ secrets.SERVICETESTS_OBS_USER }}'
obs-pass: '${{ secrets.SERVICETESTS_OBS_PASS }}'
pepy-key: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
reddit-client-id: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_ID }}'
reddit-client-secret: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_SECRET }}'
sl-insight-user-uuid: '${{ secrets.SERVICETESTS_SL_INSIGHT_USER_UUID }}'
sl-insight-api-token: '${{ secrets.SERVICETESTS_SL_INSIGHT_API_TOKEN }}'
twitch-client-id: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_ID }}'
twitch-client-secret: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_SECRET }}'
wheelmap-token: '${{ secrets.SERVICETESTS_WHEELMAP_TOKEN }}'
youtube-api-key: '${{ secrets.SERVICETESTS_YOUTUBE_API_KEY }}'
- name: Service tests (triggered from fork)

View File

@@ -28,11 +28,12 @@ jobs:
obs-user: '${{ secrets.SERVICETESTS_OBS_USER }}'
obs-pass: '${{ secrets.SERVICETESTS_OBS_PASS }}'
pepy-key: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
reddit-client-id: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_ID }}'
reddit-client-secret: '${{ secrets.SERVICETESTS_REDDIT_CLIENT_SECRET }}'
sl-insight-user-uuid: '${{ secrets.SERVICETESTS_SL_INSIGHT_USER_UUID }}'
sl-insight-api-token: '${{ secrets.SERVICETESTS_SL_INSIGHT_API_TOKEN }}'
twitch-client-id: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_ID }}'
twitch-client-secret: '${{ secrets.SERVICETESTS_TWITCH_CLIENT_SECRET }}'
wheelmap-token: '${{ secrets.SERVICETESTS_WHEELMAP_TOKEN }}'
youtube-api-key: '${{ secrets.SERVICETESTS_YOUTUBE_API_KEY }}'
- name: Service tests (triggered from fork)

View File

@@ -25,7 +25,7 @@ jobs:
run: node scripts/update-github-api.js
- name: Create Pull Request if config has changed
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
token: '${{ secrets.GITHUB_TOKEN }}'
commit-message: Update GitHub API Version

View File

@@ -4,6 +4,88 @@ Note: this changelog is for the shields.io server. The changelog for the badge-m
---
## server-2025-03-02
- time out long running requests more aggressively [#10833](https://github.com/badges/shields/issues/10833)
- Dependency updates
## server-2025-02-02
- Mark Stubs-only packages with [PypiTypes] badge [#10864](https://github.com/badges/shields/issues/10864)
- fix badge style when logo only [#10794](https://github.com/badges/shields/issues/10794)
- pass matching mime type to xmldom; test [dynamicxml] [#10830](https://github.com/badges/shields/issues/10830)
- allow [chromewebstore] size to contain decimal point [#10812](https://github.com/badges/shields/issues/10812)
- Add auth support to [Reddit] badges [#10790](https://github.com/badges/shields/issues/10790)
- Fixed mixed up Code climate endpoints [#10813](https://github.com/badges/shields/issues/10813)
- feat: add terraform registry providers and modules downloads [#10793](https://github.com/badges/shields/issues/10793)
- Renew [Mastodon] docs and improve parameter handling [#10789](https://github.com/badges/shields/issues/10789)
- Support [Matrix] summary endpoint [#10782](https://github.com/badges/shields/issues/10782)
- use metric() in [coderabbit] badge [#10779](https://github.com/badges/shields/issues/10779)
- cache matrix badges for 4 hours [#10778](https://github.com/badges/shields/issues/10778)
- Dependency updates
## server-2025-01-01
- Add [PypiTypes] badge [#10774](https://github.com/badges/shields/issues/10774)
- feat(endpoint-badge): add logoSize support [#10132](https://github.com/badges/shields/issues/10132)
- fix auto-sized logo sizes [#10764](https://github.com/badges/shields/issues/10764)
- Add [Coderabbit] PR Stats service and tests [#10749](https://github.com/badges/shields/issues/10749)
- add [PUB] downloads badge [#10745](https://github.com/badges/shields/issues/10745)
- Add [GitLab] Top Language Badge [#10750](https://github.com/badges/shields/issues/10750)
- provide a non-repository scoped version of [githubcodesearch] [#10733](https://github.com/badges/shields/issues/10733)
- [ReproducibleCentral] add Reproducible Central in Dependencies [#10705](https://github.com/badges/shields/issues/10705)
- Add ability to format bytes as metric or IEC; affects [bundlejs bundlephobia ChromeWebStoreSize CratesSize DockerSize GithubRepoSize GithubCodeSize GithubSize NpmUnpackedSize SpigetDownloadSize steam VisualStudioAppCenterReleasesSize whatpulse] [#10547](https://github.com/badges/shields/issues/10547)
- Dependency updates
## server-2024-12-01
- add [WingetVersion] Badge [#10245](https://github.com/badges/shields/issues/10245)
- Fix broken URL for pingpong.one [#10655](https://github.com/badges/shields/issues/10655)
- [npm] - Last update badge added [#10641](https://github.com/badges/shields/issues/10641)
- reduce overhead of NPM Last Update badge; test [npm] [#10666](https://github.com/badges/shields/issues/10666)
- Add YouTube-specific privacy notes [#10646](https://github.com/badges/shields/issues/10646)
- Dependency updates
## server-2024-11-02
- cleanly handle null or undefined result from jsonpath-plus [#10645](https://github.com/badges/shields/issues/10645)
- add content security policy header to SVG responses [#10642](https://github.com/badges/shields/issues/10642)
- [Scoop] Added scoop-license badge. [#10627](https://github.com/badges/shields/issues/10627)
- [Chromewebstore] Extension size & last updated [#10613](https://github.com/badges/shields/issues/10613)
- Deprecate HackageDeps service [#10618](https://github.com/badges/shields/issues/10618)
- Add [CratesUserDownloads] service and tester [#10619](https://github.com/badges/shields/issues/10619)
- [Snapcraft] - Added snapcraft last update badge [#10610](https://github.com/badges/shields/issues/10610)
- [GitHubHacktoberfest] 2024 support [#10612](https://github.com/badges/shields/issues/10612)
- add [homebrew] cask download badge [#10595](https://github.com/badges/shields/issues/10595)
- remove prefix v for commit hash version [#10597](https://github.com/badges/shields/issues/10597)
- [Maven] Added badge for Maven-Cenral last-update (#10301) [#10585](https://github.com/badges/shields/issues/10585)
- [DynamicXml] parse doc as html if served with text/html content type [#10607](https://github.com/badges/shields/issues/10607)
- Revert "Use old.stats.jenkins.io for JSON data (#10522)" [#10537](https://github.com/badges/shields/issues/10537)
- catch queries that cause TypeError [#10556](https://github.com/badges/shields/issues/10556)
- Dependency updates
## server-2024-09-25
This release includes an important security fix. See
- https://github.com/badges/shields/security/advisories/GHSA-rxvx-x284-4445
- https://github.com/badges/shields/issues/10553
for more details
- [dynamicjson dynamicyaml dynamictoml] switch to jsonpath-plus [#10551](https://github.com/badges/shields/issues/10551)
- [Snapcraft] license [#10520](https://github.com/badges/shields/issues/10520)
- deprecate [wheelmap] service [#10538](https://github.com/badges/shields/issues/10538)
- Use old.stats.jenkins.io for JSON data [#10522](https://github.com/badges/shields/issues/10522)
- catch xml ParseError [#10516](https://github.com/badges/shields/issues/10516)
- migrate [MozillaObservatory] to /scan endpoint [#10491](https://github.com/badges/shields/issues/10491)
- fix incorrect codecov config link [#10511](https://github.com/badges/shields/issues/10511)
- [OSSLifecycle OSSLifecycleRedirect] Add file_url param to pull from non-github sources [#10489](https://github.com/badges/shields/issues/10489)
- perf: improve logoSize performance [#10488](https://github.com/badges/shields/issues/10488)
- perf: faster `resetIconPosition` avoiding to parse path twice [#10497](https://github.com/badges/shields/issues/10497)
- perf: limit logoSize precision to 3 [#10521](https://github.com/badges/shields/issues/10521)
- Dependency updates
## server-2024-09-02
- Publish linux/amd64 docker images for snapshot builds [#10476](https://github.com/badges/shields/issues/10476)

View File

@@ -8,10 +8,7 @@ financial contributions, issues, and pull requests!
### Financial contributions
We welcome financial contributions in full transparency on our
[open collective](https://opencollective.com/shields). Anyone can file an
expense. If the expense makes sense for the development of the community, it
will be "merged" into the ledger of our open collective by the core
contributors and the person who filed the expense will be reimbursed.
[open collective](https://opencollective.com/shields).
### Contributing code
@@ -90,7 +87,7 @@ encourage you to contribute logos there. Please review their
Feel free to star the repository. This will help increase the visibility of the project, therefore attracting more users and contributors to Shields!
We're also asking for [one-time \$10 donations](https://opencollective.com/shields) from developers who use and love Shields, please spread the word!
We're also asking for [donations](https://opencollective.com/shields) from developers who use and love Shields, please spread the word!
## Getting help

View File

@@ -1,5 +1,7 @@
FROM node:20-alpine AS builder
RUN npm install -g "npm@^10"
RUN mkdir -p /usr/src/app
RUN mkdir /usr/src/app/private
WORKDIR /usr/src/app
@@ -8,14 +10,16 @@ COPY package.json package-lock.json /usr/src/app/
# Without the badge-maker package.json and CLI script in place, `npm ci` will fail.
COPY badge-maker /usr/src/app/badge-maker/
RUN npm install -g "npm@^9.0.0"
# We need dev deps to build the front end. We don't need Cypress, though.
RUN NODE_ENV=development CYPRESS_INSTALL_BINARY=0 npm ci
COPY . /usr/src/app
RUN npm run build
RUN npm prune --omit=dev
RUN npm cache clean --force
RUN npm run build \
&& npm prune --omit=dev --force \
&& rm -rf node_modules/.cache \
&& rm -rf frontend package-lock.json
# Use multi-stage build to reduce size
FROM node:20-alpine

View File

@@ -60,7 +60,7 @@ This repo hosts:
- amount of [Liberapay](https://liberapay.com/) donations per week: ![receives](https://img.shields.io/badge/receives-2.00%20USD%2Fweek-yellow)
- Python package downloads: ![downloads](https://img.shields.io/badge/downloads-13k%2Fmonth-brightgreen)
- Chrome Web Store extension rating: ![rating](https://img.shields.io/badge/rating-★★★★☆-brightgreen)
- [Uptime Robot](https://uptimerobot.com) percentage: ![uptime](https://img.shields.io/badge/uptime-100%25-brightgreen)
- Uptime Robot uptime percentage: ![uptime](https://img.shields.io/badge/uptime-100%25-brightgreen)
[Make your own badges!][custom badges]
(Quick example: `https://img.shields.io/badge/left-right-f39f37`)
@@ -96,6 +96,8 @@ If you intend on reporting or contributing a fix related to security vulnerabili
## Development
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/badges/shields?quickstart=1)
1. Install Node 20 or later. You can use the [package manager][] of your choice.
Tests need to pass in Node 20 and 22.
2. Clone this repository.
@@ -198,25 +200,19 @@ You can read more about [the project's inception][thread],
Maintainers:
- [calebcartwright](https://github.com/calebcartwright) (core team)
- [chris48s](https://github.com/chris48s) (core team)
- [Daniel15](https://github.com/Daniel15) (core team)
- [paulmelnikow](https://github.com/paulmelnikow) (core team)
- [platan](https://github.com/platan) (core team)
- [PyvesB](https://github.com/PyvesB) (core team)
- [RedSparr0w](https://github.com/RedSparr0w) (core team)
Operations:
- [calebcartwright](https://github.com/calebcartwright)
- [chris48s](https://github.com/chris48s)
- [jNullj](https://github.com/jnullj)
- [paulmelnikow](https://github.com/paulmelnikow)
- [PyvesB](https://github.com/PyvesB)
Alumni:
- [Daniel15](https://github.com/Daniel15)
- [espadrine](https://github.com/espadrine)
- [olivierlacan](https://github.com/olivierlacan)
- [platan](https://github.com/platan)
- [RedSparr0w](https://github.com/RedSparr0w)
## License

View File

@@ -23,3 +23,7 @@ Report security bugs in third-party modules to the person or team maintaining th
We aim to patch confirmed vulnerabilities within 90 days or less, disclosing the details of those vulnerabilities when a patch is published. We ask that you refrain from sharing your report with others while we work on our patch.
We may want to coordinate an advisory with you to be published simultaneously with the patch, but you are also welcome to self-disclose after 90 days if you prefer. We will never publish information about you or our communications with you without your permission.
## Bounties
Everyone who works on shields is an unpaid volunteer. That includes the core team, contributors and people who report security vulnerabilities. This means we are unable to offer bug or security bounties.

View File

@@ -1,56 +0,0 @@
{
"name": "Shields",
"description": "Concise, consistent, and legible badges in SVG and raster format.",
"keywords": ["badge", "github", "svg", "status"],
"website": "https://shields.io/",
"repository": "https://github.com/badges/shields",
"logo": "https://shields.io/favicon.png",
"env": {
"CYPRESS_INSTALL_BINARY": {
"description": "Disable the cypress binary installation",
"value": "0",
"required": false
},
"HUSKY_SKIP_INSTALL": {
"description": "Skip the husky git hook setup",
"value": "1",
"required": false
},
"WHEELMAP_TOKEN": {
"description": "Configure the token to be used for the Wheelmap service.",
"required": false
},
"GH_TOKEN": {
"description": "Configure the token to be used for the GitHub services.",
"required": false
},
"TWITCH_CLIENT_ID": {
"description": "Configure the client id to be used for the Twitch service.",
"required": false
},
"TWITCH_CLIENT_SECRET": {
"description": "Configure the client secret to be used for the Twitch service.",
"required": false
},
"WEBLATE_API_KEY": {
"description": "Configure the API key to be used for the Weblate service.",
"required": false
},
"METRICS_INFLUX_ENABLED": {
"description": "Disable influx metrics",
"value": "false",
"required": false
},
"REQUIRE_CLOUDFLARE": {
"description": "Allow direct traffic",
"value": "false",
"required": false
}
},
"formation": {
"web": {
"quantity": 1,
"size": "free"
}
}
}

View File

@@ -1,5 +1,15 @@
# Changelog
## Unreleased
- Switching to using `href`s instead of the old `xlink:href` syntax
## 4.1.0
### Features
- Add `idSuffix` param. This can be used to ensure every element id within the SVG is unique
## 4.0.0
### Breaking Changes

View File

@@ -67,12 +67,17 @@ The format is the following:
message: 'passed', // (Required) Badge message
labelColor: '#555', // (Optional) Label color
color: '#4c1', // (Optional) Message color
logoBase64: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iOCIgZmlsbD0iI2IxY2U1NiIvPjxwYXRoIGQ9Ik04IDBoMjR2NjRIOGMtNC40MzIgMC04LTMuNTY4LTgtOFY4YzAtNC40MzIgMy41NjgtOCA4LTh6IiBmaWxsPSIjNWQ1ZDVkIi8+PC9zdmc+' // (Optional) Any custom logo can be passed in a URL parameter by base64 encoding
logoBase64: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iOCIgZmlsbD0iI2IxY2U1NiIvPjxwYXRoIGQ9Ik04IDBoMjR2NjRIOGMtNC40MzIgMC04LTMuNTY4LTgtOFY4YzAtNC40MzIgMy41NjgtOCA4LTh6IiBmaWxsPSIjNWQ1ZDVkIi8+PC9zdmc+', // (Optional) Any custom logo can be passed in a URL parameter by base64 encoding
links: ['https://example.com', 'https://example.com'], // (Optional) Links array of maximum two links
// (Optional) One of: 'plastic', 'flat', 'flat-square', 'for-the-badge' or 'social'
// Each offers a different visual design.
style: 'flat',
// (Optional) A string with only letters, numbers, -, and _. This can be used
// to ensure every element id within the SVG is unique and prevent CSS
// cross-contamination when the SVG badge is rendered inline in HTML pages.
idSuffix: 'dd'
}
```

View File

@@ -6,6 +6,7 @@ interface Format {
style?: 'plastic' | 'flat' | 'flat-square' | 'for-the-badge' | 'social'
logoBase64?: string
links?: Array<string>
idSuffix?: string
}
export declare class ValidationError extends Error {}

View File

@@ -1,13 +1,16 @@
'use strict'
const path = require('path')
const { spawn } = require('child-process-promise')
const { expect, use } = require('chai')
use(require('chai-string'))
use(require('sinon-chai'))
import path from 'path'
import { fileURLToPath } from 'url'
import { spawn } from 'child-process-promise'
import { expect, use } from 'chai'
import sinonChai from 'sinon-chai'
use(sinonChai)
const dirName = path.dirname(fileURLToPath(import.meta.url))
function runCli(args) {
return spawn('node', [path.join(__dirname, 'badge-cli.js'), ...args], {
return spawn('node', [path.join(dirName, 'badge-cli.js'), ...args], {
capture: ['stdout'],
})
}
@@ -15,7 +18,7 @@ function runCli(args) {
describe('The CLI', function () {
it('should provide a help message', async function () {
const { stdout } = await runCli([])
expect(stdout).to.startWith('Usage')
expect(stdout.startsWith('Usage')).to.be.true
})
it('should produce default badges', async function () {

View File

@@ -62,7 +62,7 @@ function getLogoElement({ logo, horizPadding, badgeHeight, logoWidth }) {
y: 0.5 * (badgeHeight - logoHeight),
width: logoWidth,
height: logoHeight,
'xlink:href': logo,
href: logo,
},
})
}
@@ -83,13 +83,12 @@ function renderBadge(
? new XmlElement({
name: 'a',
content,
attrs: { target: '_blank', 'xlink:href': leftLink },
attrs: { target: '_blank', href: leftLink },
})
: new ElementList({ content })
const svgAttrs = {
xmlns: 'http://www.w3.org/2000/svg',
'xmlns:xlink': 'http://www.w3.org/1999/xlink',
width,
height,
}
@@ -128,6 +127,7 @@ class Badge {
logoPadding,
color = '#4c1',
labelColor,
idSuffix = '',
}) {
const horizPadding = 5
const hasLogo = !!logo
@@ -159,7 +159,7 @@ class Badge {
}
let rightWidth = messageWidth + 2 * horizPadding
if (hasLogo && !hasLabel) {
rightWidth += totalLogoWidth + horizPadding - 1
rightWidth += totalLogoWidth + (message.length ? horizPadding - 1 : 0)
}
const width = leftWidth + rightWidth
@@ -178,6 +178,7 @@ class Badge {
this.label = label
this.message = message
this.accessibleText = accessibleText
this.idSuffix = idSuffix
this.logoElement = getLogoElement({
logo,
@@ -242,7 +243,7 @@ class Badge {
return new XmlElement({
name: 'a',
content: [rect, shadow, text],
attrs: { target: '_blank', 'xlink:href': link },
attrs: { target: '_blank', href: link },
})
}
@@ -286,7 +287,7 @@ class Badge {
},
}),
],
attrs: { id: 'r' },
attrs: { id: `r${this.idSuffix}` },
})
}
@@ -313,7 +314,7 @@ class Badge {
attrs: {
width: this.width,
height: this.constructor.height,
fill: 'url(#s)',
fill: `url(#s${this.idSuffix})`,
},
})
const content = withGradient
@@ -379,14 +380,14 @@ class Plastic extends Badge {
attrs: { offset: 1, 'stop-color': '#000', 'stop-opacity': '.5' },
}),
],
attrs: { id: 's', x2: 0, y2: '100%' },
attrs: { id: `s${this.idSuffix}`, x2: 0, y2: '100%' },
})
const clipPath = this.getClipPathElement(4)
const backgroundGroup = this.getBackgroundGroupElement({
withGradient: true,
attrs: { 'clip-path': 'url(#r)' },
attrs: { 'clip-path': `url(#r${this.idSuffix})` },
})
return renderBadge(
@@ -428,14 +429,14 @@ class Flat extends Badge {
attrs: { offset: 1, 'stop-opacity': '.1' },
}),
],
attrs: { id: 's', x2: 0, y2: '100%' },
attrs: { id: `s${this.idSuffix}`, x2: 0, y2: '100%' },
})
const clipPath = this.getClipPathElement(3)
const backgroundGroup = this.getBackgroundGroupElement({
withGradient: true,
attrs: { 'clip-path': 'url(#r)' },
attrs: { 'clip-path': `url(#r${this.idSuffix})` },
})
return renderBadge(
@@ -492,6 +493,7 @@ function social({
logoPadding,
color = '#4c1',
labelColor = '#555',
idSuffix = '',
}) {
// Social label is styled with a leading capital. Convert to caps here so
// width can be measured using the correct characters.
@@ -565,9 +567,9 @@ function social({
const rect = new XmlElement({
name: 'rect',
attrs: {
id: 'llink',
id: `llink${idSuffix}`,
stroke: '#d5d5d5',
fill: 'url(#a)',
fill: `url(#a${idSuffix})`,
x: '.5',
y: '.5',
width: labelRectWidth,
@@ -602,7 +604,7 @@ function social({
? new XmlElement({
name: 'a',
content: [shadow, text, rect],
attrs: { target: '_blank', 'xlink:href': leftLink },
attrs: { target: '_blank', href: leftLink },
})
: new ElementList({ content: [rect, shadow, text] })
}
@@ -640,7 +642,7 @@ function social({
name: 'text',
content: [message],
attrs: {
id: 'rlink',
id: `rlink${idSuffix}`,
x: messageTextX,
y: 140,
transform: FONT_SCALE_DOWN_VALUE,
@@ -652,7 +654,7 @@ function social({
? new XmlElement({
name: 'a',
content: [rect, shadow, text],
attrs: { target: '_blank', 'xlink:href': rightLink },
attrs: { target: '_blank', href: rightLink },
})
: new ElementList({ content: [shadow, text] })
}
@@ -660,7 +662,7 @@ function social({
const style = new XmlElement({
name: 'style',
content: [
'a:hover #llink{fill:url(#b);stroke:#ccc}a:hover #rlink{fill:#4183c4}',
`a:hover #llink${idSuffix}{fill:url(#b${idSuffix});stroke:#ccc}a:hover #rlink${idSuffix}{fill:#4183c4}`,
],
})
const gradients = new ElementList({
@@ -681,7 +683,7 @@ function social({
attrs: { offset: 1, 'stop-opacity': '.1' },
}),
],
attrs: { id: 'a', x2: 0, y2: '100%' },
attrs: { id: `a${idSuffix}`, x2: 0, y2: '100%' },
}),
new XmlElement({
name: 'linearGradient',
@@ -695,7 +697,7 @@ function social({
attrs: { offset: 1, 'stop-opacity': '.1' },
}),
],
attrs: { id: 'b', x2: 0, y2: '100%' },
attrs: { id: `b${idSuffix}`, x2: 0, y2: '100%' },
}),
],
})
@@ -801,11 +803,13 @@ function forTheBadge({
// there is no label. When `needsLabelRect` is true, render a label rect and a
// message rect; when false, only a message rect.
const hasLabel = Boolean(label.length)
const noText = !hasLabel && !message
const needsLabelRect = hasLabel || (logo && labelColor)
const gutter = noText ? LOGO_TEXT_GUTTER - LOGO_MARGIN : LOGO_TEXT_GUTTER
let logoMinX, labelTextMinX
if (logo) {
logoMinX = LOGO_MARGIN
labelTextMinX = logoMinX + logoWidth + LOGO_TEXT_GUTTER
labelTextMinX = logoMinX + logoWidth + gutter
} else {
labelTextMinX = TEXT_MARGIN
}
@@ -820,9 +824,8 @@ function forTheBadge({
messageRectWidth = 2 * TEXT_MARGIN + messageTextWidth
} else {
if (logo) {
messageTextMinX = TEXT_MARGIN + logoWidth + LOGO_TEXT_GUTTER
messageRectWidth =
2 * TEXT_MARGIN + logoWidth + LOGO_TEXT_GUTTER + messageTextWidth
messageTextMinX = TEXT_MARGIN + logoWidth + gutter
messageRectWidth = 2 * TEXT_MARGIN + logoWidth + gutter + messageTextWidth
} else {
messageTextMinX = TEXT_MARGIN
messageRectWidth = 2 * TEXT_MARGIN + messageTextWidth
@@ -865,7 +868,7 @@ function forTheBadge({
content: [rect, text],
attrs: {
target: '_blank',
'xlink:href': leftLink,
href: leftLink,
},
})
} else {
@@ -904,7 +907,7 @@ function forTheBadge({
content: [rect, text],
attrs: {
target: '_blank',
'xlink:href': rightLink,
href: rightLink,
},
})
} else {

View File

@@ -52,6 +52,11 @@ function _validate(format) {
`Field \`style\` must be one of (${styleValues.toString()})`,
)
}
if ('idSuffix' in format && !/^[a-zA-Z0-9\-_]*$/.test(format.idSuffix)) {
throw new ValidationError(
'Field `idSuffix` must contain only numbers, letters, -, and _',
)
}
}
function _clean(format) {
@@ -63,6 +68,7 @@ function _clean(format) {
'style',
'logoBase64',
'links',
'idSuffix',
]
const cleaned = {}
@@ -95,6 +101,7 @@ function _clean(format) {
* @param {string} format.style (Optional) Visual style (e.g: 'flat')
* @param {string} format.logoBase64 (Optional) Logo data URL
* @param {Array} format.links (Optional) Links array (e.g: ['https://example.com', 'https://example.com'])
* @param {string} format.idSuffix (Optional) Suffix for IDs, e.g. 1, 2, and 3 for three invocations that will be used on the same page.
* @returns {string} Badge in SVG format
* @see https://github.com/badges/shields/tree/master/badge-maker/README.md
*/

View File

@@ -1,7 +1,7 @@
'use strict'
const { expect } = require('chai')
const { makeBadge, ValidationError } = require('.')
import { expect } from 'chai'
import { makeBadge, ValidationError } from './index.js'
describe('makeBadge function', function () {
it('should produce badge with valid input', async function () {
@@ -101,5 +101,11 @@ describe('makeBadge function', function () {
ValidationError,
'Field `style` must be one of (plastic,flat,flat-square,for-the-badge,social)',
)
expect(() =>
makeBadge({ label: 'build', message: 'passed', idSuffix: '\\' }),
).to.throw(
ValidationError,
'Field `idSuffix` must contain only numbers, letters, -, and _',
)
})
})

View File

@@ -20,6 +20,7 @@ module.exports = function makeBadge({
logoSize,
logoWidth,
links = ['', ''],
idSuffix,
}) {
// String coercion and whitespace removal.
label = `${label}`.trim()
@@ -38,6 +39,7 @@ module.exports = function makeBadge({
link: links,
name: label,
value: message,
idSuffix,
})
}
@@ -59,6 +61,7 @@ module.exports = function makeBadge({
logoPadding: logo && label.length ? 3 : 0,
color: toSvgColor(color),
labelColor: toSvgColor(labelColor),
idSuffix,
}),
)
}

View File

@@ -1,10 +1,10 @@
'use strict'
const { test, given, forCases } = require('sazerac')
const { expect } = require('chai')
const snapshot = require('snap-shot-it')
const prettier = require('prettier')
const makeBadge = require('./make-badge')
import { test, given, forCases } from 'sazerac'
import { expect } from 'chai'
import snapshot from 'snap-shot-it'
import prettier from 'prettier'
import makeBadge from './make-badge.js'
async function expectBadgeToMatchSnapshot(format) {
snapshot(await prettier.format(makeBadge(format), { parser: 'html' }))
@@ -167,6 +167,18 @@ describe('The badge generator', function () {
})
})
it('should match snapshots: message with custom suffix', async function () {
await expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
idSuffix: '1',
})
})
it('should match snapshots: message only, no logo', async function () {
await expectBadgeToMatchSnapshot({
label: '',
@@ -259,6 +271,19 @@ describe('The badge generator', function () {
})
})
it('should match snapshots: message with custom suffix', async function () {
await expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
idSuffix: '1',
})
})
it('should match snapshots: message only, no logo', async function () {
await expectBadgeToMatchSnapshot({
label: '',
@@ -351,6 +376,19 @@ describe('The badge generator', function () {
})
})
it('should match snapshots: message with custom suffix', async function () {
await expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
idSuffix: '1',
})
})
it('should match snapshots: message only, no logo', async function () {
await expectBadgeToMatchSnapshot({
label: '',
@@ -470,6 +508,19 @@ describe('The badge generator', function () {
})
})
it('should match snapshots: message with custom suffix', async function () {
await expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
idSuffix: '1',
})
})
it('should match snapshots: message only, no logo', async function () {
await expectBadgeToMatchSnapshot({
label: '',
@@ -589,6 +640,19 @@ describe('The badge generator', function () {
})
})
it('should match snapshots: message with custom suffix', async function () {
await expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
idSuffix: '1',
})
})
it('should match snapshots: message only, no logo', async function () {
await expectBadgeToMatchSnapshot({
label: '',
@@ -636,7 +700,7 @@ describe('The badge generator', function () {
})
describe('badges with logos should always produce the same badge', function () {
it('badge with logo', async function () {
it('default badge with logo', async function () {
await expectBadgeToMatchSnapshot({
label: 'label',
message: 'message',
@@ -645,4 +709,56 @@ describe('The badge generator', function () {
})
})
})
describe('badges with logo-only should always produce the same badge', function () {
it('flat badge, logo-only', async function () {
await expectBadgeToMatchSnapshot({
label: '',
message: '',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
style: 'flat',
})
})
it('flat-square badge, logo-only', async function () {
await expectBadgeToMatchSnapshot({
label: '',
message: '',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
style: 'flat-square',
})
})
it('for-the-badge badge, logo-only', async function () {
await expectBadgeToMatchSnapshot({
label: '',
message: '',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
style: 'for-the-badge',
})
})
it('social badge, logo-only', async function () {
await expectBadgeToMatchSnapshot({
label: '',
message: '',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
style: 'social',
})
})
it('plastic badge, logo-only', async function () {
await expectBadgeToMatchSnapshot({
label: '',
message: '',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
style: 'plastic',
})
})
})
})

View File

@@ -1,6 +1,6 @@
{
"name": "badge-maker",
"version": "4.0.0",
"version": "4.1.0",
"description": "Shields.io badge library",
"keywords": [
"GitHub",

View File

@@ -105,6 +105,8 @@ private:
opencollective_token: 'OPENCOLLECTIVE_TOKEN'
pepy_key: 'PEPY_KEY'
postgres_url: 'POSTGRES_URL'
reddit_client_id: 'REDDIT_CLIENT_ID'
reddit_client_secret: 'REDDIT_CLIENT_SECRET'
sentry_dsn: 'SENTRY_DSN'
sl_insight_userUuid: 'SL_INSIGHT_USER_UUID'
sl_insight_apiToken: 'SL_INSIGHT_API_TOKEN'
@@ -114,7 +116,6 @@ private:
teamcity_pass: 'TEAMCITY_PASS'
twitch_client_id: 'TWITCH_CLIENT_ID'
twitch_client_secret: 'TWITCH_CLIENT_SECRET'
wheelmap_token: 'WHEELMAP_TOKEN'
influx_username: 'INFLUX_USERNAME'
influx_password: 'INFLUX_PASSWORD'
weblate_api_key: 'WEBLATE_API_KEY'

View File

@@ -5,6 +5,8 @@ private:
gh_client_id: ...
gh_client_secret: ...
gitlab_token: ...
reddit_client_id: ...
reddit_client_secret: ...
sentry_dsn: ...
shields_secret: ...
sl_insight_userUuid: ...

View File

@@ -9,6 +9,8 @@ private:
gitlab_token: '...'
obs_user: '...'
obs_pass: '...'
reddit_client_id: '...'
reddit_client_secret: '...'
twitch_client_id: '...'
twitch_client_secret: '...'
weblate_api_key: '...'

View File

@@ -22,4 +22,4 @@ public:
rasterUrl: 'https://raster.shields.io'
userAgentBase: 'Shields.io'
requireCloudflare: true
requestTimeoutSeconds: 20
requestTimeoutSeconds: 8

View File

@@ -47,10 +47,6 @@ const optionalStringWhenNamedLogoPresent = Joi.alternatives().conditional(
},
)
const optionalNumberWhenAnyLogoPresent = Joi.alternatives()
.conditional('namedLogo', { is: Joi.string().required(), then: Joi.number() })
.conditional('logoSvg', { is: Joi.string().required(), then: Joi.number() })
const serviceDataSchema = Joi.object({
isError: Joi.boolean(),
label: Joi.string().allow(''),
@@ -65,7 +61,7 @@ const serviceDataSchema = Joi.object({
namedLogo: Joi.string(),
logoSvg: Joi.string(),
logoColor: optionalStringWhenNamedLogoPresent,
logoWidth: optionalNumberWhenAnyLogoPresent,
logoSize: optionalStringWhenNamedLogoPresent,
cacheSeconds: Joi.number().integer().min(0),
style: Joi.string(),
})
@@ -154,12 +150,18 @@ class BaseService {
static get _cacheLength() {
const cacheLengths = {
build: 30,
license: 3600,
version: 300,
debug: 60,
downloads: 900,
rating: 900,
social: 900,
'platform-support': 300,
size: 300,
version: 300,
chat: 1800,
downloads: 1800,
rating: 1800,
social: 1800,
license: 14400,
}
return cacheLengths[this.category]
}

View File

@@ -1,5 +1,5 @@
import Joi from 'joi'
import chai from 'chai'
import { expect, use } from 'chai'
import sinon from 'sinon'
import prometheus from 'prom-client'
import chaiAsPromised from 'chai-as-promised'
@@ -16,8 +16,7 @@ import {
import BaseService from './base.js'
import { MetricHelper, MetricNames } from './metric-helper.js'
import '../register-chai-plugins.spec.js'
const { expect } = chai
chai.use(chaiAsPromised)
use(chaiAsPromised)
const queryParamSchema = Joi.object({
queryParamA: Joi.string(),

View File

@@ -1,5 +1,5 @@
import { test, given } from 'sazerac'
import chai, { expect } from 'chai'
import { expect, use } from 'chai'
import sinon from 'sinon'
import httpMocks from 'node-mocks-http'
import chaiDatetime from 'chai-datetime'
@@ -10,7 +10,7 @@ import {
setCacheHeadersForStaticResource,
serverHasBeenUpSinceResourceCached,
} from './cache-headers.js'
chai.use(chaiDatetime)
use(chaiDatetime)
describe('Cache header functions', function () {
let res

View File

@@ -20,7 +20,7 @@ import toArray from './to-array.js'
// 1. When `?logo=` contains a simple-icons logo or contains a base64-encoded
// SVG, that logo is used. When a `&logoColor=` is specified, that color is
// used (except for the base64-encoded logos). Otherwise the default color
// is used. The appearance of the logo can be customized using `logoWidth`,
// is used.
// When `?logo=` is specified, any logo-related parameters specified
// dynamically by the service, or by default in the service, are ignored.
// 2. The second precedence is the dynamic logo returned by a service. This is
@@ -47,16 +47,12 @@ export default function coalesceBadge(
label: overrideLabel,
logo: overrideLogo,
logoColor: overrideLogoColor,
logoSize: overrideLogoSize,
link: overrideLink,
colorB: legacyOverrideColor,
colorA: legacyOverrideLabelColor,
} = overrides
let {
logoWidth: overrideLogoWidth,
logoSize: overrideLogoSize,
color: overrideColor,
labelColor: overrideLabelColor,
} = overrides
let { color: overrideColor, labelColor: overrideLabelColor } = overrides
// Only use the legacy properties if the new ones are not provided
if (typeof overrideColor === 'undefined') {
@@ -73,7 +69,6 @@ export default function coalesceBadge(
if (typeof overrideLabelColor === 'number') {
overrideLabelColor = `${overrideLabelColor}`
}
overrideLogoWidth = +overrideLogoWidth || undefined
const {
isError,
@@ -85,7 +80,6 @@ export default function coalesceBadge(
namedLogo: serviceNamedLogo,
logoColor: serviceLogoColor,
logoSize: serviceLogoSize,
logoWidth: serviceLogoWidth,
link: serviceLink,
cacheSeconds: serviceCacheSeconds,
style: serviceStyle,
@@ -131,7 +125,6 @@ export default function coalesceBadge(
// If the logo has been overridden it does not make sense to inherit the
// original width or position.
logoSize = overrideLogoSize
logoWidth = overrideLogoWidth
} else {
if (serviceLogoSvg) {
logoSvgBase64 = svg2base64(serviceLogoSvg)
@@ -143,12 +136,11 @@ export default function coalesceBadge(
namedLogoColor = coalesce(overrideLogoColor, serviceLogoColor)
}
logoSize = coalesce(overrideLogoSize, serviceLogoSize)
logoWidth = coalesce(overrideLogoWidth, serviceLogoWidth)
}
if (namedLogo) {
const iconSize = getIconSize(String(namedLogo).toLowerCase())
if (!logoWidth && iconSize && logoSize === 'auto') {
if (iconSize && logoSize === 'auto') {
logoWidth = (iconSize.width / iconSize.height) * DEFAULT_LOGO_HEIGHT
}

View File

@@ -185,7 +185,6 @@ describe('coalesceBadge', function () {
{
namedLogo: 'appveyor',
logoColor: 'red',
logoWidth: 100,
},
{},
).logo,
@@ -246,20 +245,6 @@ describe('coalesceBadge', function () {
})
})
describe('Logo width', function () {
it('overrides the logoWidth', function () {
expect(coalesceBadge({ logoWidth: 20 }, {}, {})).to.include({
logoWidth: 20,
})
})
it('applies the logo width', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoWidth: 275 }, {}),
).to.include({ logoWidth: 275 })
})
})
describe('Links', function () {
it('overrides the links', function () {
expect(

View File

@@ -17,8 +17,14 @@ describe('mergeQueries function', function () {
}
`),
),
).to.equalIgnoreSpaces(
'query ($param: String!) { foo(param: $param) { bar } }',
).to.equal(
print(gql`
query ($param: String!) {
foo(param: $param) {
bar
}
}
`),
)
expect(
@@ -38,8 +44,15 @@ describe('mergeQueries function', function () {
`,
),
),
).to.equalIgnoreSpaces(
'query ($param: String!) { foo(param: $param) { bar } baz }',
).to.equal(
print(gql`
query ($param: String!) {
foo(param: $param) {
bar
}
baz
}
`),
)
expect(
@@ -62,7 +75,15 @@ describe('mergeQueries function', function () {
`,
),
),
).to.equalIgnoreSpaces('{ foo bar baz }')
).to.equal(
print(gql`
{
foo
bar
baz
}
`),
)
expect(
print(
@@ -79,7 +100,14 @@ describe('mergeQueries function', function () {
`,
),
),
).to.equalIgnoreSpaces('{ foo bar }')
).to.equal(
print(gql`
{
foo
bar
}
`),
)
})
it('throws an error when passed invalid params', function () {

View File

@@ -12,7 +12,6 @@ const globalQueryParams = new Set([
'logo',
'logoColor',
'logoSize',
'logoWidth',
'link',
'colorA',
'colorB',
@@ -115,7 +114,6 @@ function handleRequest(cacheHeaderConfig, handlerOptions) {
const result = handlerOptions.handler(
filteredQueryParams,
match,
// eslint-disable-next-line mocha/prefer-arrow-callback
function sendBadge(format, badgeData) {
if (serverUnresponsive) {
return
@@ -128,7 +126,6 @@ function handleRequest(cacheHeaderConfig, handlerOptions) {
makeSend(format, ask.res, end)(svg)
},
)
// eslint-disable-next-line promise/prefer-await-to-then
if (result && result.catch) {
// eslint-disable-next-line promise/prefer-await-to-then
result.catch(err => {

View File

@@ -11,6 +11,7 @@ function streamFromString(str) {
function sendSVG(res, askres, end) {
askres.setHeader('Content-Type', 'image/svg+xml;charset=utf-8')
askres.setHeader('Content-Security-Policy', "script-src 'none';")
askres.setHeader('Content-Length', Buffer.byteLength(res, 'utf8'))
end(null, { template: streamFromString(res) })
}

View File

@@ -1,15 +1,14 @@
import path from 'path'
import { fileURLToPath } from 'url'
import chai from 'chai'
import { expect, use } from 'chai'
import chaiAsPromised from 'chai-as-promised'
import {
loadServiceClasses,
getServicePaths,
InvalidService,
} from './loader.js'
chai.use(chaiAsPromised)
use(chaiAsPromised)
const { expect } = chai
const fixturesDir = path.join(
path.dirname(fileURLToPath(import.meta.url)),
'loader-test-fixtures',

View File

@@ -1,4 +1,4 @@
import chai from 'chai'
import { expect } from 'chai'
import {
category2openapi,
pathParam,
@@ -7,7 +7,6 @@ import {
queryParams,
} from './openapi.js'
import BaseJsonService from './base-json.js'
const { expect } = chai
class OpenApiService extends BaseJsonService {
static category = 'build'

View File

@@ -1,5 +1,3 @@
import { use } from 'chai'
import chaiString from 'chai-string'
import sinonChai from 'sinon-chai'
use(chaiString)
use(sinonChai)

View File

@@ -16,7 +16,12 @@ import { makeSend } from '../base-service/legacy-result-sender.js'
import { handleRequest } from '../base-service/legacy-request-handler.js'
import { clearResourceCache } from '../base-service/resource-cache.js'
import { rasterRedirectUrl } from '../badge-urls/make-badge-url.js'
import { fileSize, nonNegativeInteger } from '../../services/validators.js'
import {
fileSize,
nonNegativeInteger,
optionalUrl,
url as requiredUrl,
} from '../../services/validators.js'
import log from './log.js'
import PrometheusMetrics from './prometheus-metrics.js'
import InfluxMetrics from './influx-metrics.js'
@@ -54,8 +59,6 @@ const Joi = originalJoi
},
}))
const optionalUrl = Joi.string().uri({ scheme: ['http', 'https'] })
const requiredUrl = optionalUrl.required()
const origins = Joi.arrayFromString().items(Joi.string().origin())
const defaultService = Joi.object({ authorizedOrigins: origins }).default({
authorizedOrigins: [],
@@ -194,6 +197,8 @@ const privateConfigSchema = Joi.object({
opencollective_token: Joi.string(),
pepy_key: Joi.string(),
postgres_url: Joi.string().uri({ scheme: 'postgresql' }),
reddit_client_id: Joi.string(),
reddit_client_secret: Joi.string(),
sentry_dsn: Joi.string(),
sl_insight_userUuid: Joi.string(),
sl_insight_apiToken: Joi.string(),
@@ -203,7 +208,6 @@ const privateConfigSchema = Joi.object({
teamcity_pass: Joi.string(),
twitch_client_id: Joi.string(),
twitch_client_secret: Joi.string(),
wheelmap_token: Joi.string(),
influx_username: Joi.string(),
influx_password: Joi.string(),
weblate_api_key: Joi.string(),

View File

@@ -119,7 +119,7 @@ describe('The server', function () {
)
expect(statusCode).to.equal(200)
expect(headers['content-type']).to.equal('image/svg+xml;charset=utf-8')
expect(headers['content-length']).to.equal('1130')
expect(headers['content-length']).to.equal('1087')
})
it('correctly calculates the content-length header for multi-byte unicode characters', async function () {
@@ -139,6 +139,27 @@ describe('The server', function () {
expect(() => JSON.parse(body)).not.to.throw()
})
describe('Content Security Policy', function () {
it('should disable javascript when serving SVG content (no extension)', async function () {
const { headers } = await got(`${baseUrl}:fruit-apple-green`)
expect(headers['content-security-policy']).to.equal(
"script-src 'none';",
)
})
it('should disable javascript when serving SVG content (with extension)', async function () {
const { headers } = await got(`${baseUrl}:fruit-apple-green.svg`)
expect(headers['content-security-policy']).to.equal(
"script-src 'none';",
)
})
it('should not send content security headers when serving JSON content', async function () {
const { headers } = await got(`${baseUrl}:fruit-apple-green.json`)
expect(headers).not.to.have.property('content-security-policy')
})
})
it('should preserve label case', async function () {
const { statusCode, body } = await got(`${baseUrl}:fRuiT-apple-green.svg`)
expect(statusCode).to.equal(200)
@@ -494,7 +515,7 @@ describe('The server', function () {
influx_password: 'influx-password',
},
})
clock = sinon.useFakeTimers()
clock = sinon.useFakeTimers({ toFake: ['setInterval'] })
baseUrl = server.baseUrl
await server.start()
})

View File

@@ -83,7 +83,7 @@ class ServiceTester {
.before(() => {
this.beforeEach()
})
// eslint-disable-next-line mocha/prefer-arrow-callback, promise/prefer-await-to-then
// eslint-disable-next-line promise/prefer-await-to-then
.finally(function () {
// `this` is the IcedFrisby instance.
let responseBody

View File

@@ -10,4 +10,6 @@ export default defineConfig({
baseUrl: 'http://localhost:3000',
supportFile: false,
},
video: true,
videoCompression: true,
})

View File

@@ -24,16 +24,15 @@ Production hosting is managed by the Shields ops team:
| Cloudflare (CDN) | Access management | @espadrine |
| Cloudflare (CDN) | Admin access | @calebcartwright, @chris48s, @espadrine, @paulmelnikow, @PyvesB |
| Twitch | OAuth app | @PyvesB |
| Reddit | OAuth app | @chris48s, @PyvesB |
| Discord | OAuth app | @PyvesB |
| YouTube | Account owner | @PyvesB |
| GitLab | Account owner | @calebcartwright |
| GitLab | Account access | @calebcartwright, @chris48s, @paulmelnikow, @PyvesB |
| OpenStreetMap (for Wheelmap) | Account owner | @paulmelnikow |
| DNS | Account owner | @olivierlacan |
| DNS | Read-only account access | @espadrine, @paulmelnikow, @chris48s |
| Sentry | Error reports | @espadrine, @paulmelnikow |
| Metrics server | Owner | @platan |
| UptimeRobot | Account owner | @paulmelnikow |
| More metrics | Owner | @RedSparr0w |
## Attached state
@@ -120,19 +119,15 @@ The canonical and only recommended domain for badge URLs is `img.shields.io`. Cu
## Monitoring
Overall server performance and requests by service are monitored using
[Prometheus and Grafana][metrics].
[Prometheus and Grafana][server metrics].
Request performance is monitored in two places:
- [Status][] (using [UptimeRobot][])
- [Status][] (using NodePing)
- [Server metrics][] using Prometheus and Grafana
- [@RedSparr0w's monitor][monitor] which posts [notifications][] to a private
[#monitor chat room][monitor discord]
[metrics]: https://metrics.shields.io/
[status]: https://stats.uptimerobot.com/PjXogHB5p
[status]: https://nodeping.com/reports/status/YBISBQB254
[server metrics]: https://metrics.shields.io/
[uptimerobot]: https://uptimerobot.com/
[monitor]: https://shields.redsparr0w.com/1568/
[notifications]: http://shields.redsparr0w.com/discord_notification
[monitor discord]: https://discordapp.com/channels/308323056592486420/470700909182320646

View File

@@ -290,6 +290,17 @@ Create an account, sign in and obtain generate a key on your
`PYPI_URL` can be used to optionally send all the PyPI requests to a Self-hosted Pypi registry,
users can also override this by query parameter `pypiBaseUrl`.
### Reddit
Using a token for Reddit is optional but will allow higher API rates.
- `REDDIT_CLIENT_ID` (yml: `private.reddit_client_id`)
- `REDDIT_CLIENT_SECRET` (yml: `private.reddit_client_secret`)
Register to use the API using [this form](https://support.reddithelp.com/hc/en-us/requests/new?ticket_form_id=14868593862164)
and create an app in the [Reddit preferences page](https://www.reddit.com/prefs/apps)
in order to obtain a client id and a client secret for making Reddit API calls.
### SymfonyInsight (formerly Sensiolabs)
- `SL_INSIGHT_USER_UUID` (yml: `private.sl_insight_userUuid`)
@@ -351,16 +362,6 @@ You can find your Weblate API key in your profile under
[weblate authentication]: https://docs.weblate.org/en/latest/api.html#authentication-and-generic-parameters
[weblate api key location]: https://hosted.weblate.org/accounts/profile/#api
### Wheelmap
- `WHEELMAP_TOKEN` (yml: `private.wheelmap_token`)
The wheelmap API requires authentication. To obtain a token,
Create an account, [sign in][wheelmap token] and use the _Authentication Token_
displayed on your profile page.
[wheelmap token]: http://classic.wheelmap.org/en/users/sign_in
### YouTube
- `YOUTUBE_API_KEY` (yml: `private.youtube_api_key`)

250
eslint.config.js Normal file
View File

@@ -0,0 +1,250 @@
import chaiFriendlyPlugin from 'eslint-plugin-chai-friendly'
import cypressPlugin from 'eslint-plugin-cypress/flat'
import jsdocPlugin from 'eslint-plugin-jsdoc'
import mochaPlugin from 'eslint-plugin-mocha'
import icedfrisbyPlugin from 'eslint-plugin-icedfrisby'
import sortClassMembersPlugin from 'eslint-plugin-sort-class-members'
import importPlugin from 'eslint-plugin-import'
import reactHooksPlugin from 'eslint-plugin-react-hooks'
import prettierConfig from 'eslint-plugin-prettier/recommended'
import promisePlugin from 'eslint-plugin-promise'
import globals from 'globals'
import neostandard from 'neostandard'
import tsParser from '@typescript-eslint/parser'
import js from '@eslint/js'
// Config that is used across the whole codebase
// and customisations to built-in ESLint rules
const globalConfig = {
plugins: {
import: importPlugin,
promise: promisePlugin,
},
rules: {
'import/order': ['error', { 'newlines-between': 'never' }],
'promise/prefer-await-to-then': 'error',
// ESLint built-in rules config
'no-empty': ['error', { allowEmptyCatch: true }],
'no-var': 'error',
'prefer-const': 'error',
'arrow-body-style': ['error', 'as-needed'],
'object-shorthand': ['error', 'properties'],
'prefer-template': 'error',
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
'new-cap': ['error', { capIsNew: true }],
quotes: [
'error',
'single',
{ avoidEscape: true, allowTemplateLiterals: false },
],
camelcase: [
'error',
{
ignoreDestructuring: true,
properties: 'never',
ignoreGlobals: true,
allow: ['^UNSAFE_'],
},
],
},
}
// config specific to linting Node (CommonJS) files
const commonJsConfig = {
files: ['badge-maker/**/*.js', '**/*.cjs'],
languageOptions: {
globals: {
...globals.node,
},
},
}
// config specific to linting Node (ESModules) files
const nodeEsmConfig = {
files: ['**/*.@(js|mjs)', '!frontend/**/*.js', '!badge-maker/**/*.js'],
languageOptions: {
globals: {
...globals.node,
},
parser: tsParser,
sourceType: 'module',
},
rules: {
'no-console': 'off',
},
}
// config specific to linting Frontend (ESModules) files
const frontendConfig = {
files: ['frontend/**/*.js'],
plugins: {
'react-hooks': reactHooksPlugin,
},
languageOptions: {
globals: {
...globals.browser,
},
sourceType: 'module',
},
rules: {
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'error',
},
}
// config specific to linting Services
const servicesConfig = {
files: ['core/base-service/**/*.js', 'services/**/*.js'],
plugins: {
'sort-class-members': sortClassMembersPlugin,
},
rules: {
'sort-class-members/sort-class-members': [
'error',
{
order: [
'name',
'category',
'isDeprecated',
'route',
'auth',
'openApi',
'_cacheLength',
'defaultBadgeData',
'render',
'constructor',
'fetch',
'transform',
'handle',
],
},
],
},
}
// config specific to linting Mocha tests
const mochaConfig = {
files: [
'**/*.spec.@(js|mjs|ts)',
'**/*.integration.js',
'**/test-helpers.js',
'core/service-test-runner/**/*.js',
],
plugins: {
mocha: mochaPlugin,
},
languageOptions: {
globals: {
...globals.mocha,
},
},
rules: {
'mocha/no-exclusive-tests': 'error',
'mocha/no-skipped-tests': 'error',
'mocha/no-mocha-arrows': 'error',
'mocha/prefer-arrow-callback': 'error',
'no-unused-expressions': 'off',
},
}
// config specific to linting Cypress tests
const cypressConfig = {
files: ['**/*.cy.@(js|ts)'],
...cypressPlugin.configs.recommended,
}
// append these to cypress.configs.recommended, without overwriting
cypressConfig.plugins.mocha = mochaPlugin
cypressConfig.rules['mocha/no-exclusive-tests'] = 'error'
cypressConfig.rules['mocha/no-skipped-tests'] = 'error'
cypressConfig.rules['mocha/no-mocha-arrows'] = 'off'
// config specific to linting Service tests (IcedFrisby)
const serviceTestsConfig = {
files: ['services/**/*.tester.js'],
plugins: {
icedfrisby: icedfrisbyPlugin,
},
rules: {
'icedfrisby/no-exclusive-tests': 'error',
'icedfrisby/no-skipped-tests': 'error',
'no-unused-expressions': 'off',
},
}
// config specific to linting JSDoc comments
const jsDocConfig = {
plugins: {
jsdoc: jsdocPlugin,
},
rules: {
'jsdoc/require-jsdoc': 'off',
'jsdoc/no-undefined-types': ['error', { definedTypes: ['Joi'] }],
'jsdoc/check-alignment': 'error',
'jsdoc/check-param-names': 'error',
'jsdoc/check-tag-names': 'error',
'jsdoc/check-types': 'error',
'jsdoc/implements-on-classes': 'error',
'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],
'jsdoc/require-param': 'error',
'jsdoc/require-param-description': 'error',
'jsdoc/require-param-name': 'error',
'jsdoc/require-param-type': 'error',
'jsdoc/require-returns': 'error',
'jsdoc/require-returns-check': 'error',
'jsdoc/require-returns-description': 'error',
'jsdoc/require-returns-type': 'error',
'jsdoc/valid-types': 'error',
},
}
const config = [
{
ignores: [
'api-docs/',
'build',
'coverage',
'__snapshots__',
'public',
'badge-maker/node_modules/',
'!.github/',
'frontend/.docusaurus/**',
'**/package.json',
],
},
js.configs.recommended,
chaiFriendlyPlugin.configs.recommendedFlat,
...neostandard({ noStyle: true }),
globalConfig,
commonJsConfig,
nodeEsmConfig,
frontendConfig,
servicesConfig,
mochaConfig,
cypressConfig,
serviceTestsConfig,
jsDocConfig,
// register prettierConfig last, as per
// https://github.com/prettier/eslint-plugin-prettier?tab=readme-ov-file#configuration-new-eslintconfigjs
prettierConfig,
]
export default config

View File

@@ -25,6 +25,8 @@ processes = []
processes = ["app"]
protocol = "tcp"
script_checks = []
auto_stop_machines = "suspend"
auto_start_machines = true
[services.concurrency]
hard_limit = 25
@@ -45,3 +47,7 @@ processes = []
interval = "15s"
restart_limit = 0
timeout = "2s"
[[vm]]
size = "shared-cpu-1x"
memory = "256mb"

View File

@@ -0,0 +1,661 @@
---
slug: GHSA-rxvx-x284-4445
title: Our response to RCE Security Advisory
authors:
name: chris48s
title: Shields.io Core Team
url: https://github.com/chris48s
image_url: https://avatars.githubusercontent.com/u/6025893
tags: []
---
We've just published a critical security advisory relating to a Remote Code Execution vulnerability in Dynamic JSON/TOML/YAML badges: https://github.com/badges/shields/security/advisories/GHSA-rxvx-x284-4445 Thanks to [@nickcopi](https://github.com/nickcopi) for his help with this.
If you self-host your own instance of Shields you should upgrade to [server-2024-09-25](https://hub.docker.com/layers/shieldsio/shields/server-2024-09-25/images/sha256-28aaea75049e325c9f1d63c8a8b477fc387d3d3fe35b933d6581487843cd610f?context=explore) or later as soon as possible to protect your instance.
This is primarily a concern for self-hosting users. However this does also have a couple of knock-on implications for some users of shields.io itself.
## 1. Users who have authorized the Shields.io GitHub OAuth app
While we have taken steps to close this vulnerability quickly after becoming aware of it, this attack vector has existed in our application for some time. We aren't aware of it having been actively exploited on shields.io. We also can't prove that it has not been exploited.
We don't log or track our users, so a breach offers a very limited attack surface against end users of shields.io. This is by design. One of the (few) information assets shields.io does hold is our GitHub token pool. This allows users to share a token with us by authorizing our OAuth app. Doing this gives us access to a token with read-only access to public data which we can use to increase our rate limit when making calls to the GitHub API.
The tokens we hold are not of high value to an attacker because they have read-only access to public data, but we can't say for sure they haven't been exfiltrated. If you've donated a token in the past and want to revoke it, you can revoke the Shields.io OAuth app at https://github.com/settings/applications which will de-activate the token you have shared with us.
## 2. Users of Dynamic JSON/TOML/YAML badges
Up until now, we have been using https://github.com/dchester/jsonpath as our library querying documents using JSONPath expressions. [@nickcopi](https://github.com/nickcopi) responsibly reported to us how a prototype pollution vulnerability in this library could be exploited to construct a JSONPath expression allowing an attacker to perform remote code execution. This vulnerability was reported on the package's issue tracker but not flagged by security scanning tools. It seems extremely unlikely that this will be fixed in the upstream package despite being widely used. It also seems unlikely this package will receive any further maintenance in future, even in response to critical security issues. In order to resolve this issue, we needed to switch to a different JSONPath library. We've decided to switch https://github.com/JSONPath-Plus/JSONPath using the `eval: false` option to disable script expressions.
This is an important security improvement and we have to make a change to protect the security of shields.io and users hosting their own instance of the application. However, this does come with some tradeoffs from a backwards-compatibility perspective.
### Using `eval: false`
Using JSONPath-Plus with `eval: false` does disable some query syntax which relies on evaluating javascript expressions.
For example, it would previously have been possible to use a JSONPath query like `$..keywords[(@.length-1)]` against the document https://github.com/badges/shields/raw/master/package.json to select the last element from the keywords array https://github.com/badges/shields/blob/e237e40ab88b8ad4808caad4f3dae653822aa79a/package.json#L6-L12
This is now not a supported query.
In this particular case, you could rewrite that query to `$..keywords[-1:]` and obtain the same result, but that may not be possible in all cases. We do realise that this removes some functionality that previously worked but closing this remote code execution vulnerability is the top priority, especially since there will be workarounds in many cases.
### Implementation Quirks
Historically, every JSONPath implementation has had its own idiosyncrasies. While most simple and common queries will behave the same way across different implementations, switching to another library will mean that some subset of queries may not work or produce different results.
One interesting thing that has happened in the world of JSONPath lately is RFC 9535 https://www.rfc-editor.org/rfc/rfc9535 which is an attempt to standardise JSONPath. As part of this mitigation, we did look at whether it would be possible to migrate to something that is RFC9535-compliant. However it is our assessment that the JavaScript community does not yet have a sufficiently mature/supported RFC9535-compliant JSONPath implementation. This means we are switching from one quirky implementation to another implementation with different quirks.
Again, this represents an unfortunate break in backwards-compatibility. However, it was necessary to prioritise closing off this remote code execution vulnerability over backwards-compatibility.
Although we can not provide a precise migration guide, here is a table of query types where https://github.com/dchester/jsonpath and https://github.com/JSONPath-Plus/JSONPath are known to diverge from the consensus implementation. This is sourced from the excellent https://cburgmer.github.io/json-path-comparison/
While this is a long list, many of these inputs represent edge cases or pathological inputs rather than common usage.
<details>
<summary>Table</summary>
<table>
<thead>
<tr>
<th>Query Type</th>
<th>Example Query</th>
</tr>
</thead>
<tbody>
<tr>
<td>Array slice with large number for end and negative step</td>
<td><code>$[2:-113667776004:-1]</code></td>
</tr>
<tr>
<td>Array slice with large number for start end negative step</td>
<td><code>$[113667776004:2:-1]</code></td>
</tr>
<tr>
<td>Array slice with negative step</td>
<td><code>$[3:0:-2]</code></td>
</tr>
<tr>
<td>Array slice with negative step on partially overlapping array</td>
<td><code>$[7:3:-1]</code></td>
</tr>
<tr>
<td>Array slice with negative step only</td>
<td><code>$[::-2]</code></td>
</tr>
<tr>
<td>Array slice with open end and negative step</td>
<td><code>$[3::-1]</code></td>
</tr>
<tr>
<td>Array slice with open start and negative step</td>
<td><code>$[:2:-1]</code></td>
</tr>
<tr>
<td>Array slice with range of 0</td>
<td><code>$[0:0]</code></td>
</tr>
<tr>
<td>Array slice with step 0</td>
<td><code>$[0:3:0]</code></td>
</tr>
<tr>
<td>Array slice with step and leading zeros</td>
<td><code>$[010:024:010]</code></td>
</tr>
<tr>
<td>Bracket notation with empty path</td>
<td><code>$[]</code></td>
</tr>
<tr>
<td>Bracket notation with number on object</td>
<td><code>$[0]</code></td>
</tr>
<tr>
<td>Bracket notation with number on string</td>
<td><code>$[0]</code></td>
</tr>
<tr>
<td>Bracket notation with number -1</td>
<td><code>$[-1]</code></td>
</tr>
<tr>
<td>Bracket notation with quoted array slice literal</td>
<td><code>$[':']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted closing bracket literal</td>
<td><code>$[']']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted current object literal</td>
<td><code>$['@']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted escaped backslash</td>
<td><code>$['\\']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted escaped single quote</td>
<td><code>$['\'']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted root literal</td>
<td><code>$['$']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted special characters combined</td>
<td><code>$[':@."$,*\'\\']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted string and unescaped single quote</td>
<td><code>$['single'quote']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted union literal</td>
<td><code>$[',']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted wildcard literal ?</td>
<td><code>$['*']</code></td>
</tr>
<tr>
<td>Bracket notation with quoted wildcard literal on object without key</td>
<td><code>$['*']</code></td>
</tr>
<tr>
<td>Bracket notation with spaces</td>
<td><code>$[ 'a' ]</code></td>
</tr>
<tr>
<td>Bracket notation with two literals separated by dot</td>
<td><code>$['two'.'some']</code></td>
</tr>
<tr>
<td>Bracket notation with two literals separated by dot without quotes</td>
<td><code>$[two.some]</code></td>
</tr>
<tr>
<td>Bracket notation without quotes</td>
<td><code>$[key]</code></td>
</tr>
<tr>
<td>Current with dot notation</td>
<td><code>@.a</code></td>
</tr>
<tr>
<td>Dot bracket notation</td>
<td><code>$.['key']</code></td>
</tr>
<tr>
<td>Dot bracket notation with double quotes</td>
<td><code>$.["key"]</code></td>
</tr>
<tr>
<td>Dot bracket notation without quotes</td>
<td><code>$.[key]</code></td>
</tr>
<tr>
<td>Dot notation after recursive descent with extra dot ?</td>
<td><code>$...key</code></td>
</tr>
<tr>
<td>Dot notation after union with keys</td>
<td><code>$['one','three'].key</code></td>
</tr>
<tr>
<td>Dot notation with dash</td>
<td><code>$.key-dash</code></td>
</tr>
<tr>
<td>Dot notation with double quotes</td>
<td><code>$."key"</code></td>
</tr>
<tr>
<td>Dot notation with double quotes after recursive descent ?</td>
<td><code>$.."key"</code></td>
</tr>
<tr>
<td>Dot notation with empty path</td>
<td><code>$.</code></td>
</tr>
<tr>
<td>Dot notation with key named length on array</td>
<td><code>$.length</code></td>
</tr>
<tr>
<td>Dot notation with key root literal</td>
<td><code>$.$</code></td>
</tr>
<tr>
<td>Dot notation with non ASCII key</td>
<td><code>$.??</code></td>
</tr>
<tr>
<td>Dot notation with number</td>
<td><code>$.2</code></td>
</tr>
<tr>
<td>Dot notation with number -1</td>
<td><code>$.-1</code></td>
</tr>
<tr>
<td>Dot notation with single quotes</td>
<td><code>$.'key'</code></td>
</tr>
<tr>
<td>Dot notation with single quotes after recursive descent ?</td>
<td><code>$..'key'</code></td>
</tr>
<tr>
<td>Dot notation with single quotes and dot</td>
<td><code>$.'some.key'</code></td>
</tr>
<tr>
<td>Dot notation with space padded key</td>
<td><code>$. a</code></td>
</tr>
<tr>
<td>Dot notation with wildcard after recursive descent on scalar ?</td>
<td><code>$..*</code></td>
</tr>
<tr>
<td>Dot notation without dot</td>
<td><code>$a</code></td>
</tr>
<tr>
<td>Dot notation without root</td>
<td><code>.key</code></td>
</tr>
<tr>
<td>Dot notation without root and dot</td>
<td><code>key</code></td>
</tr>
<tr>
<td>Empty</td>
<td><code>n/a</code></td>
</tr>
<tr>
<td>Filter expression on object</td>
<td><code>$[?(@.key)]</code></td>
</tr>
<tr>
<td>Filter expression after dot notation with wildcard after recursive descent ?</td>
<td><code>$..*[?(@.id&gt;2)]</code></td>
</tr>
<tr>
<td>Filter expression after recursive descent ?</td>
<td><code>$..[?(@.id==2)]</code></td>
</tr>
<tr>
<td>Filter expression with addition</td>
<td><code>$[?(@.key+50==100)]</code></td>
</tr>
<tr>
<td>Filter expression with boolean and operator and value false</td>
<td><code>$[?(@.key&gt;0 &amp;&amp; false)]</code></td>
</tr>
<tr>
<td>Filter expression with boolean and operator and value true</td>
<td><code>$[?(@.key&gt;0 &amp;&amp; true)]</code></td>
</tr>
<tr>
<td>Filter expression with boolean or operator and value false</td>
<td><code>$[?(@.key&gt;0 &amp;#124;&amp;#124; false)]</code></td>
</tr>
<tr>
<td>Filter expression with boolean or operator and value true</td>
<td><code>$[?(@.key&gt;0 &amp;#124;&amp;#124; true)]</code></td>
</tr>
<tr>
<td>Filter expression with bracket notation with -1</td>
<td><code>$[?(@[-1]==2)]</code></td>
</tr>
<tr>
<td>Filter expression with bracket notation with number on object</td>
<td><code>$[?(@[1]=='b')]</code></td>
</tr>
<tr>
<td>Filter expression with current object</td>
<td><code>$[?(@)]</code></td>
</tr>
<tr>
<td>Filter expression with different ungrouped operators</td>
<td><code>$[?(@.a &amp;&amp; @.b &amp;#124;&amp;#124; @.c)]</code></td>
</tr>
<tr>
<td>Filter expression with division</td>
<td><code>$[?(@.key/10==5)]</code></td>
</tr>
<tr>
<td>Filter expression with dot notation with dash</td>
<td><code>$[?(@.key-dash == 'value')]</code></td>
</tr>
<tr>
<td>Filter expression with dot notation with number</td>
<td><code>$[?(@.2 == 'second')]</code></td>
</tr>
<tr>
<td>Filter expression with dot notation with number on array</td>
<td><code>$[?(@.2 == 'third')]</code></td>
</tr>
<tr>
<td>Filter expression with empty expression</td>
<td><code>$[?()]</code></td>
</tr>
<tr>
<td>Filter expression with equals</td>
<td><code>$[?(@.key==42)]</code></td>
</tr>
<tr>
<td>Filter expression with equals on array of numbers</td>
<td><code>$[?(@==42)]</code></td>
</tr>
<tr>
<td>Filter expression with equals on object</td>
<td><code>$[?(@.key==42)]</code></td>
</tr>
<tr>
<td>Filter expression with equals array</td>
<td><code>$[?(@.d==["v1","v2"])]</code></td>
</tr>
<tr>
<td>Filter expression with equals array for array slice with range 1</td>
<td><code>$[?(@[0:1]==[1])]</code></td>
</tr>
<tr>
<td>Filter expression with equals array for dot notation with star</td>
<td><code>$[?(@.*==[1,2])]</code></td>
</tr>
<tr>
<td>Filter expression with equals array or equals true</td>
<td><code>$[?(@.d==["v1","v2"] &amp;#124;&amp;#124; (@.d == true))]</code></td>
</tr>
<tr>
<td>Filter expression with equals array with single quotes</td>
<td><code>$[?(@.d==['v1','v2'])]</code></td>
</tr>
<tr>
<td>Filter expression with equals boolean expression value</td>
<td><code>$[?((@.key&lt;44)==false)]</code></td>
</tr>
<tr>
<td>Filter expression with equals false</td>
<td><code>$[?(@.key==false)]</code></td>
</tr>
<tr>
<td>Filter expression with equals null</td>
<td><code>$[?(@.key==null)]</code></td>
</tr>
<tr>
<td>Filter expression with equals number for array slice with range 1</td>
<td><code>$[?(@[0:1]==1)]</code></td>
</tr>
<tr>
<td>Filter expression with equals number for bracket notation with star</td>
<td><code>$[?(@[*]==2)]</code></td>
</tr>
<tr>
<td>Filter expression with equals number for dot notation with star</td>
<td><code>$[?(@.*==2)]</code></td>
</tr>
<tr>
<td>Filter expression with equals number with fraction</td>
<td><code>$[?(@.key==-0.123e2)]</code></td>
</tr>
<tr>
<td>Filter expression with equals number with leading zeros</td>
<td><code>$[?(@.key==010)]</code></td>
</tr>
<tr>
<td>Filter expression with equals object</td>
<td><code>$[?(@.d==&lbrace;"k":"v"&rbrace;)]</code></td>
</tr>
<tr>
<td>Filter expression with equals string</td>
<td><code>$[?(@.key=="value")]</code></td>
</tr>
<tr>
<td>Filter expression with equals string with unicode character escape</td>
<td><code>$[?(@.key=="Mot\u00f6rhead")]</code></td>
</tr>
<tr>
<td>Filter expression with equals true</td>
<td><code>$[?(@.key==true)]</code></td>
</tr>
<tr>
<td>Filter expression with equals with path and path</td>
<td><code>$[?(@.key1==@.key2)]</code></td>
</tr>
<tr>
<td>Filter expression with equals with root reference</td>
<td><code>$.items[?(@.key==$.value)]</code></td>
</tr>
<tr>
<td>Filter expression with greater than</td>
<td><code>$[?(@.key&gt;42)]</code></td>
</tr>
<tr>
<td>Filter expression with greater than or equal</td>
<td><code>$[?(@.key&gt;=42)]</code></td>
</tr>
<tr>
<td>Filter expression with in array of values</td>
<td><code>$[?(@.d in [2, 3])]</code></td>
</tr>
<tr>
<td>Filter expression with in current object</td>
<td><code>$[?(2 in @.d)]</code></td>
</tr>
<tr>
<td>Filter expression with length free function</td>
<td><code>$[?(length(@) == 4)]</code></td>
</tr>
<tr>
<td>Filter expression with length function</td>
<td><code>$[?(@.length() == 4)]</code></td>
</tr>
<tr>
<td>Filter expression with length property</td>
<td><code>$[?(@.length == 4)]</code></td>
</tr>
<tr>
<td>Filter expression with less than</td>
<td><code>$[?(@.key&lt;42)]</code></td>
</tr>
<tr>
<td>Filter expression with less than or equal</td>
<td><code>$[?(@.key&lt;=42)]</code></td>
</tr>
<tr>
<td>Filter expression with local dot key and null in data</td>
<td><code>$[?(@.key='value')]</code></td>
</tr>
<tr>
<td>Filter expression with multiplication</td>
<td><code>$[?(@.key*2==100)]</code></td>
</tr>
<tr>
<td>Filter expression with negation and equals</td>
<td><code>$[?(!(@.key==42))]</code></td>
</tr>
<tr>
<td>Filter expression with negation and equals array or equals true</td>
<td><code>$[?(!(@.d==["v1","v2"]) &amp;#124;&amp;#124; (@.d == true))]</code></td>
</tr>
<tr>
<td>Filter expression with negation and less than</td>
<td><code>$[?(!(@.key&lt;42))]</code></td>
</tr>
<tr>
<td>Filter expression with negation and without value</td>
<td><code>$[?(!@.key)]</code></td>
</tr>
<tr>
<td>Filter expression with non singular existence test</td>
<td><code>$[?(@.a.*)]</code></td>
</tr>
<tr>
<td>Filter expression with not equals</td>
<td><code>$[?(@.key!=42)]</code></td>
</tr>
<tr>
<td>Filter expression with not equals array or equals true</td>
<td><code>$[?((@.d!=["v1","v2"]) &amp;#124;&amp;#124; (@.d == true))]</code></td>
</tr>
<tr>
<td>Filter expression with parent axis operator</td>
<td><code>$[*].bookmarks[?(@.page == 45)]^^^</code></td>
</tr>
<tr>
<td>Filter expression with regular expression</td>
<td><code>$[?(@.name=~/hello.*/)]</code></td>
</tr>
<tr>
<td>Filter expression with regular expression from member</td>
<td><code>$[?(@.name=~/@.pattern/)]</code></td>
</tr>
<tr>
<td>Filter expression with set wise comparison to scalar</td>
<td><code>$[?(@[*]&gt;=4)]</code></td>
</tr>
<tr>
<td>Filter expression with set wise comparison to set</td>
<td><code>$.x[?(@[*]&gt;=$.y[*])]</code></td>
</tr>
<tr>
<td>Filter expression with single equal</td>
<td><code>$[?(@.key=42)]</code></td>
</tr>
<tr>
<td>Filter expression with subfilter</td>
<td><code>$[?(@.a[?(@.price&gt;10)])]</code></td>
</tr>
<tr>
<td>Filter expression with subpaths deeply nested</td>
<td><code>$[?(@.a.b.c==3)]</code></td>
</tr>
<tr>
<td>Filter expression with subtraction</td>
<td><code>$[?(@.key-50==-100)]</code></td>
</tr>
<tr>
<td>Filter expression with triple equal</td>
<td><code>$[?(@.key===42)]</code></td>
</tr>
<tr>
<td>Filter expression with value</td>
<td><code>$[?(@.key)]</code></td>
</tr>
<tr>
<td>Filter expression with value after recursive descent ?</td>
<td><code>$..[?(@.id)]</code></td>
</tr>
<tr>
<td>Filter expression with value false</td>
<td><code>$[?(false)]</code></td>
</tr>
<tr>
<td>Filter expression with value from recursive descent</td>
<td><code>$[?(@..child)]</code></td>
</tr>
<tr>
<td>Filter expression with value null</td>
<td><code>$[?(null)]</code></td>
</tr>
<tr>
<td>Filter expression with value true</td>
<td><code>$[?(true)]</code></td>
</tr>
<tr>
<td>Filter expression without parens</td>
<td><code>$[?@.key==42]</code></td>
</tr>
<tr>
<td>Filter expression without value</td>
<td><code>$[?(@.key)]</code></td>
</tr>
<tr>
<td>Function sum</td>
<td><code>$.data.sum()</code></td>
</tr>
<tr>
<td>Parens notation</td>
<td><code>$(key,more)</code></td>
</tr>
<tr>
<td>Recursive descent ?</td>
<td><code>$..</code></td>
</tr>
<tr>
<td>Recursive descent after dot notation ?</td>
<td><code>$.key..</code></td>
</tr>
<tr>
<td>Root on scalar</td>
<td><code>$</code></td>
</tr>
<tr>
<td>Root on scalar false</td>
<td><code>$</code></td>
</tr>
<tr>
<td>Root on scalar true</td>
<td><code>$</code></td>
</tr>
<tr>
<td>Script expression</td>
<td><code>$[(@.length-1)]</code></td>
</tr>
<tr>
<td>Union with duplication from array</td>
<td><code>$[0,0]</code></td>
</tr>
<tr>
<td>Union with duplication from object</td>
<td><code>$['a','a']</code></td>
</tr>
<tr>
<td>Union with filter</td>
<td><code>$[?(@.key&lt;3),?(@.key&gt;6)]</code></td>
</tr>
<tr>
<td>Union with keys</td>
<td><code>$['key','another']</code></td>
</tr>
<tr>
<td>Union with keys on object without key</td>
<td><code>$['missing','key']</code></td>
</tr>
<tr>
<td>Union with keys after array slice</td>
<td><code>$[:]['c','d']</code></td>
</tr>
<tr>
<td>Union with keys after bracket notation</td>
<td><code>$[0]['c','d']</code></td>
</tr>
<tr>
<td>Union with keys after dot notation with wildcard</td>
<td><code>$.*['c','d']</code></td>
</tr>
<tr>
<td>Union with keys after recursive descent ?</td>
<td><code>$..['c','d']</code></td>
</tr>
<tr>
<td>Union with repeated matches after dot notation with wildcard</td>
<td><code>$.*[0,:5]</code></td>
</tr>
<tr>
<td>Union with slice and number</td>
<td><code>$[1:3,4]</code></td>
</tr>
<tr>
<td>Union with spaces</td>
<td><code>$[ 0 , 1 ]</code></td>
</tr>
<tr>
<td>Union with wildcard and number</td>
<td><code>$[*,1]</code></td>
</tr>
</tbody>
</table>
</details>

View File

@@ -0,0 +1,28 @@
---
slug: token-pool
title: How shields.io uses the GitHub API
authors:
name: chris48s
title: Shields.io Core Team
url: https://github.com/chris48s
image_url: https://avatars.githubusercontent.com/u/6025893
tags: []
---
We serve a lot of badges which display information fetched from the GitHub API. When I say a lot, this varies a bit but in a typical hour we make hundreds of thousands of calls to the GitHub API.
But hang on. GitHub's API has rate limits.
Specifically, users can make up to [5,000 requests per hour](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-authenticated-users) to GitHub's v3/REST API. The v4/GraphQL also applies rate limits, but it is based on a slightly more complicated [points-based system](https://docs.github.com/en/graphql/overview/rate-limits-and-node-limits-for-the-graphql-api#primary-rate-limit).
In any case, we are clearly making many times more requests to GitHub's API than would be allowed with a single token.
So how are we doing that? Well, we have lots of tokens. To elaborate on that slightly, as a user of shields.io you can choose to share a token with us to help increase our rate limit. Here's how it works:
- Authorize our [OAuth Application](https://img.shields.io/github-auth).
- This shares with us a GitHub token which has read-only access to public data. We only ask for the minimum permissions necessary. Authorizing the OAuth app doesn't allow us access to your private data or allow us to perform any actions on your behalf.
- Your token is added to a pool of tokens shared by other users like you.
- When we need to make a request to the GitHub API, we pick one of the tokens from our pool. We only make a handful of requests with each token before picking another from the pool.
- If you ever decide you would not like to continue sharing a token with us, you can revoke the Shields.io OAuth app at https://github.com/settings/applications. You can do this at any time. This will de-activate the token you have shared with us and we'll remove it from the pool.
This method allows us (with your help) to make hundreds of thousands of request per hour to the GitHub API. Because we have thousands of tokens in the pool and we only make a few requests with each one before picking another token from the pool, most users don't notice any meaningful impact on their available rate limit as a result of authorizing our app.

View File

@@ -0,0 +1,81 @@
---
slug: simple-icons-14
title: Simple Icons 14
authors:
name: jNullj
title: Shields.io Core Team
url: https://github.com/jNullj
image_url: https://avatars.githubusercontent.com/u/15849761
tags: []
---
Logos on Shields.io are provided by SimpleIcons. We've recently upgraded to SimpleIcons 14. This release removes 53 icons and renames 6:
Renames:
- D3.js to D3
- Tencent QQ to QQ
- T-Mobile to Deutsche Telekom
- Nuxt.js to Nuxt
- smash.gg start.gg
- Tutanota to Tuta
Removals:
- Adobe
- Adobe Acrobat Reader
- Adobe After Effects
- Adobe Audition
- Adobe Creative Cloud
- Adobe Dreamweaver
- Adobe Fonts
- Adobe Illustrator
- Adobe InDesign
- Adobe Lightroom
- Adobe Lightroom Classic
- Adobe Photoshop
- Adobe Premiere Pro
- Adobe XD
- ASKfm
- Caffeine
- CKEditor 4
- Cliqz
- Coil
- del.icio.us
- El Jueves
- Ello
- FeatHub
- Fluxus
- Foursquare City Guide
- Funimation
- Game & Watch
- Géant
- Katacoda
- LinkedIn
- Magento
- Marketo
- Microgenetics
- Nintendo
- Nintendo 3DS
- Nintendo DS
- Nintendo GameCube
- Nintendo Switch
- Oracle
- Pokémon
- RadioPublic
- Realm
- Revue
- Skyrock
- Spinrilla
- StackPath
- Stitcher
- Studyverse
- Tableau
- Uptobox
- Wii
- Wii U
- Zerply
More detail can be found in the [release notes](https://github.com/simple-icons/simple-icons/releases/tag/14.0.0)
Please remember that we are just consumers of SimpleIcons. Decisions about changes and removals are made by the [SimpleIcons](https://github.com/simple-icons/simple-icons) project.

View File

@@ -77,6 +77,7 @@ const config = {
label: 'Documentation',
position: 'left',
},
{ to: '/donate', label: 'Donate', position: 'left' },
{ to: '/community', label: 'Community', position: 'left' },
{ to: '/blog', label: 'Blog', position: 'left' },
{
@@ -114,8 +115,12 @@ const config = {
title: 'Stats',
items: [
{
label: 'Service Status',
href: 'https://stats.uptimerobot.com/PjXogHB5p',
label: 'Service Status (Upptime)',
href: 'https://badges.github.io/uptime-monitoring/',
},
{
label: 'Service Status (NodePing)',
href: 'https://nodeping.com/reports/status/YBISBQB254',
},
{
label: 'Metrics dashboard',
@@ -123,6 +128,15 @@ const config = {
},
],
},
{
title: 'Policy',
items: [
{
label: 'Privacy Policy',
href: '/privacy',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Shields.io. Built with Docusaurus.`,
},

View File

@@ -59,8 +59,6 @@ const FeatureList = [
>
docker image
</a>
<br />
<code>docker pull shieldsio/shields</code>
</>
),
},
@@ -68,15 +66,7 @@ const FeatureList = [
title: 'Love Shields?',
description: (
<>
Please consider{' '}
<a
href="https://opencollective.com/shields"
rel="noreferrer"
target="_blank"
>
donating
</a>{' '}
to sustain our activities
Please consider <a href="/donate">donating</a> to sustain our activities
</>
),
},

View File

@@ -31,22 +31,12 @@ html[data-theme="dark"] .docusaurus-highlight-code-line {
color-scheme: initial;
}
/*
TODO: remove these three styles when
we can upgrade to docusaurus-theme-openapi@0.6.5
*/
input[type="text"], :not(#fakeID#fakeId#fakeID) select {
border-color: var(--ifm-color-primary-lightest);
border-style: solid;
border-width: 1px;
.flex-column-container {
display: flex;
flex-direction: column;
height: 100%;
}
div.api-code-tab-group {
justify-content: center;
flex-wrap: wrap;
}
div.api-code-tab-group button.api-code-tab {
width: unset;
.align-bottom {
margin-top: auto;
}

View File

@@ -61,7 +61,4 @@ Shields.io is possible thanks to the people and companies who donate money, serv
<li>
<a href="https://github.com/">GitHub</a>
</li>
<li>
<a href="https://uptimerobot.com/">Uptime Robot</a>
</li>
</ul>

View File

@@ -0,0 +1,68 @@
# Donate
You can donate to Shields.io via [OpenCollective](https://opencollective.com/shields).
## How the money is spent
Shields.io is a non-profit project run by unpaid volunteers. We use your donations to pay for our hosting costs.
Shields badges are everywhere. Shields badges appear on GitHub, NPM, PyPI, Ruby Gems, Rust Crates... If people build software there, shields badges are on it. Our userbase scales with the size of the software development community as a whole. This means we serve a lot of traffic. While the majority of image impressions are served from downstream proxies, we serve over 1.6 billion requests per month from our own infrastructure and transfer over 3Tb of outbound bandwidth each month.
Those are big numbers, and servers cost money. So does bandwidth. We cover our hosting costs with donations from the community.
## Donation tiers
While we accept donations of any size, we do have some suggested tiers.
<section>
<div className="container">
<div className="row">
<div className="col col--6">
<div className="padding-horiz--md padding-vert--lg flex-column-container">
<h3>Sponsor</h3>
<p>Recommended for **companies**: With a monthly donation of $35, you can help to sustain our activities. Your company logo and a link to your website will feature at the top of our [community page](https://shields.io/community).</p>
<p class="align-bottom"><a href="https://opencollective.com/shields/contribute/sponsor-2412/checkout" class="button button--primary button--medium">Become a Sponsor</a></p>
</div>
</div>
<div className="col col--6">
<div className="padding-horiz--md padding-vert--lg flex-column-container">
<h3>Monthly Backer</h3>
<p>Recommended for **individuals**: With a monthly donation of $3, you can help to sustain our activities on an ongoing basis.</p>
<p class="align-bottom"><a href="https://opencollective.com/shields/contribute/monthly-backer-2988/checkout" class="button button--primary button--medium">Become a Monthly Backer</a></p>
</div>
</div>
<div className="col col--6">
<div className="padding-horiz--md padding-vert--lg flex-column-container">
<h3>Backer</h3>
<p>If you would prefer not to commit to a monthly donation, but you think shields.io has provided some value [over the last 10+ years](https://github.com/badges/shields/discussions/8867), consider making a one-time donation of $10.</p>
<p class="align-bottom"><a href="https://opencollective.com/shields/contribute/backer-2411/checkout" class="button button--secondary button--medium">Become a Backer</a></p>
</div>
</div>
<div className="col col--6">
<div className="padding-horiz--md padding-vert--lg flex-column-container">
<h3>Something Else</h3>
<p>Make a custom one-time or recurring donation of any amount.</p>
<p class="align-bottom"><a href="https://opencollective.com/shields/donate" class="button button--secondary button--medium">Make a custom Donation</a></p>
</div>
</div>
</div>
</div>
</section>
## FAQ
### Can I donate using another platform?
Currently we only accept donations via [OpenCollective](https://opencollective.com/shields). OpenCollective should be convenient for most users as it allows you to donate using credit card, bank transfer, or PayPal and is available in most countries.
### I donated as a sponsor. How do I change my company logo or URL?
We pull the logo and URL from your Open Collective profile. You can update these at any time from within Open Collective and those changes will be reflected on the community page within 24 hours.
### Can I see exactly how the money is being used?
Using OpenCollective means our finances are completely transparent. All transactions are publicly visible on https://opencollective.com/shields

View File

@@ -0,0 +1,50 @@
# Privacy Policy
Shields.io is non-tracking and privacy-respecting. This Privacy Policy explains how we handle your data in compliance with the General Data Protection Regulation (GDPR).
## 1. Hosting and Service Providers
We use [fly.io](https://fly.io) for hosting and [CloudFlare](https://www.cloudflare.com) for DNS and CDN services. These third-party providers process requests to deliver and secure our website. Please refer to their privacy policies for more information:
- https://fly.io/legal/privacy-policy/
- https://www.cloudflare.com/en-gb/privacypolicy/
## 2. Cookies
We do not use any cookies on our website.
## 3. Logs and Data Collection
We do not store any logs of your visits, requests, or other activities on our site.
## 4. Error Reporting
If a request fails, we send an error report to [Sentry](https://sentry.io/), our error-tracking service.
These reports contain technical data about the error but do not include any personally identifiable information (PII), such as your IP address. For details on Sentry's data processing, refer to their privacy policy:
- https://sentry.io/privacy/
## 5. GitHub OAuth App
Users may optionally authorize our [GitHub OAuth app](https://img.shields.io/github-auth).
Authorizing our app shares with us a GitHub token which has read-only access to public data. We only ask for the minimum permissions necessary. Authorizing the OAuth app doesn't allow us access to your private data or allow us to perform any actions on your behalf.
The only information we store is the **GitHub token** and the **timestamp** when you authorized the app.
- The GitHub token is used solely to increase the rate limit for accessing the GitHub API.
- The signup timestamp is stored for internal record-keeping purposes.
We don't collect or store any other information like your username or email address.
If you decide you would not like to continue sharing a token with us, you can revoke the Shields.io OAuth app at https://github.com/settings/applications. You can do this at any time. This will de-activate the token you have shared with us and we'll remove it from our token pool.
## 6. Your Rights
Under the GDPR, users have rights concerning their personal data, including access, correction, deletion, and objection to processing.
Since we process minimal data, these rights are not relevant to most users of the service.
## 7. Contact Us
If you have questions about this Privacy Policy or our data practices, you can contact us at team at shields.io

View File

@@ -261,7 +261,6 @@ function Curl({ postman, codeSamples }) {
{tokens.map((line, i) => (
// this <span> does have a key but eslint fails
// to detect it because it is an arg to getLineProps()
// eslint-disable-next-line react/jsx-key
<span
{...getLineProps({
line,
@@ -276,7 +275,6 @@ function Curl({ postman, codeSamples }) {
return (
// this <span> does have a key but eslint fails
// to detect it because it is an arg to getLineProps()
// eslint-disable-next-line react/jsx-key
<span
{...getTokenProps({
token,

View File

@@ -93,10 +93,13 @@ function getSimpleIcon({ name, color, style, size }) {
if (size === 'auto') {
const { width: iconWidth, height: iconHeight } = getIconSize(key)
if (iconWidth > iconHeight) {
if (iconWidth !== iconHeight) {
const path = resetIconPosition(simpleIcons[key].path)
iconSvg = iconSvg
.replace('viewBox="0 0 24 24"', `viewBox="0 0 24 ${iconHeight}"`)
.replace(
'viewBox="0 0 24 24"',
`viewBox="0 0 ${iconWidth} ${iconHeight}"`,
)
.replace(/<path d=".*"\/>/, `<path d="${path}"/>`)
}
}

View File

@@ -41,11 +41,11 @@ describe('Logo helpers', function () {
)
// use simple icon with auto logo size
given({ name: 'amd', size: 'auto' }).expect(
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCA1LjcyNTk5OTk5OTk5OTk5OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QU1EPC90aXRsZT48cGF0aCBkPSJNMTguMzI0IDBMMTkuODgzIDEuNTZIMjIuNDM5VjQuMTE3TDI0IDUuNjc3VjBaTTIgMC4zODNMMCA1LjM0M0gxLjMwOUwxLjY3OSA0LjM2MUgzLjlMNC4zMDggNS4zNDNINS42NDZMMy40MzIgMC4zODNaTTYuMjA5IDAuMzgzVjUuMzM4SDcuNDQ3VjIuMjQ2TDguNzg1IDMuODA4SDguOTczTDEwLjMxMSAyLjI1MlY1LjM0M0gxMS41NDlWMC4zODNIMTAuNDdMOC44NzggMi4yMjhMNy4yODcgMC4zODNaTTEyLjQ5MiAwLjM4M1Y1LjM0M0gxNC41NDlDMTYuNTI4IDUuMzQzIDE3LjQyOSA0LjI5NyAxNy40MjkgMi44NzFDMTcuNDI5IDEuNTExIDE2LjQ5MiAwLjM4MyAxNC42ODIgMC4zODNaTTEzLjcyOSAxLjI5M0gxNC41MjFDMTUuNjkxIDEuMjkzIDE2LjE1MSAyLjAwNCAxNi4xNTEgMi44NjNDMTYuMTUxIDMuNTkxIDE1Ljc3OSA0LjQzNSAxNC41MzUgNC40MzVIMTMuNzI5Wk0yLjc0NCAxLjU2NkwzLjUzNSAzLjQ5OEgyLjAwOFpNMTkuODgxIDEuODczTDE4LjI3NyAzLjQ3NlY1LjcyNkgyMC41MjNMMjIuMTI3IDQuMTE5SDE5Ljg4MVoiLz48L3N2Zz4=',
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCA1LjcyNTk5OTk5OTk5OTk5OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QU1EPC90aXRsZT48cGF0aCBkPSJNMTguMzI0IDBsMS41NTkgMS41NmgyLjU1NnYyLjU1N0wyNCA1LjY3N1Ywek0yIDAuMzgzbC0yIDQuOTZoMS4zMDlsMC4zNy0wLjk4MkgzLjlsMC40MDggMC45ODJoMS4zMzhMMy40MzIgMC4zODN6IG00LjIwOSAwdjQuOTU1aDEuMjM4di0zLjA5MmwxLjMzOCAxLjU2MmgwLjE4OGwxLjMzOC0xLjU1NnYzLjA5MWgxLjIzOFYwLjM4M0gxMC40N2wtMS41OTIgMS44NDVMNy4yODcgMC4zODN6IG02LjI4MyAwdjQuOTZoMi4wNTdjMS45NzkgMCAyLjg4LTEuMDQ2IDIuODgtMi40NzIgMC0xLjM2LTAuOTM3LTIuNDg4LTIuNzQ3LTIuNDg4eiBtMS4yMzcgMC45MWgwLjc5MmMxLjE3IDAgMS42MyAwLjcxMSAxLjYzIDEuNTcgMCAwLjcyOC0wLjM3MiAxLjU3Mi0xLjYxNiAxLjU3MmgtMC44MDZ6IG0tMTAuOTg1IDAuMjczbDAuNzkxIDEuOTMySDIuMDA4eiBtMTcuMTM3IDAuMzA3bC0xLjYwNCAxLjYwM3YyLjI1aDIuMjQ2bDEuNjA0LTEuNjA3aC0yLjI0NnoiLz48L3N2Zz4=',
)
// use simple icon with color & auto logo size
given({ name: 'amd', color: 'white', size: 'auto' }).expect(
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgNS43MjU5OTk5OTk5OTk5OTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkFNRDwvdGl0bGU+PHBhdGggZD0iTTE4LjMyNCAwTDE5Ljg4MyAxLjU2SDIyLjQzOVY0LjExN0wyNCA1LjY3N1YwWk0yIDAuMzgzTDAgNS4zNDNIMS4zMDlMMS42NzkgNC4zNjFIMy45TDQuMzA4IDUuMzQzSDUuNjQ2TDMuNDMyIDAuMzgzWk02LjIwOSAwLjM4M1Y1LjMzOEg3LjQ0N1YyLjI0Nkw4Ljc4NSAzLjgwOEg4Ljk3M0wxMC4zMTEgMi4yNTJWNS4zNDNIMTEuNTQ5VjAuMzgzSDEwLjQ3TDguODc4IDIuMjI4TDcuMjg3IDAuMzgzWk0xMi40OTIgMC4zODNWNS4zNDNIMTQuNTQ5QzE2LjUyOCA1LjM0MyAxNy40MjkgNC4yOTcgMTcuNDI5IDIuODcxQzE3LjQyOSAxLjUxMSAxNi40OTIgMC4zODMgMTQuNjgyIDAuMzgzWk0xMy43MjkgMS4yOTNIMTQuNTIxQzE1LjY5MSAxLjI5MyAxNi4xNTEgMi4wMDQgMTYuMTUxIDIuODYzQzE2LjE1MSAzLjU5MSAxNS43NzkgNC40MzUgMTQuNTM1IDQuNDM1SDEzLjcyOVpNMi43NDQgMS41NjZMMy41MzUgMy40OThIMi4wMDhaTTE5Ljg4MSAxLjg3M0wxOC4yNzcgMy40NzZWNS43MjZIMjAuNTIzTDIyLjEyNyA0LjExOUgxOS44ODFaIi8+PC9zdmc+',
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgNS43MjU5OTk5OTk5OTk5OTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkFNRDwvdGl0bGU+PHBhdGggZD0iTTE4LjMyNCAwbDEuNTU5IDEuNTZoMi41NTZ2Mi41NTdMMjQgNS42NzdWMHpNMiAwLjM4M2wtMiA0Ljk2aDEuMzA5bDAuMzctMC45ODJIMy45bDAuNDA4IDAuOTgyaDEuMzM4TDMuNDMyIDAuMzgzeiBtNC4yMDkgMHY0Ljk1NWgxLjIzOHYtMy4wOTJsMS4zMzggMS41NjJoMC4xODhsMS4zMzgtMS41NTZ2My4wOTFoMS4yMzhWMC4zODNIMTAuNDdsLTEuNTkyIDEuODQ1TDcuMjg3IDAuMzgzeiBtNi4yODMgMHY0Ljk2aDIuMDU3YzEuOTc5IDAgMi44OC0xLjA0NiAyLjg4LTIuNDcyIDAtMS4zNi0wLjkzNy0yLjQ4OC0yLjc0Ny0yLjQ4OHogbTEuMjM3IDAuOTFoMC43OTJjMS4xNyAwIDEuNjMgMC43MTEgMS42MyAxLjU3IDAgMC43MjgtMC4zNzIgMS41NzItMS42MTYgMS41NzJoLTAuODA2eiBtLTEwLjk4NSAwLjI3M2wwLjc5MSAxLjkzMkgyLjAwOHogbTE3LjEzNyAwLjMwN2wtMS42MDQgMS42MDN2Mi4yNWgyLjI0NmwxLjYwNC0xLjYwN2gtMi4yNDZ6Ii8+PC9zdmc+',
)
it('preserves color if light logo on dark background', function () {
@@ -83,20 +83,20 @@ describe('Logo helpers', function () {
})
it('preserves color if medium logo on dark background', function () {
const logo = prepareNamedLogo({ name: 'android' })
const logo = prepareNamedLogo({ name: 'mastodon' })
const decodedLogo = Buffer.from(
logo.replace('data:image/svg+xml;base64,', ''),
'base64',
).toString('ascii')
expect(decodedLogo).to.contain('fill="#34A853"')
expect(decodedLogo).to.contain('fill="#6364FF"')
})
it('preserves color if medium logo on light background', function () {
const logo = prepareNamedLogo({ name: 'android', style: 'social' })
const logo = prepareNamedLogo({ name: 'mastodon', style: 'social' })
const decodedLogo = Buffer.from(
logo.replace('data:image/svg+xml;base64,', ''),
'base64',
).toString('ascii')
expect(decodedLogo).to.contain('fill="#34A853"')
expect(decodedLogo).to.contain('fill="#6364FF"')
})
})

View File

@@ -1,4 +1,5 @@
import SVGPathCommander from 'svg-path-commander'
import { svgPathBbox } from 'svg-path-bbox'
import svgpath from 'svgpath'
import loadSimpleIcons from './load-simple-icons.js'
const simpleIcons = loadSimpleIcons()
@@ -14,24 +15,14 @@ function getIconSize(iconKey) {
return undefined
}
const {
width,
height,
x: x0,
y: y0,
x2: x1,
y2: y1,
} = SVGPathCommander.getPathBBox(simpleIcons[iconKey].path)
return { width, height, x0, y0, x1, y1 }
const [x0, y0, x1, y1] = svgPathBbox(simpleIcons[iconKey].path)
return { width: x1 - x0, height: y1 - y0 }
}
function resetIconPosition(path) {
const { x: offsetX, y: offsetY } = SVGPathCommander.getPathBBox(path)
const pathReset = new SVGPathCommander(path)
.transform({ translate: [-offsetX, -offsetY] })
.toString()
function resetIconPosition(d) {
const path = svgpath(d)
const [offsetX, offsetY] = svgPathBbox(path)
const pathReset = path.translate(-offsetX, -offsetY).round(3).toString()
return pathReset
}

View File

@@ -1,5 +1,3 @@
/* eslint-disable camelcase */
exports.shorthands = undefined
exports.up = pgm => {

View File

@@ -0,0 +1,15 @@
exports.shorthands = undefined
exports.up = pgm => {
pgm.addColumn('github_user_tokens', {
created: {
type: 'TIMESTAMP',
notNull: true,
default: pgm.func('CURRENT_TIMESTAMP'),
},
})
}
exports.down = pgm => {
pgm.dropColumn('github_user_tokens', 'created')
}

12695
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,52 +21,53 @@
"url": "https://github.com/badges/shields"
},
"dependencies": {
"@renovatebot/pep440": "^3.0.20",
"@renovatebot/ruby-semver": "^3.0.23",
"@sentry/node": "^8.27.0",
"@renovatebot/pep440": "^4.1.0",
"@renovatebot/ruby-semver": "^4.0.0",
"@sentry/node": "^9.10.0",
"@shields_io/camp": "^18.1.2",
"@xmldom/xmldom": "0.8.10",
"@xmldom/xmldom": "0.9.8",
"badge-maker": "file:badge-maker",
"byte-size": "^9.0.1",
"bytes": "^3.1.2",
"camelcase": "^8.0.0",
"chalk": "^5.3.0",
"chalk": "^5.4.1",
"check-node-version": "^4.2.1",
"cloudflare-middleware": "^1.0.4",
"config": "^3.3.12",
"cross-env": "^7.0.3",
"dayjs": "^1.11.13",
"decamelize": "^3.2.0",
"emojic": "^1.1.17",
"emojic": "^1.1.18",
"escape-string-regexp": "^4.0.0",
"fast-xml-parser": "^4.4.1",
"glob": "^11.0.0",
"fast-xml-parser": "^5.0.9",
"glob": "^11.0.1",
"global-agent": "^3.0.0",
"got": "^14.4.2",
"graphql": "16.9.0",
"got": "^14.4.6",
"graphql": "16.10.0",
"graphql-tag": "^2.12.6",
"joi": "17.13.3",
"joi-extension-semver": "5.0.0",
"js-yaml": "^4.1.0",
"jsonpath": "~1.1.1",
"jsonpath-plus": "^10.3.0",
"lodash.countby": "^4.6.0",
"lodash.groupby": "^4.6.0",
"lodash.times": "^4.3.2",
"matcher": "^5.0.0",
"node-env-flag": "^0.1.0",
"node-pg-migrate": "^7.6.1",
"node-pg-migrate": "^7.9.1",
"parse-link-header": "^2.0.0",
"path-to-regexp": "^6.2.2",
"pg": "^8.12.0",
"pretty-bytes": "^6.1.1",
"path-to-regexp": "^6.3.0",
"pg": "^8.14.1",
"priorityqueuejs": "^2.0.0",
"prom-client": "^15.1.3",
"qs": "^6.13.0",
"query-string": "^9.1.0",
"semver": "~7.6.3",
"simple-icons": "13.7.0",
"smol-toml": "1.3.0",
"svg-path-commander": "^2.0.10",
"webextension-store-meta": "^1.2.3",
"qs": "^6.14.0",
"query-string": "^9.1.1",
"semver": "~7.7.1",
"simple-icons": "14.11.1",
"smol-toml": "1.3.1",
"svg-path-bbox": "^2.1.0",
"svgpath": "^2.6.0",
"webextension-store-meta": "^1.2.4",
"xpath": "~0.0.34"
},
"scripts": {
@@ -81,13 +82,13 @@
"coverage:report:generate": "c8 report",
"coverage:report:open": "open-cli coverage/lcov-report/index.html",
"coverage:report": "run-s --silent coverage:report:generate coverage:report:open",
"lint": "eslint \"**/*.@(cjs|js|ts|tsx)\"",
"prettier": "prettier --write \"**/*.@(cjs|js|ts|tsx|md|json|yml)\"",
"prettier:check": "prettier --check \"**/*.@(cjs|js|ts|tsx|md|json|yml)\"",
"lint": "eslint \"**/*.@(cjs|mjs|js|ts)\"",
"prettier": "prettier --write \"**/*.@(cjs|mjs|js|ts|md|json|yml)\"",
"prettier:check": "prettier --check \"**/*.@(cjs|mjs|js|ts|md|json|yml)\"",
"danger": "danger",
"test:e2e": "cypress run",
"test:core": "cross-env NODE_CONFIG_ENV=test mocha \"core/**/*.spec.js\" \"lib/**/*.spec.js\" \"services/**/*.spec.js\"",
"test:package": "mocha \"badge-maker/**/*.spec.js\"",
"test:core": "cross-env TZ='UTC' NODE_CONFIG_ENV=test mocha \"core/**/*.spec.js\" \"lib/**/*.spec.js\" \"services/**/*.spec.js\"",
"test:package": "mocha \"badge-maker/**/*.spec.@(mjs|js)\"",
"test:entrypoint": "cross-env NODE_CONFIG_ENV=test mocha entrypoint.spec.js",
"test:integration": "cross-env NODE_CONFIG_ENV=test mocha \"core/**/*.integration.js\" \"services/**/*.integration.js\"",
"test:services": "cross-env NODE_CONFIG_ENV=test mocha core/service-test-runner/cli.js",
@@ -123,7 +124,7 @@
"docusaurus:clear": "docusaurus clear frontend"
},
"lint-staged": {
"**/*.@(js|ts|tsx)": [
"**/*.@(cjs|mjs|js|ts)": [
"eslint --fix",
"prettier --write"
],
@@ -133,7 +134,7 @@
},
"nodemonConfig": {
"verbose": true,
"ext": "js",
"ext": "js,yml",
"ignore": [
"package.json",
"**/*.spec.js",
@@ -141,82 +142,79 @@
"**/*.integration.js",
"frontend/",
"build/",
"cypress/"
"cypress/",
".github/"
]
},
"devDependencies": {
"@docusaurus/core": "^3.5.2",
"@docusaurus/preset-classic": "^3.5.2",
"@easyops-cn/docusaurus-search-local": "^0.44.5",
"@mdx-js/react": "^3.0.1",
"@typescript-eslint/parser": "^8.3.0",
"c8": "^10.1.2",
"@docusaurus/core": "^3.7.0",
"@docusaurus/preset-classic": "^3.7.0",
"@easyops-cn/docusaurus-search-local": "^0.49.1",
"@mdx-js/react": "^3.1.0",
"@typescript-eslint/parser": "^8.28.0",
"c8": "^10.1.3",
"caller": "^1.1.0",
"chai": "^4.5.0",
"chai-as-promised": "^8.0.0",
"chai-datetime": "^1.8.0",
"chai-string": "^1.4.0",
"chai": "5.2.0",
"chai-as-promised": "^8.0.1",
"chai-datetime": "^1.8.1",
"child-process-promise": "^2.2.1",
"clsx": "^2.1.1",
"concurrently": "^8.2.2",
"cypress": "^13.14.1",
"concurrently": "^9.1.2",
"cypress": "^14.2.1",
"cypress-wait-for-stable-dom": "^0.1.0",
"danger": "^12.3.3",
"danger": "^12.3.4",
"deepmerge": "^4.3.1",
"docusaurus-preset-openapi": "0.7.5",
"eslint": "8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "17.1.0",
"eslint-config-standard-jsx": "11.0.0",
"eslint-config-standard-react": "13.0.0",
"eslint-plugin-chai-friendly": "^1.0.1",
"eslint-plugin-cypress": "^3.5.0",
"eslint-plugin-icedfrisby": "^0.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^50.2.2",
"eslint-plugin-mocha": "^10.5.0",
"eslint-plugin-no-extension-in-require": "^0.2.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "6.6.0",
"eslint-plugin-react": "^7.35.0",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-sort-class-members": "^1.20.0",
"form-data": "^4.0.0",
"docusaurus-preset-openapi": "0.7.6",
"eslint": "9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-chai-friendly": "1.0.1",
"eslint-plugin-cypress": "4.2.0",
"eslint-plugin-icedfrisby": "0.2.0",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsdoc": "50.6.9",
"eslint-plugin-mocha": "10.5.0",
"eslint-plugin-prettier": "5.2.5",
"eslint-plugin-promise": "7.2.1",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-sort-class-members": "1.21.0",
"form-data": "^4.0.2",
"globals": "16.0.0",
"icedfrisby": "4.0.0",
"icedfrisby-nock": "^2.1.0",
"is-svg": "^5.1.0",
"jsdoc": "^4.0.3",
"lint-staged": "^15.2.9",
"jsdoc": "^4.0.4",
"lint-staged": "^15.5.0",
"lodash.difference": "^4.5.0",
"minimist": "^1.2.8",
"mocha": "^10.7.3",
"mocha": "^11.1.0",
"mocha-env-reporter": "^4.0.0",
"mocha-junit-reporter": "^2.2.1",
"mocha-yaml-loader": "^1.0.3",
"nock": "13.5.5",
"node-mocks-http": "^1.15.1",
"nodemon": "^3.1.4",
"neostandard": "0.12.1",
"nock": "13.5.6",
"node-mocks-http": "^1.16.2",
"nodemon": "^3.1.9",
"npm-run-all": "^4.1.5",
"open-cli": "^8.0.0",
"portfinder": "^1.0.32",
"prettier": "3.3.3",
"prism-react-renderer": "^2.4.0",
"portfinder": "^1.0.35",
"prettier": "3.5.3",
"prism-react-renderer": "^2.4.1",
"react": "^18.3.0",
"react-dom": "^18.3.1",
"read-all-stdin-sync": "^1.0.5",
"rimraf": "^6.0.1",
"sazerac": "^2.0.0",
"simple-git-hooks": "^2.11.1",
"sinon": "^18.0.0",
"sinon-chai": "^3.7.0",
"simple-git-hooks": "^2.12.1",
"sinon": "^20.0.0",
"sinon-chai": "4.0.0",
"snap-shot-it": "^7.9.10",
"start-server-and-test": "2.0.5",
"tsd": "^0.31.1",
"start-server-and-test": "2.0.11",
"tsd": "^0.31.2",
"url": "^0.11.4"
},
"engines": {
"node": "^20.10.0",
"npm": "^9.0.0 || ^10.0.0"
"node": "^20 || ^22",
"npm": "^9 || ^10 || ^11"
},
"type": "module",
"collective": {

View File

@@ -62,4 +62,9 @@ if (fs.existsSync(legacySecretsPath)) {
}
export const server = new Server(config)
process.on('SIGTERM', async () => {
console.log('SIGTERM received, shutting down...')
await server.stop()
})
await server.start()

View File

@@ -0,0 +1,46 @@
import Joi from 'joi'
import { renderDownloadsBadge } from '../downloads.js'
import { BaseJsonService, pathParams } from '../index.js'
const ansibleCollectionSchema = Joi.object({
// Ansible docs don't mention this but it appears in the API responses
download_count: Joi.number().required(),
}).required()
export default class AnsibleGalaxyCollectionDownloads extends BaseJsonService {
static category = 'downloads'
static route = { base: 'ansible/collection/d', pattern: ':namespace/:name' }
static openApi = {
'/ansible/collection/d/{namespace}/{name}': {
get: {
summary: 'Ansible Collection Downloads',
parameters: pathParams(
{ name: 'namespace', example: 'community' },
{ name: 'name', example: 'general' },
),
},
},
}
static defaultBadgeData = { label: 'collection downloads' }
static render({ downloads }) {
return renderDownloadsBadge({ downloads })
}
async fetch({ namespace, name }) {
return this._requestJson({
schema: ansibleCollectionSchema,
url: `https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/index/${namespace}/${name}/`,
})
}
async handle({ namespace, name }) {
const { download_count: downloads } = await this.fetch({
namespace,
name,
})
return this.constructor.render({ downloads })
}
}

View File

@@ -0,0 +1,16 @@
import { ServiceTester } from '../tester.js'
import { isMetric } from '../test-validators.js'
export const t = new ServiceTester({
id: 'AnsibleGalaxyCollectionDownloads',
title: 'AnsibleGalaxyCollectionDownloads',
pathPrefix: '/ansible/collection/d',
})
t.create('collection downloads (valid)')
.get('/community/general.json')
.expectBadge({ label: 'collection downloads', message: isMetric })
t.create('collection downloads (not found)')
.get('/not/real.json')
.expectBadge({ label: 'collection downloads', message: 'not found' })

View File

@@ -0,0 +1,47 @@
import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { BaseJsonService, pathParams } from '../index.js'
const ansibleCollectionSchema = Joi.object({
highest_version: Joi.object({
version: Joi.string().required(),
}).required(),
}).required()
export default class AnsibleGalaxyCollectionVersion extends BaseJsonService {
static category = 'version'
static route = { base: 'ansible/collection/v', pattern: ':namespace/:name' }
static openApi = {
'/ansible/collection/v/{namespace}/{name}': {
get: {
summary: 'Ansible Collection Version',
parameters: pathParams(
{ name: 'namespace', example: 'community' },
{ name: 'name', example: 'general' },
),
},
},
}
static defaultBadgeData = { label: 'galaxy' }
static render({ version }) {
return renderVersionBadge({ version })
}
async fetch({ namespace, name }) {
return this._requestJson({
schema: ansibleCollectionSchema,
url: `https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/index/${namespace}/${name}/`,
})
}
async handle({ namespace, name }) {
const { highest_version: highestVersion } = await this.fetch({
namespace,
name,
})
return this.constructor.render({ version: highestVersion.version })
}
}

View File

@@ -0,0 +1,16 @@
import { ServiceTester } from '../tester.js'
import { isSemver } from '../test-validators.js'
export const t = new ServiceTester({
id: 'AnsibleGalaxyCollectionVersion',
title: 'AnsibleGalaxyCollectionVersion',
pathPrefix: '/ansible/collection/v',
})
t.create('collection version (valid)')
.get('/community/general.json')
.expectBadge({ label: 'galaxy', message: isSemver })
t.create('collection version (not found)')
.get('/not/real.json')
.expectBadge({ label: 'galaxy', message: 'not found' })

View File

@@ -1,4 +1,5 @@
import { ServiceTester } from '../tester.js'
export const t = new ServiceTester({
id: 'AnsibleGalaxyCollectionName',
title: 'AnsibleGalaxyCollectionName',

View File

@@ -3,7 +3,7 @@ import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Arch Linux package (valid)')
.get('/core/x86_64/pacman.json')
.get('/core/x86_64/iptables.json')
.expectBadge({
label: 'arch linux',
message: isVPlusDottedVersionNClausesWithOptionalSuffixAndEpoch,

View File

@@ -1,10 +1,8 @@
import Joi from 'joi'
import {
floorCount as floorCountColor,
age as ageColor,
} from '../color-formatters.js'
import { renderDateBadge } from '../date.js'
import { floorCount as floorCountColor } from '../color-formatters.js'
import { renderLicenseBadge } from '../licenses.js'
import { addv, metric, formatDate } from '../text-formatters.js'
import { metric } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
import {
BaseJsonService,
@@ -12,6 +10,7 @@ import {
InvalidResponse,
pathParams,
} from '../index.js'
import { renderVersionBadge } from '../version.js'
const aurSchema = Joi.object({
resultcount: nonNegativeInteger,
@@ -170,7 +169,7 @@ class AurVersion extends BaseAurService {
static render({ version, outOfDate }) {
const color = outOfDate === null ? 'blue' : 'orange'
return { message: addv(version), color }
return renderVersionBadge({ version, versionFormatter: () => color })
}
async handle({ packageName }) {
@@ -242,16 +241,10 @@ class AurLastModified extends BaseAurService {
static defaultBadgeData = { label: 'last modified' }
static render({ date }) {
const color = ageColor(date)
const message = formatDate(date)
return { color, message }
}
async handle({ packageName }) {
const json = await this.fetch({ packageName })
const date = 1000 * parseInt(json.results[0].LastModified)
return this.constructor.render({ date })
return renderDateBadge(date)
}
}

View File

@@ -6,11 +6,13 @@ describe('AurVersion', function () {
given({ version: '1:1.1.42.622-1', outOfDate: 1 }).expect({
color: 'orange',
message: 'v1:1.1.42.622-1',
label: undefined,
})
given({ version: '7', outOfDate: null }).expect({
color: 'blue',
message: 'v7',
label: undefined,
})
})
})

View File

@@ -1,7 +1,6 @@
import Joi from 'joi'
import { age as ageColor } from '../color-formatters.js'
import { renderDateBadge } from '../date.js'
import { BaseJsonService, NotFound, pathParam, queryParam } from '../index.js'
import { formatDate } from '../text-formatters.js'
import { relativeUri } from '../validators.js'
const schema = Joi.object({
@@ -43,13 +42,6 @@ export default class BitbucketLastCommit extends BaseJsonService {
static defaultBadgeData = { label: 'last commit' }
static render({ commitDate }) {
return {
message: formatDate(commitDate),
color: ageColor(Date.parse(commitDate)),
}
}
async fetch({ user, repo, branch, path }) {
// https://developer.atlassian.com/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-commits-get
return this._requestJson({
@@ -76,6 +68,6 @@ export default class BitbucketLastCommit extends BaseJsonService {
if (!commit) throw new NotFound({ prettyMessage: 'no commits found' })
return this.constructor.render({ commitDate: commit.date })
return renderDateBadge(commit.date)
}
}

View File

@@ -1,9 +1,11 @@
import Joi from 'joi'
import { BaseJsonService, pathParam, queryParam } from '../index.js'
import { renderSizeBadge } from '../size.js'
import { nonNegativeInteger } from '../validators.js'
const schema = Joi.object({
size: Joi.object({
compressedSize: Joi.string().required(),
rawCompressedSize: nonNegativeInteger,
}).required(),
}).required()
@@ -76,13 +78,6 @@ export default class BundlejsPackage extends BaseJsonService {
static defaultBadgeData = { label: 'bundlejs', color: 'informational' }
static render({ size }) {
return {
label: 'minified size (gzip)',
message: size,
}
}
async fetch({ scope, packageName, exports }) {
const searchParams = {
q: `${scope ? `${scope}/` : ''}${packageName}`,
@@ -110,7 +105,7 @@ export default class BundlejsPackage extends BaseJsonService {
async handle({ scope, packageName }, { exports }) {
const json = await this.fetch({ scope, packageName, exports })
const size = json.size.compressedSize
return this.constructor.render({ size })
const size = json.size.rawCompressedSize
return renderSizeBadge(size, 'metric', 'minified size (gzip)')
}
}

View File

@@ -1,26 +1,26 @@
import { isFileSize } from '../test-validators.js'
import { isMetricFileSize } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('bundlejs/package (packageName)')
.get('/jquery.json')
.expectBadge({ label: 'minified size (gzip)', message: isFileSize })
.expectBadge({ label: 'minified size (gzip)', message: isMetricFileSize })
t.create('bundlejs/package (version)')
.get('/react@18.2.0.json')
.expectBadge({ label: 'minified size (gzip)', message: isFileSize })
.expectBadge({ label: 'minified size (gzip)', message: isMetricFileSize })
t.create('bundlejs/package (scoped)')
.get('/@cycle/rx-run.json')
.expectBadge({ label: 'minified size (gzip)', message: isFileSize })
.expectBadge({ label: 'minified size (gzip)', message: isMetricFileSize })
t.create('bundlejs/package (select exports)')
.get('/value-enhancer.json?exports=isVal,val')
.expectBadge({ label: 'minified size (gzip)', message: isFileSize })
.expectBadge({ label: 'minified size (gzip)', message: isMetricFileSize })
t.create('bundlejs/package (scoped version select exports)')
.get('/@ngneat/falso@6.4.0.json?exports=randEmail,randFullName')
.expectBadge({ label: 'minified size (gzip)', message: isFileSize })
.expectBadge({ label: 'minified size (gzip)', message: isMetricFileSize })
t.create('bundlejs/package (not found)')
.get('/react@18.2.0.json')

View File

@@ -1,5 +1,5 @@
import Joi from 'joi'
import prettyBytes from 'pretty-bytes'
import { renderSizeBadge } from '../size.js'
import { nonNegativeInteger } from '../validators.js'
import { BaseJsonService, pathParams } from '../index.js'
@@ -112,10 +112,7 @@ export default class Bundlephobia extends BaseJsonService {
static render({ format, size }) {
const label = format === 'min' ? 'minified size' : 'minzipped size'
return {
label,
message: prettyBytes(size),
}
return renderSizeBadge(size, 'iec', label)
}
async fetch({ scope, packageName, version }) {

View File

@@ -1,4 +1,4 @@
import { isFileSize } from '../test-validators.js'
import { isIecFileSize } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
@@ -13,42 +13,42 @@ const data = [
{
format: formats.A,
get: '/min/preact.json',
expect: { label: 'minified size', message: isFileSize },
expect: { label: 'minified size', message: isIecFileSize },
},
{
format: formats.B,
get: '/min/preact/8.0.0.json',
expect: { label: 'minified size', message: isFileSize },
expect: { label: 'minified size', message: isIecFileSize },
},
{
format: formats.C,
get: '/min/@cycle/core.json',
expect: { label: 'minified size', message: isFileSize },
expect: { label: 'minified size', message: isIecFileSize },
},
{
format: formats.D,
get: '/min/@cycle/core/7.0.0.json',
expect: { label: 'minified size', message: isFileSize },
expect: { label: 'minified size', message: isIecFileSize },
},
{
format: formats.A,
get: '/minzip/preact.json',
expect: { label: 'minzipped size', message: isFileSize },
expect: { label: 'minzipped size', message: isIecFileSize },
},
{
format: formats.B,
get: '/minzip/preact/8.0.0.json',
expect: { label: 'minzipped size', message: isFileSize },
expect: { label: 'minzipped size', message: isIecFileSize },
},
{
format: formats.C,
get: '/minzip/@cycle/core.json',
expect: { label: 'minzipped size', message: isFileSize },
expect: { label: 'minzipped size', message: isIecFileSize },
},
{
format: formats.D,
get: '/minzip/@cycle/core/7.0.0.json',
expect: { label: 'minzipped size', message: isFileSize },
expect: { label: 'minzipped size', message: isIecFileSize },
},
{
format: formats.A,

View File

@@ -0,0 +1,35 @@
import { renderDateBadge } from '../date.js'
import { NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'
export default class ChromeWebStoreLastUpdated extends BaseChromeWebStoreService {
static category = 'activity'
static route = { base: 'chrome-web-store/last-updated', pattern: ':storeId' }
static openApi = {
'/chrome-web-store/last-updated/{storeId}': {
get: {
summary: 'Chrome Web Store Last Updated',
parameters: pathParams({
name: 'storeId',
example: 'nccfelhkfpbnefflolffkclhenplhiab',
}),
},
},
}
static defaultBadgeData = {
label: 'last updated',
}
async handle({ storeId }) {
const chromeWebStore = await this.fetch({ storeId })
const lastUpdated = chromeWebStore.lastUpdated()
if (lastUpdated == null) {
throw new NotFound({ prettyMessage: 'not found' })
}
return renderDateBadge(lastUpdated)
}
}

View File

@@ -0,0 +1,18 @@
import { isFormattedDate } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Last updated')
.get('/nccfelhkfpbnefflolffkclhenplhiab.json')
.expectBadge({
label: 'last updated',
message: isFormattedDate,
})
t.create('Last updated (not found)')
.get('/invalid-name-of-addon.json')
.expectBadge({
label: 'last updated',
message: 'not found',
})

View File

@@ -0,0 +1,46 @@
import { InvalidResponse, NotFound, pathParams } from '../index.js'
import BaseChromeWebStoreService from './chrome-web-store-base.js'
export default class ChromeWebStoreSize extends BaseChromeWebStoreService {
static category = 'size'
static route = { base: 'chrome-web-store/size', pattern: ':storeId' }
static openApi = {
'/chrome-web-store/size/{storeId}': {
get: {
summary: 'Chrome Web Store Size',
parameters: pathParams({
name: 'storeId',
example: 'nccfelhkfpbnefflolffkclhenplhiab',
}),
},
},
}
static defaultBadgeData = {
label: 'extension size',
color: 'blue',
}
static transform(sizeStr) {
const match = sizeStr.match(/^(\d+(?:\.\d+)?)([a-zA-Z]+)$/)
if (!match) {
throw new InvalidResponse({
prettyMessage: 'size does not match expected format',
})
}
const [, size, units] = match
return `${size} ${units}`
}
async handle({ storeId }) {
const chromeWebStore = await this.fetch({ storeId })
const size = chromeWebStore.size()
if (size == null) {
throw new NotFound({ prettyMessage: 'not found' })
}
return { message: this.constructor.transform(size) }
}
}

View File

@@ -0,0 +1,28 @@
import { expect } from 'chai'
import { test, given } from 'sazerac'
import { InvalidResponse } from '../index.js'
import ChromeWebStoreSize from './chrome-web-store-size.service.js'
describe('transform function', function () {
it('formats size correctly', function () {
test(ChromeWebStoreSize.transform, () => {
given('0.55KiB').expect('0.55 KiB')
given('19.86KiB').expect('19.86 KiB')
given('432KiB').expect('432 KiB')
})
})
it('throws when the format is unexpected', function () {
expect(() => ChromeWebStoreSize.transform('432 KiB')).to.throw(
InvalidResponse,
)
expect(() => ChromeWebStoreSize.transform('432')).to.throw(InvalidResponse)
expect(() => ChromeWebStoreSize.transform('KiB')).to.throw(InvalidResponse)
expect(() => ChromeWebStoreSize.transform('foobar')).to.throw(
InvalidResponse,
)
expect(() => ChromeWebStoreSize.transform('4.4.4 KiB')).to.throw(
InvalidResponse,
)
})
})

View File

@@ -0,0 +1,13 @@
import { createServiceTester } from '../tester.js'
import { isIecFileSize } from '../test-validators.js'
export const t = await createServiceTester()
t.create('Size').get('/nccfelhkfpbnefflolffkclhenplhiab.json').expectBadge({
label: 'extension size',
message: isIecFileSize,
})
t.create('Size (not found)')
.get('/invalid-name-of-addon.json')
.expectBadge({ label: 'extension size', message: 'not found' })

View File

@@ -34,6 +34,10 @@ class ClojarsVersionService extends BaseClojarsService {
static defaultBadgeData = { label: 'clojars' }
static render({ clojar, version }) {
// clojars format is non standard to fit community style
// dont use renderVersionBadge
// see also https://github.com/badges/shields/pull/431
// commit d0414c9
return {
message: `[${clojar} "${version}"]`,
color: versionColor(version),

View File

@@ -113,7 +113,7 @@ export default class CodeclimateAnalysis extends BaseJsonService {
},
'/codeclimate/tech-debt/{user}/{repo}': {
get: {
summary: 'Code Climate issues',
summary: 'Code Climate technical debt',
parameters: pathParams(
{ name: 'user', example: 'tensorflow' },
{ name: 'repo', example: 'models' },
@@ -122,7 +122,7 @@ export default class CodeclimateAnalysis extends BaseJsonService {
},
'/codeclimate/issues/{user}/{repo}': {
get: {
summary: 'Code Climate technical debt',
summary: 'Code Climate issues',
parameters: pathParams(
{ name: 'user', example: 'tensorflow' },
{ name: 'repo', example: 'models' },

View File

@@ -38,7 +38,7 @@ const badgeTokenPattern = /^\w{10}$/
const description = `
You may specify a Codecov badge token to get coverage for a private repository.
You can find the token under the badge section of your project settings page, in this url: <code>https://codecov.io/[vcsName]/[user]/[repo]/settings/badge</code>.
You can find the token under the badge section of your project settings page, in this url: <code>https://codecov.io/[vcsName]/[user]/[repo]/config/badge</code>.
`
export default class Codecov extends BaseSvgScrapingService {
@@ -145,7 +145,7 @@ export default class Codecov extends BaseSvgScrapingService {
async fetch({ vcsName, user, repo, branch, token, flag }) {
const url = `https://codecov.io/${vcsName}/${user}/${repo}${
branch ? `/branches/${branch}` : ''
branch ? `/branch/${branch}` : ''
}/graph/badge.svg`
return this._requestSvg({
schema,

View File

@@ -0,0 +1,71 @@
import Joi from 'joi'
import { BaseJsonService, pathParams } from '../index.js'
import { metric } from '../text-formatters.js'
const schema = Joi.object({
reviews: Joi.number().required(),
}).required()
class CodeRabbitPullRequest extends BaseJsonService {
static category = 'analysis'
static route = {
base: 'coderabbit',
pattern: 'prs/:provider(github|bitbucket|gitlab)/:org/:repo',
}
static openApi = {
'/coderabbit/prs/{provider}/{org}/{repo}': {
get: {
summary: 'CodeRabbit Pull Request Reviews',
description:
'This badge pulls the number of PRs reviewed by [CodeRabbit](https://coderabbit.ai), AI code review tool',
parameters: pathParams(
{
name: 'provider',
example: 'github',
description: 'Version Control Provider',
schema: { type: 'string', enum: this.getEnum('provider') },
},
{
name: 'org',
example: 'coderabbitai',
description: 'Organization or User name',
},
{
name: 'repo',
example: 'ast-grep-essentials',
description: 'Repository name',
},
),
},
},
}
static defaultBadgeData = {
label: 'coderabbit reviews',
}
static render({ reviews }) {
return {
message: metric(reviews),
color: 'blue',
}
}
async fetch({ provider, org, repo }) {
return this._requestJson({
schema,
url: `https://api.coderabbit.ai/stats/${provider}/${org}/${repo}`,
httpErrors: {
400: 'provider or repo not found',
},
})
}
async handle({ provider, org, repo }) {
const data = await this.fetch({ provider, org, repo })
return this.constructor.render(data)
}
}
export default CodeRabbitPullRequest

View File

@@ -0,0 +1,25 @@
import { createServiceTester } from '../tester.js'
import { isMetric } from '../test-validators.js'
export const t = await createServiceTester()
t.create('live CodeRabbitPullRequest')
.get('/prs/github/coderabbitai/ast-grep-essentials.json')
.expectBadge({
label: 'coderabbit reviews',
message: isMetric,
})
t.create('live CodeRabbitPullRequest nonexistent org')
.get('/prs/github/not-valid/not-found.json')
.expectBadge({
label: 'coderabbit reviews',
message: 'provider or repo not found',
})
t.create('live CodeRabbitPullRequest invalid repo')
.get('/prs/github/coderabbitai/invalid-repo-name.json')
.expectBadge({
label: 'coderabbit reviews',
message: 'provider or repo not found',
})

View File

@@ -6,7 +6,6 @@
*/
import pep440 from '@renovatebot/pep440'
import dayjs from 'dayjs'
/**
* Determines the color used for a badge based on version.
@@ -23,7 +22,10 @@ function version(version) {
if (first === 'v') {
first = version[1]
}
if (first === '0' || /alpha|beta|snapshot|dev|pre|rc/i.test(version)) {
if (
first === '0' ||
/alpha|beta|snapshot|dev|pre|rc|scm|cvs/i.test(version)
) {
return 'orange'
} else {
return 'blue'
@@ -172,24 +174,7 @@ function colorScale(steps, colors, reversed) {
}
}
/**
* Determines the color used for a badge according to the age.
* Age is calculated as days elapsed till current date.
* The color varies from bright green to red as the age increases
* or the other way around if `reverse` is given `true`.
*
* @param {string} date Date string
* @param {boolean} reversed Reverse the color scale a.k.a. the older, the better
* @returns {string} Badge color
*/
function age(date, reversed = false) {
const colorByAge = colorScale([7, 30, 180, 365, 730], undefined, !reversed)
const daysElapsed = dayjs().diff(dayjs(date), 'days')
return colorByAge(daysElapsed)
}
export {
age,
colorScale,
coveragePercentage,
downloadCount,

Some files were not shown because too many files have changed in this diff Show More