Compare commits

..

195 Commits

Author SHA1 Message Date
github-actions[bot]
6a0b256e84 Changelog for Release server-2024-08-01 (#10424)
* 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-08-01 15:43:07 +00:00
chris48s
c67c8f0505 send Cross-Origin-Resource-Policy header on all responses (#10420)
* send Cross-Origin-Resource-Policy header on all responses

* don't re-add Access-Control-Allow-Origin on json responses

this is re-adding a header we've already set earlier in the process

* update tests
2024-07-28 08:22:24 +00:00
dependabot[bot]
6f4ebbad5e chore(deps): bump simple-icons from 13.1.0 to 13.2.0 (#10410)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.1.0 to 13.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.1.0...13.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>
2024-07-27 17:59:48 +00:00
dependabot[bot]
49c717bf53 chore(deps): bump query-string from 9.0.0 to 9.1.0 (#10413)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v9.0.0...v9.1.0)

---
updated-dependencies:
- dependency-name: query-string
  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-07-27 17:59:01 +00:00
dependabot[bot]
ccf3e21880 chore(deps): bump got from 14.4.1 to 14.4.2 (#10414)
Bumps [got](https://github.com/sindresorhus/got) from 14.4.1 to 14.4.2.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.4.1...v14.4.2)

---
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-07-27 17:56:15 +00:00
dependabot[bot]
153cdde971 chore(deps): bump @sentry/node from 8.19.0 to 8.20.0 (#10411)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.19.0 to 8.20.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.19.0...8.20.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-07-27 17:55:18 +00:00
dependabot[bot]
042a865452 chore(deps-dev): bump @typescript-eslint/parser from 7.16.1 to 7.17.0 (#10416)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.16.1 to 7.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/v7.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-07-27 17:48:18 +00:00
dependabot[bot]
e1a3c0b413 chore(deps-dev): bump eslint-plugin-promise from 6.4.0 to 6.6.0 (#10415)
Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.4.0 to 6.6.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.4.0...v6.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-promise
  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-07-27 17:48:05 +00:00
dependabot[bot]
1131fe4d65 chore(deps-dev): bump eslint-plugin-jsdoc from 48.7.0 to 48.8.3 (#10412)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.7.0 to 48.8.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/v48.7.0...v48.8.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-07-27 17:47:42 +00:00
dependabot[bot]
5988e492d1 chore(deps-dev): bump chai from 4.4.1 to 4.5.0 (#10409)
Bumps [chai](https://github.com/chaijs/chai) from 4.4.1 to 4.5.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/v4.4.1...v4.5.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>
2024-07-27 17:47:28 +00:00
dependabot[bot]
cea8b72885 chore(deps-dev): bump eslint-plugin-cypress from 3.3.0 to 3.4.0 (#10408)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v3.3.0...v3.4.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-07-27 17:47:13 +00:00
dependabot[bot]
43949e029f chore(deps-dev): bump mocha from 10.6.0 to 10.7.0 (#10407)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.6.0 to 10.7.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/v10.6.0...v10.7.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>
2024-07-27 17:47:10 +00:00
dependabot[bot]
f148cc502a chore(deps): bump socket.io-parser from 3.3.3 to 3.3.4 (#10401)
Bumps [socket.io-parser](https://github.com/Automattic/socket.io-parser) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/Automattic/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/3.3.4/CHANGELOG.md)
- [Commits](https://github.com/Automattic/socket.io-parser/compare/3.3.3...3.3.4)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 09:32:17 +00:00
chris48s
da0fd70427 migrate [MozillaObservatory] to new API (#10402)
* migrate [MozillaObservatory] to new API

* remove timeouts

* prettier
2024-07-26 10:31:47 +01:00
chris48s
be542e17af use metric() for [discord] and [revolt] badges (#10406) 2024-07-26 09:17:59 +00:00
chris48s
615ecaad9b remove reference to CircleCI (#10405) 2024-07-26 09:17:56 +00:00
chris48s
2dc7184f3e Cache text only static badges for longer (#10403)
* cache text only static badges for longer

* explaining cache-control header on redirects more clearly
2024-07-26 09:17:51 +00:00
chris48s
f99fd17a8f update [pub] points service test (#10398) 2024-07-26 09:17:45 +00:00
chris48s
81dfc92f86 update [pypi] license test example (#10399) 2024-07-23 03:03:51 +00:00
chris48s
a02107494b update [PythonVersionFromToml] test example (#10400) 2024-07-23 02:54:29 +00:00
Pierre-Yves Bigourdan
66d9f4da02 Fix [FreeCodeCampPoints] not found handling (#10377)
* Fix [FreeCodeCampPoints] not found handling

* Tighten schema
2024-07-22 20:36:23 +00:00
Pierre-Yves Bigourdan
2fb8e57105 Fix [Gerrit] new change test (#10376) 2024-07-22 17:54:40 +00:00
Pierre-Yves Bigourdan
26637494d2 Fix [AmoVersion] test (#10375) 2024-07-22 17:54:34 +00:00
Pierre-Yves Bigourdan
bb1157c6b3 Fix [EcologiCarbonOffset] test (#10374) 2024-07-22 17:54:30 +00:00
Pierre-Yves Bigourdan
a202a09e87 Fix [Gitea] not found message (#10373) 2024-07-22 17:54:24 +00:00
Pierre-Yves Bigourdan
62ed7c3a27 Mock [JenkinsCoverage] Cobertura job found test (#10372) 2024-07-22 17:54:18 +00:00
Pierre-Yves Bigourdan
852d02d662 Deprecate [Bountysource] service (#10371) 2024-07-22 17:53:58 +00:00
dependabot[bot]
47229ecc07 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10388)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.44.3 to 0.44.4.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.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>
2024-07-22 11:59:33 +00:00
dependabot[bot]
fb32c8202e chore(deps): bump semver from 7.6.2 to 7.6.3 (#10387)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.2 to 7.6.3.
- [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.2...v7.6.3)

---
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>
2024-07-22 11:58:17 +00:00
dependabot[bot]
e51f0d0715 chore(deps-dev): bump @typescript-eslint/parser from 7.16.0 to 7.16.1 (#10386)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.16.0 to 7.16.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/v7.16.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-07-22 11:57:46 +00:00
dependabot[bot]
4b14731858 chore(deps): bump smol-toml from 1.2.2 to 1.3.0 (#10385)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/compare/v1.2.2...v1.3.0)

---
updated-dependencies:
- dependency-name: smol-toml
  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-07-22 11:57:21 +00:00
dependabot[bot]
8bc87184c4 chore(deps): bump dayjs from 1.11.11 to 1.11.12 (#10381)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.11 to 1.11.12.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.11...v1.11.12)

---
updated-dependencies:
- dependency-name: dayjs
  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-07-22 11:55:49 +00:00
dependabot[bot]
6c58fc1839 chore(deps-dev): bump cypress from 13.13.0 to 13.13.1 (#10384)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.13.0 to 13.13.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.13.0...v13.13.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-07-22 11:55:27 +00:00
dependabot[bot]
ed6aa0f230 chore(deps-dev): bump prettier from 3.3.2 to 3.3.3 (#10383)
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.2 to 3.3.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.3.2...3.3.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>
2024-07-22 11:54:58 +00:00
dependabot[bot]
ccc7099464 chore(deps): bump @sentry/node from 8.17.0 to 8.19.0 (#10382)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.17.0 to 8.19.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.17.0...8.19.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-07-22 11:54:38 +00:00
dependabot[bot]
ab55d2880a chore(deps-dev): bump eslint-plugin-react from 7.34.3 to 7.35.0 (#10397)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.3 to 7.35.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.34.3...v7.35.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-07-22 11:46:07 +00:00
Pierre-Yves Bigourdan
1e4c8f54d7 Sunsetting Shields custom logos (#10347)
* Sunsetting Shields custom logos

* Reinstate info to contribute to SimpleIcons

* Mention that no changes are required
2024-07-13 19:14:54 +00:00
Pierre-Yves Bigourdan
67deddb8a9 Use ellipsis when many versions returned for [ModrinthGameVersions] (#10350) 2024-07-13 18:58:11 +00:00
Pierre-Yves Bigourdan
1585d157c1 Cleanup unused bits and pieces (#10349) 2024-07-13 18:57:54 +00:00
Pierre-Yves Bigourdan
dfc5a36817 Update daily tests reference in README (#10348) 2024-07-13 18:57:40 +00:00
Pierre-Yves Bigourdan
6b0b88d29a Update c8 configuration (#10361)
* Update c8 configuration

* Update .gitignore
2024-07-13 20:59:51 +02:00
chris48s
5e36dc0a8f deprecate [tokei] service (#9581) 2024-07-13 14:04:22 +01:00
dependabot[bot]
848e409e55 chore(deps-dev): bump rimraf from 5.0.7 to 6.0.1 (#10356)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.7 to 6.0.1.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.7...v6.0.1)

---
updated-dependencies:
- dependency-name: rimraf
  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-07-12 13:24:43 +00:00
dependabot[bot]
a8fa516251 chore(deps): bump simple-icons from 13.0.0 to 13.1.0 (#10353)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 13.0.0 to 13.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/13.0.0...13.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>
2024-07-12 13:24:27 +00:00
dependabot[bot]
30c6730f58 chore(deps): bump glob from 10.4.2 to 11.0.0 (#10354)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.2 to 11.0.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.2...v11.0.0)

---
updated-dependencies:
- dependency-name: glob
  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-07-12 13:24:06 +00:00
dependabot[bot]
e59ea0f28a chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10355)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.44.2 to 0.44.3.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.3/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>
2024-07-12 13:23:31 +00:00
dependabot[bot]
e93ea8f5cb chore(deps): bump @sentry/node from 8.15.0 to 8.17.0 (#10357)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.15.0 to 8.17.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.15.0...8.17.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-07-12 13:18:28 +00:00
dependabot[bot]
824f01a468 chore(deps-dev): bump @typescript-eslint/parser from 7.15.0 to 7.16.0 (#10358)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.15.0 to 7.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/v7.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-07-12 13:17:48 +00:00
dependabot[bot]
3a1fe7024c chore(deps-dev): bump eslint-plugin-jsdoc from 48.5.2 to 48.7.0 (#10359)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.5.2 to 48.7.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/v48.5.2...v48.7.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-07-12 13:17:23 +00:00
dependabot[bot]
ccbafefa3a chore(deps): bump qs from 6.12.2 to 6.12.3 (#10360)
Bumps [qs](https://github.com/ljharb/qs) from 6.12.2 to 6.12.3.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.12.2...v6.12.3)

---
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-07-12 13:16:25 +00:00
Pierre-Yves Bigourdan
27f964e11e Add code coverage action (#10340)
* Add code coverage action

* Run on Node 22

* Separate service tests out

* Temporarily run on all pushes to test out

* Switch to daily schedule
2024-07-11 17:45:13 +00:00
Pierre-Yves Bigourdan
15edd7962f Update badges in README (#10341) 2024-07-10 09:13:01 +00:00
Pierre-Yves Bigourdan
be43f68ace Remove unused parameters in [Chocolatey Resharper PowershellGallery] (#10345) 2024-07-09 17:25:45 +00:00
Pierre-Yves Bigourdan
9d31aa057e Add CF-Ray header value to Sentry errors if available (#10339) 2024-07-09 15:57:22 +00:00
Pierre-Yves Bigourdan
e685b1a8bf Use XML for Chocolatey, affects [Chocolatey Resharper PowershellGallery] (#10344) 2024-07-09 15:57:12 +00:00
chris48s
e6c8d079c9 include gituhb contributors badge in docs site (#10337) 2024-07-09 14:11:14 +00:00
dependabot[bot]
79b0141322 chore(deps): bump simple-icons from 12.4.0 to 13.0.0 (#10330)
* chore(deps): bump simple-icons from 12.4.0 to 13.0.0

Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.4.0 to 13.0.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/12.4.0...13.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>

* update tests - skype logo has been removed

* simple-icons 13 blog post

---------

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-07-05 18:07:41 +00:00
dependabot[bot]
3102b0a6f0 chore(deps): bump qs from 6.12.1 to 6.12.2 (#10332)
Bumps [qs](https://github.com/ljharb/qs) from 6.12.1 to 6.12.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.12.1...v6.12.2)

---
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-07-05 13:45:46 +00:00
dependabot[bot]
43ed78afd7 chore(deps-dev): bump @typescript-eslint/parser from 7.14.1 to 7.15.0 (#10329)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.14.1 to 7.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/v7.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-07-05 13:41:31 +00:00
dependabot[bot]
476734e491 chore(deps-dev): bump cypress from 13.12.0 to 13.13.0 (#10331)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.12.0 to 13.13.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.12.0...v13.13.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-07-05 13:41:16 +00:00
dependabot[bot]
fee9365751 chore(deps): bump @sentry/node from 8.13.0 to 8.15.0 (#10334)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.13.0 to 8.15.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.13.0...8.15.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-07-05 13:40:46 +00:00
dependabot[bot]
b8f50a23f4 chore(deps-dev): bump eslint-plugin-jsdoc from 48.5.0 to 48.5.2 (#10335)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.5.0 to 48.5.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/v48.5.0...v48.5.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>
2024-07-05 13:40:43 +00:00
dependabot[bot]
86cb00b898 chore(deps-dev): bump eslint-plugin-promise from 6.2.0 to 6.4.0 (#10333)
Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.2.0 to 6.4.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.2.0...v6.4.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-promise
  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-07-05 13:40:34 +00:00
dependabot[bot]
061a9b517b chore(deps-dev): bump mocha from 10.5.2 to 10.6.0 (#10328)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.5.2 to 10.6.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/v10.5.2...v10.6.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>
2024-07-05 13:40:03 +00:00
chris48s
e4a9c73759 run full test suite daily (#10320) 2024-07-03 17:52:27 +00:00
github-actions[bot]
1838979d56 Changelog for Release server-2024-07-01 (#10318)
* 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-07-01 07:00:51 +00:00
Matin Lotfaliei
7c787b364a Add [AUR] Popularity Badge (#10304)
* Add AUR Popularity

* Apply Prettier formatting

* Update aur.service.js based on chris48s comments

* Update aur.tester.js from isMetric to decimal number

* Update aur.tester.js to import Joi

* Update aur.tester.js to fix the mistakenly placed Joi

* Update services/aur/aur.service.js

* Update services/aur/aur.tester.js

* update mocked data

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2024-06-30 18:55:31 +00:00
dependabot[bot]
0e79f75030 chore(deps): bump simple-icons from 12.3.0 to 12.4.0 (#10312)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.3.0 to 12.4.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/12.3.0...12.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>
2024-06-28 20:14:52 +00:00
dependabot[bot]
f25c3f265d chore(deps): bump graphql from 16.8.2 to 16.9.0 (#10313)
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.8.2 to 16.9.0.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v16.8.2...v16.9.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-06-28 20:09:26 +00:00
dependabot[bot]
740a682f05 chore(deps): bump prom-client from 15.1.2 to 15.1.3 (#10311)
Bumps [prom-client](https://github.com/siimon/prom-client) from 15.1.2 to 15.1.3.
- [Release notes](https://github.com/siimon/prom-client/releases)
- [Changelog](https://github.com/siimon/prom-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/siimon/prom-client/compare/v15.1.2...v15.1.3)

---
updated-dependencies:
- dependency-name: prom-client
  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-06-28 19:57:39 +00:00
dependabot[bot]
f7b1796807 chore(deps): bump smol-toml from 1.2.1 to 1.2.2 (#10307)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/compare/v1.2.1...v1.2.2)

---
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-06-28 19:56:47 +00:00
dependabot[bot]
2439cd2fce chore(deps-dev): bump node-mocks-http from 1.14.1 to 1.15.0 (#10308)
Bumps [node-mocks-http](https://github.com/eugef/node-mocks-http) from 1.14.1 to 1.15.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.14.1...v1.15.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-06-28 18:53:16 +00:00
dependabot[bot]
aa10d0b092 chore(deps-dev): bump @typescript-eslint/parser from 7.13.1 to 7.14.1 (#10305)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.13.1 to 7.14.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/v7.14.1/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-06-28 18:52:47 +00:00
dependabot[bot]
035e729313 chore(deps): bump @sentry/node from 8.11.0 to 8.13.0 (#10306)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.11.0 to 8.13.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.11.0...8.13.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-06-28 18:52:44 +00:00
dependabot[bot]
5f6a48eabd chore(deps-dev): bump mocha from 10.4.0 to 10.5.2 (#10309)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.4.0 to 10.5.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.4.0...v10.5.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-06-28 18:52:42 +00:00
dependabot[bot]
5b813ce908 chore(deps): bump config from 3.3.11 to 3.3.12 (#10310)
Bumps [config](https://github.com/node-config/node-config) from 3.3.11 to 3.3.12.
- [Release notes](https://github.com/node-config/node-config/releases)
- [Changelog](https://github.com/node-config/node-config/blob/master/History.md)
- [Commits](https://github.com/node-config/node-config/compare/v3.3.11...v3.3.12)

---
updated-dependencies:
- dependency-name: config
  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-06-28 18:52:39 +00:00
dependabot[bot]
c63244562d chore(deps): bump node-pg-migrate from 7.5.0 to 7.5.2 (#10314)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.5.0 to 7.5.2.
- [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.5.0...v7.5.2)

---
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-06-28 18:49:54 +00:00
dependabot[bot]
97ca295662 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.12 to 48.5.0 (#10315)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.12 to 48.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/v48.2.12...v48.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-06-28 18:49:43 +00:00
chris48s
61a6963919 fix npm badges when maintainers not in response (#10286) 2024-06-26 18:56:17 +00:00
chris48s
5c8129904f Expose logoBase64 and links in badge-maker NPM package (#10283)
* expose `logoBase64` and `links` in badge-maker NPM package

* add test assertion for logoBase64

* pass (public) `logoBase64` as (internal) `logo`

* badge-maker 4.0.0 release

---------

Co-authored-by: Sergey Kupletsky <s.kupletsky@gmail.com>
2024-06-24 14:53:31 +01:00
chris48s
677e713310 Remove logoPosition (#10284)
* remove logoPosition param

* finish the job of removing logoPosition

---------

Co-authored-by: Sergey Kupletsky <s.kupletsky@gmail.com>
2024-06-24 13:26:48 +00:00
Chris Young
92718ff98b [MBIN] Add subscribers badge (#10270)
* Add Mbin support

* Add tests for Mbin

* Update services/mbin/mbin.service.js

Remove extra space from description

Co-authored-by: Pierre-Yves Bigourdan <10694593+PyvesB@users.noreply.github.com>

* Remove test for bad server or connection

* Removed timeout

* Run not found test against live server

* Use isMetric for test

---------

Co-authored-by: Pierre-Yves Bigourdan <10694593+PyvesB@users.noreply.github.com>
2024-06-23 21:25:29 +00:00
dependabot[bot]
0c17d9d44d chore(deps): bump node-pg-migrate from 7.4.0 to 7.5.0 (#10273)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.4.0 to 7.5.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.4.0...v7.5.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-06-22 16:37:02 +00:00
dependabot[bot]
02608e1242 chore(deps-dev): bump cypress from 13.11.0 to 13.12.0 (#10276)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.11.0 to 13.12.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.11.0...v13.12.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-06-21 19:27:59 +00:00
dependabot[bot]
250686f147 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10278)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.44.0 to 0.44.2.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.2/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>
2024-06-21 19:23:54 +00:00
dependabot[bot]
35d5e9d964 chore(deps): bump glob from 10.4.1 to 10.4.2 (#10275)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.1 to 10.4.2.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.1...v10.4.2)

---
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>
2024-06-21 19:22:48 +00:00
dependabot[bot]
8eff4f51e4 chore(deps): bump @sentry/node from 8.9.2 to 8.11.0 (#10274)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.9.2 to 8.11.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/8.11.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.9.2...8.11.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-06-21 19:22:26 +00:00
dependabot[bot]
1445c3d21a chore(deps): bump joi from 17.13.1 to 17.13.3 (#10272)
Bumps [joi](https://github.com/hapijs/joi) from 17.13.1 to 17.13.3.
- [Commits](https://github.com/hapijs/joi/compare/v17.13.1...v17.13.3)

---
updated-dependencies:
- dependency-name: joi
  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-06-21 19:21:38 +00:00
dependabot[bot]
95382dd5ce chore(deps): bump docker/build-push-action from 5 to 6 (#10266)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  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-06-21 19:20:15 +00:00
dependabot[bot]
5ae8b29923 chore(deps-dev): bump ws from 6.2.2 to 6.2.3 (#10267)
Bumps [ws](https://github.com/websockets/ws) from 6.2.2 to 6.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.2.2...6.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-21 19:14:04 +00:00
dependabot[bot]
8303f43f2a chore(deps-dev): bump tsd from 0.31.0 to 0.31.1 (#10280)
Bumps [tsd](https://github.com/tsdjs/tsd) from 0.31.0 to 0.31.1.
- [Release notes](https://github.com/tsdjs/tsd/releases)
- [Commits](https://github.com/tsdjs/tsd/compare/v0.31.0...v0.31.1)

---
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-06-21 19:12:25 +00:00
dependabot[bot]
3509d1faf6 chore(deps-dev): bump nodemon from 3.1.3 to 3.1.4 (#10279)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.3...v3.1.4)

---
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-06-21 19:12:10 +00:00
dependabot[bot]
283ef0bade chore(deps-dev): bump danger from 12.3.1 to 12.3.3 (#10281)
Bumps [danger](https://github.com/danger/danger-js) from 12.3.1 to 12.3.3.
- [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.1...12.3.3)

---
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>
2024-06-21 19:11:52 +00:00
dependabot[bot]
d2344ed220 chore(deps-dev): bump eslint-plugin-react from 7.34.2 to 7.34.3 (#10271)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.2 to 7.34.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.34.2...v7.34.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-06-21 19:11:36 +00:00
dependabot[bot]
5aae2fdbd5 chore(deps-dev): bump @typescript-eslint/parser from 7.13.0 to 7.13.1 (#10277)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.13.0 to 7.13.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/v7.13.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-06-21 19:11:22 +00:00
dependabot[bot]
870b3f4be2 chore(deps): bump simple-icons from 12.2.0 to 12.3.0 (#10263)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.2.0 to 12.3.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/12.2.0...12.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>
2024-06-16 16:16:10 +00:00
Pierre-Yves Bigourdan
d69661600e Improve Docusaurus Dependabot setup (#10262)
* Improve Docusaurus Dependabot setup

* Add slashes to patterns
2024-06-16 15:50:54 +00:00
dependabot[bot]
05f0d866da chore(deps): bump simple-icons from 12.1.0 to 12.2.0 (#10255)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/12.1.0...12.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>
2024-06-14 18:05:30 +00:00
dependabot[bot]
2f2df5ba06 chore(deps-dev): bump @typescript-eslint/parser from 7.12.0 to 7.13.0 (#10258)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.12.0 to 7.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/v7.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-06-14 17:59:29 +00:00
dependabot[bot]
f905aa4fbe chore(deps): bump graphql from 16.8.1 to 16.8.2 (#10253)
Bumps [graphql](https://github.com/graphql/graphql-js) from 16.8.1 to 16.8.2.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v16.8.1...v16.8.2)

---
updated-dependencies:
- dependency-name: graphql
  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-06-14 17:48:51 +00:00
dependabot[bot]
497189f007 chore(deps-dev): bump lint-staged from 15.2.5 to 15.2.7 (#10256)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 15.2.5 to 15.2.7.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/okonet/lint-staged/compare/v15.2.5...v15.2.7)

---
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-06-14 17:46:36 +00:00
dependabot[bot]
73c4f45eee chore(deps): bump @sentry/node from 8.8.0 to 8.9.2 (#10259)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.8.0 to 8.9.2.
- [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.8.0...8.9.2)

---
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-06-14 17:45:30 +00:00
dependabot[bot]
b5c69ce1bb chore(deps-dev): bump c8 from 9.1.0 to 10.1.2 (#10252)
Bumps [c8](https://github.com/bcoe/c8) from 9.1.0 to 10.1.2.
- [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/v9.1.0...v10.1.2)

---
updated-dependencies:
- dependency-name: c8
  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-06-14 17:45:07 +00:00
dependabot[bot]
ed9f4bf2ff chore(deps-dev): bump chai-as-promised from 7.1.2 to 8.0.0 (#10254)
Bumps [chai-as-promised](https://github.com/chaijs/chai-as-promised) from 7.1.2 to 8.0.0.
- [Release notes](https://github.com/chaijs/chai-as-promised/releases)
- [Commits](https://github.com/chaijs/chai-as-promised/compare/v7.1.2...v8.0.0)

---
updated-dependencies:
- dependency-name: chai-as-promised
  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-06-14 17:44:51 +00:00
dependabot[bot]
18e9b2aa37 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.9 to 48.2.12 (#10257)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.9 to 48.2.12.
- [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/v48.2.9...v48.2.12)

---
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-06-14 17:44:13 +00:00
dependabot[bot]
95df3200f4 chore(deps-dev): bump prettier from 3.3.1 to 3.3.2 (#10260)
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.1 to 3.3.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.3.1...3.3.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-06-14 17:43:58 +00:00
Pierre-Yves Bigourdan
8698fa1838 Update documentation and tests to [docsrs] (#10240)
* Update documentation and tests to [docsrs]

* Fix language identifier

* Replace tensorflow with tokio
2024-06-10 07:13:42 +00:00
Pierre-Yves Bigourdan
6be6c1d59f Add [Docker] support for loong64 arch (#10241)
* Add [Docker] support for loong64 arch

* Fix Docker version test
2024-06-09 22:42:25 +02:00
dependabot[bot]
0b4f0c837a chore(deps-dev): bump @docusaurus/core from 3.3.2 to 3.4.0 (#10239)
* chore(deps-dev): bump @docusaurus/core from 3.3.2 to 3.4.0

Bumps [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) from 3.3.2 to 3.4.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.4.0/packages/docusaurus)

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

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

* update @docusaurus/preset-classic

---------

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-06-09 19:17:09 +00:00
dependabot[bot]
d33d57170f chore(deps-dev): bump cypress from 13.10.0 to 13.11.0 (#10229)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.10.0 to 13.11.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.10.0...v13.11.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-06-09 19:01:22 +00:00
dependabot[bot]
0360ba3a1b chore(deps): bump got from 14.3.0 to 14.4.1 (#10236)
Bumps [got](https://github.com/sindresorhus/got) from 14.3.0 to 14.4.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.3.0...v14.4.1)

---
updated-dependencies:
- dependency-name: got
  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-06-08 09:10:45 +00:00
dependabot[bot]
82769bd588 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10233)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local) from 0.41.0 to 0.44.0.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.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-06-08 09:08:57 +00:00
dependabot[bot]
ba6bddf4bc chore(deps-dev): bump prettier from 3.2.5 to 3.3.1 (#10232)
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 to 3.3.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.2.5...3.3.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-06-08 09:08:16 +00:00
dependabot[bot]
3bd604bc8e chore(deps-dev): bump @typescript-eslint/parser from 7.11.0 to 7.12.0 (#10228)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.11.0 to 7.12.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/v7.12.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-06-08 09:03:45 +00:00
dependabot[bot]
d0f17a4f00 chore(deps-dev): bump danger from 12.3.0 to 12.3.1 (#10235)
Bumps [danger](https://github.com/danger/danger-js) from 12.3.0 to 12.3.1.
- [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.0...12.3.1)

---
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>
2024-06-08 09:03:16 +00:00
dependabot[bot]
cfa6bb3d69 chore(deps): bump @sentry/node from 8.7.0 to 8.8.0 (#10234)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.7.0 to 8.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/8.7.0...8.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>
2024-06-08 09:02:34 +00:00
dependabot[bot]
7a5628587e chore(deps): bump smol-toml from 1.2.0 to 1.2.1 (#10231)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/compare/v1.2.0...v1.2.1)

---
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-06-08 08:56:54 +00:00
dependabot[bot]
db0ed00d0e chore(deps): bump pg from 8.11.5 to 8.12.0 (#10237)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.11.5 to 8.12.0.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.12.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-06-08 08:56:20 +00:00
dependabot[bot]
3fd95638de chore(deps-dev): bump nodemon from 3.1.2 to 3.1.3 (#10230)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.2...v3.1.3)

---
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-06-08 08:52:46 +00:00
dependabot[bot]
f6f01a9337 chore(deps): bump simple-icons from 12.0.0 to 12.1.0 (#10227)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 12.0.0 to 12.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/12.0.0...12.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>
2024-06-08 08:37:58 +00:00
dependabot[bot]
71d11eea4b chore(deps-dev): bump eslint-plugin-chai-friendly from 0.8.0 to 1.0.0 (#10226)
Bumps [eslint-plugin-chai-friendly](https://github.com/ihordiachenko/eslint-plugin-chai-friendly) from 0.8.0 to 1.0.0.
- [Release notes](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/releases)
- [Commits](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/compare/v0.8.0...v1.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-chai-friendly
  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-06-08 08:29:19 +00:00
dependabot[bot]
2b7951f9de chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.7 to 48.2.9 (#10225)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.7 to 48.2.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/v48.2.7...v48.2.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>
2024-06-08 08:26:36 +00:00
dependabot[bot]
1e7819dad4 chore(deps-dev): bump start-server-and-test from 2.0.3 to 2.0.4 (#10238)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v2.0.3...v2.0.4)

---
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-06-08 08:24:04 +00:00
chris48s
437adc67ce simpleicons 12 blog (#10222) 2024-06-04 19:21:44 +01:00
Romain Tartière
d23f26b8d6 Add puppetforge quality score badges (#10201)
The Puppet Forge run static analysis on modules and provide a score
through a (currently) internal API.

Waybe it will be in the public API in the future, but when this happen
adjusting the URL should be easy.  In the meantime, use this internal
API.
2024-06-04 18:13:06 +00:00
Pierre-Yves Bigourdan
81585acd6b Fix [GithubPullRequestCheckState] test (#10200) 2024-06-02 22:43:55 +02:00
Pierre-Yves Bigourdan
f1727a38c1 Switch Cobertura job URL (#10217) 2024-06-02 20:29:25 +00:00
Pierre-Yves Bigourdan
39a17b69d3 Fully mock flaky [CodeClimate] multi-step tests (#10218) 2024-06-02 20:29:07 +00:00
github-actions[bot]
9b9354f6bf Update Changelog (#10215)
Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: Pierre-Yves Bigourdan <10694593+PyvesB@users.noreply.github.com>
2024-06-01 10:21:45 +00:00
dependabot[bot]
e7327e462e chore(deps-dev): bump eslint-plugin-promise from 6.1.1 to 6.2.0 (#10214)
Bumps [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) from 6.1.1 to 6.2.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v6.1.1...v6.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-promise
  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-06-01 10:04:01 +00:00
dependabot[bot]
39bc6be4f3 chore(deps-dev): bump @typescript-eslint/parser from 7.10.0 to 7.11.0 (#10210)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.10.0 to 7.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/v7.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-06-01 09:58:50 +00:00
dependabot[bot]
ce10ea9b9f chore(deps): bump simple-icons from 11.15.0 to 12.0.0 (#10212)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.15.0 to 12.0.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.15.0...12.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-06-01 09:48:52 +00:00
dependabot[bot]
d8a30a0b7d chore(deps-dev): bump eslint-plugin-cypress from 3.2.0 to 3.3.0 (#10211)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v3.2.0...v3.3.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-06-01 09:44:09 +00:00
dependabot[bot]
d6f3cbc913 chore(deps): bump node-pg-migrate from 7.3.2 to 7.4.0 (#10213)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.3.2 to 7.4.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.3.2...v7.4.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-06-01 09:44:03 +00:00
dependabot[bot]
87340e8f67 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.6 to 48.2.7 (#10209)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.6 to 48.2.7.
- [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/v48.2.6...v48.2.7)

---
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-06-01 09:42:47 +00:00
dependabot[bot]
46a608fe6f chore(deps-dev): bump nodemon from 3.1.0 to 3.1.2 (#10208)
Bumps [nodemon](https://github.com/remy/nodemon) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.0...v3.1.2)

---
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-06-01 09:42:12 +00:00
dependabot[bot]
7109a957ba chore(deps-dev): bump lint-staged from 15.2.4 to 15.2.5 (#10207)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 15.2.4 to 15.2.5.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/okonet/lint-staged/compare/v15.2.4...v15.2.5)

---
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-06-01 09:41:48 +00:00
dependabot[bot]
07dc2ab1c3 chore(deps): bump @sentry/node from 8.4.0 to 8.7.0 (#10206)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.4.0 to 8.7.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.4.0...8.7.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-06-01 09:41:31 +00:00
dependabot[bot]
aaba7cd8b1 chore(deps-dev): bump eslint-plugin-react from 7.34.1 to 7.34.2 (#10205)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.1 to 7.34.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.34.1...v7.34.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-06-01 09:40:14 +00:00
Pierre-Yves Bigourdan
f57c4edbb9 Remove namedLogo from defaultBadgeData of non-social badges (#10195) 2024-05-27 20:34:38 +00:00
Pierre-Yves Bigourdan
ee5f06e0a7 Update number of badges served each month (#10197) 2024-05-27 20:34:21 +00:00
Pierre-Yves Bigourdan
db4725d232 Delete old deprecated services (#10196)
* Delete deprecated services

* Run Prettier
2024-05-27 20:16:23 +00:00
dependabot[bot]
158f1119f4 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#10183)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local) from 0.40.1 to 0.41.0.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Changelog](https://github.com/easyops-cn/docusaurus-search-local/blob/master/docusaurus-search-local/CHANGELOG.md)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/compare/v0.40.1...v0.41.0)

---
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-05-27 20:14:50 +00:00
chris48s
d4ede2e7cf handle [BitbucketPipelines] responses with missing result key (#10163) 2024-05-27 19:52:28 +00:00
Marc Bernard
427b24c98a Update description of GitHub commit status badge (#10198)
* [GitHub] update description of commit status badge

* fix typo

* Add pull request check

* regex to english
2024-05-26 17:16:08 +02:00
Marc Bernard
e43cb0c9b5 chore: fix spelling of GitHub in badge descriptions (#10199) 2024-05-26 09:16:39 +00:00
dependabot[bot]
8ca5682ba1 chore(deps): bump glob from 10.3.15 to 10.4.1 (#10191)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.15 to 10.4.1.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.15...v10.4.1)

---
updated-dependencies:
- dependency-name: glob
  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-05-25 10:56:05 +00:00
dependabot[bot]
c7388f385d chore(deps): bump webextension-store-meta from 1.2.2 to 1.2.3 (#10192)
Bumps [webextension-store-meta](https://github.com/awesome-webextension/webextension-store-meta) from 1.2.2 to 1.2.3.
- [Changelog](https://github.com/awesome-webextension/webextension-store-meta/blob/main/CHANGELOG.md)
- [Commits](https://github.com/awesome-webextension/webextension-store-meta/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: webextension-store-meta
  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-05-25 10:43:10 +00:00
dependabot[bot]
94972f858f chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.5 to 48.2.6 (#10194)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.5 to 48.2.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/v48.2.5...v48.2.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>
2024-05-25 10:42:39 +00:00
dependabot[bot]
d259330ff8 chore(deps): bump simple-icons from 11.14.0 to 11.15.0 (#10193)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.14.0 to 11.15.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.14.0...11.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-05-25 10:42:15 +00:00
dependabot[bot]
45d16dee38 chore(deps-dev): bump eslint-plugin-chai-friendly from 0.7.4 to 0.8.0 (#10190)
Bumps [eslint-plugin-chai-friendly](https://github.com/ihordiachenko/eslint-plugin-chai-friendly) from 0.7.4 to 0.8.0.
- [Release notes](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/releases)
- [Commits](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/compare/v0.7.4...v0.8.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-chai-friendly
  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-05-25 10:39:10 +00:00
dependabot[bot]
6cf65e0696 chore(deps): bump fast-xml-parser from 4.3.6 to 4.4.0 (#10189)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.3.6 to 4.4.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.3.6...v4.4.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-05-25 10:38:31 +00:00
dependabot[bot]
840edcac1a chore(deps): bump @sentry/node from 8.2.1 to 8.4.0 (#10188)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 8.2.1 to 8.4.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.2.1...8.4.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-05-25 10:38:06 +00:00
dependabot[bot]
00a56b000b chore(deps): bump got from 14.2.1 to 14.3.0 (#10186)
Bumps [got](https://github.com/sindresorhus/got) from 14.2.1 to 14.3.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.2.1...v14.3.0)

---
updated-dependencies:
- dependency-name: got
  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-05-25 10:36:30 +00:00
Marc Bernard
12f54f3375 Add [GithubCheckRuns] service (#7759)
* Add [GithubCheckRuns] service

* Adjust ref parameter

* Rework

* Prettier

* Prettier

* Function

* Prettier

* Change CR to LF

* Adjust after #9233

* Lint camelCase

* Fix camelCase

* Fix prettier

* Switch to openAPI spec for examples

* Fix type of parameters

* Fix too many brackets

* Lint

* Add optional name filter

* Update tests

* Remove logo
2024-05-25 10:35:25 +00:00
dependabot[bot]
6f0e7f0bbd chore(deps-dev): bump danger from 12.2.0 to 12.3.0 (#10187)
Bumps [danger](https://github.com/danger/danger-js) from 12.2.0 to 12.3.0.
- [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.2.0...12.3.0)

---
updated-dependencies:
- dependency-name: danger
  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-05-25 10:33:14 +00:00
dependabot[bot]
f96e303021 chore(deps-dev): bump @typescript-eslint/parser from 7.9.0 to 7.10.0 (#10185)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.9.0 to 7.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/v7.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-05-25 10:32:30 +00:00
dependabot[bot]
17f2575f76 chore(deps-dev): bump lint-staged from 15.2.2 to 15.2.4 (#10184)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 15.2.2 to 15.2.4.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/okonet/lint-staged/compare/v15.2.2...v15.2.4)

---
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-05-25 10:28:05 +00:00
dependabot[bot]
df67a3ad66 chore(deps-dev): bump cypress from 13.9.0 to 13.10.0 (#10182)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.9.0 to 13.10.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.9.0...v13.10.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-05-25 10:26:58 +00:00
gudzpoz
d682172951 feat: add Revolt badge (#10093)
Co-authored-by: Jan0660 <jan0660@tutanota.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-05-20 14:20:35 +00:00
chris48s
13800175ce ensure color is string before calling toLowerCase() (#10129) 2024-05-20 13:32:29 +00:00
dependabot[bot]
c60e3dc418 chore(deps): bump @sentry/node from 7.114.0 to 8.2.1 (#10171)
* chore(deps): bump @sentry/node from 7.114.0 to 8.2.1

Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.114.0 to 8.2.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/7.114.0...8.2.1)

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

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

* update imports

---------

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-05-19 19:20:39 +00:00
dependabot[bot]
0bd8bfca0d chore(deps): bump webextension-store-meta from 1.2.1 to 1.2.2 (#10168)
Bumps [webextension-store-meta](https://github.com/awesome-webextension/webextension-store-meta) from 1.2.1 to 1.2.2.
- [Changelog](https://github.com/awesome-webextension/webextension-store-meta/blob/main/CHANGELOG.md)
- [Commits](https://github.com/awesome-webextension/webextension-store-meta/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: webextension-store-meta
  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-05-17 19:05:28 +00:00
dependabot[bot]
639875c14f chore(deps): bump smol-toml from 1.1.4 to 1.2.0 (#10172)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.1.4 to 1.2.0.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/compare/v1.1.4...v1.2.0)

---
updated-dependencies:
- dependency-name: smol-toml
  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-05-17 19:00:48 +00:00
dependabot[bot]
9784a896ab chore(deps-dev): bump sinon from 17.0.2 to 18.0.0 (#10167)
Bumps [sinon](https://github.com/sinonjs/sinon) from 17.0.2 to 18.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/v17.0.2...v18.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>
2024-05-17 18:41:12 +00:00
dependabot[bot]
c5f0e447df chore(deps): bump glob from 10.3.14 to 10.3.15 (#10169)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.14 to 10.3.15.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.14...v10.3.15)

---
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>
2024-05-17 18:40:36 +00:00
dependabot[bot]
71eff33aed chore(deps-dev): bump rimraf from 5.0.5 to 5.0.7 (#10175)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.5 to 5.0.7.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.5...v5.0.7)

---
updated-dependencies:
- dependency-name: rimraf
  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-05-17 18:40:14 +00:00
dependabot[bot]
9cc6f03f24 chore(deps-dev): bump chai-as-promised from 7.1.1 to 7.1.2 (#10166)
Bumps [chai-as-promised](https://github.com/domenic/chai-as-promised) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/domenic/chai-as-promised/releases)
- [Commits](https://github.com/domenic/chai-as-promised/compare/v7.1.1...v7.1.2)

---
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-05-17 18:39:53 +00:00
dependabot[bot]
34fe48615b chore(deps-dev): bump @typescript-eslint/parser from 7.8.0 to 7.9.0 (#10174)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.8.0 to 7.9.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/v7.9.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-05-17 18:39:35 +00:00
dependabot[bot]
6c451864f8 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.4 to 48.2.5 (#10173)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.4 to 48.2.5.
- [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/v48.2.4...v48.2.5)

---
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-05-17 18:39:13 +00:00
dependabot[bot]
531a406445 chore(deps-dev): bump is-svg from 5.0.0 to 5.0.1 (#10170)
Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/sindresorhus/is-svg/releases)
- [Commits](https://github.com/sindresorhus/is-svg/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: is-svg
  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-05-17 18:38:50 +00:00
dependabot[bot]
89e0570437 chore(deps-dev): bump docusaurus-preset-openapi from 0.7.4 to 0.7.5 (#10153)
Bumps [docusaurus-preset-openapi](https://github.com/cloud-annotations/docusaurus-openapi/tree/HEAD/packages/docusaurus-preset-openapi) from 0.7.4 to 0.7.5.
- [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.5/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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-11 20:33:12 +00:00
dependabot[bot]
a7ca6fa9dc chore(deps-dev): bump @docusaurus/core from 3.2.1 to 3.3.2 (#10145)
* chore(deps-dev): bump @docusaurus/core from 3.2.1 to 3.3.2

Bumps [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) from 3.2.1 to 3.3.2.
- [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.3.2/packages/docusaurus)

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

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

* update @docusaurus/preset-classic

---------

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-05-11 20:25:21 +00:00
dependabot[bot]
fbbbefe1c5 chore(deps): bump semver from 7.6.0 to 7.6.2 (#10158)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.2.
- [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.0...v7.6.2)

---
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>
2024-05-11 20:18:18 +00:00
dependabot[bot]
ea877287f8 chore(deps): bump dayjs from 1.11.10 to 1.11.11 (#10146)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.10 to 1.11.11.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.10...v1.11.11)

---
updated-dependencies:
- dependency-name: dayjs
  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-05-11 20:12:38 +00:00
dependabot[bot]
0e93e33d02 chore(deps): bump simple-icons from 11.13.0 to 11.14.0 (#10150)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.13.0 to 11.14.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.13.0...11.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-05-11 20:06:56 +00:00
dependabot[bot]
7c0a16e68a chore(deps): bump actions/setup-node in /.github/actions/setup (#10140)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-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>
2024-05-11 20:04:12 +00:00
dependabot[bot]
585af0ee57 chore(deps): bump joi from 17.13.0 to 17.13.1 (#10148)
Bumps [joi](https://github.com/hapijs/joi) from 17.13.0 to 17.13.1.
- [Commits](https://github.com/hapijs/joi/compare/v17.13.0...v17.13.1)

---
updated-dependencies:
- dependency-name: joi
  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-05-11 20:03:47 +00:00
dependabot[bot]
9f10dc20b9 chore(deps): bump @sentry/node from 7.112.2 to 7.114.0 (#10157)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.112.2 to 7.114.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.114.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.112.2...7.114.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-05-11 20:02:58 +00:00
dependabot[bot]
5af72def82 chore(deps): bump glob from 10.3.12 to 10.3.14 (#10159)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.12 to 10.3.14.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.12...v10.3.14)

---
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>
2024-05-11 20:02:39 +00:00
dependabot[bot]
79b4c59888 chore(deps-dev): bump cypress from 13.8.1 to 13.9.0 (#10160)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.8.1 to 13.9.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.8.1...v13.9.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-05-11 20:00:34 +00:00
dependabot[bot]
8deb08731b chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.3 to 48.2.4 (#10156)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.3 to 48.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/v48.2.3...v48.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-05-11 19:50:36 +00:00
dependabot[bot]
cf660faade chore(deps): bump node-pg-migrate from 7.2.0 to 7.3.2 (#10152)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.2.0 to 7.3.2.
- [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.2.0...v7.3.2)

---
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-05-11 19:50:23 +00:00
dependabot[bot]
02d94044ae chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.1 to 4.6.2 (#10151)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/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-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-11 19:49:54 +00:00
dependabot[bot]
842d93f5bd chore(deps-dev): bump jsdoc from 4.0.2 to 4.0.3 (#10149)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/4.0.3/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/4.0.2...4.0.3)

---
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-05-11 19:49:39 +00:00
dependabot[bot]
5a98f99bde chore(deps-dev): bump @typescript-eslint/parser from 7.7.1 to 7.8.0 (#10144)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.7.1 to 7.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/v7.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-05-11 19:49:25 +00:00
dependabot[bot]
a2c32eda4d chore(deps-dev): bump eslint-plugin-cypress from 3.0.1 to 3.2.0 (#10143)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 3.0.1 to 3.2.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v3.0.1...v3.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>
2024-05-11 19:48:51 +00:00
dependabot[bot]
6b2543c0cd chore(deps-dev): bump danger from 12.1.0 to 12.2.0 (#10142)
Bumps [danger](https://github.com/danger/danger-js) from 12.1.0 to 12.2.0.
- [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.1.0...12.2.0)

---
updated-dependencies:
- dependency-name: danger
  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-05-11 19:48:34 +00:00
dependabot[bot]
870ed5f781 chore(deps-dev): bump sinon from 17.0.1 to 17.0.2 (#10141)
Bumps [sinon](https://github.com/sinonjs/sinon) from 17.0.1 to 17.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/v17.0.1...v17.0.2)

---
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>
2024-05-11 19:48:14 +00:00
chris48s
8a2ced024e instruct dependabot to monitor composite actions (#10139) 2024-05-07 19:23:18 +01:00
chris48s
96525e52d7 run tests on node 22 (#10127) 2024-05-06 20:22:59 +01:00
chris48s
1c9d3d5ced tweaks to libraries.io token pooling code (#10074)
* decrease batch size

* set nextReset in seconds

* update test assertions
2024-05-06 18:59:37 +00:00
chris48s
2857d9bf5c fix [pypi] status badge when package has no 'Development Status' classifier (#10107) 2024-05-06 18:58:12 +00:00
chris48s
f562fe7c03 clarify yml paths in server-secrets docs (#10106) 2024-05-06 18:57:46 +00:00
Pierre-Yves Bigourdan
5b8d6bdc2f Update region flag name in flyctl deploy command (#10134) 2024-05-05 19:43:07 +00:00
173 changed files with 3869 additions and 3052 deletions

View File

@@ -9,10 +9,8 @@
"**/test-helpers.js",
"**/*-test-helpers.js",
"**/*-fixtures.js",
"**/mocha-*.js",
"**/*.test-d.ts",
"dangerfile.js",
"gatsby-*.js",
"core/service-test-runner",
"core/got-test-client.js",
"services/**/*.tester.js",
@@ -23,6 +21,9 @@
"coverage",
"build",
".github",
"**/public/"
"**/public/",
"cypress",
"frontend",
"migrations"
]
}

View File

@@ -18,10 +18,6 @@ labels: 'keep-service-tests-green'
<!-- Indicate whether or not the live badge is working. -->
:link: **CircleCI link**
<!-- Provide a link to the failing test in CircleCI. -->
:lady_beetle: **Stack trace**
```

View File

@@ -19,7 +19,7 @@ runs:
using: 'composite'
steps:
- name: Install Node JS ${{ inputs.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}

View File

@@ -16,7 +16,20 @@ updates:
# https://caniuse.com/js-regexp-lookbehind
- dependency-name: 'decamelize'
- dependency-name: 'humanize-string'
groups:
# All official @docusaurus/* packages should have the exact same version as @docusaurus/core.
# From https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups:
# "You cannot apply a single grouping set of rules to both version updates and security
# updates [...] you must define two, separately named, grouping sets of rules"
# See https://github.com/badges/shields/issues/10242 for more information.
docusaurus-version-updates:
applies-to: version-updates
patterns:
- '@docusaurus/*'
docusaurus-security-updates:
applies-to: security-updates
patterns:
- '@docusaurus/*'
# badge-maker package dependencies
- package-ecosystem: npm
directory: '/badge-maker'
@@ -29,7 +42,15 @@ updates:
# GH actions
- package-ecosystem: 'github-actions'
directory: '/'
# all composite actions must be individually listed here
# https://github.com/dependabot/dependabot-core/issues/6704
directories:
- '/'
- '/.github/actions/core-tests'
- '/.github/actions/integration-tests'
- '/.github/actions/package-tests'
- '/.github/actions/service-tests'
- '/.github/actions/setup'
schedule:
interval: weekly
open-pull-requests-limit: 99

View File

@@ -23,7 +23,7 @@ if ! flyctl status --app "$app"; then
fi
# Deploy
flyctl deploy --app "$app" --region "$region"
flyctl deploy --app "$app" --regions "$region"
flyctl scale count 1 --app "$app" --yes
# Post a comment on the PR

View File

@@ -21,7 +21,7 @@ jobs:
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Build
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: false

View File

@@ -0,0 +1,72 @@
name: Coveralls Code Coverage
on:
schedule:
- cron: '10 7 * * *'
# At 07:10, daily
workflow_dispatch:
jobs:
coveralls-code-coverage:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ci_test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
# Even though we're currently deploying on Node 20, we run coverage test on Node 22
# to work around https://github.com/bcoe/v8-coverage/pull/2.
node-version: 22
env:
NPM_CONFIG_ENGINE_STRICT: 'false'
- name: Migrate DB
run: npm run migrate up
env:
POSTGRES_URL: postgresql://postgres:postgres@localhost:5432/ci_test
shell: bash
- name: Coverage for Main Tests
run: npm run coverage:test
env:
GH_TOKEN: '${{ secrets.GH_PAT }}'
POSTGRES_URL: postgresql://postgres:postgres@localhost:5432/ci_test
shell: bash
- name: Coverage for Service Tests
run: npm run coverage:test:services
continue-on-error: true
env:
RETRY_COUNT: 3
GH_TOKEN: '${{ secrets.GH_PAT }}'
LIBRARIESIO_TOKENS: '${{ secrets.SERVICETESTS_LIBRARIESIO_TOKENS }}'
OBS_USER: '${{ secrets.SERVICETESTS_OBS_USER }}'
OBS_PASS: '${{ secrets.SERVICETESTS_OBS_PASS }}'
PEPY_KEY: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
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
- name: Coveralls GitHub Action
uses: coverallsapp/github-action@v2

View File

@@ -46,7 +46,7 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push snapshot release to DockerHub
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: true
@@ -62,7 +62,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push snapshot release to GHCR
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: true

71
.github/workflows/daily-tests.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Run Daily Tests
on:
schedule:
- cron: '45 3 * * *'
# At 03:45, daily
workflow_dispatch:
jobs:
daily-tests:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ci_test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 20
- name: Core tests
if: always()
uses: ./.github/actions/core-tests
- name: Package tests
if: always()
uses: ./.github/actions/package-tests
- name: Integration Tests (with PAT)
if: always()
uses: ./.github/actions/integration-tests
with:
github-token: '${{ secrets.GH_PAT }}'
- name: Run Service tests
run: npm run test:services -- --reporter json --reporter-option 'output=reports/service-tests.json'
if: always()
env:
RETRY_COUNT: 3
GH_TOKEN: '${{ secrets.GH_PAT }}'
LIBRARIESIO_TOKENS: '${{ secrets.SERVICETESTS_LIBRARIESIO_TOKENS }}'
OBS_USER: '${{ secrets.SERVICETESTS_OBS_USER }}'
OBS_PASS: '${{ secrets.SERVICETESTS_OBS_PASS }}'
PEPY_KEY: '${{ secrets.SERVICETESTS_PEPY_KEY }}'
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
if: always()
run: |
echo '# Services' >> $GITHUB_STEP_SUMMARY
node scripts/mocha2md.js Report reports/service-tests.json >> $GITHUB_STEP_SUMMARY

View File

@@ -30,7 +30,7 @@ jobs:
- name: Build and push to DockerHub
id: docker_build_push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: true
@@ -49,7 +49,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push to GHCR
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: true

View File

@@ -1,4 +1,4 @@
name: Integration@node 21
name: Integration@node 22
on:
pull_request:
types: [opened, reopened, synchronize]
@@ -8,7 +8,7 @@ on:
- 'dependabot/**'
jobs:
test-integration-21:
test-integration-22:
runs-on: ubuntu-latest
env:
PAT_EXISTS: ${{ secrets.GH_PAT != '' }}
@@ -35,7 +35,7 @@ jobs:
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 21
node-version: 22
env:
NPM_CONFIG_ENGINE_STRICT: 'false'

View File

@@ -1,4 +1,4 @@
name: Main@node 21
name: Main@node 22
on:
pull_request:
types: [opened, reopened, synchronize]
@@ -8,7 +8,7 @@ on:
- 'dependabot/**'
jobs:
test-main-21:
test-main-22:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -17,7 +17,7 @@ jobs:
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 21
node-version: 22
env:
NPM_CONFIG_ENGINE_STRICT: 'false'

View File

@@ -19,6 +19,7 @@ jobs:
- node: '16'
- node: '18'
- node: '20'
- node: '22'
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -22,6 +22,9 @@ jobs:
- node: '20'
npm: '^10'
engine-strict: 'true'
- node: '22'
npm: '^10'
engine-strict: 'false'
steps:
- name: Checkout
uses: actions/checkout@v4

View File

@@ -1,4 +1,4 @@
name: Services@node 21
name: Services@node 22
on:
pull_request:
types: [opened, edited, reopened, synchronize]
@@ -7,7 +7,7 @@ on:
- 'gh-readonly-queue/**'
jobs:
test-services-21:
test-services-22:
runs-on: ubuntu-latest
steps:
@@ -17,7 +17,7 @@ jobs:
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 21
node-version: 22
env:
NPM_CONFIG_ENGINE_STRICT: 'false'

3
.gitignore vendored
View File

@@ -50,9 +50,6 @@ lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

View File

@@ -4,6 +4,53 @@ Note: this changelog is for the shields.io server. The changelog for the badge-m
---
## server-2024-08-01
- send Cross-Origin-Resource-Policy header on all responses [#10420](https://github.com/badges/shields/issues/10420)
- migrate [MozillaObservatory] to new API [#10402](https://github.com/badges/shields/issues/10402)
- use metric() for [discord] and [revolt] badges [#10406](https://github.com/badges/shields/issues/10406)
- Cache text only static badges for longer [#10403](https://github.com/badges/shields/issues/10403)
- Fix [FreeCodeCampPoints] not found handling [#10377](https://github.com/badges/shields/issues/10377)
- Fix [Gitea] not found message [#10373](https://github.com/badges/shields/issues/10373)
- Deprecate [Bountysource] service [#10371](https://github.com/badges/shields/issues/10371)
- Sunset Shields custom logos [#10347](https://github.com/badges/shields/issues/10347)
- Use ellipsis when many versions returned for [ModrinthGameVersions] [#10350](https://github.com/badges/shields/issues/10350)
- deprecate [tokei] service [#9581](https://github.com/badges/shields/issues/9581)
- Add CF-Ray header value to Sentry errors if available [#10339](https://github.com/badges/shields/issues/10339)
- Use XML for Chocolatey, affects [Chocolatey Resharper PowershellGallery] [#10344](https://github.com/badges/shields/issues/10344)
- include github contributors badge in docs site [#10337](https://github.com/badges/shields/issues/10337)
- Dependency updates
## server-2024-07-01
- Add [AUR] Popularity Badge [#10304](https://github.com/badges/shields/issues/10304)
- fix npm badges when `maintainers` not in response [#10286](https://github.com/badges/shields/issues/10286)
- Expose `logoBase64` and `links` in badge-maker NPM package [#10283](https://github.com/badges/shields/issues/10283)
- Remove `logoPosition` [#10284](https://github.com/badges/shields/issues/10284)
- [MBIN] Add subscribers badge [#10270](https://github.com/badges/shields/issues/10270)
- Add [Docker] support for loong64 arch [#10241](https://github.com/badges/shields/issues/10241)
- Add puppetforge quality score badges [#10201](https://github.com/badges/shields/issues/10201)
- Dependency updates
## server-2024-06-01
- Remove namedLogo from defaultBadgeData of non-social badges [#10195](https://github.com/badges/shields/issues/10195)
- Update number of badges served each month [#10197](https://github.com/badges/shields/issues/10197)
- Delete old deprecated services [#10196](https://github.com/badges/shields/issues/10196)
- handle [BitbucketPipelines] responses with missing result key [#10163](https://github.com/badges/shields/issues/10163)
- Update description of GitHub commit status badge [#10198](https://github.com/badges/shields/issues/10198)
- chore: fix spelling of GitHub in badge descriptions [#10199](https://github.com/badges/shields/issues/10199)
- Add [GithubCheckRuns] service [#7759](https://github.com/badges/shields/issues/7759)
- feat: add Revolt badge [#10093](https://github.com/badges/shields/issues/10093)
- ensure color is string before calling toLowerCase() [#10129](https://github.com/badges/shields/issues/10129)
- instruct dependabot to monitor composite actions [#10139](https://github.com/badges/shields/issues/10139)
- run tests on node 22 [#10127](https://github.com/badges/shields/issues/10127)
- tweaks to libraries.io token pooling code [#10074](https://github.com/badges/shields/issues/10074)
- fix [pypi] status badge when package has no 'Development Status' classifier [#10107](https://github.com/badges/shields/issues/10107)
- clarify yml paths in server-secrets docs [#10106](https://github.com/badges/shields/issues/10106)
- Update region flag name in flyctl deploy command [#10134](https://github.com/badges/shields/issues/10134)
- Dependency updates
## server-2024-05-01
- [Hexpm] Fix badges for pre-release only versions [#10112](https://github.com/badges/shields/issues/10112)

View File

@@ -77,6 +77,15 @@ don't see it, feel free to [open a new issue][open an issue].
[open an issue]: https://github.com/badges/shields/issues/new/choose
### Requesting new logos
We consume logos via [the SimpleIcons project][simple-icons github], and
encourage you to contribute logos there. Please review their
[guidance][simple-icons contributing] before doing so.
[simple-icons github]: https://github.com/simple-icons/simple-icons
[simple-icons contributing]: https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md
### Spreading the word
Feel free to star the repository. This will help increase the visibility of the project, therefore attracting more users and contributors to Shields!
@@ -154,10 +163,6 @@ To run the integration tests:
There is a [High-level code walkthrough](doc/code-walkthrough.md) describing the layout of the project.
### Logos
We have [documentation for logo usage](doc/logos.md) which includes [contribution guidance](doc/logos.md#contributing-logos)
## Pull Requests
All code changes are incorporated via pull requests, and pull requests are always squashed into a single commit on merging. Therefore there's no requirement to squash commits within your PR, but feel free to squash or restructure the commits on your PR branch if you think it will be helpful. PRs with well structured commits are always easier to review!

View File

@@ -3,25 +3,23 @@
height="130">
</p>
<p align="center">
<a href="https://github.com/badges/shields/graphs/contributors" alt="Contributors">
<img src="https://img.shields.io/github/contributors/badges/shields" /></a>
<a href="#backers" alt="Backers on Open Collective">
<a href="https://shields.io/community#backers" alt="Backers on Open Collective">
<img src="https://img.shields.io/opencollective/backers/shields" /></a>
<a href="#sponsors" alt="Sponsors on Open Collective">
<a href="https://shields.io/community#sponsors" alt="Sponsors on Open Collective">
<img src="https://img.shields.io/opencollective/sponsors/shields" /></a>
<a href="https://github.com/badges/shields/pulse" alt="Activity">
<img src="https://img.shields.io/github/commit-activity/m/badges/shields" /></a>
<a href="https://circleci.com/gh/badges/shields/tree/master">
<img src="https://img.shields.io/circleci/project/github/badges/shields/master" alt="build status"></a>
<a href="https://circleci.com/gh/badges/daily-tests">
<img src="https://img.shields.io/circleci/project/github/badges/daily-tests?label=service%20tests"
alt="service-test status"></a>
<a href="https://github.com/badges/shields/discussions" alt="Discussions">
<img src="https://img.shields.io/github/discussions/badges/shields" /></a>
<a href="https://github.com/badges/shields/actions/workflows/daily-tests.yml">
<img src="https://img.shields.io/github/actions/workflow/status/badges/shields/daily-tests.yml?label=daily%20tests"
alt="Daily Tests Status"></a>
<a href="https://coveralls.io/github/badges/shields">
<img src="https://img.shields.io/coveralls/github/badges/shields"
alt="coverage"></a>
alt="Code Coverage"></a>
<a href="https://discord.gg/HjJCwm5">
<img src="https://img.shields.io/discord/308323056592486420?logo=discord"
alt="chat on Discord"></a>
<img src="https://img.shields.io/discord/308323056592486420?logo=discord&logoColor=white"
alt="Chat on Discord"></a>
</p>
This is home to [Shields.io][shields.io], a service for concise, consistent,
@@ -29,7 +27,7 @@ and legible badges in SVG and raster format, which can easily be included in
GitHub readmes or any other web page. The service supports dozens of
continuous integration services, package registries, distributions, app
stores, social networks, code coverage services, and code analysis services.
Every month it serves over 870 million images and is used by some of the
Every month it serves over 1.6 billion images and is used by some of the
world's most popular open-source projects, [VS Code][vscode], [Vue.js][vue]
and [Bootstrap][bootstrap] to name a few.
@@ -99,7 +97,7 @@ If you intend on reporting or contributing a fix related to security vulnerabili
## Development
1. Install Node 20 or later. You can use the [package manager][] of your choice.
Tests need to pass in Node 20 and 21.
Tests need to pass in Node 20 and 22.
2. Clone this repository.
3. Run `npm ci` to install the dependencies.
4. Run `npm start` to start the badge server and the frontend dev server.
@@ -133,7 +131,7 @@ snapshots, and `SNAPSHOT_UPDATE=1 npm run test:package` to update them.
The server can be configured to use [Sentry][] ([configuration][sentry configuration]) and [Prometheus][] ([configuration][prometheus configuration]).
Daily tests, including a full run of the service tests and overall code coverage, are run via [badges/daily-tests][daily-tests].
Our [full test suite][full test suite] as well as [code coverage][code coverage] are run on a daily basis.
[package manager]: https://nodejs.org/en/download/package-manager/
[gitpod]: https://www.gitpod.io/
@@ -142,10 +140,11 @@ Daily tests, including a full run of the service tests and overall code coverage
[prometheus configuration]: https://github.com/badges/shields/blob/master/doc/self-hosting.md#prometheus
[sentry]: https://sentry.io/
[sentry configuration]: https://github.com/badges/shields/blob/master/doc/self-hosting.md#sentry
[daily-tests]: https://github.com/badges/daily-tests
[nodemon]: https://nodemon.io/
[nodemon debug]: https://github.com/Microsoft/vscode-recipes/tree/master/nodemon
[vs code]: https://code.visualstudio.com/
[full test suite]: https://github.com/badges/shields/actions/workflows/daily-tests.yml
[code coverage]: https://coveralls.io/github/badges/shields
## Hosting your own server
@@ -224,9 +223,6 @@ Alumni:
All assets and code are under the [CC0 LICENSE](LICENSE) and in the public
domain unless specified otherwise.
The assets in `logo/` are trademarks of their respective companies and are
under their terms and license.
## Community
Thanks to the people and companies who donate money, services or time to keep the project running. [https://shields.io/community](https://shields.io/community)

View File

@@ -1,9 +1,15 @@
# Changelog
## 4.0.0 [WIP]
## 4.0.0
### Breaking Changes
- Drop compatibility with Node < 16
### Features
- Add `links` and `logoBase64` params
## 3.3.1
- Improve font measuring in for-the-badge and social styles

View File

@@ -67,6 +67,8 @@ 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
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.

View File

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

View File

@@ -49,7 +49,7 @@ function normalizeColor(color) {
} else if (color in aliases) {
return aliases[color]
} else if (isHexColor(color)) {
return `#${color.toLowerCase()}`
return `#${color.toString().toLowerCase()}`
} else if (isCSSColor(color)) {
return color.toLowerCase()
} else {

View File

@@ -27,6 +27,8 @@ test(normalizeColor, () => {
given('blue').expect('blue')
given('4c1').expect('#4c1')
given('f00f00').expect('#f00f00')
given('111111').expect('#111111')
given(111111).expect('#111111')
given('ABC123').expect('#abc123')
given('#ccc').expect('#ccc')
given('#fffe').expect('#fffe')

View File

@@ -16,13 +16,30 @@ function _validate(format) {
throw new ValidationError('Field `message` is required')
}
const stringFields = ['labelColor', 'color', 'message', 'label']
const stringFields = ['labelColor', 'color', 'message', 'label', 'logoBase64']
stringFields.forEach(function (field) {
if (field in format && typeof format[field] !== 'string') {
throw new ValidationError(`Field \`${field}\` must be of type string`)
}
})
if ('links' in format) {
if (!Array.isArray(format.links)) {
throw new ValidationError('Field `links` must be an array of strings')
} else {
if (format.links.length > 2) {
throw new ValidationError(
'Field `links` must not have more than 2 elements',
)
}
format.links.forEach(function (field) {
if (typeof field !== 'string') {
throw new ValidationError('Field `links` must be an array of strings')
}
})
}
}
const styleValues = [
'plastic',
'flat',
@@ -38,11 +55,21 @@ function _validate(format) {
}
function _clean(format) {
const expectedKeys = ['label', 'message', 'labelColor', 'color', 'style']
const expectedKeys = [
'label',
'message',
'labelColor',
'color',
'style',
'logoBase64',
'links',
]
const cleaned = {}
Object.keys(format).forEach(key => {
if (format[key] != null && expectedKeys.includes(key)) {
if (format[key] != null && key === 'logoBase64') {
cleaned.logo = format[key]
} else if (format[key] != null && expectedKeys.includes(key)) {
cleaned[key] = format[key]
} else {
throw new ValidationError(
@@ -65,7 +92,9 @@ function _clean(format) {
* @param {string} format.message (Required) Badge message (e.g: 'passing')
* @param {string} format.labelColor (Optional) Label color
* @param {string} format.color (Optional) Message color
* @param {string} format.style (Optional) Visual style e.g: 'flat'
* @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'])
* @returns {string} Badge in SVG format
* @see https://github.com/badges/shields/tree/master/badge-maker/README.md
*/

View File

@@ -25,6 +25,21 @@ describe('makeBadge function', function () {
style: 'flat',
}),
).to.satisfy(isSvg)
expect(
makeBadge({
label: 'build',
message: 'passed',
color: 'green',
style: 'flat',
labelColor: 'blue',
logoBase64: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
links: ['https://example.com', 'https://example.com'],
}),
)
.to.satisfy(isSvg)
// explicitly make an assertion about logoBase64
// this param is not a straight passthrough
.and.to.include('data:image/svg+xml;base64,PHN2ZyB4bWxu')
})
it('should throw a ValidationError with invalid inputs', function () {
@@ -46,6 +61,21 @@ describe('makeBadge function', function () {
expect(() =>
makeBadge({ label: 'build', message: 'passed', labelColor: 7 }),
).to.throw(ValidationError, 'Field `labelColor` must be of type string')
expect(() =>
makeBadge({ label: 'build', message: 'passed', logoBase64: 7 }),
).to.throw(ValidationError, 'Field `logoBase64` must be of type string')
expect(() =>
makeBadge({ label: 'build', message: 'passed', links: 'test' }),
).to.throw(ValidationError, 'Field `links` must be an array of strings')
expect(() =>
makeBadge({ label: 'build', message: 'passed', links: [1] }),
).to.throw(ValidationError, 'Field `links` must be an array of strings')
expect(() =>
makeBadge({ label: 'build', message: 'passed', links: ['1', '2', '3'] }),
).to.throw(
ValidationError,
'Field `links` must not have more than 2 elements',
)
expect(() =>
makeBadge({ label: 'build', message: 'passed', format: 'png' }),
).to.throw(ValidationError, "Unexpected field 'format'")

View File

@@ -17,7 +17,6 @@ module.exports = function makeBadge({
color,
labelColor,
logo,
logoPosition,
logoSize,
logoWidth,
links = ['', ''],
@@ -55,7 +54,6 @@ module.exports = function makeBadge({
message,
links,
logo,
logoPosition,
logoWidth,
logoSize,
logoPadding: logo && label.length ? 3 : 0,

View File

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

View File

@@ -47,7 +47,11 @@ export default class BaseStaticService extends BaseService {
const format = (match.slice(-1)[0] || '.svg').replace(/^\./, '')
badgeData.format = format
setCacheHeadersForStaticResource(ask.res)
let maxAge = 24 * 3600 // 1 day
if (!queryParams.logo && !badgeData.isError) {
maxAge = 5 * 24 * 3600 // 5 days
}
setCacheHeadersForStaticResource(ask.res, maxAge)
const svg = makeBadge(badgeData)
makeSend(format, ask.res, end)(svg)

View File

@@ -66,7 +66,6 @@ const serviceDataSchema = Joi.object({
logoSvg: Joi.string(),
logoColor: optionalStringWhenNamedLogoPresent,
logoWidth: optionalNumberWhenAnyLogoPresent,
logoPosition: optionalNumberWhenAnyLogoPresent,
cacheSeconds: Joi.number().integer().min(0),
style: Joi.string(),
})

View File

@@ -378,7 +378,6 @@ describe('BaseService', function () {
logo: undefined,
logoWidth: undefined,
logoSize: undefined,
logoPosition: undefined,
links: [],
labelColor: undefined,
cacheLengthSeconds: undefined,

View File

@@ -90,8 +90,11 @@ function setCacheHeaders({
setHeadersForCacheLength(res, cacheLengthSeconds)
}
const staticCacheControlHeader = `max-age=${24 * 3600}, s-maxage=${24 * 3600}` // 1 day.
function setCacheHeadersForStaticResource(res) {
function setCacheHeadersForStaticResource(
res,
maxAge = 24 * 3600, // 1 day
) {
const staticCacheControlHeader = `max-age=${maxAge}, s-maxage=${maxAge}`
res.setHeader('Cache-Control', staticCacheControlHeader)
res.setHeader('Last-Modified', serverStartTimeGMTString)
}

View File

@@ -6,6 +6,8 @@ const defaultErrorMessages = {
429: 'rate limited by upstream service',
}
const headersToInclude = ['cf-ray']
export default function checkErrorResponse(httpErrors = {}, logErrors = [429]) {
return async function ({ buffer, res }) {
let error
@@ -28,7 +30,17 @@ export default function checkErrorResponse(httpErrors = {}, logErrors = [429]) {
}
if (logErrors.includes(res.statusCode)) {
log.error(new Error(`${res.statusCode} calling ${res.requestUrl.origin}`))
const tags = {}
for (const headerKey of headersToInclude) {
const headerValue = res.headers[headerKey]
if (headerValue) {
tags[`header-${headerKey}`] = headerValue
}
}
log.error(
new Error(`${res.statusCode} calling ${res.requestUrl.origin}`),
tags,
)
}
if (error) {

View File

@@ -47,7 +47,11 @@ describe('async error handler', function () {
context('when status is 429', function () {
const buffer = Buffer.from('some stuff')
const res = { statusCode: 429, requestUrl: new URL('https://example.com/') }
const res = {
statusCode: 429,
headers: { 'some-key': 'some-value' },
requestUrl: new URL('https://example.com/'),
}
it('throws InvalidResponse', async function () {
try {

View File

@@ -17,15 +17,12 @@ import toArray from './to-array.js'
//
// Logos are resolved in this manner:
//
// 1. When `?logo=` contains a named logo or the name of one of the Shields
// logos or contains 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. If the color
// is specified for a multicolor Shield logo, the named logo will be used and
// colored. The appearance of the logo can be customized using `logoWidth`,
// and in the case of the popout badge, `logoPosition`. When `?logo=` is
// specified, any logo-related parameters specified dynamically by the
// service, or by default in the service, are ignored.
// 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`,
// 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
// used only by the Endpoint badge. The `logoColor` can be overridden by the
// query string.
@@ -56,7 +53,6 @@ export default function coalesceBadge(
} = overrides
let {
logoWidth: overrideLogoWidth,
logoPosition: overrideLogoPosition,
logoSize: overrideLogoSize,
color: overrideColor,
labelColor: overrideLabelColor,
@@ -78,7 +74,6 @@ export default function coalesceBadge(
overrideLabelColor = `${overrideLabelColor}`
}
overrideLogoWidth = +overrideLogoWidth || undefined
overrideLogoPosition = +overrideLogoPosition || undefined
const {
isError,
@@ -91,7 +86,6 @@ export default function coalesceBadge(
logoColor: serviceLogoColor,
logoSize: serviceLogoSize,
logoWidth: serviceLogoWidth,
logoPosition: serviceLogoPosition,
link: serviceLink,
cacheSeconds: serviceCacheSeconds,
style: serviceStyle,
@@ -122,12 +116,7 @@ export default function coalesceBadge(
style = 'flat'
}
let namedLogo,
namedLogoColor,
logoSize,
logoWidth,
logoPosition,
logoSvgBase64
let namedLogo, namedLogoColor, logoSize, logoWidth, logoSvgBase64
if (overrideLogo) {
// `?logo=` could be a named logo or encoded svg.
const overrideLogoSvgBase64 = decodeDataUrlFromQueryParam(overrideLogo)
@@ -143,7 +132,6 @@ export default function coalesceBadge(
// original width or position.
logoSize = overrideLogoSize
logoWidth = overrideLogoWidth
logoPosition = overrideLogoPosition
} else {
if (serviceLogoSvg) {
logoSvgBase64 = svg2base64(serviceLogoSvg)
@@ -156,7 +144,6 @@ export default function coalesceBadge(
}
logoSize = coalesce(overrideLogoSize, serviceLogoSize)
logoWidth = coalesce(overrideLogoWidth, serviceLogoWidth)
logoPosition = coalesce(overrideLogoPosition, serviceLogoPosition)
}
if (namedLogo) {
const iconSize = getIconSize(String(namedLogo).toLowerCase())
@@ -195,7 +182,6 @@ export default function coalesceBadge(
namedLogo,
logo: logoSvgBase64,
logoWidth,
logoPosition,
logoSize,
links: toArray(overrideLink || serviceLink),
cacheLengthSeconds: coalesce(serviceCacheSeconds, defaultCacheSeconds),

View File

@@ -1,5 +1,5 @@
import { expect } from 'chai'
import { getShieldsIcon, getSimpleIcon } from '../../lib/logos.js'
import { getSimpleIcon } from '../../lib/logos.js'
import coalesceBadge from './coalesce-badge.js'
describe('coalesceBadge', function () {
@@ -138,7 +138,7 @@ describe('coalesceBadge', function () {
})
it('when a social badge, uses the default named logo', function () {
// .not.be.empty for confidence that nothing has changed with `getShieldsIcon()`.
// .not.be.empty for confidence that nothing has changed with `getSimpleIcon()`.
expect(
coalesceBadge({ style: 'social' }, {}, { namedLogo: 'appveyor' }).logo,
).to.equal(getSimpleIcon({ name: 'appveyor' })).and.not.be.empty
@@ -149,93 +149,65 @@ describe('coalesceBadge', function () {
namedLogo: 'npm',
})
expect(coalesceBadge({}, { namedLogo: 'npm' }, {}).logo).to.equal(
getShieldsIcon({ name: 'npm' }),
getSimpleIcon({ name: 'npm' }),
).and.not.to.be.empty
})
it('applies the named monochrome logo with color', function () {
it('applies the named logo with color', function () {
expect(
coalesceBadge({}, { namedLogo: 'dependabot', logoColor: 'blue' }, {})
.logo,
).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not
).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not
.to.be.empty
})
it('applies the named multicolored logo with color', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoColor: 'blue' }, {}).logo,
).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.to.be
.empty
})
it('overrides the logo', function () {
expect(
coalesceBadge({ logo: 'npm' }, { namedLogo: 'appveyor' }, {}).logo,
).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty
).to.equal(getSimpleIcon({ name: 'npm' })).and.not.be.empty
})
it('overrides the monochrome logo with a color', function () {
it('overrides the logo with a color', function () {
expect(
coalesceBadge(
{ logo: 'dependabot', logoColor: 'blue' },
{ namedLogo: 'appveyor' },
{},
).logo,
).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not
).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not
.be.empty
})
it('overrides multicolored logo with a color', function () {
expect(
coalesceBadge(
{ logo: 'npm', logoColor: 'blue' },
{ namedLogo: 'appveyor' },
{},
).logo,
).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.be.empty
})
it("when the logo is overridden, it ignores the service's logo color, position, and width", function () {
it("when the logo is overridden, it ignores the service's logo color and width", function () {
expect(
coalesceBadge(
{ logo: 'npm' },
{
namedLogo: 'appveyor',
logoColor: 'red',
logoPosition: -3,
logoWidth: 100,
},
{},
).logo,
).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty
).to.equal(getSimpleIcon({ name: 'npm' })).and.not.be.empty
})
it("overrides the service monochome logo's color", function () {
it("overrides the service logo's color", function () {
expect(
coalesceBadge(
{ logoColor: 'blue' },
{ namedLogo: 'dependabot', logoColor: 'red' },
{},
).logo,
).to.equal(getShieldsIcon({ name: 'dependabot', color: 'blue' })).and.not
).to.equal(getSimpleIcon({ name: 'dependabot', color: 'blue' })).and.not
.be.empty
})
it("overrides the service multicolored logo's color", function () {
expect(
coalesceBadge(
{ logoColor: 'blue' },
{ namedLogo: 'npm', logoColor: 'red' },
{},
).logo,
).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.be.empty
})
// https://github.com/badges/shields/issues/2998
it('overrides logoSvg', function () {
const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxu'
expect(coalesceBadge({ logo: 'npm' }, { logoSvg }, {}).logo).to.equal(
getShieldsIcon({ name: 'npm' }),
getSimpleIcon({ name: 'npm' }),
).and.not.be.empty
})
})
@@ -288,20 +260,6 @@ describe('coalesceBadge', function () {
})
})
describe('Logo position', function () {
it('overrides the logoPosition', function () {
expect(coalesceBadge({ logoPosition: -10 }, {}, {})).to.include({
logoPosition: -10,
})
})
it('applies the logo position', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoPosition: -10 }, {}),
).to.include({ logoPosition: -10 })
})
})
describe('Links', function () {
it('overrides the links', function () {
expect(

View File

@@ -11,7 +11,6 @@ const globalQueryParams = new Set([
'link',
'logo',
'logoColor',
'logoPosition',
'logoSize',
'logoWidth',
'link',

View File

@@ -17,7 +17,6 @@ function sendSVG(res, askres, end) {
function sendJSON(res, askres, end) {
askres.setHeader('Content-Type', 'application/json')
askres.setHeader('Access-Control-Allow-Origin', '*')
askres.setHeader('Content-Length', Buffer.byteLength(res, 'utf8'))
end(null, { template: streamFromString(res) })
}

View File

@@ -84,7 +84,7 @@ function services2openapi(services, sort) {
for (const [key, value] of Object.entries(
addGlobalProperties(service.openApi),
)) {
if (key in paths && key !== '/github/{variant}/{user}/{repo}') {
if (key in paths) {
throw new Error(`Conflicting route: ${key}`)
}
paths[key] = value
@@ -124,7 +124,7 @@ function category2openapi({ category, services, sort = false }) {
in: 'query',
required: false,
description:
'One of the named logos (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis) or simple-icons. All simple-icons are referenced using icon slugs. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.',
'Icon slug from simple-icons. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.',
schema: {
type: 'string',
},
@@ -135,7 +135,7 @@ function category2openapi({ category, services, sort = false }) {
in: 'query',
required: false,
description:
'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for named logos and Shields logos but not for custom logos. For multicolor Shields logos, the corresponding named logo will be used and colored.',
'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for simple-icons logos but not for custom logos.',
schema: {
type: 'string',
},
@@ -146,7 +146,7 @@ function category2openapi({ category, services, sort = false }) {
in: 'query',
required: false,
description:
'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos only.',
'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos but not for custom logos.',
schema: {
type: 'string',
},

View File

@@ -80,7 +80,7 @@ const expected = {
in: 'query',
required: false,
description:
'One of the named logos (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis) or simple-icons. All simple-icons are referenced using icon slugs. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.',
'Icon slug from simple-icons. You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. <a href="/docs/logos">Further info</a>.',
schema: { type: 'string' },
example: 'appveyor',
},
@@ -89,7 +89,7 @@ const expected = {
in: 'query',
required: false,
description:
'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for named logos and Shields logos but not for custom logos. For multicolor Shields logos, the corresponding named logo will be used and colored.',
'The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for simple-icons logos but not for custom logos.',
schema: { type: 'string' },
example: 'violet',
},
@@ -98,7 +98,7 @@ const expected = {
in: 'query',
required: false,
description:
'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos only.',
'Make icons adaptively resize by setting `auto`. Useful for some wider logos like `amd` and `amg`. Supported for simple-icons logos but not for custom logos.',
schema: {
type: 'string',
},

View File

@@ -111,8 +111,12 @@ export default function redirector(attrs) {
ask.res.statusCode = 301
ask.res.setHeader('Location', redirectUrl)
// To avoid caching mistakes for a long time, and to make this simpler
// to reason about, use the same cache semantics as the static badge.
/* To avoid caching mistakes forever
(in the absence of cache control directives that specify otherwise,
301 redirects are cached without any expiry date)
and to make this simpler to reason about,
use the same cache semantics as the static badge.
*/
setCacheHeadersForStaticResource(ask.res)
ask.res.end()

View File

@@ -1,4 +1,4 @@
import Sentry from '@sentry/node'
import * as Sentry from '@sentry/node'
const listeners = []
@@ -28,10 +28,12 @@ const log = (...msg) => {
console.log(d, ...msg)
}
const error = err => {
const error = (err, tags) => {
const d = date()
listeners.forEach(f => f(d, err))
Sentry.captureException(err)
Sentry.captureException(err, {
tags,
})
console.error(d, err)
}

View File

@@ -541,9 +541,12 @@ class Server {
}
}
// https://github.com/badges/shields/issues/3273
camp.handle((req, res, next) => {
// https://github.com/badges/shields/issues/3273
res.setHeader('Access-Control-Allow-Origin', '*')
// https://github.com/badges/shields/issues/10419
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin')
next()
})

View File

@@ -59,8 +59,17 @@ describe('The server', function () {
expect(headers['cache-control']).to.equal('max-age=300, s-maxage=300')
})
it('should serve badges with custom maxAge', async function () {
it('should serve static badges without logo with maxAge=432000', async function () {
const { headers } = await got(`${baseUrl}badge/foo-bar-blue`)
expect(headers['cache-control']).to.equal(
'max-age=432000, s-maxage=432000',
)
})
it('should serve badges with with logo with maxAge=86400', async function () {
const { headers } = await got(
`${baseUrl}badge/foo-bar-blue?logo=javascript`,
)
expect(headers['cache-control']).to.equal('max-age=86400, s-maxage=86400')
})
@@ -70,6 +79,7 @@ describe('The server', function () {
)
expect(statusCode).to.equal(200)
expect(headers['access-control-allow-origin']).to.equal('*')
expect(headers['cross-origin-resource-policy']).to.equal('cross-origin')
})
it('should redirect colorscheme PNG badges as configured', async function () {
@@ -124,6 +134,7 @@ describe('The server', function () {
expect(statusCode).to.equal(200)
expect(headers['content-type']).to.equal('application/json')
expect(headers['access-control-allow-origin']).to.equal('*')
expect(headers['cross-origin-resource-policy']).to.equal('cross-origin')
expect(headers['content-length']).to.equal('92')
expect(() => JSON.parse(body)).not.to.throw()
})

View File

@@ -22,7 +22,6 @@ const server = fileMatch('core/server/**.js', '!*.spec.js')
const serverTests = fileMatch('core/server/**.spec.js')
const legacyHelpers = fileMatch('lib/**/*.js', '!*.spec.js')
const legacyHelperTests = fileMatch('lib/**/*.spec.js')
const logos = fileMatch('logo/*.svg')
const packageJson = fileMatch('package.json')
const packageLock = fileMatch('package-lock.json')
const secretsDocs = fileMatch('doc/server-secrets.md')
@@ -78,17 +77,6 @@ if (legacyHelpers.created) {
)
}
if (logos.created) {
message(
[
':art: Thanks for submitting a logo. <br>',
'Please ensure your contribution follows our ',
'[guidance](https://github.com/badges/shields/blob/master/doc/logos.md#contributing-logos) ',
'for logo submissions.',
].join(''),
)
}
if (capitals.created || underscores.created) {
fail(
[

View File

@@ -71,7 +71,7 @@ Each service has a directory for its files:
`/services/example/example.service.js`.
If you add a badge for a new API, create a new directory.
Example: [wercker](https://github.com/badges/shields/tree/master/services/wercker)
Example: [Docs.rs](https://github.com/badges/shields/tree/master/services/docsrs)
- For service families with multiple badges we usually store the code for each
badge in its own file like this:

View File

@@ -90,6 +90,7 @@ Past that point, all related code will be deleted, and a not found error will be
Here is a listing of all deleted badges that were once part of the Shields.io service:
- APM
- Beerpay
- Bintray
- bitHound
@@ -99,6 +100,7 @@ Here is a listing of all deleted badges that were once part of the Shields.io se
- Codetally
- continuousphp
- Coverity
- Criterion
- David
- dependabot
- Dockbit
@@ -109,16 +111,20 @@ Here is a listing of all deleted badges that were once part of the Shields.io se
- Issue Stats
- JitPack Downloads
- Leanpub
- LGTM
- Libscore
- Magnum CI
- MicroBadger
- NSP
- pkgreview
- PHP Eye
- requires.io
- Shippable
- Snap CI
- Travis.org
- VersionEye
- Waffle
- Wercker
## Additional Information

View File

@@ -1,42 +0,0 @@
# Logos
For documentation on using logos, see https://shields.io/docs/logos
## Contributing Logos
Our preferred way to consume icons is via the SimpleIcons logo. As a first port of call, we encourage you to contribute logos to [the SimpleIcons project][simple-icons github]. Please review their [guidance](https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md) before contributing.
In some cases we may also accept logo submissions directly. In general, we do this only when:
- We have a corresponding badge on the homepage, (e.g. the Eclipse logo because we support service badges for the Eclipse Marketplace). We may also approve logos for other tools widely used by developers.
- The logo provided in SimpleIcons is unclear when displayed at small size on a badge.
- There is substantial benefit in using a multi-colored icon over a monochrome icon.
- The logo doesn't meet the requirements to be included in the SimpleIcons set.
If you are submitting a pull request for a custom logo, please:
- Minimize SVG files through [SVGO][]. This can be done in one of two ways
- The [SVGO Command Line Tool][svgo]
- Install SVGO
- With npm: `npm install -g svgo`
- With Homebrew: `brew install svgo`
- Run the following command `svgo --precision=3 icon.svg -o icon.min.svg`
- Check if there is a loss of quality in the output, if so increase the precision.
- The [SVGOMG Online Tool][svgomg]
- Click "Open SVG" and select an SVG file.
- Set the precision to about 3, depending on if there is a loss of quality.
- Leave the remaining settings untouched (or reset them with the button at the bottom of the settings).
- Click the download button.
- Set a viewbox and ensure the logo is scaled to fit the viewbox, while preserving the logo's original proportions. This means the icon should be touching at least two sides of the viewbox.
- Ensure the logo is vertically and horizontally centered.
- Ensure the logo is minified to a single line with no formatting.
- Ensure the SVG does not contain extraneous attributes.
- Ensure your submission conforms to any relevant brand or logo guidelines.
### Problems
We try to ensure our logos are compliant with brand guidelines. If one of our custom logos does not conform to the necessary brand guidelines, please open an issue on the [shields.io tracker](https://github.com/badges/shields/issues) and we'll work with you to resolve it. If a logo from the simple-icons set does not conform to the relevant brand guidelines, please open an issue on the [simple-icons tracker](https://github.com/simple-icons/simple-icons/issues) first.
[simple-icons github]: https://github.com/simple-icons/simple-icons
[svgo]: https://github.com/svg/svgo
[svgomg]: https://jakearchibald.github.io/svgomg/

View File

@@ -114,7 +114,7 @@ generated API key.
Using a token for Discord is optional but will allow higher API rates.
- `DISCORD_BOT_TOKEN` (yml: `discord_bot_token`)
- `DISCORD_BOT_TOKEN` (yml: `private.discord_bot_token`)
Register an application in the [Discord developer console](https://discord.com/developers).
To obtain a token, simply create a bot for your application.
@@ -269,7 +269,7 @@ of a package.
### OpenCollective
- `OPENCOLLECTIVE_TOKEN` (yml: `opencollective_token`)
- `OPENCOLLECTIVE_TOKEN` (yml: `private.opencollective_token`)
OpenCollective's GraphQL API only allows 10 reqs/minute for anonymous users.
An [API token](https://graphql-docs-v2.opencollective.com/access)
@@ -277,7 +277,7 @@ can be provided to access a higher rate limit of 100 reqs/minute.
### Pepy
- `PEPY_KEY` (yml: `pepy_key`)
- `PEPY_KEY` (yml: `private.pepy_key`)
The Pepy API requires authentication. To obtain a key,
Create an account, sign in and obtain generate a key on your
@@ -330,8 +330,8 @@ access to your private nexus repositories.
### Twitch
- `TWITCH_CLIENT_ID` (yml: `twitch_client_id`)
- `TWITCH_CLIENT_SECRET` (yml: `twitch_client_secret`)
- `TWITCH_CLIENT_ID` (yml: `private.twitch_client_id`)
- `TWITCH_CLIENT_SECRET` (yml: `private.twitch_client_secret`)
Register an application in the [Twitch developer console](https://dev.twitch.tv/console)
in order to obtain a client id and a client secret for making Twitch API calls.

View File

@@ -12,7 +12,7 @@ automated tests should be included. They serve three purposes:
3. They speed up future contributors when they are debugging or improving a
badge.
Test should cover:
Tests should cover:
1. Valid behavior
2. Optional parameters like tags or branches
@@ -24,11 +24,11 @@ Test should cover:
Before getting started, set up a development environment by following the
[setup instructions](https://github.com/badges/shields/blob/master/doc/TUTORIAL.md#2-setup)
We will write some tests for the [Wercker Build service](https://github.com/badges/shields/blob/master/services/wercker/wercker.service.js)
We will write some tests for [Docs.rs](https://github.com/badges/shields/blob/master/services/docsrs/docsrs.service.js), a service that builds documentation of crates, which are packages in the Rust programming language.
### (1) Boilerplate
The code for our badge is in `services/wercker/wercker.service.js`. Tests for this badge should be stored in `services/wercker/wercker.tester.js`.
The code for our badge is in `services/docsrs/docsrs.service.js`. Tests for this badge should be stored in `services/docsrs/docsrs.tester.js`.
We'll start by adding some boilerplate to our file:
@@ -41,8 +41,8 @@ export const t = await createServiceTester()
If our `.service.js` module exports a single class, we can
`createServiceTester`, which uses convention to create a
`ServiceTester` object. Calling this inside
`services/wercker/wercker.tester.js` will create a `ServiceTester` object
configured for the service exported in `services/wercker/wercker.service.js`.
`services/docsrs/docsrs.tester.js` will create a `ServiceTester` object
configured for the service exported in `services/docsrs/docsrs.service.js`.
We will add our tests to this `ServiceTester` object `t`, which is exported
from the module.
@@ -51,27 +51,30 @@ from the module.
First we'll add a test for the typical case:
```js
import { isBuildStatus } from '../test-validators.js'
import Joi from 'joi'
t.create('Build status')
.get('/build/wercker/go-wercker-api.json')
.expectBadge({ label: 'build', message: isBuildStatus })
t.create('Docs with no version specified')
.get('/tokio.json')
.expectBadge({
label: 'docs',
message: Joi.allow('passing', 'failing'),
})
```
1. The `create()` method adds a new test to the tester object.
The chained-on calls come from the API testing framework [IcedFrisby][].
Here's a [longer example][] and the complete [API guide][icedfrisby api].
2. We use the `get()` method to request a badge. There are several points to consider here:
- We need a real project to test against. In this case we have used [wercker/go-wercker-api](https://app.wercker.com/wercker/go-wercker-api/runs) but we could have chosen any stable project.
- We need a real crate to test against. In this case we have used [Tokio](https://docs.rs/tokio) but we could have chosen any one.
- Note that when we call our badge, we are allowing it to communicate with an external service without mocking the response. We write tests which interact with external services, which is unusual practice in unit testing. We do this because one of the purposes of service tests is to notify us if a badge has broken due to an upstream API change. For this reason it is important for at least one test to call the live API without mocking the interaction.
- All badges on shields can be requested in a number of formats. As well as calling https://img.shields.io/wercker/build/wercker/go-wercker-api.svg to generate ![](https://img.shields.io/wercker/build/wercker/go-wercker-api.svg) we can also call https://img.shields.io/wercker/build/wercker/go-wercker-api.json to request the same content as JSON. When writing service tests, we request the badge in JSON format so it is easier to make assertions about the content.
- We don't need to explicitly call `/wercker/build/wercker/go-wercker-api.json` here, only `/build/wercker/go-wercker-api.json`. When we create a tester object with `createServiceTester()` the URL base defined in our service class (in this case `/wercker`) is used as the base URL for any requests made by the tester object.
- All badges on shields can be requested in a number of formats. As well as calling https://img.shields.io/docsrs/tokio.svg to generate ![](https://img.shields.io/docsrs/tokio.svg) we can also call https://img.shields.io/docsrs/tokio.json to request the same content as JSON. When writing service tests, we request the badge in JSON format so it is easier to make assertions about the content.
- We don't need to explicitly call `/docsrs/tokio.json` here, only `/tokio.json`. When we create a tester object with `createServiceTester()` the URL base defined in our service class (in this case `/docsrs`) is used as the base URL for any requests made by the tester object.
3. `expectBadge()` is a helper function which accepts either a string literal, a [RegExp][] or a [Joi][] schema for the different fields.
Joi is a validation library that is built into IcedFrisby which you can use to
match based on a set of allowed strings, regexes, or specific values. You can
refer to their [API reference][joi api].
4. We expect `label` to be a string literal `"build"`.
5. Because this test depends on a live service, we don't want our test to depend on our API call returning a particular build status. Instead we should perform a "picture check" to assert that the badge data conforms to an expected pattern. Our test should not depend on the status of the example project's build, but should fail if trying to generate the badge throws an error, or if there is a breaking change to the upstream API. In this case we will use a pre-defined regular expression to check that the badge value looks like a build status. [services/test-validators.js](https://github.com/badges/shields/blob/master/services/test-validators.js) defines a number of useful validators we can use. Many of the common badge types (version, downloads, rank, etc.) already have validators defined here.
4. We expect `label` to be a string literal `"docs"`.
5. Because this test depends on a live service, we don't want our test to depend on our API call returning a particular build status. Instead we should perform a "picture check" to assert that the badge data conforms to an expected pattern. Our test should not depend on the status of the example crates's documentation build, but should fail if trying to generate the badge throws an error, or if there is a breaking change to the upstream API. In this case, we specify a list with all possible response values, `Joi.allow('passing', 'failing')`. For more complex cases, [services/test-validators.js](https://github.com/badges/shields/blob/master/services/test-validators.js) defines a number of useful validators we can use with regular expressions. Many of the common badge types (version, downloads, rank, etc.) already have validators defined there.
When defining an IcedFrisby test, typically you would invoke the `toss()`
method, to register the test. This is not necessary, because the Shields test
@@ -89,7 +92,7 @@ harness will call it for you.
Lets run the test we have written:
```
npm run test:services -- --only=wercker
npm run test:services -- --only=docsrs
```
The `--only=` option indicates which service or services you want to test. You
@@ -101,11 +104,12 @@ runner.
Here's the output:
```
Server is starting up: http://lib/service-test-runner/cli.js:80/
Wercker
Build status
[ GET /build/wercker/go-wercker-api.json ] (572ms)
Server is starting up: http://localhost:1111/
DocsRs
[live] Docs with no version specified
[ GET /tokio.json ] (441ms)
1 passing (1s)
```
@@ -115,80 +119,98 @@ That's looking good!
Sometimes if we have a failing test, it is useful to be able to see some logging output to help work out why the test is failing. We can do that by calling `npm run test:services:trace`. Try running
```
npm run test:services:trace -- --only=wercker
npm run test:services:trace -- --only=docsrs
```
to run the test with some additional debug output.
### (4) Writing More Tests
We should write tests cases for valid paths through our code. The Wercker badge supports an optional branch parameter so we'll add a second test for a branch build.
We should write tests cases for valid paths through our code. The Docs.rs badge supports an optional version parameter so we'll add a second test for a branch build. In this case, we know for sure that the documentation for this older version was successfully built, we specify a string literal instead of a Joi schema for `message`. This narrows down the expectation and gives us a more helpful error message if the test fails.
```js
t.create('Build status (with branch)')
.get('/build/wercker/go-wercker-api/master.json')
.expectBadge({ label: 'build', message: isBuildStatus })
t.create('Passing docs for version').get('/tokio/1.37.0.json').expectBadge({
label: 'docs@1.37.0',
message: 'passing',
color: 'brightgreen',
})
```
```
Server is starting up: http://lib/service-test-runner/cli.js:80/
Wercker
Build status
[ GET /build/wercker/go-wercker-api.json ] (572ms)
Build status (with branch)
[ GET /build/wercker/go-wercker-api/master.json ] (368ms)
Server is starting up: http://localhost:1111/
DocsRs
[live] Docs with no version specified
[ GET /tokio.json ] (408ms)
[live] Passing docs for version
[ GET /tokio/1.37.0.json ] (171ms)
2 passing (1s)
2 passing (2s)
```
Once we have multiple tests, sometimes it is useful to run only one test. We can do this using the `--fgrep` argument. For example:
```
npm run test:services -- --only="wercker" --fgrep="Build status (with branch)"
npm run test:services -- --only="docsrs" --fgrep="Passing docs for version"
```
Having covered the typical and custom cases, we'll move on to errors. We should include a test for the 'not found' response and also tests for any other custom error handling. The Wercker integration defines a custom error condition for 401 as well as a custom 404 message:
Documentation for tokio version 1.32.1 failed to build, we can also add a corresponding test:
```js
httpErrors: {
401: 'private application not supported',
404: 'application not found',
}
t.create('Failing docs for version').get('/tokio/1.32.1.json').expectBadge({
label: 'docs@1.32.1',
message: 'failing',
color: 'red',
})
```
First we'll add a test for a project which will return a 404 error:
Note that in these tests, we have specified a `color` parameter in `expectBadge`. This is helpful in a case like this when we want to test custom color logic, but it is only necessary to explicitly test color values if our badge implements custom logic for setting the badge colors.
Having covered the typical and custom cases, we'll move on to errors. We should include a test for the 'not found' response and also tests for any other custom error handling. When a version is specified, the Docs.rs integration defines a custom error condition for 400 status codes:
```js
t.create('Build status (application not found)')
.get('/build/some-project/that-doesnt-exist.json')
.expectBadge({ label: 'build', message: 'application not found' })
httpErrors: version ? { 400: 'malformed version' } : {},
```
In this case we are expecting a string literal instead of a pattern for `message`. This narrows down the expectation and gives us a more helpful error message if the test fails.
We also want to include a test for the 'private application not supported' case. One way to do this would be to find another example of a private project which is unlikely to change. For example:
First we'll add a test for a crate and a test for a version which will return 404 errors:
```js
t.create('Build status (private application)')
.get('/build/wercker/blueprint.json')
.expectBadge({ label: 'build', message: 'private application not supported' })
t.create('Crate not found')
.get('/not-a-crate/latest.json')
.expectBadge({ label: 'docs', message: 'not found' })
t.create('Version not found')
.get('/tokio/0.8.json')
.expectBadge({ label: 'docs', message: 'not found' })
```
We also want to include a test for a case where a malformed version was specified. For example:
```js
t.create('Malformed version')
.get('/tokio/not-a-version.json')
.expectBadge({ label: 'docs', message: 'malformed version' })
```
## (5) Mocking Responses
If we didn't have a stable example of a private project, another approach would be to mock the response. An alternative test for the 'private application' case might look like:
If we didn't have a stable example of crate version with a failing documentation build, another approach would be to mock the response. An alternative test for the 'Failing docs for version' case might look like:
```js
t.create('Build status (private application)')
.get('/build/wercker/go-wercker-api.json')
t.create('Failing docs for version')
.get('/tokio/1.32.1.json')
.intercept(nock =>
nock('https://app.wercker.com/api/v3/applications/')
.get('/wercker/go-wercker-api/builds?limit=1')
.reply(401),
nock('https://docs.rs/crate')
.get('/tokio/1.32.1/status.json')
.reply(200, { doc_status: false }),
)
.expectBadge({ label: 'build', message: 'private application not supported' })
.expectBadge({
label: 'docs@1.32.1',
message: 'failing',
color: 'red',
})
```
This will intercept the request and provide our own mock response.
@@ -204,49 +226,6 @@ and path.
[icedfrisby-nock]: https://github.com/paulmelnikow/icedfrisby-nock#usage
[nock]: https://github.com/node-nock/nock
Our test suite should also include service tests which receive a known value from the API. For example, in the `render()` method of our service, there is some logic which sets the badge color based on the build status:
```js
static render({ status, result }) {
if (status === 'finished') {
if (result === 'passed') {
return { message: 'passing', color: 'brightgreen' }
} else {
return { message: result, color: 'red' }
}
}
return { message: status }
}
```
We can also use nock to intercept API calls to return a known response body.
```js
t.create('Build passed')
.get('/build/wercker/go-wercker-api.json')
.intercept(nock =>
nock('https://app.wercker.com/api/v3/applications/')
.get('/wercker/go-wercker-api/builds?limit=1')
.reply(200, [{ status: 'finished', result: 'passed' }]),
)
.expectBadge({
label: 'build',
message: 'passing',
color: 'brightgreen',
})
t.create('Build failed')
.get('/build/wercker/go-wercker-api.json')
.intercept(nock =>
nock('https://app.wercker.com/api/v3/applications/')
.get('/wercker/go-wercker-api/builds?limit=1')
.reply(200, [{ status: 'finished', result: 'failed' }]),
)
.expectBadge({ label: 'build', message: 'failed', color: 'red' })
```
Note that in these tests, we have specified a `color` parameter in `expectBadge`. This is helpful in a case like this when we want to test custom color logic, but it is only necessary to explicitly test color values if our badge implements custom logic for setting the badge colors.
## Code coverage
By checking code coverage, we can make sure we've covered all our bases.
@@ -254,7 +233,7 @@ By checking code coverage, we can make sure we've covered all our bases.
We can generate a coverage report and open it:
```
npm run coverage:test:services -- -- --only=wercker
npm run coverage:test:services -- -- --only=docsrs
npm run coverage:report:open
```

View File

@@ -0,0 +1,33 @@
---
slug: simple-icons-12
title: Simple Icons 12
authors:
name: chris48s
title: Shields.io Core Team
url: https://github.com/chris48s
image_url: https://avatars.githubusercontent.com/u/6025893
tags: []
---
Logos on Shields.io are provided by SimpleIcons. We've recently upgraded to SimpleIcons 12. This release removes the following 10 icons:
- FITE
- Flattr
- Google Bard
- Integromat
- Niantic
- Nintendo Network
- Rome
- Shotcut
- Skynet
- Twitter
And renames the following 3:
- Airbrake.io to Airbrake
- Amazon AWS to Amazon Web Services
- RStudio to RStudio IDE
More details can be found in the [release notes](https://github.com/simple-icons/simple-icons/releases/tag/12.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

@@ -0,0 +1,14 @@
---
slug: simple-icons-13
title: Simple Icons 13
authors:
name: chris48s
title: Shields.io Core Team
url: https://github.com/chris48s
image_url: https://avatars.githubusercontent.com/u/6025893
tags: []
---
Logos on Shields.io are provided by SimpleIcons. We've recently upgraded to SimpleIcons 13. This release removes 65 icons and renames one. A full list of the changes can be found in the [release notes](https://github.com/simple-icons/simple-icons/releases/tag/13.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.

File diff suppressed because one or more lines are too long

View File

@@ -12,12 +12,6 @@ We support a wide range of logos via [SimpleIcons](https://simpleicons.org/). Al
You can click the icon title on <a href="https://simpleicons.org/" rel="noopener noreferrer" target="_blank">simple-icons</a> to copy the slug or they can be found in the <a href="https://github.com/simple-icons/simple-icons/blob/master/slugs.md">slugs.md file</a> in the simple-icons repository. NB - the Simple Icons site and slugs.md page may at times contain new icons that haven't yet been pulled into Shields.io yet. More information on how and when we incorporate icon updates can be found [here](https://github.com/badges/shields/discussions/5369).
## Shields logos
We also maintain a small number of custom logos for a handful of services: https://github.com/badges/shields/tree/master/logo They can also be referenced by name and take preference to SimpleIcons e.g:
![](https://img.shields.io/npm/v/npm.svg?logo=npm) - https://img.shields.io/npm/v/npm.svg?logo=npm
## Custom Logos
Any custom logo can be passed in a URL parameter by base64 encoding it. e.g:
@@ -26,12 +20,7 @@ Any custom logo can be passed in a URL parameter by base64 encoding it. e.g:
## logoColor parameter
The `logoColor` param can be used to set the color of the logo. Hex, rgb, rgba, hsl, hsla and css named colors can all be used. For SimpleIcons named logos (which are monochrome), the color will be applied to the SimpleIcons logo.
The `logoColor` param can be used to set the color of the SimpleIcons named logo. Hex, rgb, rgba, hsl, hsla and css named colors can all be used.
- ![](https://img.shields.io/badge/logo-javascript-blue?logo=javascript) - https://img.shields.io/badge/logo-javascript-blue?logo=javascript
- ![](https://img.shields.io/badge/logo-javascript-blue?logo=javascript&logoColor=f5f5f5) - https://img.shields.io/badge/logo-javascript-blue?logo=javascript&logoColor=f5f5f5
In the case where Shields hosts a custom multi-colored logo, if the `logoColor` param is passed, the corresponding SimpleIcons logo will be substituted and colored.
- ![](https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab) - https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab
- ![](https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab&logoColor=white) - https://img.shields.io/badge/logo-gitlab-blue?logo=gitlab&logoColor=white

View File

@@ -1,36 +0,0 @@
import fs from 'fs'
import path from 'path'
import { fileURLToPath } from 'url'
import { svg2base64 } from './svg-helpers.js'
function loadLogos() {
// Cache svg logos from disk in base64 string
const logos = {}
const logoDir = path.join(
path.dirname(fileURLToPath(import.meta.url)),
'..',
'logo',
)
const logoFiles = fs.readdirSync(logoDir)
logoFiles.forEach(filename => {
if (filename[0] === '.') {
return
}
// filename is eg, github.svg
const svg = fs.readFileSync(`${logoDir}/${filename}`).toString()
const base64 = svg2base64(svg)
// logo is monochrome if it only has one fill= statement
const isMonochrome = (svg.match(/fill="(.+?)"/g) || []).length === 1
// eg, github
const name = filename.slice(0, -'.svg'.length).toLowerCase()
logos[name] = {
isMonochrome,
svg,
base64,
}
})
return logos
}
export default loadLogos

View File

@@ -6,9 +6,7 @@ import {
} from '../badge-maker/lib/color.js'
import coalesce from '../core/base-service/coalesce.js'
import { svg2base64, getIconSize, resetIconPosition } from './svg-helpers.js'
import loadLogos from './load-logos.js'
import loadSimpleIcons from './load-simple-icons.js'
const logos = loadLogos()
const simpleIcons = loadSimpleIcons()
// for backwards-compatibility with deleted logos
@@ -19,6 +17,7 @@ const logoAliases = {
scrutinizer: 'scrutinizer-ci',
stackoverflow: 'stack-overflow',
tfs: 'azure-devops',
travis: 'travisci',
}
const lightThreshold = 0.4
const darkThreshold = 0.6
@@ -59,24 +58,6 @@ function decodeDataUrlFromQueryParam(value) {
return isDataUrl(maybeDataUrl) ? maybeDataUrl : undefined
}
function getShieldsIcon({ name, color }) {
if (!(name in logos)) {
return undefined
}
const { svg, base64, isMonochrome } = logos[name]
const svgColor = toSvgColor(color)
if (svgColor) {
if (isMonochrome) {
return svg2base64(svg.replace(/fill="(.+?)"/g, `fill="${svgColor}"`))
} else {
return undefined
}
} else {
return base64
}
}
function getSimpleIconStyle({ icon, style }) {
const { hex } = icon
if (style !== 'social' && brightness(normalizeColor(hex)) <= lightThreshold) {
@@ -93,7 +74,7 @@ function getSimpleIconStyle({ icon, style }) {
// badge. If `size` is not 'auto', the icon will be displayed at its original.
// https://github.com/badges/shields/pull/9191
function getSimpleIcon({ name, color, style, size }) {
const key = name === 'travis' ? 'travis-ci' : name.replace(/ /g, '-')
const key = name.replace(/ /g, '-')
if (!(key in simpleIcons)) {
return undefined
@@ -134,10 +115,7 @@ function prepareNamedLogo({ name, color, style, size }) {
name = logoAliases[name]
}
return (
getShieldsIcon({ name, color }) ||
getSimpleIcon({ name, color, style, size })
)
return getSimpleIcon({ name, color, style, size })
}
function makeLogo(defaultNamedLogo, overrides) {
@@ -159,7 +137,6 @@ export {
isDataUrl,
decodeDataUrlFromQueryParam,
prepareNamedLogo,
getShieldsIcon,
getSimpleIcon,
makeLogo,
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.636 14.902c-1.602 6.43-8.114 10.342-14.543 8.74C2.666 22.037-1.246 15.525.357 9.098 1.96 2.669 8.47-1.244 14.897.359c6.43 1.602 10.341 8.115 8.739 14.544" fill="#f7931a"/><path d="M14.686 10.267c-.371 1.487-2.663.731-3.406.546l.655-2.629c.743.186 3.138.531 2.75 2.083m-.406 4.242c-.407 1.635-3.16.75-4.053.53l.724-2.9c.893.224 3.754.664 3.33 2.37m3.008-4.219c.238-1.596-.977-2.455-2.64-3.027l.54-2.163-1.318-.33-.525 2.107a54.292 54.292 0 0 0-1.054-.249l.53-2.12-1.317-.328-.54 2.162c-.286-.065-.567-.13-.84-.198l.001-.007-1.816-.453-.35 1.406s.977.224.956.238c.533.133.63.486.613.766l-.615 2.463c.038.01.085.024.137.045l-.138-.035-.862 3.452c-.065.161-.23.405-.604.312.014.02-.957-.239-.957-.239L5.836 15.6l1.714.427c.318.08.63.164.938.242l-.545 2.19 1.315.328.54-2.164c.36.097.708.187 1.05.271l-.538 2.156 1.316.328.546-2.183c2.245.424 3.933.253 4.643-1.777.574-1.635-.027-2.578-1.208-3.194.86-.198 1.508-.765 1.681-1.934" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1017 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" fill="#fff"><path d="M25 3a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h5v3H6a3 3 0 0 0-3 3v12H1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h2v6a3 3 0 0 0 3 3h42a3 3 0 0 0 3-3v-6h2a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1h-2V18a3 3 0 0 0-3-3H33V4a1 1 0 0 0-1-1h-7zm-3.982 26a1.21 1.21 0 0 1 .837.355l1.29 1.29a1.21 1.21 0 0 1 0 1.709 1.21 1.21 0 0 1 0 .001l-6.291 6.29a1.21 1.21 0 0 1-1.71 0l-3.79-3.791a1.21 1.21 0 0 1 0-1.71l1.29-1.29a1.21 1.21 0 0 1 1.71 0L16 33.5l4.145-4.145a1.21 1.21 0 0 1 .873-.355zm19.962 0a1.21 1.21 0 0 1 .874.354l1.29 1.29a1.21 1.21 0 0 1 0 1.71l-6.29 6.289v.002a1.21 1.21 0 0 1-1.711 0l-3.79-3.79a1.21 1.21 0 0 1 0-1.71l1.29-1.29a1.21 1.21 0 0 1 1.71 0l1.645 1.645 4.147-4.146A1.21 1.21 0 0 1 40.98 29z"/></svg>

Before

Width:  |  Height:  |  Size: 762 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="93 93 194 194"><defs><style>.b{fill:#fc6d26}</style></defs><path style="fill:#e24329" d="m282.83 170.73-.27-.69-26.14-68.22a6.81 6.81 0 0 0-2.69-3.24 7 7 0 0 0-8 .43 7 7 0 0 0-2.32 3.52l-17.65 54h-71.47l-17.65-54a6.86 6.86 0 0 0-2.32-3.53 7 7 0 0 0-8-.43 6.87 6.87 0 0 0-2.69 3.24L97.44 170l-.26.69a48.54 48.54 0 0 0 16.1 56.1l.09.07.24.17 39.82 29.82 19.7 14.91 12 9.06a8.07 8.07 0 0 0 9.76 0l12-9.06 19.7-14.91 40.06-30 .1-.08a48.56 48.56 0 0 0 16.08-56.04Z"/><path class="b" d="m282.83 170.73-.27-.69a88.3 88.3 0 0 0-35.15 15.8L190 229.25c19.55 14.79 36.57 27.64 36.57 27.64l40.06-30 .1-.08a48.56 48.56 0 0 0 16.1-56.08Z"/><path style="fill:#fca326" d="m153.43 256.89 19.7 14.91 12 9.06a8.07 8.07 0 0 0 9.76 0l12-9.06 19.7-14.91S209.55 244 190 229.25c-19.55 14.75-36.57 27.64-36.57 27.64Z"/><path class="b" d="M132.58 185.84A88.19 88.19 0 0 0 97.44 170l-.26.69a48.54 48.54 0 0 0 16.1 56.1l.09.07.24.17 39.82 29.82L190 229.21Z"/></svg>

Before

Width:  |  Height:  |  Size: 986 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path d="M0 0h40v40H0V0z" fill="#cb0000"/><path fill="#fff" d="M7 7h26v26h-7V14h-6v19H7z"/></svg>

Before

Width:  |  Height:  |  Size: 158 B

View File

@@ -1 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.715 6.133c.249-1.866 0-3.11-.999-4.266C17.634.622 15.721 0 13.307 0H6.235c-.418 0-.916.444-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l-.25 1.956c-.084.355.166.622.498.622h3.663c.417 0 .832-.267.915-.711v-.267l.749-4.622v-.178c.083-.444.5-.8.915-.8h.5c3.578 0 6.325-1.51 7.156-5.955.418-1.867.252-3.378-.747-4.445-.25-.355-.666-.622-1-.889" fill="#009cde"/><path d="M19.715 6.133c.249-1.866 0-3.11-.999-4.266C17.634.622 15.721 0 13.307 0H6.235c-.418 0-.916.444-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l1.164-7.378-.083.267c.084-.533.5-.889.998-.889h2.08c4.079 0 7.241-1.778 8.24-6.755-.083-.267 0-.356 0-.534" fill="#012169"/><path d="M9.563 6.133c.082-.266.25-.533.498-.71.166 0 .25-.09.416-.09h5.494c.666 0 1.33.09 1.83.178.166 0 .333 0 .498.089.168.089.334.089.418.178h.25c.248.089.497.266.748.355.248-1.866 0-3.11-.999-4.355C17.717.533 15.804 0 13.39 0H6.235c-.418 0-.916.356-1 .889L2.323 20.622c0 .356.25.8.665.8h4.328l1.164-7.378 1.084-7.91z" fill="#003087"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><style>.st0{fill:#a7a9ac}.st1{fill:#818285}.st2{fill:#58585a}.st3{fill:#d1d2d4}.st4{fill:#231f20}</style><path class="st0" d="M13.7 41.6h44v8.7h-44z"/><path class="st1" d="M13.7 55.8h44v8.7h-44z"/><path class="st2" d="M13.7 69h44v8.7h-44z"/><path class="st3" d="M13.7 27.6h44v8.7h-44z"/><path class="st4" d="M13.7 83.2h44v8.7h-44z"/><path fill="#992224" d="M63 41.6h18.7v8.7H63z"/><path fill="#630f16" d="M63 55.8h18.7v8.7H63z"/><path fill="#2b1415" d="M63 69h18.7v8.7H63z"/><path fill="#e7282d" d="M63 27.6h18.7v8.7H63z"/><path class="st4" d="M63 83.2h18.7v8.7H63z"/><g><path class="st0" d="M86.8 42h18.7v8.7H86.8z"/><path class="st1" d="M86.8 56.2h18.7v8.7H86.8z"/><path class="st2" d="M86.8 69.4h18.7v8.7H86.8z"/><path class="st3" d="M86.8 28h18.7v8.7H86.8z"/><path class="st4" d="M86.8 83.6h18.7v8.7H86.8z"/></g></svg>

Before

Width:  |  Height:  |  Size: 884 B

View File

@@ -1 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.273 10.463h19.325v3.978H2.273z" fill="#376db6"/><path d="M2.273 5.322h19.325V9.3H2.273z" fill="#4ca2da"/><path d="M18.575 0H5.374c-1.705 0-3.1 1.42-3.1 3.178V4.21h19.324V3.178C21.598 1.42 20.254 0 18.575 0z" fill="#91d8f4"/><path d="M2.273 15.578v1.033c0 1.757 1.396 3.178 3.1 3.178h8.268V24l4.081-4.211h.905c1.705 0 3.1-1.42 3.1-3.178v-1.033z" fill="#1e5397"/></svg>

Before

Width:  |  Height:  |  Size: 439 B

View File

@@ -1 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.594 0a.514.514 0 0 0-.344.11.404.404 0 0 0-.133.306v23.197c0 .124.048.246.145.312.096.065.208.075.332.075h5.593c.13 0 .243-.02.334-.093.092-.072.131-.2.112-.317l.002.023v-1.467a.367.367 0 0 0-.16-.301.612.612 0 0 0-.344-.087H5.613c-.11 0-.17-.02-.191-.037-.022-.016-.032-.03-.032-.1V2.408c0-.071.012-.094.041-.116.03-.023.102-.05.239-.05h2.488c.124 0 .235-.01.332-.076.097-.066.145-.188.145-.311V.416a.396.396 0 0 0-.157-.323A.583.583 0 0 0 8.131 0z" fill="#000"/><path d="M20.958 14.47c-1.482.414-2.489 1.273-2.489 2.684v4.042c0 3.017-2.909 2.685-6.517 2.685h-.56c-.223 0-.363-.083-.363-.277V22.22c0-.194.112-.277.336-.277h.447c2.154 0 3.664.47 3.664-1.245v-3.876c0-1.19.84-2.851 2.517-3.46.112-.028.14-.083.14-.138 0-.056-.028-.139-.14-.194-1.538-.692-2.517-1.827-2.517-3.184V5.473c0-1.689-1.51-3.377-3.664-3.377h-.447c-.224 0-.336-.083-.336-.277V.435c0-.194.14-.277.364-.277h.56c3.607 0 6.544 2.547 6.544 5.564v3.682c0 1.384 1.007 2.186 2.517 2.712.56.166.867.194.867.637v1.163c.028.249-.251.36-.923.553" fill="#2eace3"/><path d="M11.576 8.33c-.406 0-.785.303-.785.72v1.328c0 .389.35.721.785.721h1.482c.406 0 .784-.304.784-.72V9.05c0-.388-.348-.72-.784-.72z" fill="#000"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 24c6.627 0 12-5.373 12-12S18.627 0 12 0 0 5.373 0 12s5.373 12 12 12Z" fill="url(#a)"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5.425 11.871a796.414 796.414 0 0 1 6.994-3.018c3.328-1.388 4.027-1.628 4.477-1.638.1 0 .32.02.47.14.12.1.15.23.17.33.02.1.04.31.02.47-.18 1.898-.96 6.504-1.36 8.622-.17.9-.5 1.199-.819 1.229-.7.06-1.229-.46-1.898-.9-1.06-.689-1.649-1.119-2.678-1.798-1.19-.78-.42-1.209.26-1.908.18-.18 3.247-2.978 3.307-3.228.01-.03.01-.15-.06-.21-.07-.06-.17-.04-.25-.02-.11.02-1.788 1.14-5.056 3.348-.48.33-.909.49-1.299.48-.43-.01-1.248-.24-1.868-.44-.75-.24-1.349-.37-1.299-.79.03-.22.33-.44.89-.669Z" fill="#fff"/><defs><linearGradient id="a" x1="11.99" y1="0" x2="11.99" y2="23.81" gradientUnits="userSpaceOnUse"><stop stop-color="#2AABEE"/><stop offset="1" stop-color="#229ED9"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 909 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 23 KiB

3510
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
"dependencies": {
"@renovatebot/pep440": "^3.0.20",
"@renovatebot/ruby-semver": "^3.0.23",
"@sentry/node": "^7.112.2",
"@sentry/node": "^8.20.0",
"@shields_io/camp": "^18.1.2",
"@xmldom/xmldom": "0.8.10",
"badge-maker": "file:badge-maker",
@@ -32,19 +32,19 @@
"chalk": "^5.3.0",
"check-node-version": "^4.2.1",
"cloudflare-middleware": "^1.0.4",
"config": "^3.3.11",
"config": "^3.3.12",
"cross-env": "^7.0.3",
"dayjs": "^1.11.10",
"dayjs": "^1.11.12",
"decamelize": "^3.2.0",
"emojic": "^1.1.17",
"escape-string-regexp": "^4.0.0",
"fast-xml-parser": "^4.3.6",
"glob": "^10.3.12",
"fast-xml-parser": "^4.4.0",
"glob": "^11.0.0",
"global-agent": "^3.0.0",
"got": "^14.2.1",
"graphql": "16.8.1",
"got": "^14.4.2",
"graphql": "16.9.0",
"graphql-tag": "^2.12.6",
"joi": "17.13.0",
"joi": "17.13.3",
"joi-extension-semver": "5.0.0",
"js-yaml": "^4.1.0",
"jsonpath": "~1.1.1",
@@ -53,20 +53,20 @@
"lodash.times": "^4.3.2",
"matcher": "^5.0.0",
"node-env-flag": "^0.1.0",
"node-pg-migrate": "^7.2.0",
"node-pg-migrate": "^7.5.2",
"parse-link-header": "^2.0.0",
"path-to-regexp": "^6.2.2",
"pg": "^8.11.5",
"pg": "^8.12.0",
"pretty-bytes": "^6.1.1",
"priorityqueuejs": "^2.0.0",
"prom-client": "^15.1.2",
"qs": "^6.12.1",
"query-string": "^9.0.0",
"semver": "~7.6.0",
"simple-icons": "11.13.0",
"smol-toml": "1.1.4",
"prom-client": "^15.1.3",
"qs": "^6.12.3",
"query-string": "^9.1.0",
"semver": "~7.6.3",
"simple-icons": "13.2.0",
"smol-toml": "1.3.0",
"svg-path-commander": "^2.0.9",
"webextension-store-meta": "^1.2.1",
"webextension-store-meta": "^1.2.3",
"xpath": "~0.0.34"
},
"scripts": {
@@ -75,7 +75,7 @@
"coverage:test:entrypoint": "c8 npm run test:entrypoint",
"coverage:test:integration": "c8 npm run test:integration",
"coverage:test:services": "c8 npm run test:services",
"coverage:clean": "rimraf .nyc_output coverage",
"coverage:clean": "rimraf coverage",
"precoverage:test": "cross-env BASE_URL=http://localhost:8080 run-s --silent coverage:clean defs",
"coverage:test": "run-s --silent --continue-on-error coverage:test:core coverage:test:package coverage:test:entrypoint coverage:test:integration",
"coverage:report:generate": "c8 report",
@@ -145,72 +145,73 @@
]
},
"devDependencies": {
"@docusaurus/core": "^3.2.1",
"@easyops-cn/docusaurus-search-local": "^0.40.1",
"@docusaurus/core": "^3.4.0",
"@docusaurus/preset-classic": "^3.4.0",
"@easyops-cn/docusaurus-search-local": "^0.44.4",
"@mdx-js/react": "^3.0.1",
"@typescript-eslint/parser": "^7.7.1",
"c8": "^9.1.0",
"@typescript-eslint/parser": "^7.17.0",
"c8": "^10.1.2",
"caller": "^1.1.0",
"chai": "^4.4.1",
"chai-as-promised": "^7.1.1",
"chai": "^4.5.0",
"chai-as-promised": "^8.0.0",
"chai-datetime": "^1.8.0",
"chai-string": "^1.4.0",
"child-process-promise": "^2.2.1",
"clsx": "^2.1.1",
"concurrently": "^8.2.2",
"cypress": "^13.8.1",
"cypress": "^13.13.1",
"cypress-wait-for-stable-dom": "^0.1.0",
"danger": "^12.1.0",
"danger": "^12.3.3",
"deepmerge": "^4.3.1",
"docusaurus-preset-openapi": "0.7.4",
"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": "^0.7.4",
"eslint-plugin-cypress": "^3.0.1",
"eslint-plugin-chai-friendly": "^1.0.0",
"eslint-plugin-cypress": "^3.4.0",
"eslint-plugin-icedfrisby": "^0.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.3",
"eslint-plugin-jsdoc": "^48.8.3",
"eslint-plugin-mocha": "^10.4.3",
"eslint-plugin-no-extension-in-require": "^0.2.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.1",
"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",
"icedfrisby": "4.0.0",
"icedfrisby-nock": "^2.1.0",
"is-svg": "^5.0.0",
"jsdoc": "^4.0.2",
"lint-staged": "^15.2.2",
"is-svg": "^5.0.1",
"jsdoc": "^4.0.3",
"lint-staged": "^15.2.7",
"lodash.difference": "^4.5.0",
"minimist": "^1.2.8",
"mocha": "^10.4.0",
"mocha": "^10.7.0",
"mocha-env-reporter": "^4.0.0",
"mocha-junit-reporter": "^2.2.1",
"mocha-yaml-loader": "^1.0.3",
"nock": "13.5.4",
"node-mocks-http": "^1.14.1",
"nodemon": "^3.1.0",
"node-mocks-http": "^1.15.0",
"nodemon": "^3.1.4",
"npm-run-all": "^4.1.5",
"open-cli": "^8.0.0",
"portfinder": "^1.0.32",
"prettier": "3.2.5",
"prettier": "3.3.3",
"prism-react-renderer": "^2.3.1",
"react": "^18.3.0",
"react-dom": "^18.3.1",
"read-all-stdin-sync": "^1.0.5",
"rimraf": "^5.0.5",
"rimraf": "^6.0.1",
"sazerac": "^2.0.0",
"simple-git-hooks": "^2.11.1",
"sinon": "^17.0.1",
"sinon": "^18.0.0",
"sinon-chai": "^3.7.0",
"snap-shot-it": "^7.9.10",
"start-server-and-test": "2.0.3",
"tsd": "^0.31.0",
"start-server-and-test": "2.0.4",
"tsd": "^0.31.1",
"url": "^0.11.3"
},
"engines": {

View File

@@ -2,7 +2,7 @@ import fs from 'fs'
import path from 'path'
import { fileURLToPath } from 'url'
import configModule from 'config'
import Sentry from '@sentry/node'
import * as Sentry from '@sentry/node'
import Server from './core/server/server.js'
// Set up Sentry reporting as early in the process as possible.

View File

@@ -2,7 +2,7 @@ import { isVPlusDottedVersionAtLeastOne } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Version').get('/IndieGala-Helper.json').expectBadge({
t.create('Version').get('/night-video-tuner.json').expectBadge({
label: 'mozilla add-on',
message: isVPlusDottedVersionAtLeastOne,
})

View File

@@ -1,33 +0,0 @@
import { deprecatedService } from '../index.js'
const APMDownloads = deprecatedService({
category: 'downloads',
route: {
base: 'apm/dm',
pattern: ':various*',
},
label: 'downloads',
dateAdded: new Date('2023-01-04'),
})
const APMVersion = deprecatedService({
category: 'version',
route: {
base: 'apm/v',
pattern: ':various*',
},
label: 'apm',
dateAdded: new Date('2023-01-04'),
})
const APMLicense = deprecatedService({
category: 'license',
route: {
base: 'apm/l',
pattern: ':various*',
},
label: 'license',
dateAdded: new Date('2023-01-04'),
})
export { APMDownloads, APMVersion, APMLicense }

View File

@@ -1,19 +0,0 @@
import { ServiceTester } from '../tester.js'
export const t = new ServiceTester({
id: 'apm',
title: 'Atom Package Manager',
pathPrefix: '/apm',
})
t.create('Downloads')
.get('/dm/vim-mode.json')
.expectBadge({ label: 'downloads', message: 'no longer available' })
t.create('Version')
.get('/v/vim-mode.json')
.expectBadge({ label: 'apm', message: 'no longer available' })
t.create('License')
.get('/l/vim-mode.json')
.expectBadge({ label: 'license', message: 'no longer available' })

View File

@@ -20,6 +20,7 @@ const aurSchema = Joi.object({
Joi.object({
License: Joi.array().items(Joi.string().required()).allow(null),
NumVotes: nonNegativeInteger,
Popularity: Joi.number().precision(2).min(0).required(),
Version: Joi.string().required(),
OutOfDate: nonNegativeInteger.allow(null),
Maintainer: Joi.string().required().allow(null),
@@ -118,6 +119,36 @@ class AurVotes extends BaseAurService {
}
}
class AurPopularity extends BaseAurService {
static category = 'rating'
static route = { base: 'aur/popularity', pattern: ':packageName' }
static openApi = {
'/aur/popularity/{packageName}': {
get: {
summary: 'AUR Popularity',
description: 'Arch linux User Repository Popularity',
parameters: pathParams({ name: 'packageName', example: 'dropbox' }),
},
},
}
static defaultBadgeData = { label: 'popularity' }
static render({ popularity }) {
return {
message: popularity,
color: floorCountColor(popularity, 0.5, 2.5, 5),
}
}
async handle({ packageName }) {
const json = await this.fetch({ packageName })
return this.constructor.render({ popularity: json.results[0].Popularity })
}
}
class AurVersion extends BaseAurService {
static category = 'version'
static route = { base: 'aur/version', pattern: ':packageName' }
@@ -224,4 +255,11 @@ class AurLastModified extends BaseAurService {
}
}
export { AurLicense, AurVersion, AurVotes, AurMaintainer, AurLastModified }
export {
AurLicense,
AurVersion,
AurVotes,
AurPopularity,
AurMaintainer,
AurLastModified,
}

View File

@@ -1,3 +1,4 @@
import Joi from 'joi'
import { ServiceTester } from '../tester.js'
import {
isVPlusDottedVersionNClausesWithOptionalSuffix,
@@ -35,6 +36,19 @@ t.create('votes (not found)')
.get('/votes/not-a-package.json')
.expectBadge({ label: 'votes', message: 'package not found' })
// popularity tests
t.create('popularity (valid)')
.get('/popularity/google-chrome.json')
.expectBadge({
label: 'popularity',
message: Joi.number().precision(2).required(),
})
t.create('popularity (not found)')
.get('/popularity/not-a-package.json')
.expectBadge({ label: 'popularity', message: 'package not found' })
// license tests
t.create('license (valid)')
@@ -57,6 +71,7 @@ t.create('license (no license)')
{
License: null,
NumVotes: 1,
Popularity: 0,
Version: '1',
OutOfDate: null,
Maintainer: null,

View File

@@ -1,6 +1,11 @@
import Joi from 'joi'
import { renderBuildStatusBadge } from '../build-status.js'
import { BaseJsonService, redirector, pathParams } from '../index.js'
import {
BaseJsonService,
redirector,
pathParams,
InvalidResponse,
} from '../index.js'
const bitbucketPipelinesSchema = Joi.object({
values: Joi.array()
@@ -16,7 +21,7 @@ const bitbucketPipelinesSchema = Joi.object({
'STOPPED',
'EXPIRED',
),
}).required(),
}),
}).required(),
}),
)
@@ -82,6 +87,9 @@ class BitbucketPipelines extends BaseJsonService {
value => value.state && value.state.name === 'COMPLETED',
)
if (values.length > 0) {
if (!values[0].state?.result?.name) {
throw new InvalidResponse({ prettyMessage: 'invalid response data' })
}
return values[0].state.result.name
}
return 'never built'

View File

@@ -96,6 +96,39 @@ t.create('build result (unexpected status)')
)
.expectBadge({ label: 'build', message: 'invalid response data' })
// regression test for https://github.com/badges/shields/issues/10137
t.create('build result (with manual build steps)')
.get('/shields-io/test-repo/main.json')
.intercept(nock =>
nock('https://api.bitbucket.org')
.get(/^\/2.0\/.*/)
.reply(200, {
values: [
{
state: {
name: 'IN_PROGRESS',
type: 'pipeline_state_in_progress',
stage: {
name: 'PAUSED',
type: 'pipeline_state_in_progress_paused',
},
},
},
{
state: {
name: 'COMPLETED',
type: 'pipeline_state_completed',
result: {
name: 'SUCCESSFUL',
type: 'pipeline_state_completed_successful',
},
},
},
],
}),
)
.expectBadge({ label: 'build', message: 'passing' })
t.create('build result no branch redirect')
.get('/shields-io/test-repo.svg')
.expectRedirect('/bitbucket/pipelines/shields-io/test-repo/master.svg')

View File

@@ -1,47 +1,11 @@
import Joi from 'joi'
import { metric } from '../text-formatters.js'
import { BaseJsonService, pathParams } from '../index.js'
import { deprecatedService } from '../index.js'
const schema = Joi.object({ activity_total: Joi.number().required() })
export default class Bountysource extends BaseJsonService {
static category = 'funding'
static route = { base: 'bountysource/team', pattern: ':team/activity' }
static openApi = {
'/bountysource/team/{team}/activity': {
get: {
summary: 'Bountysource',
parameters: pathParams({
name: 'team',
example: 'mozilla-core',
}),
},
},
}
static defaultBadgeData = { label: 'bounties' }
static render({ total }) {
return {
message: metric(total),
color: 'brightgreen',
}
}
async fetch({ team }) {
const url = `https://api.bountysource.com/teams/${team}`
return this._requestJson({
schema,
url,
options: {
headers: { Accept: 'application/vnd.bountysource+json; version=2' },
},
})
}
async handle({ team }) {
const json = await this.fetch({ team })
return this.constructor.render({ total: json.activity_total })
}
}
export const Bountysource = deprecatedService({
category: 'funding',
route: {
base: 'bountysource/team',
pattern: ':team/activity',
},
label: 'bountysource',
dateAdded: new Date('2024-07-18'),
})

View File

@@ -1,4 +1,3 @@
import { isMetric } from '../test-validators.js'
import { ServiceTester } from '../tester.js'
export const t = new ServiceTester({
@@ -6,16 +5,7 @@ export const t = new ServiceTester({
title: 'Bountysource',
})
t.create('bounties (valid)')
.get('/team/mozilla-core/activity.json')
.expectBadge({
label: 'bounties',
message: isMetric,
})
t.create('bounties (invalid team)')
.get('/team/not-a-real-team/activity.json')
.expectBadge({
label: 'bounties',
message: 'not found',
})
t.create('bounties').get('/team/mozilla-core/activity.json').expectBadge({
label: 'bountysource',
message: 'no longer available',
})

View File

@@ -4,10 +4,6 @@ export default createServiceFamily({
defaultLabel: 'chocolatey',
serviceBaseUrl: 'chocolatey',
apiBaseUrl: 'https://community.chocolatey.org/api/v2',
odataFormat: 'json',
title: 'Chocolatey',
examplePackageName: 'git',
exampleVersion: '2.19.2',
examplePrereleaseVersion: '2.19.2',
exampleDownloadCount: 2.2e6,
})

View File

@@ -35,12 +35,12 @@ t.create('maintainability letter')
t.create('issues when outer user repos query returns multiple items')
.get('/issues/tensorflow/models.json')
.intercept(nock =>
nock('https://api.codeclimate.com', { allowUnmocked: true })
nock('https://api.codeclimate.com')
.get('/v1/repos?github_slug=tensorflow%2Fmodels')
.reply(200, {
data: [
{
id: 'xxxxxxxxxxxx', // Fake repo id, which is expected to be ignored in favour of the one that does contain snapshot data.
id: 'xxxxxxxxxxxx', // Expected to be ignored in favour of the one that does contain snapshot data.
relationships: {
latest_default_branch_snapshot: {
data: null,
@@ -51,7 +51,7 @@ t.create('issues when outer user repos query returns multiple items')
},
},
{
id: '57e2efacc718d40058000c9b', // Real repo id for tensorflow/models. The test retrieves live data using the real snapshot id below.
id: '57e2efacc718d40058000c9b',
relationships: {
latest_default_branch_snapshot: {
data: {
@@ -65,12 +65,31 @@ t.create('issues when outer user repos query returns multiple items')
},
},
],
})
.get(
'/v1/repos/57e2efacc718d40058000c9b/snapshots/65ae115f34117d0001055101',
)
.reply(200, {
data: {
attributes: {
ratings: [
{
letter: 'D',
measure: {
value: 24.73668395092537,
},
},
],
},
meta: {
issues_count: 11538,
},
},
}),
)
.networkOn() // Combined with allowUnmocked: true, this allows the inner snapshots query to go through.
.expectBadge({
label: 'issues',
message: Joi.number().integer().positive(),
message: '11538',
})
t.create('maintainability letter for non-existent repo')

View File

@@ -23,12 +23,12 @@ t.create('test coverage letter')
t.create('test coverage when outer user repos query returns multiple items')
.get('/coverage/codeclimate/codeclimate.json')
.intercept(nock =>
nock('https://api.codeclimate.com', { allowUnmocked: true })
nock('https://api.codeclimate.com')
.get('/v1/repos?github_slug=codeclimate%2Fcodeclimate')
.reply(200, {
data: [
{
id: 'xxxxxxxxxxxx', // Fake repo id, which is expected to be ignored in favour of the one that does contain snapshot data.
id: 'xxxxxxxxxxxx', // Expected to be ignored in favour of the one that does contain snapshot data.
relationships: {
latest_default_branch_snapshot: {
data: null,
@@ -39,7 +39,7 @@ t.create('test coverage when outer user repos query returns multiple items')
},
},
{
id: '558479d6e30ba034120008a9', // Real repo id for codeclimate/codeclimate. The test retrieves live data using the real test report id below.
id: '558479d6e30ba034120008a9',
relationships: {
latest_default_branch_snapshot: {
data: null,
@@ -53,12 +53,24 @@ t.create('test coverage when outer user repos query returns multiple items')
},
},
],
})
.get(
'/v1/repos/558479d6e30ba034120008a9/test_reports/65a1662cb0077b00013cb4de',
)
.reply(200, {
data: {
attributes: {
covered_percent: 24,
rating: {
letter: 'B',
},
},
},
}),
)
.networkOn() // Combined with allowUnmocked: true, this allows the inner test reports query to go through.
.expectBadge({
label: 'coverage',
message: isIntegerPercentage,
message: '24%',
})
t.create('test coverage percentage for non-existent repo')

View File

@@ -1,4 +0,0 @@
export const IMPROVED_STATUS = 'improved'
export const REGRESSED_STATUS = 'regressed'
export const NO_CHANGE_STATUS = 'no change'
export const NOT_FOUND_STATUS = 'no status found'

View File

@@ -1,11 +0,0 @@
import { deprecatedService } from '../index.js'
export default deprecatedService({
category: 'analysis',
route: {
base: 'criterion',
pattern: ':various*',
},
label: 'criterion',
dateAdded: new Date('2022-10-07'),
})

View File

@@ -1,11 +0,0 @@
import { ServiceTester } from '../tester.js'
export const t = new ServiceTester({
id: 'criterion',
title: 'Criterion',
pathPrefix: '/criterion',
})
t.create('Criterion')
.get('/chmoder/credit_card.json')
.expectBadge({ label: 'criterion', message: 'no longer available' })

View File

@@ -1,5 +1,6 @@
import Joi from 'joi'
import { nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import { BaseJsonService, pathParams } from '../index.js'
const schema = Joi.object({
@@ -53,7 +54,7 @@ export default class Discord extends BaseJsonService {
static render({ members }) {
return {
message: `${members} online`,
message: `${metric(members)} online`,
color: 'brightgreen',
}
}

View File

@@ -1,12 +1,13 @@
import Joi from 'joi'
import { createServiceTester } from '../tester.js'
import { isMetricWithPattern } from '../test-validators.js'
export const t = await createServiceTester()
t.create('gets status for Reactiflux')
.get('/102860784329052160.json')
.expectBadge({
label: 'chat',
message: Joi.string().regex(/^[0-9]+ online$/),
message: isMetricWithPattern(/ online/),
color: 'brightgreen',
})

View File

@@ -17,6 +17,7 @@ const archEnum = [
'mips64',
'mips64le',
'riscv64',
'loong64',
]
// Valid architecture values: https://golang.org/doc/install/source#environment (GOARCH)

View File

@@ -175,7 +175,7 @@ export default class DockerVersion extends BaseJsonService {
})
}
const { version } = await this.transform({
const { version } = this.transform({
tag,
sort,
data,

View File

@@ -2,10 +2,12 @@ import { isSemver } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('docker version (valid, library)').get('/_/alpine.json').expectBadge({
label: 'version',
message: isSemver,
})
t.create('docker version (valid, library)')
.get('/_/memcached.json')
.expectBadge({
label: 'version',
message: isSemver,
})
t.create('docker version (valid, library with tag)')
.get('/_/alpine/latest.json')

View File

@@ -61,6 +61,7 @@ export default class DocsRs extends BaseJsonService {
return await this._requestJson({
schema,
url: `https://docs.rs/crate/${crate}/${version}/status.json`,
httpErrors: version ? { 400: 'malformed version' } : {},
})
}

View File

@@ -2,17 +2,32 @@ import Joi from 'joi'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Passing docs')
.get('/tokio/0.3.0.json')
.expectBadge({ label: 'docs@0.3.0', message: 'passing' })
t.create('Docs with no version specified')
.get('/tokio.json')
.expectBadge({
label: 'docs',
message: Joi.allow('passing', 'failing'),
})
t.create('Failing docs')
.get('/tensorflow/0.16.1.json')
.expectBadge({ label: 'docs@0.16.1', message: 'failing' })
t.create('Passing docs for version').get('/tokio/1.37.0.json').expectBadge({
label: 'docs@1.37.0',
message: 'passing',
color: 'brightgreen',
})
t.create('Failing docs for version').get('/tokio/1.32.1.json').expectBadge({
label: 'docs@1.32.1',
message: 'failing',
color: 'red',
})
t.create('Multiple builds, latest passing')
.get('/bevy_tweening/0.3.1.json')
.expectBadge({ label: 'docs@0.3.1', message: 'passing' })
.expectBadge({
label: 'docs@0.3.1',
message: 'passing',
color: 'brightgreen',
})
t.create('Getting latest version works')
.get('/rand/latest.json')
@@ -26,5 +41,9 @@ t.create('Crate not found')
.expectBadge({ label: 'docs', message: 'not found' })
t.create('Version not found')
.get('/tokio/not-a-version.json')
.get('/tokio/0.8.json')
.expectBadge({ label: 'docs', message: 'not found' })
t.create('Malformed version')
.get('/tokio/not-a-version.json')
.expectBadge({ label: 'docs', message: 'malformed version' })

View File

@@ -1,12 +1,12 @@
import { createServiceTester } from '../tester.js'
import { withRegex } from '../test-validators.js'
import { isMetricWithPattern } from '../test-validators.js'
export const t = await createServiceTester()
t.create('request for existing username')
.get('/ecologi.json')
.expectBadge({
label: 'carbon offset',
message: withRegex(/[\d.]+ tonnes/),
message: isMetricWithPattern(/ tonnes/),
})
t.create('invalid username').get('/non-existent-username.json').expectBadge({

View File

@@ -36,9 +36,14 @@ const endpointSchema = Joi.object({
logoSvg: Joi.string(),
logoColor: optionalStringWhenNamedLogoPresent,
logoWidth: optionalNumberWhenAnyLogoPresent,
logoPosition: optionalNumberWhenAnyLogoPresent,
style: Joi.string(),
cacheSeconds: Joi.number().integer().min(0),
/*
Retained for legacy compatibility
Although this does nothing,
passing it should not throw an error
*/
logoPosition: optionalNumberWhenAnyLogoPresent,
})
// `namedLogo` or `logoSvg`; not both.
.oxor('namedLogo', 'logoSvg')

View File

@@ -77,8 +77,8 @@ The endpoint badge takes a single required query param: <code>url</code>, which
<tr>
<td><code>namedLogo</code></td>
<td>
Default: none. One of the named logos supported by Shields
or <a href="https://simpleicons.org/">simple-icons</a>. Can be
Default: none. One of the
<a href="https://simpleicons.org/">simple-icons</a> slugs. Can be
overridden by the query string.
</td>
</tr>
@@ -90,9 +90,7 @@ The endpoint badge takes a single required query param: <code>url</code>, which
<td><code>logoColor</code></td>
<td>
Default: none. Same meaning as the query string. Can be overridden by
the query string. Only works for named logos and Shields logos. If you
override the color of a multicolor Shield logo, the corresponding
named logo will be used and colored.
the query string. Only works for simple-icons logos.
</td>
</tr>
<tr>
@@ -102,13 +100,6 @@ The endpoint badge takes a single required query param: <code>url</code>, which
the query string.
</td>
</tr>
<tr>
<td><code>logoPosition</code></td>
<td>
Default: none. Same meaning as the query string. Can be overridden by
the query string.
</td>
</tr>
<tr>
<td><code>style</code></td>
<td>
@@ -157,7 +148,6 @@ export default class Endpoint extends BaseJsonService {
logoSvg,
logoColor,
logoWidth,
logoPosition,
style,
cacheSeconds,
}) {
@@ -171,7 +161,6 @@ export default class Endpoint extends BaseJsonService {
logoSvg,
logoColor,
logoWidth,
logoPosition,
style,
// don't allow the user to set cacheSeconds any shorter than this._cacheLength
cacheSeconds: Math.max(

View File

@@ -1,6 +1,6 @@
import zlib from 'zlib'
import { expect } from 'chai'
import { getShieldsIcon, getSimpleIcon } from '../../lib/logos.js'
import { getSimpleIcon } from '../../lib/logos.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
@@ -63,7 +63,7 @@ t.create('named logo')
)
.after((err, res, body) => {
expect(err).not.to.be.ok
expect(body).to.include(getShieldsIcon({ name: 'npm' }))
expect(body).to.include(getSimpleIcon({ name: 'npm' }))
})
t.create('named logo with color')
@@ -83,7 +83,7 @@ t.create('named logo with color')
})
const logoSvg = Buffer.from(
getShieldsIcon({ name: 'npm' }).replace('data:image/svg+xml;base64,', ''),
getSimpleIcon({ name: 'npm' }).replace('data:image/svg+xml;base64,', ''),
'base64',
).toString('ascii')
@@ -99,7 +99,7 @@ t.create('custom svg logo')
)
.after((err, res, body) => {
expect(err).not.to.be.ok
expect(body).to.include(getShieldsIcon({ name: 'npm' }))
expect(body).to.include(getSimpleIcon({ name: 'npm' }))
})
t.create('logoWidth')
@@ -119,6 +119,24 @@ t.create('logoWidth')
logoWidth: 30,
})
// The logoPosition param was removed, but passing it should not
// throw a validation error. It should just do nothing.
t.create('logoPosition')
.get('.json?url=https://example.com/badge')
.intercept(nock =>
nock('https://example.com/').get('/badge').reply(200, {
schemaVersion: 1,
label: 'hey',
message: 'yo',
logoSvg,
logoPosition: 30,
}),
)
.expectBadge({
label: 'hey',
message: 'yo',
})
t.create('Invalid schema')
.get('.json?url=https://example.com/badge')
.intercept(nock =>

View File

@@ -1,11 +1,6 @@
import Joi from 'joi'
import { metric } from '../text-formatters.js'
import {
BaseJsonService,
InvalidResponse,
NotFound,
pathParams,
} from '../index.js'
import { BaseJsonService, InvalidResponse, pathParams } from '../index.js'
/**
* Validates that the schema response is what we're expecting.
@@ -21,7 +16,7 @@ const schema = Joi.object({
.pattern(/^[a-zA-Z0-9\-_+]*$/, {
points: Joi.number().allow(null).required(),
}),
}).optional(),
}).required(),
}).required()
/**
@@ -62,18 +57,18 @@ export default class FreeCodeCampPoints extends BaseJsonService {
username,
},
},
httpErrors: { 404: 'profile not found' },
})
}
static transform(response, username) {
const { entities } = response
if (entities === undefined)
throw new NotFound({ prettyMessage: 'profile not found' })
const { points } = entities.user[username]
if (points === null) throw new InvalidResponse({ prettyMessage: 'private' })
if (points === null) {
throw new InvalidResponse({ prettyMessage: 'private' })
}
return points
}

View File

@@ -1,11 +1,11 @@
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
// Change open since December 2010, hopefully won't get merged or abandoned anytime soon.
// Change open since September 2017, hopefully won't get merged or abandoned anytime soon.
t.create('Gerrit new change')
.get('/2013.json?baseUrl=https://git.eclipse.org/r')
.get('/105728.json?baseUrl=https://git.eclipse.org/r')
.expectBadge({
label: 'change 2013',
label: 'change 105728',
message: 'new',
color: '#2cbe4e',
})

View File

@@ -5,10 +5,10 @@ By default this badge looks for repositories on [gitea.com](https://gitea.com).
To specify another instance like [codeberg](https://codeberg.org/), [forgejo](https://forgejo.org/) or a self-hosted instance, use the \`gitea_url\` query param.
`
function httpErrorsFor() {
function httpErrorsFor(notFoundMessage = 'user or repo not found') {
return {
403: 'private repo',
404: 'user, repo or path not found',
404: notFoundMessage,
}
}

View File

@@ -61,7 +61,7 @@ export default class GiteaLanguageCount extends GiteaBase {
return super.fetch({
schema,
url: `${baseUrl}/api/v1/repos/${user}/${repo}/languages`,
httpErrors: httpErrorsFor('user or repo not found'),
httpErrors: httpErrorsFor(),
})
}

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