Compare commits

...

215 Commits

Author SHA1 Message Date
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
github-actions[bot]
1ab4a8dcec Changelog for Release server-2024-05-01 (#10131)
* 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-05-01 19:57:58 +00:00
dependabot[bot]
c660db5a49 chore(deps-dev): bump react-dom from 18.2.0 to 18.3.1 (#10126)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 18.2.0 to 18.3.1.
- [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/v18.3.1/packages/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  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-04-29 12:51:53 +00:00
dependabot[bot]
f3d1ec4ae8 chore(deps): bump simple-icons from 11.12.0 to 11.13.0 (#10123)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.12.0 to 11.13.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.12.0...11.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 12:40:43 +00:00
dependabot[bot]
dfab763ccb chore(deps-dev): bump clsx from 2.1.0 to 2.1.1 (#10118)
Bumps [clsx](https://github.com/lukeed/clsx) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/lukeed/clsx/releases)
- [Commits](https://github.com/lukeed/clsx/compare/v2.1.0...v2.1.1)

---
updated-dependencies:
- dependency-name: clsx
  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-04-29 12:40:06 +00:00
dependabot[bot]
0e2c69ca80 chore(deps-dev): bump react from 18.2.0 to 18.3.0 (#10114)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 18.2.0 to 18.3.0.
- [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/react)

---
updated-dependencies:
- dependency-name: 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-04-29 12:38:28 +00:00
dependabot[bot]
921b0d5c7d chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.0 to 4.6.1 (#10116)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 12:30:38 +00:00
dependabot[bot]
a316074af7 chore(deps-dev): bump cypress from 13.8.0 to 13.8.1 (#10115)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.8.0 to 13.8.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.8.0...v13.8.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-04-29 12:30:09 +00:00
dependabot[bot]
4ea30625cd chore(deps-dev): bump eslint-plugin-cypress from 2.15.2 to 3.0.1 (#10124)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.15.2 to 3.0.1.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.15.2...v3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-29 12:29:55 +00:00
dependabot[bot]
5630a7d71d chore(deps): bump joi from 17.12.3 to 17.13.0 (#10122)
Bumps [joi](https://github.com/hapijs/joi) from 17.12.3 to 17.13.0.
- [Commits](https://github.com/hapijs/joi/compare/v17.12.3...v17.13.0)

---
updated-dependencies:
- dependency-name: joi
  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-04-29 12:29:14 +00:00
dependabot[bot]
3482c53a02 chore(deps-dev): bump @typescript-eslint/parser from 7.7.0 to 7.7.1 (#10121)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.7.0 to 7.7.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.7.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-04-29 12:28:57 +00:00
dependabot[bot]
29d5d66a31 chore(deps): bump node-pg-migrate from 7.0.0 to 7.2.0 (#10120)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 7.0.0 to 7.2.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.0.0...v7.2.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-04-29 12:27:45 +00:00
dependabot[bot]
7a1933dff6 chore(deps): bump @sentry/node from 7.111.0 to 7.112.2 (#10119)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.111.0 to 7.112.2.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.112.2/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.111.0...7.112.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-04-29 12:27:23 +00:00
chris48s
46ed6f02db improve performance of getIconSize() (#10125)
* load icons once on module load
2024-04-26 19:46:57 +01:00
Pierre Cavin
edae807362 [Hexpm] Fix badges for pre-release only versions (#10112)
* test: make existing test fail

* fix: allow null values for latest_stable_version
2024-04-24 17:06:36 +00:00
chris48s
d6dde3f135 add logoSize to globalQueryParams (#10110) 2024-04-22 13:29:40 +01:00
LitoMore
915ab742d9 feat(logos): support auto-sizing mode (#9191)
Co-authored-by: chris48s <git@chris-shaw.dev>
2024-04-22 11:46:00 +00:00
Leo Q
e8671be7f2 support setting pypiBaseUrl by environment variables and queryParameters; affects [pypi] (#10044)
* support setting pypiBaseUrl by environment variables

* Add support for pypiBaseUrl configuration

* Update Pypi services to include pypiBaseUrl parameter

* change package name example to a more well-known package

* Update custom-environment-variables.yml

* Update Pypi services to include pypiBaseUrl parameter

* fix openapi mismatch

* Update doc/server-secrets.md

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-04-21 16:33:42 +00:00
chris48s
1e5d03fe58 upgrade @docusaurus/core and docusaurus-openapi (#10108) 2024-04-21 17:24:48 +01:00
dependabot[bot]
b35451b0d1 chore(deps): bump qs from 6.12.0 to 6.12.1 (#10099)
Bumps [qs](https://github.com/ljharb/qs) from 6.12.0 to 6.12.1.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.12.0...v6.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-21 15:37:45 +00:00
dependabot[bot]
8114ecf8cf chore(deps): bump @renovatebot/pep440 from 3.0.19 to 3.0.20 (#10101)
Bumps [@renovatebot/pep440](https://github.com/renovatebot/pep440) from 3.0.19 to 3.0.20.
- [Release notes](https://github.com/renovatebot/pep440/releases)
- [Changelog](https://github.com/renovatebot/pep440/blob/main/.releaserc.json)
- [Commits](https://github.com/renovatebot/pep440/compare/3.0.19...3.0.20)

---
updated-dependencies:
- dependency-name: "@renovatebot/pep440"
  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-04-21 15:25:28 +00:00
dependabot[bot]
637344416b chore(deps): bump node-pg-migrate from 6.2.2 to 7.0.0 (#10097)
Bumps [node-pg-migrate](https://github.com/salsita/node-pg-migrate) from 6.2.2 to 7.0.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/v6.2.2...v7.0.0)

---
updated-dependencies:
- dependency-name: node-pg-migrate
  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-04-21 15:21:50 +00:00
dependabot[bot]
91bd8dfc73 chore(deps): bump prom-client from 15.1.1 to 15.1.2 (#10096)
Bumps [prom-client](https://github.com/siimon/prom-client) from 15.1.1 to 15.1.2.
- [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.1...v15.1.2)

---
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-04-21 15:19:09 +00:00
dependabot[bot]
c00ad438c6 chore(deps): bump @sentry/node from 7.110.0 to 7.111.0 (#10098)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.110.0 to 7.111.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.111.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.0...7.111.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-04-21 15:18:50 +00:00
dependabot[bot]
ccba972ea7 chore(deps-dev): bump danger from 11.3.1 to 12.1.0 (#10100)
Bumps [danger](https://github.com/danger/danger-js) from 11.3.1 to 12.1.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/11.3.1...12.1.0)

---
updated-dependencies:
- dependency-name: danger
  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-04-21 15:17:22 +00:00
dependabot[bot]
50d438243a chore(deps-dev): bump eslint-plugin-cypress from 2.15.1 to 2.15.2 (#10102)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.15.1 to 2.15.2.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.15.1...v2.15.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-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-04-21 15:15:47 +00:00
dependabot[bot]
6d8ef6a371 chore(deps-dev): bump eslint-plugin-mocha from 10.4.2 to 10.4.3 (#10103)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 10.4.2 to 10.4.3.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/10.4.2...10.4.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-mocha
  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-04-21 15:15:32 +00:00
dependabot[bot]
6053624798 chore(deps-dev): bump @typescript-eslint/parser from 7.6.0 to 7.7.0 (#10104)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-21 15:15:18 +00:00
dependabot[bot]
5775cf1e1f chore(deps-dev): bump cypress from 13.7.3 to 13.8.0 (#10105)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.7.3 to 13.8.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.7.3...v13.8.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-04-21 15:15:01 +00:00
dependabot[bot]
68bfc3cf25 chore(deps): bump webextension-store-meta from 1.1.0 to 1.2.1; test [chromewebstore] (#10094)
* chore(deps): bump webextension-store-meta from 1.1.0 to 1.2.1

Bumps [webextension-store-meta](https://github.com/awesome-webextension/webextension-store-meta) from 1.1.0 to 1.2.1.
- [Changelog](https://github.com/awesome-webextension/webextension-store-meta/blob/main/CHANGELOG.md)
- [Commits](https://github.com/awesome-webextension/webextension-store-meta/commits/v1.2.1)

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

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

* update import

* fix the mocked tests

I don't love this, but it will do

---------

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-04-18 18:17:59 +00:00
dependabot[bot]
d8e3452fd2 chore(deps-dev): bump eslint-plugin-mocha from 10.4.1 to 10.4.2 (#10085)
* chore(deps-dev): bump eslint-plugin-mocha from 10.4.1 to 10.4.2

Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 10.4.1 to 10.4.2.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/10.4.2/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/10.4.1...10.4.2)

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

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

* fix mocha/prefer-arrow-callback errors

---------

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-04-17 19:16:10 +00:00
dependabot[bot]
dd8e2cdcca chore(deps): bump simple-icons from 11.10.0 to 11.12.0 (#10089)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.10.0 to 11.12.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.10.0...11.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 15:56:39 +00:00
dependabot[bot]
d21debe02a chore(deps): bump path-to-regexp from 6.2.1 to 6.2.2 (#10087)
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v6.2.1...v6.2.2)

---
updated-dependencies:
- dependency-name: path-to-regexp
  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-04-17 15:56:23 +00:00
dependabot[bot]
219c168f0a chore(deps): bump @sentry/node from 7.109.0 to 7.110.0 (#10086)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.109.0 to 7.110.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.109.0...7.110.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-04-17 15:50:05 +00:00
dependabot[bot]
f6a5495756 chore(deps-dev): bump @typescript-eslint/parser from 7.5.0 to 7.6.0 (#10090)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.6.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 15:47:39 +00:00
dependabot[bot]
37e2bb43a4 chore(deps-dev): bump cypress from 13.7.2 to 13.7.3 (#10091)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.7.2 to 13.7.3.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.7.2...v13.7.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 15:47:20 +00:00
jNullj
b0c649655e Add 0BSD license to licenseTypes and [PypiLicense] (#10092)
Part of issue #10058
2024-04-17 15:36:14 +00:00
Ben Ramsey
50646f0f2b Update Mastodon profile URL (#10082)
Fixes #10078
2024-04-17 15:14:49 +00:00
Marat Reymers
caea7597f9 [GitHubGoMod] Ignore comment after version (fixes #10079) (#10080)
* [GithubGoMod] Ignore comment after version (fixes #10079)

* add unit tests for GithubGoModGoVersion.transform

---------

Co-authored-by: chris48s <git@chris-shaw.dev>
2024-04-07 08:02:49 +00:00
chris48s
60056fcd6c Revert "chore(deps): bump simple-icons from 11.10.0 to 11.11.0 (#10068)" (#10075)
This reverts commit d1703c0592.
2024-04-05 20:44:18 +01:00
dependabot[bot]
d1703c0592 chore(deps): bump simple-icons from 11.10.0 to 11.11.0 (#10068)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.10.0 to 11.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.10.0...11.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 19:01:01 +00:00
dependabot[bot]
0821ff247f chore(deps-dev): bump tsd from 0.30.7 to 0.31.0 (#10064)
Bumps [tsd](https://github.com/tsdjs/tsd) from 0.30.7 to 0.31.0.
- [Release notes](https://github.com/tsdjs/tsd/releases)
- [Commits](https://github.com/tsdjs/tsd/compare/v0.30.7...v0.31.0)

---
updated-dependencies:
- dependency-name: tsd
  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-04-05 18:54:22 +00:00
dependabot[bot]
8537f2d46b chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.2 to 48.2.3 (#10065)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.2 to 48.2.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v48.2.2...v48.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 18:54:06 +00:00
dependabot[bot]
642ddf70e1 chore(deps): bump pg from 8.11.3 to 8.11.5 (#10066)
Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.11.3 to 8.11.5.
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.11.5/packages/pg)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 18:53:49 +00:00
dependabot[bot]
f2ec0b8ff9 chore(deps): bump joi from 17.12.2 to 17.12.3 (#10069)
Bumps [joi](https://github.com/hapijs/joi) from 17.12.2 to 17.12.3.
- [Commits](https://github.com/hapijs/joi/compare/v17.12.2...v17.12.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-04-05 18:53:23 +00:00
dependabot[bot]
65bd5def14 chore(deps-dev): bump cypress from 13.7.1 to 13.7.2 (#10071)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.7.1 to 13.7.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.7.1...v13.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 18:52:43 +00:00
dependabot[bot]
66e2cf6947 chore(deps-dev): bump @typescript-eslint/parser from 7.4.0 to 7.5.0 (#10072)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.4.0 to 7.5.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.5.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 18:52:01 +00:00
dependabot[bot]
8697cdd59d chore(deps): bump undici in /.github/actions/docusaurus-swizzled-warning (#10063)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.3 to 5.28.4.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.3...v5.28.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 18:59:46 +00:00
Travis Collins
a1e498226a Perf: Librariesio repo dependencies (#10062) 2024-04-04 18:57:23 +00:00
Timothy Johnson
10b2f88875 [Chocolatey Nuget] Fix "not found" error for chocolatey badge (#10060) 2024-04-02 17:00:45 +00:00
github-actions[bot]
584e9fbec4 Changelog for Release server-2024-04-01 (#10057)
* 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-04-01 13:22:55 +00:00
dependabot[bot]
cb2d25ea6e chore(deps): bump simple-icons from 11.9.0 to 11.10.0 (#10055)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.9.0 to 11.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.9.0...11.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 16:32:00 +00:00
dependabot[bot]
2ddbab4f65 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.1 to 48.2.2 (#10050)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.1 to 48.2.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.2.1...v48.2.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-03-29 16:23:55 +00:00
dependabot[bot]
d9a8f4b1f8 chore(deps-dev): bump simple-git-hooks from 2.11.0 to 2.11.1 (#10054)
Bumps [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) from 2.11.0 to 2.11.1.
- [Release notes](https://github.com/toplenboren/simple-git-hooks/releases)
- [Changelog](https://github.com/toplenboren/simple-git-hooks/blob/master/Changelog.md)
- [Commits](https://github.com/toplenboren/simple-git-hooks/compare/2.11.0...2.11.1)

---
updated-dependencies:
- dependency-name: simple-git-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-03-29 16:23:38 +00:00
dependabot[bot]
3ab4d56ec8 chore(deps): bump glob from 10.3.10 to 10.3.12 (#10053)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.10 to 10.3.12.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.10...v10.3.12)

---
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-03-29 16:23:20 +00:00
dependabot[bot]
6bb54e360f chore(deps-dev): bump @typescript-eslint/parser from 7.3.1 to 7.4.0 (#10051)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.3.1 to 7.4.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.4.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 16:22:13 +00:00
dependabot[bot]
b1a5a430a3 chore(deps-dev): bump mocha from 10.3.0 to 10.4.0 (#10052)
Bumps [mocha](https://github.com/mochajs/mocha) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v10.3.0...v10.4.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-03-29 16:21:52 +00:00
dependabot[bot]
7249900829 chore(deps): bump prom-client from 15.1.0 to 15.1.1 (#10049)
Bumps [prom-client](https://github.com/siimon/prom-client) from 15.1.0 to 15.1.1.
- [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.0...v15.1.1)

---
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-03-29 16:21:38 +00:00
dependabot[bot]
cdc3f1617f chore(deps): bump @sentry/node from 7.108.0 to 7.109.0 (#10048)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.108.0 to 7.109.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.109.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.108.0...7.109.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-03-29 16:20:58 +00:00
dependabot[bot]
f8d444b13e chore(deps-dev): bump express from 4.18.2 to 4.19.2 (#10047)
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 16:20:43 +00:00
chris48s
3c60625c51 improve performance of [GithubLastCommit] [GitlabLastCommit] [GiteaLastCommit] (#10046)
* improve performance of last commit badges

* pass param in the right place
2024-03-25 15:12:28 +00:00
ReubenFrankel
5405dad389 [BitbucketLastCommit] Add Bitbucket last commit (#10043)
* Add Bitbucket last commit

* Update schemas

* Limit API results to 1

* Make `branch` a required path param

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

* Better message for no commits found

* Update 404 message

* Use common `relativeUri` validator for `path`

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-03-25 15:05:32 +00:00
ReubenFrankel
4f141dfa84 [GithubLastCommit] [GitlabLastCommit] [GiteaLastCommit] Support file path for last commit (#10041)
* Support file path for GitHub last commit

* Support file path for GitLab last commit

* Support file path for Gitea last commit

* Define common `relativeUri` validator

* Sort imports

* Add more tests for path variations

* Fix test name

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

* Update Gitea 404 message

* Handle case when no commits are returned for GitHub and GitLab

---------

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2024-03-25 12:10:04 +00:00
dependabot[bot]
9fd5546842 chore(deps-dev): bump webpack-dev-middleware from 5.3.3 to 5.3.4 (#10042)
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:37:35 +00:00
dependabot[bot]
3d412f9a9d chore(deps): bump qs from 6.11.2 to 6.12.0 (#10022)
Bumps [qs](https://github.com/ljharb/qs) from 6.11.2 to 6.12.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.11.2...v6.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:35:34 +00:00
dependabot[bot]
11b7fa7612 chore(deps-dev): bump eslint-plugin-mocha from 10.3.0 to 10.4.1 (#10020)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 10.3.0 to 10.4.1.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/10.4.1/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/10.3.0...10.4.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-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-03-23 20:24:59 +00:00
dependabot[bot]
d72c1d0ad2 chore(deps): bump got from 14.2.0 to 14.2.1 (#10016)
Bumps [got](https://github.com/sindresorhus/got) from 14.2.0 to 14.2.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v14.2.0...v14.2.1)

---
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-03-23 20:22:25 +00:00
dependabot[bot]
6131c078c5 chore(deps): bump query-string from 8.2.0 to 9.0.0 (#10002)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 8.2.0 to 9.0.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v8.2.0...v9.0.0)

---
updated-dependencies:
- dependency-name: query-string
  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-03-23 20:22:01 +00:00
dependabot[bot]
9ed04487e0 chore(deps): bump fast-xml-parser from 4.3.4 to 4.3.6 (#10036)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.3.4 to 4.3.6.
- [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.4...v4.3.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:19:44 +00:00
dependabot[bot]
38502168bc chore(deps-dev): bump follow-redirects from 1.15.4 to 1.15.6 (#10031)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:18:20 +00:00
dependabot[bot]
1752214bf6 chore(deps): bump @sentry/node from 7.102.1 to 7.108.0 (#10038)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.102.1 to 7.108.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.108.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.102.1...7.108.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-03-23 20:15:48 +00:00
dependabot[bot]
62a9eec072 chore(deps-dev): bump simple-git-hooks from 2.9.0 to 2.11.0 (#10040)
Bumps [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) from 2.9.0 to 2.11.0.
- [Release notes](https://github.com/toplenboren/simple-git-hooks/releases)
- [Changelog](https://github.com/toplenboren/simple-git-hooks/blob/master/Changelog.md)
- [Commits](https://github.com/toplenboren/simple-git-hooks/compare/2.9.0...2.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:15:32 +00:00
dependabot[bot]
b455adf9f3 chore(deps): bump simple-icons from 11.8.0 to 11.9.0 (#10037)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.8.0 to 11.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.8.0...11.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:14:21 +00:00
dependabot[bot]
06c0a36005 chore(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.34.1 (#10034)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/v7.34.1/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:13:06 +00:00
dependabot[bot]
9fa83aacae chore(deps-dev): bump @typescript-eslint/parser from 7.0.2 to 7.3.1 (#10035)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.0.2 to 7.3.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.3.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-03-23 20:07:07 +00:00
dependabot[bot]
8d19002f98 chore(deps-dev): bump eslint-plugin-jsdoc from 48.2.0 to 48.2.1 (#10015)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.0 to 48.2.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v48.2.0...v48.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:06:18 +00:00
dependabot[bot]
33e7b0b653 chore(deps-dev): bump cypress from 13.6.6 to 13.7.1 (#10039)
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.6.6 to 13.7.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.6.6...v13.7.1)

---
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-03-23 20:04:52 +00:00
dependabot[bot]
df44219458 chore(deps-dev): bump eslint from 8.56.0 to 8.57.0 (#10006)
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:04:32 +00:00
dependabot[bot]
fabfdcbb47 chore(deps-dev): bump nock from 13.5.3 to 13.5.4 (#10005)
Bumps [nock](https://github.com/nock/nock) from 13.5.3 to 13.5.4.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.5.3...v13.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-23 20:02:28 +00:00
dependabot[bot]
8c12317574 chore(deps-dev): bump tsd from 0.30.6 to 0.30.7 (#10000)
Bumps [tsd](https://github.com/tsdjs/tsd) from 0.30.6 to 0.30.7.
- [Release notes](https://github.com/tsdjs/tsd/releases)
- [Commits](https://github.com/tsdjs/tsd/compare/v0.30.6...v0.30.7)

---
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-03-23 20:02:11 +00:00
chris48s
bd3a11b4b6 upgrade to docusaurus 3 (#9820)
* update packages

* add plugin to strip autolinks in code blocks

* fix all the documentation for MDXv3

* remove check-docusaurus-versions

in docusaurus 3 this is now a hard error, not just a warning

* port upstream change to Curl component

fixes performing the 'execute' action when pressing enter
2024-03-23 19:54:57 +00:00
chris48s
df8049a765 redirect [npm] /dt to /d18m (#10033)
* redirect [npm] /dt to /d18m

* fix unit test
2024-03-23 19:38:05 +00:00
dependabot[bot]
f84041780c chore(deps): bump simple-icons from 11.7.0 to 11.8.0 (#10026)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.7.0 to 11.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.7.0...11.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 13:55:06 +00:00
Mo
1cf1c0a352 Add [JSR] version service (#10030)
* feat: add JSR version badge

* change the label to lowercase

* fix tests
2024-03-18 13:53:59 +00:00
dependabot[bot]
671f4eb2ba chore(deps): bump simple-icons from 11.5.0 to 11.7.0 (#10014)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 11.5.0 to 11.7.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/11.5.0...11.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-10 18:36:22 +00:00
jNullj
c6be456d9c Add [snapcraft] version badge (#9976)
* Add snapstore version badge

Fixes badges/shields#9103

* Add basic test for Snapcraft version

* Handle snapstore-version - package not found

* Add test for invalid snapcraft package

* Remove redundent SnapstoreBase class

not needed as there is no auth

* Remove logo from default

The project convention is using namedLogo by default only for social badges.
This commit removes the default logo usage as this badge is not in the social category.

* Rename snapstore to snapcraft

Keep 1 convention for the snapcraft badge, use only snapcraft and ditch snapstore.

* Fix SnapcraftVersion schema

* Use renderVersionBadge

Replace the costume render in SnapcraftVersion with renderVersionBadge

* Rename folder from snapstore to snapcraft

* Add track & risk path parameters for SnapcraftVersion

enhancing control and clarity

* Add architecture query parameter to SnapcraftVersion

Added architecture query parameter: The snapcraft-version.service.js file now accepts an optional arch query parameter to specify the desired architecture for the Snap package. This defaults to amd64 if not provided.

If an unsupported architecture is specified in the query parameter, a NotFound error is thrown with a specific message indicating that the requested architecture is not found.

The snapcraft-version.tester.js file is updated to include a new test case that verifies the behavior when using the arch query parameter and also includes a test case for handling an invalid architecture.

* move filter logic into a transform function

* Fix filter logic

The goal here was to filter by all conditions with logic and.
Before this fix the only the logic of the last filter is used.

* Add tests for SnapcraftVersion.transform
2024-03-10 10:12:58 +00:00
201 changed files with 10249 additions and 6471 deletions

View File

@@ -205,9 +205,9 @@
}
},
"node_modules/undici": {
"version": "5.28.3",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
"integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
"version": "5.28.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},

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

@@ -1,16 +0,0 @@
#!/bin/bash
set -euo pipefail
# Docusaurus outputs some important errors as log messages
# but doesn't actually fail
# https://github.com/facebook/docusaurus/blob/v2.4.3/packages/docusaurus/src/server/siteMetadata.ts#L75-L92
# this script runs `docusaurus build`. If it outputs any [ERROR]s, we exit with 1
if ( npm run build 2>&1 | grep '\[ERROR\]' )
then
echo "You probably need to run: npm update @docusaurus/preset-classic"
exit 1
else
exit 0
fi

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

@@ -1,23 +0,0 @@
name: Check Docusaurus Plugin Versions
on:
pull_request:
types: [opened, reopened, synchronize]
push:
branches-ignore:
- 'gh-pages'
- 'dependabot/**'
jobs:
check-docusaurus-versions:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 20
cypress: true
- run: .github/scripts/check-docusaurus-versions.sh

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

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'

View File

@@ -4,6 +4,59 @@ Note: this changelog is for the shields.io server. The changelog for the badge-m
---
## 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)
- feat(logos): support auto-sizing mode [#9191](https://github.com/badges/shields/issues/9191) [#10110](https://github.com/badges/shields/issues/10110) [#10125](https://github.com/badges/shields/issues/10125)
- support setting pypiBaseUrl by environment variables and queryParameters; affects [pypi] [#10044](https://github.com/badges/shields/issues/10044)
- Add 0BSD license to licenseTypes and [PypiLicense] [#10092](https://github.com/badges/shields/issues/10092)
- Update Mastodon profile URL [#10082](https://github.com/badges/shields/issues/10082)
- [GitHubGoMod] Ignore comment after version (fixes #10079) [#10080](https://github.com/badges/shields/issues/10080)
- Perf: Librariesio repo dependencies [#10062](https://github.com/badges/shields/issues/10062)
- [Chocolatey Nuget] Fix "not found" error for chocolatey badge [#10060](https://github.com/badges/shields/issues/10060)
- Dependency updates
## server-2024-04-01
- improve performance of [GithubLastCommit] [GitlabLastCommit] [GiteaLastCommit] [#10046](https://github.com/badges/shields/issues/10046)
- [BitbucketLastCommit] Add Bitbucket last commit [#10043](https://github.com/badges/shields/issues/10043)
- [GithubLastCommit] [GitlabLastCommit] [GiteaLastCommit] Support file path for last commit [#10041](https://github.com/badges/shields/issues/10041)
- upgrade to docusaurus 3 [#9820](https://github.com/badges/shields/issues/9820)
- redirect [npm] /dt to /d18m [#10033](https://github.com/badges/shields/issues/10033)
- Add [JSR] version service [#10030](https://github.com/badges/shields/issues/10030)
- Add [snapcraft] version badge [#9976](https://github.com/badges/shields/issues/9976)
- Dependency updates
## server-2024-03-01
- feat(gitea): add last commit badge [#9995](https://github.com/badges/shields/issues/9995)
@@ -159,7 +212,7 @@ Other changes in this release:
## server-2023-05-01
** Removal:** For users who need to maintain a Github Token pool, storage has been provided via the `RedisTokenPersistence` and `REDIS_URL` settings. This feature was deprecated in `server-2023-03-01`. As of this release, the `RedisTokenPersistence` backend is now removed. If you are using this feature, you will need to migrate to using the `SQLTokenPersistence` backend for storage and provide a postgres connection string via the `POSTGRES_URL` setting. [#8922](https://github.com/badges/shields/issues/8922)
**Removal:** For users who need to maintain a Github Token pool, storage has been provided via the `RedisTokenPersistence` and `REDIS_URL` settings. This feature was deprecated in `server-2023-03-01`. As of this release, the `RedisTokenPersistence` backend is now removed. If you are using this feature, you will need to migrate to using the `SQLTokenPersistence` backend for storage and provide a postgres connection string via the `POSTGRES_URL` setting. [#8922](https://github.com/badges/shields/issues/8922)
- fail to start server if there are duplicate service names [#9099](https://github.com/badges/shields/issues/9099)
- [SourceForge] Added badges for SourceForge [#9078](https://github.com/badges/shields/issues/9078) [#9102](https://github.com/badges/shields/issues/9102)

View File

@@ -29,7 +29,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 +99,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.

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

@@ -0,0 +1,5 @@
const DEFAULT_LOGO_HEIGHT = 14
module.exports = {
DEFAULT_LOGO_HEIGHT,
}

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

@@ -3,6 +3,7 @@
const { normalizeColor, toSvgColor } = require('./color')
const badgeRenderers = require('./badge-renderers')
const { stripXmlWhitespace } = require('./xml')
const { DEFAULT_LOGO_HEIGHT } = require('./constants')
/*
note: makeBadge() is fairly thinly wrapped so if we are making changes here
@@ -16,7 +17,7 @@ module.exports = function makeBadge({
color,
labelColor,
logo,
logoPosition,
logoSize,
logoWidth,
links = ['', ''],
}) {
@@ -45,7 +46,7 @@ module.exports = function makeBadge({
throw new Error(`Unknown badge style: '${style}'`)
}
logoWidth = +logoWidth || (logo ? 14 : 0)
logoWidth = +logoWidth || (logo ? DEFAULT_LOGO_HEIGHT : 0)
return stripXmlWhitespace(
render({
@@ -53,8 +54,8 @@ module.exports = function makeBadge({
message,
links,
logo,
logoPosition,
logoWidth,
logoSize,
logoPadding: logo && label.length ? 3 : 0,
color: toSvgColor(color),
labelColor: toSvgColor(labelColor),

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

@@ -52,6 +52,8 @@ public:
authorizedOrigins: 'NPM_ORIGINS'
obs:
authorizedOrigins: 'OBS_ORIGINS'
pypi:
baseUri: 'PYPI_URL'
sonar:
authorizedOrigins: 'SONAR_ORIGINS'
teamcity:

View File

@@ -22,6 +22,8 @@ public:
restApiVersion: '2022-11-28'
obs:
authorizedOrigins: 'https://api.opensuse.org'
pypi:
baseUri: 'https://pypi.org'
weblate:
authorizedOrigins: 'https://hosted.weblate.org'
trace: false

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

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

View File

@@ -2,7 +2,8 @@ import {
decodeDataUrlFromQueryParam,
prepareNamedLogo,
} from '../../lib/logos.js'
import { svg2base64 } from '../../lib/svg-helpers.js'
import { svg2base64, getIconSize } from '../../lib/svg-helpers.js'
import { DEFAULT_LOGO_HEIGHT } from '../../badge-maker/lib/constants.js'
import coalesce from './coalesce.js'
import toArray from './to-array.js'
@@ -22,9 +23,8 @@ import toArray from './to-array.js'
// 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.
// 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.
@@ -55,7 +55,7 @@ export default function coalesceBadge(
} = overrides
let {
logoWidth: overrideLogoWidth,
logoPosition: overrideLogoPosition,
logoSize: overrideLogoSize,
color: overrideColor,
labelColor: overrideLabelColor,
} = overrides
@@ -76,7 +76,6 @@ export default function coalesceBadge(
overrideLabelColor = `${overrideLabelColor}`
}
overrideLogoWidth = +overrideLogoWidth || undefined
overrideLogoPosition = +overrideLogoPosition || undefined
const {
isError,
@@ -87,8 +86,8 @@ export default function coalesceBadge(
logoSvg: serviceLogoSvg,
namedLogo: serviceNamedLogo,
logoColor: serviceLogoColor,
logoSize: serviceLogoSize,
logoWidth: serviceLogoWidth,
logoPosition: serviceLogoPosition,
link: serviceLink,
cacheSeconds: serviceCacheSeconds,
style: serviceStyle,
@@ -119,7 +118,7 @@ export default function coalesceBadge(
style = 'flat'
}
let namedLogo, namedLogoColor, logoWidth, logoPosition, logoSvgBase64
let namedLogo, namedLogoColor, logoSize, logoWidth, logoSvgBase64
if (overrideLogo) {
// `?logo=` could be a named logo or encoded svg.
const overrideLogoSvgBase64 = decodeDataUrlFromQueryParam(overrideLogo)
@@ -133,8 +132,8 @@ export default function coalesceBadge(
}
// If the logo has been overridden it does not make sense to inherit the
// original width or position.
logoSize = overrideLogoSize
logoWidth = overrideLogoWidth
logoPosition = overrideLogoPosition
} else {
if (serviceLogoSvg) {
logoSvgBase64 = svg2base64(serviceLogoSvg)
@@ -145,13 +144,20 @@ export default function coalesceBadge(
)
namedLogoColor = coalesce(overrideLogoColor, serviceLogoColor)
}
logoSize = coalesce(overrideLogoSize, serviceLogoSize)
logoWidth = coalesce(overrideLogoWidth, serviceLogoWidth)
logoPosition = coalesce(overrideLogoPosition, serviceLogoPosition)
}
if (namedLogo) {
const iconSize = getIconSize(String(namedLogo).toLowerCase())
if (!logoWidth && iconSize && logoSize === 'auto') {
logoWidth = (iconSize.width / iconSize.height) * DEFAULT_LOGO_HEIGHT
}
logoSvgBase64 = prepareNamedLogo({
name: namedLogo,
color: namedLogoColor,
size: logoSize,
style,
})
}
@@ -178,7 +184,7 @@ export default function coalesceBadge(
namedLogo,
logo: logoSvgBase64,
logoWidth,
logoPosition,
logoSize,
links: toArray(overrideLink || serviceLink),
cacheLengthSeconds: coalesce(serviceCacheSeconds, defaultCacheSeconds),
}

View File

@@ -195,14 +195,13 @@ describe('coalesceBadge', function () {
).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,
},
{},
@@ -260,6 +259,20 @@ describe('coalesceBadge', function () {
})
})
describe('Logo size', function () {
it('overrides the logoSize', function () {
expect(coalesceBadge({ logoSize: 'auto' }, {}, {})).to.include({
logoSize: 'auto',
})
})
it('applies the logo size', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoSize: 'auto' }, {}),
).to.include({ logoSize: 'auto' })
})
})
describe('Logo width', function () {
it('overrides the logoWidth', function () {
expect(coalesceBadge({ logoWidth: 20 }, {}, {})).to.include({
@@ -274,20 +287,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

@@ -6,7 +6,7 @@ import coalesce from './coalesce.js'
// https://github.com/royriojas/coalescy for these tests!
describe('coalesce', function () {
test(coalesce, function () {
test(coalesce, () => {
given().expect(undefined)
given(null, []).expect([])
given(null, [], {}).expect([])

View File

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

View File

@@ -9,6 +9,7 @@ const globalParamRefs = [
{ $ref: '#/components/parameters/style' },
{ $ref: '#/components/parameters/logo' },
{ $ref: '#/components/parameters/logoColor' },
{ $ref: '#/components/parameters/logoSize' },
{ $ref: '#/components/parameters/label' },
{ $ref: '#/components/parameters/labelColor' },
{ $ref: '#/components/parameters/color' },
@@ -140,6 +141,17 @@ function category2openapi({ category, services, sort = false }) {
},
example: 'violet',
},
logoSize: {
name: 'logoSize',
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.',
schema: {
type: 'string',
},
example: 'auto',
},
label: {
name: 'label',
in: 'query',

View File

@@ -93,6 +93,17 @@ const expected = {
schema: { type: 'string' },
example: 'violet',
},
logoSize: {
name: 'logoSize',
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.',
schema: {
type: 'string',
},
example: 'auto',
},
label: {
name: 'label',
in: 'query',
@@ -158,6 +169,7 @@ const expected = {
{ $ref: '#/components/parameters/style' },
{ $ref: '#/components/parameters/logo' },
{ $ref: '#/components/parameters/logoColor' },
{ $ref: '#/components/parameters/logoSize' },
{ $ref: '#/components/parameters/label' },
{ $ref: '#/components/parameters/labelColor' },
{ $ref: '#/components/parameters/color' },
@@ -213,6 +225,7 @@ const expected = {
{ $ref: '#/components/parameters/style' },
{ $ref: '#/components/parameters/logo' },
{ $ref: '#/components/parameters/logoColor' },
{ $ref: '#/components/parameters/logoSize' },
{ $ref: '#/components/parameters/label' },
{ $ref: '#/components/parameters/labelColor' },
{ $ref: '#/components/parameters/color' },

View File

@@ -1,4 +1,4 @@
import Sentry from '@sentry/node'
import * as Sentry from '@sentry/node'
const listeners = []

View File

@@ -139,6 +139,9 @@ const publicConfigSchema = Joi.object({
nexus: defaultService,
npm: defaultService,
obs: defaultService,
pypi: {
baseUri: requiredUrl,
},
sonar: defaultService,
teamcity: defaultService,
weblate: defaultService,

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

@@ -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,12 +277,19 @@ 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
[account page](https://www.pepy.tech/user).
### PyPI
- `PYPI_URL` (yml: `public.pypi.baseUri`)
`PYPI_URL` can be used to optionally send all the PyPI requests to a Self-hosted Pypi registry,
users can also override this by query parameter `pypiBaseUrl`.
### SymfonyInsight (formerly Sensiolabs)
- `SL_INSIGHT_USER_UUID` (yml: `private.sl_insight_userUuid`)
@@ -323,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

@@ -1,5 +1,6 @@
const lightCodeTheme = require('prism-react-renderer').themes.github
const darkCodeTheme = require('prism-react-renderer').themes.dracula
const stripCodeBlockLinks = require('./src/plugins/strip-code-block-links')
/** @type {import('@docusaurus/types').Config} */
const config = {
@@ -24,6 +25,14 @@ const config = {
],
],
markdown: {
mdx1Compat: {
comments: true,
admonitions: true,
headingIds: true,
},
},
presets: [
[
'docusaurus-preset-openapi',
@@ -43,6 +52,7 @@ const config = {
api: {
path: 'categories',
routeBasePath: 'badges',
rehypePlugins: [stripCodeBlockLinks],
},
}),
],

View File

@@ -8,14 +8,10 @@ Shields.io is possible thanks to the people and companies who donate money, serv
<ul>
<li>
<a href="https://nodeping.com/">
NodePing
</a>
<a href="https://nodeping.com/">NodePing</a>
</li>
<li>
<a href="https://sentry.io/">
Sentry
</a>
<a href="https://sentry.io/">Sentry</a>
</li>
</ul>
@@ -24,7 +20,7 @@ Shields.io is possible thanks to the people and companies who donate money, serv
<p>
<object
data="https://opencollective.com/shields/tiers/sponsor.svg?avatarHeight=80&width=600"
class="opencollective-image"
className="opencollective-image"
></object>
</p>
@@ -35,7 +31,7 @@ Shields.io is possible thanks to the people and companies who donate money, serv
<p>
<object
data="https://opencollective.com/shields/tiers/backer.svg?width=600"
class="opencollective-image">
className="opencollective-image">
</object>
</p>
@@ -46,7 +42,7 @@ Shields.io is possible thanks to the people and companies who donate money, serv
<p>
<object
data="https://opencollective.com/shields/contributors.svg?width=600"
class="opencollective-image"
className="opencollective-image"
></object>
</p>

View File

@@ -0,0 +1,30 @@
const { visit } = require('unist-util-visit')
function stripCodeBlockLinks() {
/*
Docusaurus 3 uses [remark-gfm](https://github.com/remarkjs/remark-gfm)
One of the "features" of remark-gfm is that it automatically looks for URLs
and email addresses, and automatically wraps them in <a> tags.
This happens even if the URL is inside a <code> block.
This behaviour is
a) mostly unhelpful and
b) non-configurable
This plugin removes <a> tags which appear inside a <code> block.
*/
return tree => {
visit(tree, ['mdxJsxTextElement', 'mdxJsxFlowElement', 'element'], node => {
if (node.name === 'code' || node.tagName === 'code') {
const links = node.children.filter(child => child.tagName === 'a')
links.forEach(link => {
const linkText = link.children.map(child => child.value).join('')
const linkIndex = node.children.indexOf(link)
node.children.splice(linkIndex, 1, { type: 'text', value: linkText })
})
}
})
}
}
module.exports = stripCodeBlockLinks

View File

@@ -234,6 +234,7 @@ function Curl({ postman, codeSamples }) {
)}
key={lang.tabName || lang.label}
onClick={() => setLanguage(lang)}
type="button"
>
{lang.tabName || lang.label}
</button>

View File

@@ -1,5 +1,4 @@
import * as originalSimpleIcons from 'simple-icons/icons'
import { svg2base64 } from './svg-helpers.js'
function loadSimpleIcons() {
const simpleIcons = {}
@@ -16,10 +15,10 @@ function loadSimpleIcons() {
const icon = originalSimpleIcons[key]
const { title, slug, hex } = icon
icon.base64 = {
default: svg2base64(icon.svg.replace('<svg', `<svg fill="#${hex}"`)),
light: svg2base64(icon.svg.replace('<svg', '<svg fill="whitesmoke"')),
dark: svg2base64(icon.svg.replace('<svg', '<svg fill="#333"')),
icon.styles = {
default: icon.svg.replace('<svg', `<svg fill="#${hex}"`),
light: icon.svg.replace('<svg', '<svg fill="whitesmoke"'),
dark: icon.svg.replace('<svg', '<svg fill="#333"'),
}
// There are a few instances where multiple icons have the same title

View File

@@ -8,7 +8,7 @@ describe('loadSimpleIcons', function () {
})
it('prepares three color themes', function () {
expect(simpleIcons.sentry.base64).to.have.all.keys(
expect(simpleIcons.sentry.styles).to.have.all.keys(
'default',
'light',
'dark',

View File

@@ -5,7 +5,7 @@ import {
normalizeColor,
} from '../badge-maker/lib/color.js'
import coalesce from '../core/base-service/coalesce.js'
import { svg2base64 } from './svg-helpers.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()
@@ -88,25 +88,42 @@ function getSimpleIconStyle({ icon, style }) {
return 'default'
}
function getSimpleIcon({ name, color, style }) {
// The `size` parameter is used to determine whether the icon should be resized
// to fit the badge. If `size` is 'auto', the icon will be resized to fit the
// 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, '-')
if (!(key in simpleIcons)) {
return undefined
}
let iconSvg
const svgColor = toSvgColor(color)
if (svgColor) {
return svg2base64(
simpleIcons[key].svg.replace('<svg', `<svg fill="${svgColor}"`),
)
iconSvg = simpleIcons[key].svg.replace('<svg', `<svg fill="${svgColor}"`)
} else {
const iconStyle = getSimpleIconStyle({ icon: simpleIcons[key], style })
return simpleIcons[key].base64[iconStyle]
iconSvg = simpleIcons[key].styles[iconStyle]
}
if (size === 'auto') {
const { width: iconWidth, height: iconHeight } = getIconSize(key)
if (iconWidth > iconHeight) {
const path = resetIconPosition(simpleIcons[key].path)
iconSvg = iconSvg
.replace('viewBox="0 0 24 24"', `viewBox="0 0 24 ${iconHeight}"`)
.replace(/<path d=".*"\/>/, `<path d="${path}"/>`)
}
}
return svg2base64(iconSvg)
}
function prepareNamedLogo({ name, color, style }) {
function prepareNamedLogo({ name, color, style, size }) {
if (typeof name !== 'string') {
return undefined
}
@@ -118,7 +135,8 @@ function prepareNamedLogo({ name, color, style }) {
}
return (
getShieldsIcon({ name, color }) || getSimpleIcon({ name, color, style })
getShieldsIcon({ name, color }) ||
getSimpleIcon({ name, color, style, size })
)
}
@@ -131,6 +149,7 @@ function makeLogo(defaultNamedLogo, overrides) {
name: coalesce(overrides.logo, defaultNamedLogo),
color: overrides.logoColor,
style: overrides.style,
size: overrides.logoSize,
})
}
}

View File

@@ -57,6 +57,14 @@ describe('Logo helpers', function () {
given({ name: 'github', color: 'red' }).expect(
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZTA1ZDQ0IiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2l0SHViPC90aXRsZT48cGF0aCBkPSJNMTIgLjI5N2MtNi42MyAwLTEyIDUuMzczLTEyIDEyIDAgNS4zMDMgMy40MzggOS44IDguMjA1IDExLjM4NS42LjExMy44Mi0uMjU4LjgyLS41NzcgMC0uMjg1LS4wMS0xLjA0LS4wMTUtMi4wNC0zLjMzOC43MjQtNC4wNDItMS42MS00LjA0Mi0xLjYxQzQuNDIyIDE4LjA3IDMuNjMzIDE3LjcgMy42MzMgMTcuN2MtMS4wODctLjc0NC4wODQtLjcyOS4wODQtLjcyOSAxLjIwNS4wODQgMS44MzggMS4yMzYgMS44MzggMS4yMzYgMS4wNyAxLjgzNSAyLjgwOSAxLjMwNSAzLjQ5NS45OTguMTA4LS43NzYuNDE3LTEuMzA1Ljc2LTEuNjA1LTIuNjY1LS4zLTUuNDY2LTEuMzMyLTUuNDY2LTUuOTMgMC0xLjMxLjQ2NS0yLjM4IDEuMjM1LTMuMjItLjEzNS0uMzAzLS41NC0xLjUyMy4xMDUtMy4xNzYgMCAwIDEuMDA1LS4zMjIgMy4zIDEuMjMuOTYtLjI2NyAxLjk4LS4zOTkgMy0uNDA1IDEuMDIuMDA2IDIuMDQuMTM4IDMgLjQwNSAyLjI4LTEuNTUyIDMuMjg1LTEuMjMgMy4yODUtMS4yMy42NDUgMS42NTMuMjQgMi44NzMuMTIgMy4xNzYuNzY1Ljg0IDEuMjMgMS45MSAxLjIzIDMuMjIgMCA0LjYxLTIuODA1IDUuNjI1LTUuNDc1IDUuOTIuNDIuMzYuODEgMS4wOTYuODEgMi4yMiAwIDEuNjA2LS4wMTUgMi44OTYtLjAxNSAzLjI4NiAwIC4zMTUuMjEuNjkuODI1LjU3QzIwLjU2NSAyMi4wOTIgMjQgMTcuNTkyIDI0IDEyLjI5N2MwLTYuNjI3LTUuMzczLTEyLTEyLTEyIi8+PC9zdmc+',
)
// use simple icon with auto logo size
given({ name: 'amd', size: 'auto' }).expect(
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCA1LjcyNTk5OTk5OTk5OTk5OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QU1EPC90aXRsZT48cGF0aCBkPSJNMTguMzI0IDBMMTkuODgzIDEuNTZIMjIuNDM5VjQuMTE3TDI0IDUuNjc3VjBaTTIgMC4zODNMMCA1LjM0M0gxLjMwOUwxLjY3OSA0LjM2MUgzLjlMNC4zMDggNS4zNDNINS42NDZMMy40MzIgMC4zODNaTTYuMjA5IDAuMzgzVjUuMzM4SDcuNDQ3VjIuMjQ2TDguNzg1IDMuODA4SDguOTczTDEwLjMxMSAyLjI1MlY1LjM0M0gxMS41NDlWMC4zODNIMTAuNDdMOC44NzggMi4yMjhMNy4yODcgMC4zODNaTTEyLjQ5MiAwLjM4M1Y1LjM0M0gxNC41NDlDMTYuNTI4IDUuMzQzIDE3LjQyOSA0LjI5NyAxNy40MjkgMi44NzFDMTcuNDI5IDEuNTExIDE2LjQ5MiAwLjM4MyAxNC42ODIgMC4zODNaTTEzLjcyOSAxLjI5M0gxNC41MjFDMTUuNjkxIDEuMjkzIDE2LjE1MSAyLjAwNCAxNi4xNTEgMi44NjNDMTYuMTUxIDMuNTkxIDE1Ljc3OSA0LjQzNSAxNC41MzUgNC40MzVIMTMuNzI5Wk0yLjc0NCAxLjU2NkwzLjUzNSAzLjQ5OEgyLjAwOFpNMTkuODgxIDEuODczTDE4LjI3NyAzLjQ3NlY1LjcyNkgyMC41MjNMMjIuMTI3IDQuMTE5SDE5Ljg4MVoiLz48L3N2Zz4=',
)
// use simple icon with color & auto logo size
given({ name: 'amd', color: 'white', size: 'auto' }).expect(
'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgNS43MjU5OTk5OTk5OTk5OTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkFNRDwvdGl0bGU+PHBhdGggZD0iTTE4LjMyNCAwTDE5Ljg4MyAxLjU2SDIyLjQzOVY0LjExN0wyNCA1LjY3N1YwWk0yIDAuMzgzTDAgNS4zNDNIMS4zMDlMMS42NzkgNC4zNjFIMy45TDQuMzA4IDUuMzQzSDUuNjQ2TDMuNDMyIDAuMzgzWk02LjIwOSAwLjM4M1Y1LjMzOEg3LjQ0N1YyLjI0Nkw4Ljc4NSAzLjgwOEg4Ljk3M0wxMC4zMTEgMi4yNTJWNS4zNDNIMTEuNTQ5VjAuMzgzSDEwLjQ3TDguODc4IDIuMjI4TDcuMjg3IDAuMzgzWk0xMi40OTIgMC4zODNWNS4zNDNIMTQuNTQ5QzE2LjUyOCA1LjM0MyAxNy40MjkgNC4yOTcgMTcuNDI5IDIuODcxQzE3LjQyOSAxLjUxMSAxNi40OTIgMC4zODMgMTQuNjgyIDAuMzgzWk0xMy43MjkgMS4yOTNIMTQuNTIxQzE1LjY5MSAxLjI5MyAxNi4xNTEgMi4wMDQgMTYuMTUxIDIuODYzQzE2LjE1MSAzLjU5MSAxNS43NzkgNC40MzUgMTQuNTM1IDQuNDM1SDEzLjcyOVpNMi43NDQgMS41NjZMMy41MzUgMy40OThIMi4wMDhaTTE5Ljg4MSAxLjg3M0wxOC4yNzcgMy40NzZWNS43MjZIMjAuNTIzTDIyLjEyNyA0LjExOUgxOS44ODFaIi8+PC9zdmc+',
)
// use travis shield icon
given({ name: 'travis' }).expect(

View File

@@ -1,7 +1,38 @@
import SVGPathCommander from 'svg-path-commander'
import loadSimpleIcons from './load-simple-icons.js'
const simpleIcons = loadSimpleIcons()
function svg2base64(svg) {
return `data:image/svg+xml;base64,${Buffer.from(svg.trim()).toString(
'base64',
)}`
}
export { svg2base64 }
function getIconSize(iconKey) {
if (!(iconKey in simpleIcons)) {
return undefined
}
const {
width,
height,
x: x0,
y: y0,
x2: x1,
y2: y1,
} = SVGPathCommander.getPathBBox(simpleIcons[iconKey].path)
return { width, height, x0, y0, x1, y1 }
}
function resetIconPosition(path) {
const { x: offsetX, y: offsetY } = SVGPathCommander.getPathBBox(path)
const pathReset = new SVGPathCommander(path)
.transform({ translate: [-offsetX, -offsetY] })
.toString()
return pathReset
}
export { svg2base64, getIconSize, resetIconPosition }

12954
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,9 +21,9 @@
"url": "https://github.com/badges/shields"
},
"dependencies": {
"@renovatebot/pep440": "^3.0.19",
"@renovatebot/pep440": "^3.0.20",
"@renovatebot/ruby-semver": "^3.0.23",
"@sentry/node": "^7.102.1",
"@sentry/node": "^8.13.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.11",
"decamelize": "^3.2.0",
"emojic": "^1.1.17",
"escape-string-regexp": "^4.0.0",
"fast-xml-parser": "^4.3.4",
"glob": "^10.3.10",
"fast-xml-parser": "^4.4.0",
"glob": "^10.4.2",
"global-agent": "^3.0.0",
"got": "^14.2.0",
"graphql": "16.8.1",
"got": "^14.4.1",
"graphql": "16.9.0",
"graphql-tag": "^2.12.6",
"joi": "17.12.2",
"joi": "17.13.3",
"joi-extension-semver": "5.0.0",
"js-yaml": "^4.1.0",
"jsonpath": "~1.1.1",
@@ -53,19 +53,20 @@
"lodash.times": "^4.3.2",
"matcher": "^5.0.0",
"node-env-flag": "^0.1.0",
"node-pg-migrate": "^6.2.2",
"node-pg-migrate": "^7.5.2",
"parse-link-header": "^2.0.0",
"path-to-regexp": "^6.2.1",
"pg": "^8.11.3",
"path-to-regexp": "^6.2.2",
"pg": "^8.12.0",
"pretty-bytes": "^6.1.1",
"priorityqueuejs": "^2.0.0",
"prom-client": "^15.1.0",
"qs": "^6.11.2",
"query-string": "^8.2.0",
"semver": "~7.6.0",
"simple-icons": "11.5.0",
"smol-toml": "1.1.4",
"webextension-store-meta": "^1.1.0",
"prom-client": "^15.1.3",
"qs": "^6.12.1",
"query-string": "^9.0.0",
"semver": "~7.6.2",
"simple-icons": "12.4.0",
"smol-toml": "1.2.2",
"svg-path-commander": "^2.0.9",
"webextension-store-meta": "^1.2.3",
"xpath": "~0.0.34"
},
"scripts": {
@@ -144,72 +145,73 @@
]
},
"devDependencies": {
"@docusaurus/core": "^2.4.3",
"@easyops-cn/docusaurus-search-local": "^0.40.1",
"@mdx-js/react": "^1.6.21",
"@typescript-eslint/parser": "^7.0.2",
"c8": "^9.1.0",
"@docusaurus/core": "^3.4.0",
"@docusaurus/preset-classic": "^3.4.0",
"@easyops-cn/docusaurus-search-local": "^0.44.2",
"@mdx-js/react": "^3.0.1",
"@typescript-eslint/parser": "^7.14.1",
"c8": "^10.1.2",
"caller": "^1.1.0",
"chai": "^4.4.1",
"chai-as-promised": "^7.1.1",
"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.0",
"clsx": "^2.1.1",
"concurrently": "^8.2.2",
"cypress": "^13.6.6",
"cypress": "^13.12.0",
"cypress-wait-for-stable-dom": "^0.1.0",
"danger": "^11.3.1",
"danger": "^12.3.3",
"deepmerge": "^4.3.1",
"docusaurus-preset-openapi": "0.6.4",
"eslint": "8.56.0",
"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": "^2.15.1",
"eslint-plugin-chai-friendly": "^1.0.0",
"eslint-plugin-cypress": "^3.3.0",
"eslint-plugin-icedfrisby": "^0.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.0",
"eslint-plugin-mocha": "^10.3.0",
"eslint-plugin-jsdoc": "^48.5.0",
"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.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-promise": "6.2.0",
"eslint-plugin-react": "^7.34.3",
"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.3.0",
"mocha": "^10.5.2",
"mocha-env-reporter": "^4.0.0",
"mocha-junit-reporter": "^2.2.1",
"mocha-yaml-loader": "^1.0.3",
"nock": "13.5.3",
"node-mocks-http": "^1.14.1",
"nodemon": "^3.1.0",
"nock": "13.5.4",
"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.2",
"prism-react-renderer": "^2.3.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react": "^18.3.0",
"react-dom": "^18.3.1",
"read-all-stdin-sync": "^1.0.5",
"rimraf": "^5.0.5",
"rimraf": "^5.0.7",
"sazerac": "^2.0.0",
"simple-git-hooks": "^2.9.0",
"sinon": "^17.0.1",
"simple-git-hooks": "^2.11.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.30.6",
"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

@@ -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

@@ -0,0 +1,81 @@
import Joi from 'joi'
import { age as ageColor } from '../color-formatters.js'
import { BaseJsonService, NotFound, pathParam, queryParam } from '../index.js'
import { formatDate } from '../text-formatters.js'
import { relativeUri } from '../validators.js'
const schema = Joi.object({
values: Joi.array().items({
date: Joi.string().isoDate().required(),
}),
}).required()
const queryParamSchema = Joi.object({
path: relativeUri,
}).required()
export default class BitbucketLastCommit extends BaseJsonService {
static category = 'activity'
static route = {
base: 'bitbucket/last-commit',
pattern: ':user/:repo/:branch+',
queryParamSchema,
}
static openApi = {
'/bitbucket/last-commit/{user}/{repo}/{branch}': {
get: {
summary: 'Bitbucket last commit',
parameters: [
pathParam({ name: 'user', example: 'shields-io' }),
pathParam({ name: 'repo', example: 'test-repo' }),
pathParam({ name: 'branch', example: 'main' }),
queryParam({
name: 'path',
example: 'README.md',
schema: { type: 'string' },
description: 'File path to resolve the last commit for.',
}),
],
},
},
}
static defaultBadgeData = { label: 'last commit' }
static render({ commitDate }) {
return {
message: formatDate(commitDate),
color: ageColor(Date.parse(commitDate)),
}
}
async fetch({ user, repo, branch, path }) {
// https://developer.atlassian.com/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-commits-get
return this._requestJson({
url: `https://bitbucket.org/api/2.0/repositories/${user}/${repo}/commits/${branch}`,
options: {
searchParams: {
path,
pagelen: 1,
fields: 'values.date',
},
},
schema,
httpErrors: {
403: 'private repo',
404: 'user, repo or branch not found',
},
})
}
async handle({ user, repo, branch }, queryParams) {
const { path } = queryParams
const data = await this.fetch({ user, repo, branch, path })
const [commit] = data.values
if (!commit) throw new NotFound({ prettyMessage: 'no commits found' })
return this.constructor.render({ commitDate: commit.date })
}
}

View File

@@ -0,0 +1,41 @@
import { isFormattedDate } from '../test-validators.js'
import { ServiceTester } from '../tester.js'
export const t = new ServiceTester({
id: 'BitbucketLastCommit',
title: 'Bitbucket last commit',
pathPrefix: '/bitbucket/last-commit',
})
t.create('last commit')
.get('/shields-io/test-repo/main.json')
.expectBadge({ label: 'last commit', message: isFormattedDate })
t.create('last commit (path)')
.get('/shields-io/test-repo/main.json?path=README.md')
.expectBadge({ label: 'last commit', message: isFormattedDate })
t.create('last commit (user not found)')
.get('/not-a-user/test-repo/main.json')
.expectBadge({
label: 'last commit',
message: 'user, repo or branch not found',
})
t.create('last commit (repo not found)')
.get('/shields-io/not-a-repo/main.json')
.expectBadge({
label: 'last commit',
message: 'user, repo or branch not found',
})
t.create('last commit (branch not found)')
.get('/shields-io/test-repo/not-a-branch.json')
.expectBadge({
label: 'last commit',
message: 'user, repo or branch not found',
})
t.create('last commit (path not found)')
.get('/shields-io/test-repo/main.json?path=not/a/dir')
.expectBadge({ label: 'last commit', message: 'no commits found' })

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

@@ -19,10 +19,8 @@ const schema = Joi.object({
}).required()
const description = `
<p>
Use the <code>baseUrl</code> query parameter to target different Bugzilla deployments.
If your Bugzilla badge errors, it might be because you are trying to load a private bug.
</p>
Use the <code>baseUrl</code> query parameter to target different Bugzilla deployments.
If your Bugzilla badge errors, it might be because you are trying to load a private bug.
`
export default class Bugzilla extends BaseJsonService {

View File

@@ -19,9 +19,7 @@ const bundlejs =
'<a href="https://bundlejs.com/" target="_blank" rel="noopener">bundlejs</a>'
const description = `
<p>
View ${esbuild} minified and ${denoflate} gzipped size of a javascript package or selected exports, via ${bundlejs}.
</p>
View ${esbuild} minified and ${denoflate} gzipped size of a javascript package or selected exports, via ${bundlejs}.
`
export default class BundlejsPackage extends BaseJsonService {

View File

@@ -1,4 +1,4 @@
import ChromeWebStore from 'webextension-store-meta/lib/chrome-web-store/index.js'
import { ChromeWebStore } from 'webextension-store-meta/lib/chrome-web-store/index.js'
import checkErrorResponse from '../../core/base-service/check-error-response.js'
import { BaseService, Inaccessible } from '../index.js'

View File

@@ -1,4 +1,5 @@
import Joi from 'joi'
import { Agent, MockAgent, setGlobalDispatcher } from 'undici'
import { isStarRating } from '../test-validators.js'
import { ServiceTester } from '../tester.js'
@@ -39,7 +40,16 @@ t.create('Stars (not found)')
.expectBadge({ label: 'rating', message: 'not found' })
// Keep this "inaccessible" test, since this service does not use BaseService#_request.
const mockAgent = new MockAgent()
t.create('Rating (inaccessible)')
.get('/rating/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.networkOff()
// webextension-store-meta uses undici internally, so we can't mock it with nock
.before(function () {
setGlobalDispatcher(mockAgent)
mockAgent.disableNetConnect()
})
.after(async function () {
await mockAgent.close()
setGlobalDispatcher(new Agent())
})
.expectBadge({ label: 'rating', message: 'inaccessible' })

View File

@@ -1,3 +1,4 @@
import { Agent, MockAgent, setGlobalDispatcher } from 'undici'
import { isMetric } from '../test-validators.js'
import { ServiceTester } from '../tester.js'
@@ -22,7 +23,16 @@ t.create('Users (not found)')
.expectBadge({ label: 'users', message: 'not found' })
// Keep this "inaccessible" test, since this service does not use BaseService#_request.
const mockAgent = new MockAgent()
t.create('Users (inaccessible)')
.get('/users/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.networkOff()
// webextension-store-meta uses undici internally, so we can't mock it with nock
.before(function () {
setGlobalDispatcher(mockAgent)
mockAgent.disableNetConnect()
})
.after(async function () {
await mockAgent.close()
setGlobalDispatcher(new Agent())
})
.expectBadge({ label: 'users', message: 'inaccessible' })

View File

@@ -1,3 +1,4 @@
import { Agent, MockAgent, setGlobalDispatcher } from 'undici'
import { isVPlusDottedVersionAtLeastOne } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
@@ -12,7 +13,16 @@ t.create('Version (not found)')
.expectBadge({ label: 'chrome web store', message: 'not found' })
// Keep this "inaccessible" test, since this service does not use BaseService#_request.
const mockAgent = new MockAgent()
t.create('Version (inaccessible)')
.get('/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.networkOff()
// webextension-store-meta uses undici internally, so we can't mock it with nock
.before(function () {
setGlobalDispatcher(mockAgent)
mockAgent.disableNetConnect()
})
.after(async function () {
await mockAgent.close()
setGlobalDispatcher(new Agent())
})
.expectBadge({ label: 'chrome web store', message: 'inaccessible' })

View File

@@ -11,14 +11,12 @@ const circleSchema = Joi.object({ message: isBuildStatus }).required()
const queryParamSchema = Joi.object({ token: Joi.string() }).required()
const tokenDescription = `
<p>
You may specify an optional token to get the status for a private repository.
<br />
If you need to use a token, please use a <b>Project Token</b> and only assign your token the 'Status' permission. Never use a <b>Personal Token</b> as they grant full read write permissions to your projects.
<br />
For more information about managing Circle CI tokens, please read this <a target="_blank" href="https://circleci.com/docs/2.0/managing-api-tokens">article</a>.
</p>
`
You may specify an optional token to get the status for a private repository.
If you need to use a token, please use a <b>Project Token</b> and only assign your token the 'Status' permission. Never use a <b>Personal Token</b> as they grant full read write permissions to your projects.
For more information about managing Circle CI tokens, please read this <a target="_blank" href="https://circleci.com/docs/2.0/managing-api-tokens">article</a>.
`
const vcsTypeMap = { gh: 'gh', github: 'gh', bb: 'bb', bitbucket: 'bb' }

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

@@ -36,12 +36,9 @@ const svgValueMatcher = />(\d{1,3}%|unknown)<\/text><\/g>/
const badgeTokenPattern = /^\w{10}$/
const description = `
<p>
You may specify a Codecov badge token to get coverage for a private repository.
</p>
<p>
You can find the token under the badge section of your project settings page, in this url: <code>https://codecov.io/&#60;vcsName&#62;/&#60;user&#62;/&#60;repo&#62;/settings/badge</code>.
</p>
You may specify a Codecov badge token to get coverage for a private repository.
You can find the token under the badge section of your project settings page, in this url: <code>https://codecov.io/[vcsName]/[user]/[repo]/settings/badge</code>.
`
export default class Codecov extends BaseSvgScrapingService {

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

@@ -15,14 +15,12 @@ const schema = Joi.object({
}).required()
const description = `
<p>
The CurseForge badge requires the <code>Project ID</code> in order access the
<a href="https://docs.curseforge.com/#get-mod" target="_blank">CurseForge API</a>.
</p>
<p>
The <code>Project ID</code> is different from the URL slug and can be found in the 'About Project' section of your
CurseForge mod page.
</p>
The CurseForge badge requires the <code>Project ID</code> in order access the
<a href="https://docs.curseforge.com/#get-mod" target="_blank">CurseForge API</a>.
The <code>Project ID</code> is different from the URL slug and can be found in the 'About Project' section of your
CurseForge mod page.
<img src="https://github.com/badges/shields/assets/1098773/0d45b5fa-2cde-415d-8152-b84c535a1535"
alt="The Project ID in the 'About Projection' section on CurseForge." />
`

View File

@@ -2,9 +2,7 @@ import { formatRelativeDate } from '../text-formatters.js'
import { BaseService, pathParams } from '../index.js'
const description = `
<p>
Supply a unix timestamp in seconds to display the relative time from/to now
</p>
Supply a unix timestamp in seconds to display the relative time from/to now
`
export default class Date extends BaseService {

View File

@@ -7,19 +7,17 @@ const schema = Joi.object({
}).required()
const description = `
<p>
The Discord badge requires the <code>SERVER ID</code> in order access the Discord JSON API.
</p>
<p>
The <code>SERVER ID</code> can be located in the url of the channel that the badge is accessing.
</p>
The Discord badge requires the <code>SERVER ID</code> in order access the Discord JSON API.
The <code>SERVER ID</code> can be located in the url of the channel that the badge is accessing.
<img
src="https://user-images.githubusercontent.com/6025893/39329897-b08f8290-4997-11e8-8f8f-7b85ff61882f.png"
alt="SERVER ID is after the channel part at the end of the url" />
<p>
To use the Discord badge a Discord server admin must enable the widget setting on the server.
</p>
<iframe src="https://player.vimeo.com/video/364220040" width="640" height="210" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
To use the Discord badge a Discord server admin must enable the widget setting on the server.
<iframe src="https://player.vimeo.com/video/364220040" width="640" height="210" frameBorder="0" allow="autoplay; fullscreen" allowFullScreen></iframe>
`
export default class Discord extends BaseJsonService {

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

@@ -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

@@ -3,6 +3,11 @@ import { BaseJsonService, queryParams } from '../index.js'
import { createRoute } from './dynamic-helpers.js'
import jsonPath from './json-path.js'
const description = `
The Dynamic JSON Badge allows you to extract an arbitrary value from any
JSON Document using a JSONPath selector and show it on a badge.
`
export default class DynamicJson extends jsonPath(BaseJsonService) {
static enabledMetrics = [MetricNames.SERVICE_RESPONSE_SIZE]
static route = createRoute('json')
@@ -10,10 +15,7 @@ export default class DynamicJson extends jsonPath(BaseJsonService) {
'/badge/dynamic/json': {
get: {
summary: 'Dynamic JSON Badge',
description: `<p>
The Dynamic JSON Badge allows you to extract an arbitrary value from any
JSON Document using a JSONPath selector and show it on a badge.
</p>`,
description,
parameters: queryParams(
{
name: 'url',

View File

@@ -3,6 +3,11 @@ import { BaseTomlService, queryParams } from '../index.js'
import { createRoute } from './dynamic-helpers.js'
import jsonPath from './json-path.js'
const description = `
The Dynamic TOML Badge allows you to extract an arbitrary value from any
TOML Document using a JSONPath selector and show it on a badge.
`
export default class DynamicToml extends jsonPath(BaseTomlService) {
static enabledMetrics = [MetricNames.SERVICE_RESPONSE_SIZE]
static route = createRoute('toml')
@@ -10,10 +15,7 @@ export default class DynamicToml extends jsonPath(BaseTomlService) {
'/badge/dynamic/toml': {
get: {
summary: 'Dynamic TOML Badge',
description: `<p>
The Dynamic TOML Badge allows you to extract an arbitrary value from any
TOML Document using a JSONPath selector and show it on a badge.
</p>`,
description,
parameters: queryParams(
{
name: 'url',

View File

@@ -3,6 +3,11 @@ import { BaseYamlService, queryParams } from '../index.js'
import { createRoute } from './dynamic-helpers.js'
import jsonPath from './json-path.js'
const description = `
The Dynamic YAML Badge allows you to extract an arbitrary value from any
YAML Document using a JSONPath selector and show it on a badge.
`
export default class DynamicYaml extends jsonPath(BaseYamlService) {
static enabledMetrics = [MetricNames.SERVICE_RESPONSE_SIZE]
static route = createRoute('yaml')
@@ -10,10 +15,7 @@ export default class DynamicYaml extends jsonPath(BaseYamlService) {
'/badge/dynamic/yaml': {
get: {
summary: 'Dynamic YAML Badge',
description: `<p>
The Dynamic YAML Badge allows you to extract an arbitrary value from any
YAML Document using a JSONPath selector and show it on a badge.
</p>`,
description,
parameters: queryParams(
{
name: 'url',

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

@@ -11,18 +11,17 @@ const queryParamSchema = Joi.object({
url: optionalUrl.required(),
}).required()
const description = `<p>
Using the endpoint badge, you can provide content for a badge through
a JSON endpoint. The content can be prerendered, or generated on the
fly. To strike a balance between responsiveness and bandwidth
utilization on one hand, and freshness on the other, cache behavior is
configurable, subject to the Shields minimum. The endpoint URL is
provided to Shields through the query string. Shields fetches it and
formats the badge.
</p>
<p>
The endpoint badge takes a single required query param: <code>url</code>, which is the URL to your JSON endpoint
</p>
const description = `
Using the endpoint badge, you can provide content for a badge through
a JSON endpoint. The content can be prerendered, or generated on the
fly. To strike a balance between responsiveness and bandwidth
utilization on one hand, and freshness on the other, cache behavior is
configurable, subject to the Shields minimum. The endpoint URL is
provided to Shields through the query string. Shields fetches it and
formats the badge.
The endpoint badge takes a single required query param: <code>url</code>, which is the URL to your JSON endpoint
<div>
<h2>Example JSON Endpoint Response</h2>
<code>&#123; "schemaVersion": 1, "label": "hello", "message": "sweet world", "color": "orange" &#125;</code>
@@ -103,13 +102,6 @@ const description = `<p>
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>
@@ -158,7 +150,6 @@ export default class Endpoint extends BaseJsonService {
logoSvg,
logoColor,
logoWidth,
logoPosition,
style,
cacheSeconds,
}) {
@@ -172,7 +163,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

@@ -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

@@ -8,7 +8,7 @@ To specify another instance like [codeberg](https://codeberg.org/), [forgejo](ht
function httpErrorsFor() {
return {
403: 'private repo',
404: 'user or repo not found',
404: 'user, repo or path not found',
}
}

View File

@@ -1,8 +1,8 @@
import Joi from 'joi'
import { pathParam, queryParam } from '../index.js'
import { optionalUrl } from '../validators.js'
import { formatDate } from '../text-formatters.js'
import { age as ageColor } from '../color-formatters.js'
import { pathParam, queryParam } from '../index.js'
import { formatDate } from '../text-formatters.js'
import { optionalUrl, relativeUri } from '../validators.js'
import GiteaBase from './gitea-base.js'
import { description, httpErrorsFor } from './gitea-helper.js'
@@ -25,10 +25,11 @@ const schema = Joi.array()
const displayEnum = ['author', 'committer']
const queryParamSchema = Joi.object({
gitea_url: optionalUrl,
path: relativeUri,
display_timestamp: Joi.string()
.valid(...displayEnum)
.default('author'),
gitea_url: optionalUrl,
}).required()
export default class GiteaLastCommit extends GiteaBase {
@@ -54,6 +55,12 @@ export default class GiteaLastCommit extends GiteaBase {
name: 'repo',
example: 'tea',
}),
queryParam({
name: 'path',
example: 'README.md',
schema: { type: 'string' },
description: 'File path to resolve the last commit for.',
}),
queryParam({
name: 'display_timestamp',
example: 'committer',
@@ -84,6 +91,12 @@ export default class GiteaLastCommit extends GiteaBase {
name: 'branch',
example: 'main',
}),
queryParam({
name: 'path',
example: 'README.md',
schema: { type: 'string' },
description: 'File path to resolve the last commit for.',
}),
queryParam({
name: 'display_timestamp',
example: 'committer',
@@ -108,12 +121,12 @@ export default class GiteaLastCommit extends GiteaBase {
}
}
async fetch({ user, repo, branch, baseUrl }) {
async fetch({ user, repo, branch, baseUrl, path }) {
// https://gitea.com/api/swagger#/repository
return super.fetch({
schema,
url: `${baseUrl}/api/v1/repos/${user}/${repo}/commits`,
options: { searchParams: { sha: branch } },
options: { searchParams: { sha: branch, path, limit: 1 } },
httpErrors: httpErrorsFor(),
})
}
@@ -123,6 +136,7 @@ export default class GiteaLastCommit extends GiteaBase {
{
gitea_url: baseUrl = 'https://gitea.com',
display_timestamp: displayTimestamp,
path,
},
) {
const body = await this.fetch({
@@ -130,6 +144,7 @@ export default class GiteaLastCommit extends GiteaBase {
repo,
branch,
baseUrl,
path,
})
return this.constructor.render({
commitDate: body[0].commit[displayTimestamp].date,

View File

@@ -8,6 +8,41 @@ t.create('Last Commit (recent)').get('/gitea/tea.json').expectBadge({
message: isFormattedDate,
})
t.create('Last Commit (recent) (top-level file path)')
.get('/gitea/tea.json?path=README.md')
.expectBadge({
label: 'last commit',
message: isFormattedDate,
})
t.create('Last Commit (recent) (top-level dir path)')
.get('/gitea/tea.json?path=docs')
.expectBadge({
label: 'last commit',
message: isFormattedDate,
})
t.create('Last Commit (recent) (top-level dir path with trailing slash)')
.get('/gitea/tea.json?path=docs/')
.expectBadge({
label: 'last commit',
message: isFormattedDate,
})
t.create('Last Commit (recent) (nested dir path)')
.get('/gitea/tea.json?path=docs/CLI.md')
.expectBadge({
label: 'last commit',
message: isFormattedDate,
})
t.create('Last Commit (recent) (path)')
.get('/gitea/tea.json?path=README.md')
.expectBadge({
label: 'last commit',
message: isFormattedDate,
})
t.create('Last Commit (recent) (self-managed)')
.get('/CanisHelix/shields-badge-test.json?gitea_url=https://codeberg.org')
.expectBadge({
@@ -24,9 +59,23 @@ t.create('Last Commit (on-branch) (self-managed)')
message: isFormattedDate,
})
t.create('Last Commit (project not found)')
t.create('Last Commit (user not found)')
.get('/CanisHelix/does-not-exist.json?gitea_url=https://codeberg.org')
.expectBadge({
label: 'last commit',
message: 'user or repo not found',
message: 'user, repo or path not found',
})
t.create('Last Commit (repo not found)')
.get('/gitea/not-a-repo.json')
.expectBadge({
label: 'last commit',
message: 'user, repo or path not found',
})
t.create('Last Commit (path not found)')
.get('/gitea/tea.json?path=not/a/dir')
.expectBadge({
label: 'last commit',
message: 'user, repo or path not found',
})

View File

@@ -2,7 +2,7 @@ import { ServiceTester } from '../../tester.js'
export const t = new ServiceTester({
id: 'GistLastCommitRedirect',
title: 'Github Gist Last Commit Redirect',
title: 'GitHub Gist Last Commit Redirect',
pathPrefix: '/github-gist',
})

View File

@@ -21,8 +21,8 @@ const schema = Joi.object({
}).required()
const description = `${commonDocumentation}
<p>This badge shows the number of stargazers for a gist. Gist id is accepted as input and 'gist not found' is returned if the gist is not found for the given gist id.
</p>`
This badge shows the number of stargazers for a gist. Gist id is accepted as input and 'gist not found' is returned if the gist is not found for the given gist id.`
export default class GistStars extends GithubAuthV4Service {
static category = 'social'
@@ -35,7 +35,7 @@ export default class GistStars extends GithubAuthV4Service {
static openApi = {
'/github/gist/stars/{gistId}': {
get: {
summary: 'Github Gist stars',
summary: 'GitHub Gist stars',
description,
parameters: pathParams({
name: 'gistId',

View File

@@ -169,7 +169,7 @@ class GithubApiProvider {
} catch (e) {
log.error(e)
throw new ImproperlyConfigured({
prettyMessage: 'Unable to select next Github token from pool',
prettyMessage: 'Unable to select next GitHub token from pool',
})
}
tokenString = token.id

View File

@@ -0,0 +1,169 @@
import Joi from 'joi'
import countBy from 'lodash.countby'
import { pathParam, queryParam } from '../index.js'
import { nonNegativeInteger } from '../validators.js'
import { renderBuildStatusBadge } from '../build-status.js'
import { GithubAuthV3Service } from './github-auth-service.js'
import {
documentation as commonDocumentation,
httpErrorsFor,
} from './github-helpers.js'
const description = `
The Check Runs service shows the status of GitHub action runs.
${commonDocumentation}
`
const schema = Joi.object({
total_count: nonNegativeInteger,
check_runs: Joi.array()
.items(
Joi.object({
name: Joi.string().required(),
status: Joi.equal('completed', 'in_progress', 'queued').required(),
conclusion: Joi.equal(
'action_required',
'cancelled',
'failure',
'neutral',
'skipped',
'success',
'timed_out',
null,
).required(),
}),
)
.default([]),
}).required()
const queryParamSchema = Joi.object({
nameFilter: Joi.string(),
})
export default class GithubCheckRuns extends GithubAuthV3Service {
static category = 'build'
static route = {
base: 'github/check-runs',
pattern: ':user/:repo/:ref+',
queryParamSchema,
}
static openApi = {
'/github/check-runs/{user}/{repo}/{branch}': {
get: {
summary: 'GitHub branch check runs',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({ name: 'branch', example: 'master' }),
queryParam({
name: 'nameFilter',
description: 'Name of a check run',
example: 'test-lint',
}),
],
},
},
'/github/check-runs/{user}/{repo}/{commit}': {
get: {
summary: 'GitHub commit check runs',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({
name: 'commit',
example: '91b108d4b7359b2f8794a4614c11cb1157dc9fff',
}),
queryParam({
name: 'nameFilter',
description: 'Name of a check run',
example: 'test-lint',
}),
],
},
},
'/github/check-runs/{user}/{repo}/{tag}': {
get: {
summary: 'GitHub tag check runs',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({ name: 'tag', example: '3.3.0' }),
queryParam({
name: 'nameFilter',
description: 'Name of a check run',
example: 'test-lint',
}),
],
},
},
}
static defaultBadgeData = { label: 'checks' }
static transform(
{ total_count: totalCount, check_runs: checkRuns },
nameFilter,
) {
const filteredCheckRuns =
nameFilter && nameFilter.length > 0
? checkRuns.filter(checkRun => checkRun.name === nameFilter)
: checkRuns
return {
total: totalCount,
statusCounts: countBy(filteredCheckRuns, 'status'),
conclusionCounts: countBy(filteredCheckRuns, 'conclusion'),
}
}
static mapState({ total, statusCounts, conclusionCounts }) {
let state
if (total === 0) {
state = 'no check runs'
} else if (statusCounts.queued) {
state = 'queued'
} else if (statusCounts.in_progress) {
state = 'pending'
} else if (statusCounts.completed) {
// all check runs are completed, now evaluate conclusions
const orangeStates = ['action_required', 'stale']
const redStates = ['cancelled', 'failure', 'timed_out']
// assume "passing (green)"
state = 'passing'
for (const stateValue of Object.keys(conclusionCounts)) {
if (orangeStates.includes(stateValue)) {
// orange state renders "passing (orange)"
state = 'partially succeeded'
} else if (redStates.includes(stateValue)) {
// red state renders "failing (red)"
state = 'failing'
break
}
}
} else {
state = 'unknown status'
}
return state
}
async handle({ user, repo, ref }, { nameFilter }) {
// https://docs.github.com/en/rest/checks/runs#list-check-runs-for-a-git-reference
const json = await this._requestJson({
url: `/repos/${user}/${repo}/commits/${ref}/check-runs`,
httpErrors: httpErrorsFor('ref or repo not found'),
schema,
})
const state = this.constructor.mapState(
this.constructor.transform(json, nameFilter),
)
return renderBuildStatusBadge({ status: state })
}
}

View File

@@ -0,0 +1,94 @@
import { test, given } from 'sazerac'
import GithubCheckRuns from './github-check-runs.service.js'
describe('GithubCheckRuns.transform', function () {
test(GithubCheckRuns.transform, () => {
given(
{
total_count: 3,
check_runs: [
{ status: 'completed', conclusion: 'success' },
{ status: 'completed', conclusion: 'failure' },
{ status: 'in_progress', conclusion: null },
],
},
'',
).expect({
total: 3,
statusCounts: { completed: 2, in_progress: 1 },
conclusionCounts: { success: 1, failure: 1, null: 1 },
})
given(
{
total_count: 3,
check_runs: [
{ name: 'test1', status: 'completed', conclusion: 'success' },
{ name: 'test2', status: 'completed', conclusion: 'failure' },
{ name: 'test3', status: 'in_progress', conclusion: null },
],
},
'',
).expect({
total: 3,
statusCounts: { completed: 2, in_progress: 1 },
conclusionCounts: { success: 1, failure: 1, null: 1 },
})
given(
{
total_count: 3,
check_runs: [
{ name: 'test1', status: 'completed', conclusion: 'success' },
{ name: 'test2', status: 'completed', conclusion: 'failure' },
{ name: 'test3', status: 'in_progress', conclusion: null },
],
},
'test1',
).expect({
total: 3,
statusCounts: { completed: 1 },
conclusionCounts: { success: 1 },
})
})
})
describe('GithubCheckRuns', function () {
test(GithubCheckRuns.mapState, () => {
given({
total: 0,
statusCounts: null,
conclusionCounts: null,
}).expect('no check runs')
given({
total: 1,
statusCounts: { queued: 1 },
conclusionCounts: null,
}).expect('queued')
given({
total: 1,
statusCounts: { in_progress: 1 },
conclusionCounts: null,
}).expect('pending')
given({
total: 1,
statusCounts: { completed: 1 },
conclusionCounts: { success: 1 },
}).expect('passing')
given({
total: 2,
statusCounts: { completed: 2 },
conclusionCounts: { success: 1, stale: 1 },
}).expect('partially succeeded')
given({
total: 3,
statusCounts: { completed: 3 },
conclusionCounts: { success: 1, stale: 1, failure: 1 },
}).expect('failing')
given({
total: 1,
statusCounts: { somethingelse: 1 },
conclusionCounts: null,
}).expect('unknown status')
})
})

View File

@@ -0,0 +1,31 @@
import { createServiceTester } from '../tester.js'
import { isBuildStatus } from '../build-status.js'
export const t = await createServiceTester()
t.create('check runs - for branch')
.get('/badges/shields/master.json')
.expectBadge({
label: 'checks',
message: isBuildStatus,
})
t.create('check runs - for branch with filter')
.get('/badges/shields/master.json?nameFilter=test-lint')
.expectBadge({
label: 'checks',
message: isBuildStatus,
})
t.create('check runs - no tests')
.get('/badges/shields/5d4ab86b1b5ddfb3c4a70a70bd19932c52603b8c.json')
.expectBadge({
label: 'checks',
message: 'no check runs',
})
t.create('check runs - nonexistent ref')
.get('/badges/shields/this-ref-does-not-exist.json')
.expectBadge({
label: 'checks',
message: 'ref or repo not found',
})

View File

@@ -1,8 +1,21 @@
import Joi from 'joi'
import { pathParams } from '../index.js'
import { pathParam } from '../index.js'
import { isBuildStatus, renderBuildStatusBadge } from '../build-status.js'
import { GithubAuthV3Service } from './github-auth-service.js'
import { documentation, httpErrorsFor } from './github-helpers.js'
import {
documentation as commonDocumentation,
httpErrorsFor,
} from './github-helpers.js'
const description = `
Displays the status of a tag, commit, or branch, as reported by the Commit Status API.
Nowadays, GitHub Actions and many third party integrations report state via the
Checks API. If this badge does not show expected values, please try out our
corresponding Check Runs badge instead. You can read more about status checks in
the [GitHub documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks).
${commonDocumentation}
`
const schema = Joi.object({
state: isBuildStatus,
@@ -16,24 +29,40 @@ export default class GithubChecksStatus extends GithubAuthV3Service {
}
static openApi = {
'/github/checks-status/{user}/{repo}/{ref}': {
'/github/checks-status/{user}/{repo}/{branch}': {
get: {
summary: 'GitHub tag checks state',
description: documentation,
parameters: pathParams(
{
name: 'user',
example: 'badges',
},
{
name: 'repo',
example: 'shields',
},
{
name: 'ref',
example: '3.3.0',
},
),
summary: 'GitHub branch status',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({ name: 'branch', example: 'master' }),
],
},
},
'/github/checks-status/{user}/{repo}/{commit}': {
get: {
summary: 'GitHub commit status',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({
name: 'commit',
example: '91b108d4b7359b2f8794a4614c11cb1157dc9fff',
}),
],
},
},
'/github/checks-status/{user}/{repo}/{tag}': {
get: {
summary: 'GitHub tag status',
description,
parameters: [
pathParam({ name: 'user', example: 'badges' }),
pathParam({ name: 'repo', example: 'shields' }),
pathParam({ name: 'tag', example: '3.3.0' }),
],
},
},
}

View File

@@ -35,7 +35,7 @@ export default class GithubCommitsDifference extends GithubAuthV3Service {
},
}
static defaultBadgeData = { label: 'commits difference', namedLogo: 'github' }
static defaultBadgeData = { label: 'commits difference' }
static render({ commitCount }) {
return {

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