Compare commits

...

131 Commits

Author SHA1 Message Date
chris48s
57036a34b0 migrate integration tests to GH actions 2022-09-22 20:44:43 +01:00
dependabot[bot]
185fdfe001 chore(deps-dev): bump nodemon from 2.0.19 to 2.0.20 (#8415)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.19 to 2.0.20.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.19...v2.0.20)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 20:37:05 +00:00
dependabot[bot]
1d29e66ad2 chore(deps): bump fast-xml-parser from 4.0.9 to 4.0.10 (#8418)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.0.9 to 4.0.10.
- [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.0.9...v4.0.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 20:28:55 +00:00
dependabot[bot]
82ff65089a chore(deps-dev): bump cypress from 10.7.0 to 10.8.0 (#8406)
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.7.0 to 10.8.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.7.0...v10.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 18:35:46 +00:00
dependabot[bot]
00494aad20 chore(deps): bump config from 3.3.7 to 3.3.8 (#8403)
Bumps [config](https://github.com/node-config/node-config) from 3.3.7 to 3.3.8.
- [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.7...v3.3.8)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 18:28:08 +00:00
dependabot[bot]
2822d134c1 chore(deps-dev): bump tsd from 0.23.0 to 0.24.1 (#8410)
Bumps [tsd](https://github.com/SamVerschueren/tsd) from 0.23.0 to 0.24.1.
- [Release notes](https://github.com/SamVerschueren/tsd/releases)
- [Commits](https://github.com/SamVerschueren/tsd/compare/v0.23.0...v0.24.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 18:18:59 +00:00
dependabot[bot]
6ff9760319 chore(deps): bump @sentry/node from 7.12.1 to 7.13.0 (#8404)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.12.1 to 7.13.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.12.1...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 18:13:23 +00:00
dependabot[bot]
681a6a672b chore(deps): bump simple-icons from 7.10.0 to 7.11.0 (#8409)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.10.0 to 7.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.10.0...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 18:04:44 +00:00
dependabot[bot]
ac4324c0bb chore(deps-dev): bump gatsby from 4.22.1 to 4.23.0 (#8407)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 4.22.1 to 4.23.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/compare/gatsby@4.22.1...gatsby@4.23.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-17 17:58:03 +00:00
dependabot[bot]
d34b1e81a1 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8405)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.36.2 to 5.37.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.37.0/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-17 16:08:29 +00:00
dependabot[bot]
f2e6183e01 chore(deps-dev): bump @babel/core from 7.19.0 to 7.19.1 (#8416)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.19.0 to 7.19.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.19.1/packages/babel-core)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-16 22:18:43 +00:00
Paula Barszcz
e8f151eafa [GitHub] Number of commits between branches/tags/commits (#8394)
closes #6901
2022-09-16 21:48:23 +01:00
Paula Barszcz
93fa955dde [Packagist] dependency version (#8371)
* happy path is done: packagist depenency version is returned for dependencyVendor and dependencyRepo

* changes in error handling in packagist dependency version service

* Move to packagist-base common parts of packagist-php and packagist-dep-ver

* the label now shows the name of the dependency

* add comments,slightly modify if statement

* fix unit tests in  services/packagist/packagist-php-version.spec.js

* add unit tests for services/packagist/packagist-dependency-version.js

* service tests for packagist-dependency-version.service.js are in progress

* Add additional service tests for packagist-dependency-version.tester.js

* remove toLowerCase()

* resolve from lgtm: 1 for Wrong use of 'this' for static method

* DRY determining the name of the dependency (depVen/depRepo)

* url change in strategy is in progress

* basic examples of packagist/dependency-v work with new url; packagist/php-v redirects to the new url

* service tests should be green

* unit tests for packagist should be fixed

* add toLowerCase()

* part of suggestions from the PR is implemented

* updated tests for packagist dependency version

* fix packagist dependency version spec

* add missing unit tests

* Update services/packagist/packagist-dependency-version.spec.js

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

* Update services/packagist/packagist-dependency-version.spec.js

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

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2022-09-14 21:12:09 +01:00
Prashant Rawat
e3c938b4d7 return string instead of object from getDependencyVersion function (#8396)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-13 19:38:18 +00:00
chris48s
ae018cdddc conform to standard js quote rules (#8395)
* restore standardjs quote behaviour

* conform to standard js quote rules
2022-09-12 17:22:12 +01:00
Paula Barszcz
f6b09e9ca3 fix Docker build status invalid response data bug (#8392)
closes #6235
2022-09-11 20:53:54 +01:00
dependabot[bot]
d8c825a1ad chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#8388)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.13 to 7.19.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.19.0/packages/babel-core)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:48:39 +00:00
dependabot[bot]
3a07437bea chore(deps-dev): bump eslint-plugin-sort-class-members (#8389)
Bumps [eslint-plugin-sort-class-members](https://github.com/bryanrsmith/eslint-plugin-sort-class-members) from 1.14.1 to 1.15.2.
- [Release notes](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/releases)
- [Commits](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/compare/v1.14.1...v1.15.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:41:26 +00:00
dependabot[bot]
0c21dce592 chore(deps-dev): bump eslint-plugin-react from 7.31.1 to 7.31.8 (#8386)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.1 to 7.31.8.
- [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.31.1...v7.31.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:32:54 +00:00
dependabot[bot]
9d92a2a7ab chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#8391)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.3.0...v7.4.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:25:37 +00:00
dependabot[bot]
9af1bdfa1a chore(deps): bump got from 12.3.1 to 12.4.1 (#8390)
Bumps [got](https://github.com/sindresorhus/got) from 12.3.1 to 12.4.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v12.3.1...v12.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:18:51 +00:00
dependabot[bot]
457aa5e0e5 chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 (#8385)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.8.2 to 4.8.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.8.2...v4.8.3)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 19:12:13 +00:00
dependabot[bot]
971e6da72d chore(deps): bump simple-icons from 7.9.0 to 7.10.0 (#8384)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.9.0 to 7.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.9.0...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 16:41:10 +00:00
dependabot[bot]
c470607998 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8383)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.36.1 to 5.36.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.36.2/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-10 03:52:26 +00:00
dependabot[bot]
67fabf28a7 chore(deps-dev): bump gatsby from 4.22.0 to 4.22.1 (#8381)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 4.22.0 to 4.22.1.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/compare/gatsby@4.22.0...gatsby@4.22.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-09 19:43:13 -05:00
Prashant Rawat
35dfc260b4 use Joi type for Joi schemas (#8380) 2022-09-08 19:01:42 +00:00
Prashant Rawat
1f6e17099f Docstrings for package json helpers (#8373)
* add docstrings for package json helper service

* update test suite description

* update docstrings type and description

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-06 16:43:57 +00:00
dependabot[bot]
ef5f03e41c chore(deps): bump actions/setup-node from 2 to 3 (#8379)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2 to 3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-06 17:26:03 +01:00
chris48s
cf83fb3235 migrate package tests to GHA (#8351)
migrate package tests to GHA
2022-09-05 21:00:20 +01:00
chris48s
d9842c0ceb improve workflow job names (#8376)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-05 20:52:54 +01:00
guoxudong
a73026faa9 feat: add [gitlab]-helper for encapsulate docs and err (#8295)
* feat: add gitlab-helper for encapsulate docs and err

* update merge requests

* fix mr example

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 22:32:23 +00:00
github-actions[bot]
bf9412b8b1 Changelog for Release server-2022-09-04 (#8374)
* Update Changelog

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2022-09-04 16:53:25 +01:00
dependabot[bot]
4f8501aceb chore(deps): bump @sentry/node from 7.11.1 to 7.12.1 (#8369)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.11.1 to 7.12.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.11.1...7.12.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 12:37:57 +00:00
dependabot[bot]
42fcf035d4 chore(deps-dev): bump cypress from 10.6.0 to 10.7.0 (#8367)
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.6.0 to 10.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.6.0...v10.7.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 12:27:10 +00:00
dependabot[bot]
4e6b662fa4 chore(deps-dev): bump gatsby from 4.21.1 to 4.22.0 (#8370)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 4.21.1 to 4.22.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/compare/gatsby@4.21.1...gatsby@4.22.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 12:17:26 +00:00
dependabot[bot]
8bf429d0de chore(deps): bump simple-icons from 7.8.0 to 7.9.0 (#8365)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.8.0 to 7.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.8.0...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 12:08:39 +00:00
dependabot[bot]
daca76726c chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8366)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.35.1 to 5.36.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.36.1/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-04 11:59:48 +00:00
dependabot[bot]
aa345aa9d4 chore(deps-dev): bump tsd from 0.22.0 to 0.23.0 (#8362)
Bumps [tsd](https://github.com/SamVerschueren/tsd) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/SamVerschueren/tsd/releases)
- [Commits](https://github.com/SamVerschueren/tsd/compare/v0.22.0...v0.23.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-03 23:11:29 +00:00
dependabot[bot]
9642729e05 chore(deps-dev): bump gatsby-plugin-page-creator from 4.21.0 to 4.22.0 (#8364)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 4.21.0 to 4.22.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-page-creator/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-page-creator@4.22.0/packages/gatsby-plugin-page-creator)

---
updated-dependencies:
- dependency-name: gatsby-plugin-page-creator
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-03 21:21:47 +00:00
dependabot[bot]
d6bb882a4b chore(deps-dev): bump babel-preset-gatsby from 2.21.0 to 2.22.0 (#8359)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/babel-preset-gatsby/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/babel-preset-gatsby@2.22.0/packages/babel-preset-gatsby)

---
updated-dependencies:
- dependency-name: babel-preset-gatsby
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-03 19:17:34 +00:00
dependabot[bot]
f23d16a6fe chore(deps-dev): bump gatsby-plugin-react-helmet from 5.21.0 to 5.22.0 (#8361)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 5.21.0 to 5.22.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-react-helmet/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-react-helmet@5.22.0/packages/gatsby-plugin-react-helmet)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-03 19:08:58 +00:00
dependabot[bot]
b6163941d7 chore(deps-dev): bump gatsby-plugin-typescript from 4.21.0 to 4.22.0 (#8360)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 4.21.0 to 4.22.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-typescript/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-typescript@4.22.0/packages/gatsby-plugin-typescript)

---
updated-dependencies:
- dependency-name: gatsby-plugin-typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-09-03 19:03:01 +00:00
dependabot[bot]
e039a2fd43 chore(deps-dev): bump eslint-plugin-react from 7.31.0 to 7.31.1 (#8358)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.0 to 7.31.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.0...v7.31.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-03 13:50:09 -05:00
chris48s
b624179b8d get the tests passing on windows (#8350)
* run the core tests on windows

* fix glob with windows path seperator

* always use slash when slicing serviceClass matches

..and add comment explaining why we need to do this

* strip line endings (+ any other whitspace) before base64 encoding

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-29 19:58:10 +00:00
dependabot[bot]
8267758ca0 chore(deps): bump prom-client from 14.0.1 to 14.1.0 (#8349)
Bumps [prom-client](https://github.com/siimon/prom-client) from 14.0.1 to 14.1.0.
- [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/v14.0.1...v14.1.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-28 20:35:54 +00:00
dependabot[bot]
6cf6bac22a chore(deps): bump ioredis from 5.2.2 to 5.2.3 (#8345)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.2.2...v5.2.3)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-28 20:29:15 +00:00
dependabot[bot]
1dc9e0e4c0 chore(deps-dev): bump danger from 11.1.1 to 11.1.2 (#8346)
Bumps [danger](https://github.com/danger/danger-js) from 11.1.1 to 11.1.2.
- [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.1.1...11.1.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-28 20:19:19 +00:00
dependabot[bot]
a199610fcd chore(deps-dev): bump eslint-plugin-react from 7.30.1 to 7.31.0 (#8347)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.30.1 to 7.31.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.1...v7.31.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-28 18:28:42 +00:00
dependabot[bot]
3adea534e5 chore(deps-dev): bump typescript from 4.7.4 to 4.8.2 (#8344)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.7.4 to 4.8.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.7.4...v4.8.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-27 13:30:50 -05:00
dependabot[bot]
7a5b28fffe chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8343)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.33.1 to 5.35.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.35.1/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-27 14:38:45 +00:00
dependabot[bot]
665d8317e2 chore(deps-dev): bump @babel/core from 7.18.10 to 7.18.13 (#8342)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.10 to 7.18.13.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.13/packages/babel-core)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-27 05:06:48 +00:00
dependabot[bot]
ab10cdbaa4 chore(deps): bump simple-icons from 7.7.0 to 7.8.0 (#8348)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.7.0 to 7.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.7.0...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-27 00:00:15 -05:00
Paula Barszcz
bb326a0f93 [DockerSize] Docker image size multi arch (#8290)
* Get the size of the docker image taking architecture into account

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2022-08-25 19:17:05 +01:00
dependabot[bot]
73d8390703 chore(deps): bump normalize-url from 4.5.0 to 4.5.1 (#8336)
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-25 18:07:36 +00:00
chris48s
acf189eaf7 migrate 'main' tests to GH actions (#8332)
* implement 'main' tests using GH actions

* remove 'main' builds from Circle CI config

* give jobs better names
2022-08-25 18:02:03 +01:00
chris48s
08af9eadbd upgrade gatsby (#8334)
* skipLibCheck

* gatsby@4.21.1

* waitForStableDOM
2022-08-25 17:45:48 +01:00
Davide Bassi
9daae0ce94 Custom domains for [JitPack] artifacts (#8333)
* Custom domains for JitPack artifacts

* FIx jitpack-version test

* style: missing comma

* fix: name for both jitpack-version redirectors

* chore: comment explaining endpoint change

* use more conventional names for redirectors

Co-authored-by: chris48s <chris.shaw480@gmail.com>
2022-08-22 17:35:21 +00:00
dependabot[bot]
104aa30709 chore(deps-dev): bump cypress from 10.4.0 to 10.6.0 (#8329)
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.4.0 to 10.6.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.4.0...v10.6.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-20 19:33:23 +00:00
dependabot[bot]
0534192ead chore(deps): bump simple-icons from 7.6.0 to 7.7.0 (#8330)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.6.0...7.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-20 19:24:47 +00:00
dependabot[bot]
d29cb90a3e chore(deps): bump @sentry/node from 7.10.0 to 7.11.1 (#8328)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.10.0 to 7.11.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.10.0...7.11.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-20 18:03:56 +00:00
dependabot[bot]
0b8370df49 chore(deps): bump dayjs from 1.11.4 to 1.11.5 (#8331)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.4 to 1.11.5.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/v1.11.5/CHANGELOG.md)
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.4...v1.11.5)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-20 12:57:12 -05:00
dependabot[bot]
f5e671a64b chore(deps-dev): bump gatsby-plugin-typescript from 4.11.1 to 4.21.0 (#8324)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 4.11.1 to 4.21.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-typescript/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-typescript@4.21.0/packages/gatsby-plugin-typescript)

---
updated-dependencies:
- dependency-name: gatsby-plugin-typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-19 22:43:43 +00:00
dependabot[bot]
a41403593f chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8326)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.33.0 to 5.33.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.33.1/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-19 22:36:24 +00:00
dependabot[bot]
4641fe62b0 chore(deps-dev): bump gatsby-plugin-react-helmet from 5.20.0 to 5.21.0 (#8323)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 5.20.0 to 5.21.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-react-helmet/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-react-helmet@5.21.0/packages/gatsby-plugin-react-helmet)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-19 22:30:04 +00:00
dependabot[bot]
a2db48616e chore(deps-dev): bump portfinder from 1.0.29 to 1.0.32 (#8318)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.29 to 1.0.32.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.29...v1.0.32)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-19 17:21:52 -05:00
chris48s
35700bad5f fix [dockerstars] service (#8316) 2022-08-17 17:34:22 -05:00
Poolitzer
1321bcfb16 Fix: Broken Badge generation for decimal activity values (#8315) 2022-08-17 17:58:44 +00:00
guoxudong
e95189c180 feat: add [gitlabmergerequests] service (#8166)
* fix

* fix

* add unit test

* fixes based on review

* fix spec test

* fix info

* fix mr example

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-17 01:31:23 +00:00
dependabot[bot]
aa646e01f4 chore(deps): bump @fontsource/lekton from 4.5.9 to 4.5.10 (#8307)
Bumps [@fontsource/lekton](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/lekton) from 4.5.9 to 4.5.10.
- [Release notes](https://github.com/fontsource/fontsource/releases)
- [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/lekton)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 15:23:39 +00:00
dependabot[bot]
e3d5046d00 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8299)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.32.0 to 5.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.33.0/packages/eslint-plugin)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 15:17:18 +00:00
dependabot[bot]
70b05454b2 chore(deps): bump got from 12.3.0 to 12.3.1 (#8302)
Bumps [got](https://github.com/sindresorhus/got) from 12.3.0 to 12.3.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v12.3.0...v12.3.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 15:09:42 +00:00
dependabot[bot]
4284468d7d chore(deps-dev): bump @types/chai from 4.3.1 to 4.3.3 (#8301)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.3.1 to 4.3.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

---
updated-dependencies:
- dependency-name: "@types/chai"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:53:28 +00:00
dependabot[bot]
9ffc3673c4 chore(deps): bump simple-icons from 7.5.0 to 7.6.0 (#8298)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.5.0 to 7.6.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.5.0...7.6.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:47:36 +00:00
dependabot[bot]
7359296e6e chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.4 to 39.3.6 (#8304)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 39.3.4 to 39.3.6.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v39.3.4...v39.3.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:41:48 +00:00
dependabot[bot]
52bedb0881 chore(deps): bump @fontsource/lato from 4.5.8 to 4.5.9 (#8306)
Bumps [@fontsource/lato](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/lato) from 4.5.8 to 4.5.9.
- [Release notes](https://github.com/fontsource/fontsource/releases)
- [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/lato)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:33:47 +00:00
dependabot[bot]
19663c6c84 chore(deps-dev): bump @types/styled-components from 5.1.25 to 5.1.26 (#8305)
Bumps [@types/styled-components](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/styled-components) from 5.1.25 to 5.1.26.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/styled-components)

---
updated-dependencies:
- dependency-name: "@types/styled-components"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:28:05 +00:00
dependabot[bot]
cab062fc64 chore(deps-dev): bump portfinder from 1.0.28 to 1.0.29 (#8300)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.28 to 1.0.29.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.28...v1.0.29)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:22:05 +00:00
dependabot[bot]
812c322ef6 chore(deps): bump @sentry/node from 7.8.1 to 7.10.0 (#8297)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.8.1 to 7.10.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.8.1...7.10.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-14 14:15:53 +00:00
dependabot[bot]
5409f29167 chore(deps): bump @actions/core in /.github/actions/close-bot (#8303)
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-14 14:10:17 +00:00
Jacob Bandes-Storch
84829853b9 Fix variable naming for [ROS] version service (#8292)
* Fix variable naming for [ROS] version service

* Add documentation

* use noetic instead of galactic in example

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-09 19:49:52 +00:00
guoxudong
af47032cb5 feat: add [GitlabStars] service (#8209)
* feat: add gitlab stars service

* add test case

* fix

* fix link

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-08 21:18:35 +00:00
Anatoli Babenia
dbf94df115 Fix invalid rst format when alt or target is present (#8275)
* Fix invalid `rst` format when `alt` or `target` is present

* Write correct test

* fix tests and lint errors

Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-08 20:46:39 +00:00
Paula Barszcz
f985d2cc02 [GithubGistLastCommit] GitHub gist last commit (#8272)
* Add github-gist-last-commit.service.js

* Still having difficulty with the reponse in the test file for github-gist-last-commit  being in svg format, rather than json

* Yay, tests are greeeeen, the best sight for sore eyes xD

* Apply suggestions from code review - destructuring+rename and path change

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Removed the unnecessary test from github-gist-last-commit

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2022-08-07 19:24:50 -05:00
dependabot[bot]
547e2b8bd4 chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.3 to 39.3.4 (#8287)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 39.3.3 to 39.3.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v39.3.3...v39.3.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-06 19:33:32 +00:00
dependabot[bot]
febaf7e87a chore(deps-dev): bump gatsby-plugin-react-helmet from 5.10.0 to 5.20.0 (#8283)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 5.10.0 to 5.20.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-react-helmet/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-react-helmet@5.20.0/packages/gatsby-plugin-react-helmet)

---
updated-dependencies:
- dependency-name: gatsby-plugin-react-helmet
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-06 18:58:14 +00:00
dependabot[bot]
0779426502 chore(deps-dev): bump cypress from 10.3.1 to 10.4.0 (#8280)
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.1 to 10.4.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.3.1...v10.4.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-06 02:33:38 +00:00
dependabot[bot]
d1ddb3ec88 chore(deps): bump @sentry/node from 7.8.0 to 7.8.1 (#8279)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.8.0 to 7.8.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.8.0...7.8.1)

---
updated-dependencies:
- dependency-name: "@sentry/node"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-06 02:27:40 +00:00
dependabot[bot]
0029ea04e5 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8277)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.31.0 to 5.32.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.32.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-06 02:20:56 +00:00
dependabot[bot]
538b429941 chore(deps-dev): bump @babel/core from 7.18.9 to 7.18.10 (#8276)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.9 to 7.18.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  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>
2022-08-05 21:12:29 -05:00
Caleb Cartwright
39b015164e chore: fix typo in badge request template (#8254)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-03 18:44:03 +00:00
Paula Barszcz
fa3839cdab [GitHub] GitHub file size for a specific branch (#8262)
* Modify github-size.service.js

* Add tests for Github Size Service to test the new ref parameter

* Modified request for a file size: ref is now sent only if if was specified
2022-08-02 21:33:13 +00:00
github-actions[bot]
1954963cd3 Changelog for Release server-2022-08-01 (#8268)
* Update Changelog

* Update CHANGELOG.md

Co-authored-by: release[bot] <actions@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2022-08-01 20:41:52 +01:00
Érico Andrei
fbb2ff3619 [pypi] Add Framework Version Badges support (#8261)
* [pypi] Add Framework Version Badges support
* Fix redirect from Django versions
* Fix staticPreview
* Refactor service to remove duplication
* Rename to Versions from Framework Classifiers
* Refactor render and handle to thrown an exception

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-08-01 20:17:12 +01:00
dependabot[bot]
9e29d3d3f2 chore(deps): bump parse-url from 6.0.0 to 6.0.5 (#8265)
Bumps [parse-url](https://github.com/IonicaBizau/parse-url) from 6.0.0 to 6.0.5.
- [Release notes](https://github.com/IonicaBizau/parse-url/releases)
- [Commits](https://github.com/IonicaBizau/parse-url/compare/6.0.0...6.0.5)

---
updated-dependencies:
- dependency-name: parse-url
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-30 21:40:34 +00:00
dependabot[bot]
1fad0888b2 chore(deps): bump simple-icons from 7.4.0 to 7.5.0 (#8256)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.4.0 to 7.5.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.4.0...7.5.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-30 20:32:01 +00:00
dependabot[bot]
4bf0675de2 chore(deps): bump ioredis from 5.2.1 to 5.2.2 (#8259)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.2.1...v5.2.2)

---
updated-dependencies:
- dependency-name: ioredis
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-30 20:25:47 +00:00
dependabot[bot]
4fb2896597 chore(deps): bump got from 12.1.0 to 12.3.0 (#8258)
Bumps [got](https://github.com/sindresorhus/got) from 12.1.0 to 12.3.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v12.1.0...v12.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-30 20:18:21 +00:00
dependabot[bot]
647a466399 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8255)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.30.7 to 5.31.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.31.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-30 20:01:09 +00:00
dependabot[bot]
bf15ad1f3a chore(deps): bump @sentry/node from 7.7.0 to 7.8.0 (#8257)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.7.0 to 7.8.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.7.0...7.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>
2022-07-30 09:59:11 -05:00
guoxudong
202d72d365 feat: add [GitlabForks] server (#8208)
* feat: add gitlab forks server

* add test case

* fix

* fix test

* link message to /forks

Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2022-07-28 21:05:54 +00:00
Érico Andrei
efa705d925 Update PyPI api according to https://warehouse.pypa.io/api-reference/json.html (#8251) 2022-07-28 20:04:30 +00:00
GuillaumeG
5234ecde93 Add [galaxytoolshed] Activity (#8164)
* feat(galaxytoolshed): add release-date

* fix(services): galaxytoolshed, rename "release" to "created"

* fix(services): galaxytoolshed, neutral color

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-26 01:48:39 +00:00
dependabot[bot]
345da16365 chore(deps-dev): bump babel-preset-gatsby from 2.14.0 to 2.19.0 (#8235)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 2.14.0 to 2.19.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/babel-preset-gatsby/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/babel-preset-gatsby@2.19.0/packages/babel-preset-gatsby)

---
updated-dependencies:
- dependency-name: babel-preset-gatsby
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 15:03:17 +00:00
Paula Barszcz
37a36f5fea Fix wording in code-walkthrough.md (#8240)
Fix wording and number of parameters in code-walkthrough.md

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:49:53 +00:00
Paula Barszcz
3f63990049 Fix typo in service-tests.md (#8239)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:40:47 +00:00
dependabot[bot]
0605a074e9 chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8224)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.30.5 to 5.30.7.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.30.7/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:33:41 +00:00
dependabot[bot]
74ada5af29 chore(deps-dev): bump nock from 13.2.8 to 13.2.9 (#8217)
Bumps [nock](https://github.com/nock/nock) from 13.2.8 to 13.2.9.
- [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.2.8...v13.2.9)

---
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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:27:00 +00:00
dependabot[bot]
04d5a9d4d1 chore(deps-dev): bump concurrently from 7.2.2 to 7.3.0 (#8228)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.2.2 to 7.3.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.2.2...v7.3.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:18:57 +00:00
dependabot[bot]
f185167b7d chore(deps): bump dayjs from 1.11.3 to 1.11.4 (#8223)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.3 to 1.11.4.
- [Release notes](https://github.com/iamkun/dayjs/releases)
- [Changelog](https://github.com/iamkun/dayjs/blob/v1.11.4/CHANGELOG.md)
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.3...v1.11.4)

---
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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-23 14:12:16 +00:00
dependabot[bot]
567cae8e9c chore(deps-dev): bump eslint-plugin-mocha from 10.0.5 to 10.1.0 (#8234)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 10.0.5 to 10.1.0.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/10.0.5...10.1.0)

---
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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 22:08:03 +00:00
dependabot[bot]
b7da0f8a56 chore(deps-dev): bump @babel/register from 7.18.6 to 7.18.9 (#8227)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.18.6 to 7.18.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 22:00:41 +00:00
dependabot[bot]
19363f2245 chore(deps): bump @sentry/node from 7.6.0 to 7.7.0 (#8231)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.6.0...7.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:41:40 +00:00
dependabot[bot]
ba6fdfb5a6 chore(deps): bump ioredis from 5.2.0 to 5.2.1 (#8220)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.2.0...v5.2.1)

---
updated-dependencies:
- dependency-name: ioredis
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:33:01 +00:00
dependabot[bot]
9bfca5a575 chore(deps-dev): bump @babel/core from 7.18.6 to 7.18.9 (#8218)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.6 to 7.18.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:26:50 +00:00
dependabot[bot]
324e6be067 chore(deps-dev): bump gatsby-plugin-catch-links from 4.11.0 to 4.19.0 (#8233)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 4.11.0 to 4.19.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-catch-links/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-catch-links@4.19.0/packages/gatsby-plugin-catch-links)

---
updated-dependencies:
- dependency-name: gatsby-plugin-catch-links
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:19:16 +00:00
dependabot[bot]
15a7b074f4 chore(deps-dev): bump gatsby-plugin-styled-components (#8225)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 5.11.0 to 5.19.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-styled-components/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-styled-components@5.19.0/packages/gatsby-plugin-styled-components)

---
updated-dependencies:
- dependency-name: gatsby-plugin-styled-components
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:13:10 +00:00
dependabot[bot]
35fbbad90e chore(deps-dev): bump c8 from 7.11.3 to 7.12.0 (#8230)
Bumps [c8](https://github.com/bcoe/c8) from 7.11.3 to 7.12.0.
- [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/v7.11.3...v7.12.0)

---
updated-dependencies:
- dependency-name: c8
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 21:05:09 +00:00
dependabot[bot]
fe8031af27 chore(deps): bump file-type from 16.5.3 to 16.5.4 (#8237)
Bumps [file-type](https://github.com/sindresorhus/file-type) from 16.5.3 to 16.5.4.
- [Release notes](https://github.com/sindresorhus/file-type/releases)
- [Commits](https://github.com/sindresorhus/file-type/compare/v16.5.3...v16.5.4)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 20:58:18 +00:00
dependabot[bot]
5cc21ce040 chore(deps-dev): bump @typescript-eslint/parser from 5.27.0 to 5.30.7 (#8229)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.27.0 to 5.30.7.
- [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/v5.30.7/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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 20:51:18 +00:00
dependabot[bot]
7621603bef chore(deps-dev): bump cypress from 10.3.0 to 10.3.1 (#8222)
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.0 to 10.3.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.3.0...v10.3.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-22 20:42:00 +00:00
dependabot[bot]
786149ccbe chore(deps-dev): bump jsdoc from 3.6.10 to 3.6.11 (#8216)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.10 to 3.6.11.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/3.6.11/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.10...3.6.11)

---
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>
2022-07-22 20:31:53 +00:00
Jonah Lawrence
60125707ad [greasyfork] Add Greasy Fork rating badges (#8087)
* Add greasy fork rating badges

* refactor: combine rating classes

* refactor: remove Base from class name

* Change to a single badge with all values

* Add unit tests for GreasyForkRatingCount.render

* Average totals in color algorithm

* chore(deps): bump moment from 2.29.3 to 2.29.4 (#8170)

Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* chore(deps-dev): bump @typescript-eslint/eslint-plugin (#8183)

Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.30.0 to 5.30.5.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.30.5/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* chore(deps): bump @sentry/node from 7.4.1 to 7.5.1 (#8174)

Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.4.1 to 7.5.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.4.1...7.5.1)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* chore(deps): bump simple-icons from 7.3.0 to 7.4.0 (#8181)

Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/7.3.0...7.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* chore(deps-dev): bump nodemon from 2.0.18 to 2.0.19 (#8179)

Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.18 to 2.0.19.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.18...v2.0.19)

---
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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* Add [ROS] version service (#8169)

* Add [ROS] version service

* review feedback

* add spaces

* add spaces round pipe in [conda] badge (#8189)

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* refactor(deps): Replace moment with dayjs (#8192)

* chore(deps): bump @sentry/node from 7.5.1 to 7.6.0 (#8197)

Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.5.1 to 7.6.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.5.1...7.6.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>

* Fix missing `dayjs` -> `moment` (#8204)

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* chore(deps): bump ioredis from 5.1.0 to 5.2.0 (#8201)

Bumps [ioredis](https://github.com/luin/ioredis) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: ioredis
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>

* chore(deps): bump fast-xml-parser from 4.0.8 to 4.0.9 (#8203)

Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.0.8 to 4.0.9.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.0.8...v4.0.9)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* revert rebase

* Add test for all good ratings

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: Jacob Bandes-Storch <jacob@bandes-stor.ch>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
Co-authored-by: chase <c@chse.dev>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2022-07-21 22:14:29 -05:00
chris48s
c64bb7e1f3 Fix heroku review apps (sort of) (#8213)
* constrain to node 16 in engines

* disable strict-engine check for node 17 builds in CI

* override settings with env vars

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-21 17:57:28 +01:00
dependabot[bot]
e1c1a021f9 chore(deps): bump terser from 5.9.0 to 5.14.2 (#8206)
Bumps [terser](https://github.com/terser/terser) from 5.9.0 to 5.14.2.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-20 21:14:04 -05:00
dependabot[bot]
daf5ad5b2a chore(deps): bump fast-xml-parser from 4.0.8 to 4.0.9 (#8203)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.0.8 to 4.0.9.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.0.8...v4.0.9)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-17 19:59:22 -05:00
dependabot[bot]
a9e67c8b19 chore(deps): bump ioredis from 5.1.0 to 5.2.0 (#8201)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: ioredis
  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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-17 15:29:18 +00:00
chase
62cabe0b32 Fix missing dayjs -> moment (#8204)
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2022-07-16 20:02:42 +00:00
dependabot[bot]
ae7960244d chore(deps): bump @sentry/node from 7.5.1 to 7.6.0 (#8197)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.5.1 to 7.6.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.5.1...7.6.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>
2022-07-16 14:16:24 -05:00
Jonah Lawrence
e8686395b1 refactor(deps): Replace moment with dayjs (#8192) 2022-07-14 20:34:38 -05:00
chris48s
6a77a5991a add spaces round pipe in [conda] badge (#8189)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2022-07-12 20:16:09 +00:00
Jacob Bandes-Storch
7cfd3f5d25 Add [ROS] version service (#8169)
* Add [ROS] version service

* review feedback

* add spaces
2022-07-12 19:54:44 +00:00
178 changed files with 11195 additions and 10378 deletions

View File

@@ -1,69 +1,5 @@
version: 2
main_steps: &main_steps
steps:
- checkout
- run:
name: Install dependencies
command: |
npm ci
environment:
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#Skipping-installation
# We don't need to install the Cypress binary in jobs that aren't actually running Cypress.
CYPRESS_INSTALL_BINARY: 0
- run:
name: Linter
when: always
command: npm run lint
- run:
name: Core tests
when: always
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/core/results.xml
command: npm run test:core
- run:
name: Entrypoint tests
when: always
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/entrypoint/results.xml
command: npm run test:entrypoint
- store_test_results:
path: junit
- run:
name: 'Prettier check (quick fix: `npm run prettier`)'
when: always
command: npm run prettier:check
integration_steps: &integration_steps
steps:
- checkout
- run:
name: Install dependencies
command: |
npm ci
environment:
CYPRESS_INSTALL_BINARY: 0
- run:
name: Integration tests
when: always
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/integration/results.xml
command: npm run test:integration
- store_test_results:
path: junit
services_steps: &services_steps
steps:
- checkout
@@ -89,83 +25,7 @@ services_steps: &services_steps
- store_test_results:
path: junit
package_steps: &package_steps
steps:
- checkout
- run:
name: Install node and npm
command: |
set +e
export NVM_DIR="/opt/circleci/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install v14
nvm use v14
npm install -g npm
# Run the package tests on each currently supported node version. See:
# https://github.com/badges/shields/blob/master/badge-maker/README.md#node-version-support
# https://nodejs.org/en/about/releases/
- run:
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/badge-maker/v12/results.xml
NODE_VERSION: v12
CYPRESS_INSTALL_BINARY: 0
NPM_CONFIG_ENGINE_STRICT: 'false'
name: Run package tests on Node 12
command: scripts/run_package_tests.sh
- run:
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/badge-maker/v14/results.xml
NODE_VERSION: v14
CYPRESS_INSTALL_BINARY: 0
NPM_CONFIG_ENGINE_STRICT: 'false'
name: Run package tests on Node 14
command: scripts/run_package_tests.sh
- run:
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/badge-maker/v16/results.xml
NODE_VERSION: v16
CYPRESS_INSTALL_BINARY: 0
name: Run package tests on Node 16
command: scripts/run_package_tests.sh
- store_test_results:
path: junit
jobs:
main:
docker:
- image: cimg/node:16.15
<<: *main_steps
main@node-17:
docker:
- image: cimg/node:17.9
<<: *main_steps
integration:
docker:
- image: cimg/node:16.15
- image: redis
<<: *integration_steps
integration@node-17:
docker:
- image: cimg/node:17.9
- image: redis
<<: *integration_steps
danger:
docker:
- image: cimg/node:16.15
@@ -224,12 +84,6 @@ jobs:
when: always
command: npm run build
package:
machine:
image: 'ubuntu-2004:202111-02'
<<: *package_steps
services:
docker:
- image: cimg/node:16.15
@@ -239,6 +93,8 @@ jobs:
services@node-17:
docker:
- image: cimg/node:17.9
environment:
NPM_CONFIG_ENGINE_STRICT: 'false'
<<: *services_steps
@@ -291,26 +147,10 @@ workflows:
on-commit:
jobs:
- main:
filters:
branches:
ignore: gh-pages
- main@node-17:
filters:
branches:
ignore: gh-pages
- integration@node-17:
filters:
branches:
ignore: gh-pages
- frontend:
filters:
branches:
ignore: gh-pages
- package:
filters:
branches:
ignore: gh-pages
- services:
filters:
branches:
@@ -340,12 +180,6 @@ workflows:
# filters:
# branches:
# ignore: gh-pages
# - main:
# requires:
# - npm-install
# - main@node-latest:
# requires:
# - npm-install
# - frontend:
# requires:
# - npm-install

View File

@@ -144,6 +144,8 @@ rules:
func-style: ['error', 'declaration', { 'allowArrowFunctions': true }]
new-cap: ['error', { 'capIsNew': true }]
import/order: ['error', { 'newlines-between': 'never' }]
quotes:
['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }]
# Account for destructuring responses from upstream services,
# many of which do not follow camelcase

View File

@@ -21,7 +21,7 @@ A clear and concise description of the new badge.
Where can we get the data from?
- Is there a public API?
- Does the API requires an API key?
- Does the API require an API key?
- Link to the API documentation.
-->

View File

@@ -27,7 +27,7 @@ async function run() {
state: 'closed',
})
core.debug(`Done.`)
core.debug('Done.')
}
}
} catch (error) {

View File

@@ -9,16 +9,17 @@
"version": "0.0.0",
"license": "CC0",
"dependencies": {
"@actions/core": "^1.9.0",
"@actions/core": "^1.9.1",
"@actions/github": "^5.0.3"
}
},
"node_modules/@actions/core": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.0.tgz",
"integrity": "sha512-5pbM693Ih59ZdUhgk+fts+bUWTnIdHV3kwOSr+QIoFHMLg7Gzhwm0cifDY/AG68ekEJAkHnQVpcy4f6GjmzBCA==",
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"dependencies": {
"@actions/http-client": "^2.0.1"
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
}
},
"node_modules/@actions/github": {
@@ -204,6 +205,14 @@
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -226,11 +235,12 @@
},
"dependencies": {
"@actions/core": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.0.tgz",
"integrity": "sha512-5pbM693Ih59ZdUhgk+fts+bUWTnIdHV3kwOSr+QIoFHMLg7Gzhwm0cifDY/AG68ekEJAkHnQVpcy4f6GjmzBCA==",
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
"integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
"requires": {
"@actions/http-client": "^2.0.1"
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
}
},
"@actions/github": {
@@ -393,6 +403,11 @@
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",

View File

@@ -10,7 +10,7 @@
"author": "chris48s",
"license": "CC0",
"dependencies": {
"@actions/core": "^1.9.0",
"@actions/core": "^1.9.1",
"@actions/github": "^5.0.3"
}
}

21
.github/actions/core-tests/action.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: 'Core tests'
description: 'Run core and entrypoint tests'
runs:
using: 'composite'
steps:
- name: Core tests
if: always()
run: npm run test:core -- --reporter json --reporter-option 'output=reports/core.json'
shell: bash
- name: Entrypoint tests
if: always()
run: npm run test:entrypoint -- --reporter json --reporter-option 'output=reports/entrypoint.json'
shell: bash
- name: Write Markdown Summary
if: always()
run: |
node scripts/mocha2md.js Core reports/core.json >> $GITHUB_STEP_SUMMARY
node scripts/mocha2md.js Entrypoint reports/entrypoint.json >> $GITHUB_STEP_SUMMARY
shell: bash

View File

@@ -0,0 +1,20 @@
name: 'Integration tests'
description: 'Run integration tests'
inputs:
github-token:
description: 'The GITHUB_TOKEN secret'
required: true
runs:
using: 'composite'
steps:
- name: Integration Tests
if: always()
run: npm run test:integration -- --reporter json --reporter-option 'output=reports/integration-tests.json'
env:
GH_TOKEN: '${{ inputs.github-token }}'
shell: bash
- name: Write Markdown Summary
if: always()
run: node scripts/mocha2md.js Integration reports/integration-tests.json >> $GITHUB_STEP_SUMMARY
shell: bash

View File

@@ -0,0 +1,26 @@
name: 'Package tests'
description: 'Run package tests and check types'
runs:
using: 'composite'
steps:
- name: Tests
if: always()
run: npm run test:package -- --reporter json --reporter-option 'output=reports/package-tests.json'
shell: bash
- name: Type Checks
if: always()
run: |
set -o pipefail
npm run check-types:package 2>&1 | tee reports/package-types.txt
shell: bash
- name: Write Markdown Summary
if: always()
run: |
node scripts/mocha2md.js 'Package Tests' reports/package-tests.json >> $GITHUB_STEP_SUMMARY
echo '# Package Types' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat reports/package-types.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
shell: bash

25
.github/actions/setup/action.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: 'Set up project'
description: 'Set up project'
inputs:
node-version:
description: 'Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0.'
required: true
cypress:
description: 'Install Cypress binary: 0 or 1'
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#Skipping-installation
# We don't need to install the Cypress binary in jobs that aren't actually running Cypress.
required: false
default: 0
runs:
using: 'composite'
steps:
- name: Install Node JS ${{ inputs.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ inputs.node-version }}
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: ${{ inputs.cypress }}
run: npm ci
shell: bash

View File

@@ -5,7 +5,7 @@ permissions:
pull-requests: write
jobs:
build:
auto-close:
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:

View File

@@ -3,7 +3,7 @@ on:
pull_request:
jobs:
build:
build-docker-image:
runs-on: ubuntu-latest
steps:
- name: Checkout

View File

@@ -8,7 +8,7 @@ permissions:
contents: write
jobs:
build-and-deploy:
deploy-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout

View File

@@ -10,7 +10,7 @@ permissions:
contents: write
jobs:
build:
draft-release:
runs-on: ubuntu-latest
steps:
- name: Checkout

View File

@@ -2,7 +2,7 @@ name: 'Dependency Review'
on: [pull_request]
jobs:
dependency-review:
enforce-dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'

View File

@@ -5,7 +5,7 @@ on:
- master
jobs:
build:
publish-docker-next:
runs-on: ubuntu-latest
steps:
- name: Checkout

View File

@@ -0,0 +1,37 @@
name: Integration@node 17
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-integration-17:
runs-on: ubuntu-latest
services:
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 17
env:
NPM_CONFIG_ENGINE_STRICT: 'false'
- name: Integration Tests
uses: ./.github/actions/integration-tests
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'

35
.github/workflows/test-integration.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Integration
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-integration:
runs-on: ubuntu-latest
services:
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 16
- name: Integration Tests
uses: ./.github/actions/integration-tests
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'

26
.github/workflows/test-lint.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Lint
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 16
- name: ESLint
if: always()
run: npm run lint
- name: 'Prettier check (quick fix: `npm run prettier`)'
if: always()
run: npm run prettier:check

23
.github/workflows/test-main-17.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: Main@node 17
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-main-17:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 17
env:
NPM_CONFIG_ENGINE_STRICT: 'false'
- name: Core tests
uses: ./.github/actions/core-tests

26
.github/workflows/test-main.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Main
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-main:
strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest']
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: 16
- name: Core tests
uses: ./.github/actions/core-tests

44
.github/workflows/test-package-cli.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Package CLI
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
# Smoke test (render a badge with the CLI) with only the package
# dependencies installed.
jobs:
test-package-cli:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- node: '14'
engine-strict: 'false'
- node: '16'
engine-strict: 'false'
- node: '18'
engine-strict: 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Node JS ${{ inputs.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
NPM_CONFIG_ENGINE_STRICT: ${{ matrix.engine-strict }}
run: |
cd badge-maker
npm install
npm link
- name: Render a badge with the CLI
run: |
cd badge-maker
badge cactus grown :green @flat

32
.github/workflows/test-package-lib.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Package Library
on:
pull_request:
push:
branches-ignore:
- 'gh-pages'
jobs:
test-package-lib:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- node: '14'
engine-strict: 'false'
- node: '16'
engine-strict: 'true'
- node: '18'
engine-strict: 'false'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ matrix.node }}
env:
NPM_CONFIG_ENGINE_STRICT: ${{ matrix.engine-strict }}
- name: Package tests
uses: ./.github/actions/package-tests

View File

@@ -4,6 +4,35 @@ Note: this changelog is for the shields.io server. The changelog for the badge-m
---
## server-2022-09-04
- fix frontend compile for users running on Windows [#8350](https://github.com/badges/shields/issues/8350)
- [DockerSize] Docker image size multi arch [#8290](https://github.com/badges/shields/issues/8290)
- upgrade gatsby [#8334](https://github.com/badges/shields/issues/8334)
- Custom domains for [JitPack] artifacts [#8333](https://github.com/badges/shields/issues/8333)
- fix [dockerstars] service [#8316](https://github.com/badges/shields/issues/8316)
- [BountySource] Fix: Broken Badge generation for decimal activity values [#8315](https://github.com/badges/shields/issues/8315)
- feat: add [gitlabmergerequests] service [#8166](https://github.com/badges/shields/issues/8166)
- Fix terminology for [ROS] version service [#8292](https://github.com/badges/shields/issues/8292)
- feat: add [GitlabStars] service [#8209](https://github.com/badges/shields/issues/8209)
- Fix invalid `rst` format when `alt` or `target` is present [#8275](https://github.com/badges/shields/issues/8275)
- [GithubGistLastCommit] GitHub gist last commit [#8272](https://github.com/badges/shields/issues/8272)
- [GitHub] GitHub file size for a specific branch [#8262](https://github.com/badges/shields/issues/8262)
- Dependency updates
## server-2022-08-01
- [pypi] Add Framework Version Badges support [#8261](https://github.com/badges/shields/issues/8261)
- feat: add [GitlabForks] server [#8208](https://github.com/badges/shields/issues/8208)
- Update PyPI api according to https://warehouse.pypa.io/api-reference/json.html [#8251](https://github.com/badges/shields/issues/8251)
- Add [galaxytoolshed] Activity [#8164](https://github.com/badges/shields/issues/8164)
- [greasyfork] Add Greasy Fork rating badges [#8087](https://github.com/badges/shields/issues/8087)
- refactor(deps): Replace moment with dayjs [#8192](https://github.com/badges/shields/issues/8192)
- add spaces round pipe in [conda] badge [#8189](https://github.com/badges/shields/issues/8189)
- Add [ROS] version service [#8169](https://github.com/badges/shields/issues/8169)
- feat: add [gitlabissues] service [#8108](https://github.com/badges/shields/issues/8108)
- Dependency updates
## server-2022-07-03
- Add [galaxytoolshed] services [#8114](https://github.com/badges/shields/issues/8114)

View File

@@ -35,6 +35,16 @@
"WEBLATE_API_KEY": {
"description": "Configure the API key to be used for the Weblate service.",
"required": false
},
"METRICS_INFLUX_ENABLED": {
"description": "Disable influx metrics",
"value": "false",
"required": false
},
"REQUIRE_CLOUDFLARE": {
"description": "Allow direct traffic",
"value": "false",
"required": false
}
},
"formation": {

View File

@@ -2,7 +2,7 @@
## 4.0.0 [WIP]
- Drop compatibility with Node 10
- Drop compatibility with Node < 14
## 3.3.1

View File

@@ -26,7 +26,7 @@
"badge": "lib/badge-cli.js"
},
"engines": {
"node": ">= 12",
"node": ">= 14",
"npm": ">= 6"
},
"collective": {

View File

@@ -13,6 +13,13 @@ const serviceDir = path.join(
'services'
)
function toUnixPath(path) {
// glob does not allow \ as a path separator
// see https://github.com/isaacs/node-glob/blob/main/changelog.md#80
// so we need to convert to use / for use with glob
return path.replace(/\\/g, '/')
}
class InvalidService extends Error {
constructor(message) {
super(message)
@@ -22,7 +29,9 @@ class InvalidService extends Error {
async function loadServiceClasses(servicePaths) {
if (!servicePaths) {
servicePaths = glob.sync(path.join(serviceDir, '**', '*.service.js'))
servicePaths = glob.sync(
toUnixPath(path.join(serviceDir, '**', '*.service.js'))
)
}
const serviceClasses = []
@@ -42,8 +51,8 @@ async function loadServiceClasses(servicePaths) {
if (serviceClass && serviceClass.prototype instanceof BaseService) {
// Decorate each service class with the directory that contains it.
serviceClass.serviceFamily = servicePath
.replace(serviceDir, '')
.split(path.sep)[1]
.replace(toUnixPath(serviceDir), '')
.split('/')[1]
serviceClass.validateDefinition()
return serviceClasses.push(serviceClass)
}

View File

@@ -1,3 +1,7 @@
import { registerCommand } from 'cypress-wait-for-stable-dom'
registerCommand()
describe('Main page', function () {
const backendUrl = Cypress.env('backend_url')
const SEARCH_INPUT = 'input[placeholder="search / project URL"]'
@@ -9,8 +13,13 @@ describe('Main page', function () {
.should('have.attr', 'src', previewUrl)
}
function visitAndWait(page) {
cy.visit(page)
cy.waitForStableDOM({ pollInterval: 1000, timeout: 10000 })
}
it('Search for badges', function () {
cy.visit('/')
visitAndWait('/')
cy.get(SEARCH_INPUT).type('pypi')
@@ -18,7 +27,7 @@ describe('Main page', function () {
})
it('Shows badge from category', function () {
cy.visit('/category/chat')
visitAndWait('/category/chat')
expectBadgeExample(
'Discourse status',
@@ -29,7 +38,7 @@ describe('Main page', function () {
it('Suggest badges', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
visitAndWait('/')
cy.get(SEARCH_INPUT).type('https://github.com/badges/shields')
cy.contains('Suggest badges').click()
@@ -39,7 +48,7 @@ describe('Main page', function () {
it('Customization form is filled with suggested badge details', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
visitAndWait('/')
cy.get(SEARCH_INPUT).type('https://github.com/badges/shields')
cy.contains('Suggest badges').click()
@@ -51,7 +60,7 @@ describe('Main page', function () {
it('Customizate suggested badge', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
visitAndWait('/')
cy.get(SEARCH_INPUT).type('https://github.com/badges/shields')
cy.contains('Suggest badges').click()
cy.contains(badgeUrl).click()
@@ -62,7 +71,7 @@ describe('Main page', function () {
})
it('Do not duplicate example parameters', function () {
cy.visit('/category/funding')
visitAndWait('/category/funding')
cy.contains('GitHub Sponsors').click()
cy.get('[name="style"]').should($style => {

View File

@@ -114,7 +114,7 @@ if (allFiles.length > 100) {
if (diff.includes('authHelper') && !secretsDocs.modified) {
warn(
[
`:books: Remember to ensure any changes to \`config.private\` `,
':books: Remember to ensure any changes to `config.private` ',
`in \`${file}\` are reflected in the [server secrets documentation]`,
'(https://github.com/badges/shields/blob/master/doc/server-secrets.md)',
].join('')

View File

@@ -58,7 +58,7 @@ The tests are also divided into several parts:
[redis-token-persistence.integration]: https://github.com/badges/shields/blob/master/core/token-pooling/redis-token-persistence.integration.js
[github-api-provider.integration]: https://github.com/badges/shields/blob/master/services/github/github-api-provider.integration.js
Our goal is for the core code is to reach 100% coverage of the code in the
Our goal is to reach 100% coverage of the code in the
frontend, core, and service helper functions when the unit and functional
tests are run.
@@ -95,7 +95,7 @@ test this kind of logic through unit tests (e.g. of `render()` and
callback with the four parameters `( queryParams, match, end, ask )` which
is created in a legacy helper function in
[`legacy-request-handler.js`][legacy-request-handler]. This callback
delegates to a callback in `BaseService.register` with four different
delegates to a callback in `BaseService.register` with three different
parameters `( queryParams, match, sendBadge )`, which
then runs `BaseService.invoke`. `BaseService.invoke` instantiates the
service and runs `BaseService#handle`.

View File

@@ -67,7 +67,7 @@ t.create('Build status')
- 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.
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 build into IcedFrisby which you can use to
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"`.

View File

@@ -51,14 +51,14 @@ test(reStructuredText, () => {
'.. image:: https://img.shields.io/badge'
)
given('https://img.shields.io/badge', undefined, 'Example').expect(
'.. image:: https://img.shields.io/badge :alt: Example'
'.. image:: https://img.shields.io/badge\n :alt: Example'
)
given(
'https://img.shields.io/badge',
'https://example.com/example',
'Example'
).expect(
'.. image:: https://img.shields.io/badge :alt: Example :target: https://example.com/example'
'.. image:: https://img.shields.io/badge\n :alt: Example\n :target: https://example.com/example'
)
})

View File

@@ -33,10 +33,10 @@ export function reStructuredText(
): string {
let result = `.. image:: ${badgeUrl}`
if (title) {
result += ` :alt: ${title}`
result += `\n :alt: ${title}`
}
if (link) {
result += ` :target: ${link}`
result += `\n :target: ${link}`
}
return result
}

View File

@@ -18,8 +18,8 @@ function loadSimpleIcons() {
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"`)),
light: svg2base64(icon.svg.replace('<svg', '<svg fill="whitesmoke"')),
dark: svg2base64(icon.svg.replace('<svg', '<svg fill="#333"')),
}
// There are a few instances where multiple icons have the same title

View File

@@ -33,7 +33,7 @@ describe('Logo helpers', function () {
test(prepareNamedLogo, () => {
// NPM uses multiple colors so the color param should be ignored
const npmLogo =
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPgo='
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPg=='
given({ name: 'npm' }).expect(npmLogo)
given({ name: 'npm', color: 'blue' }).expect(npmLogo)
@@ -115,7 +115,7 @@ describe('Logo helpers', function () {
undefined
)
given('npm', {}).expect(
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPgo='
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPg=='
)
})
})

View File

@@ -1,5 +1,7 @@
function svg2base64(svg) {
return `data:image/svg+xml;base64,${Buffer.from(svg).toString('base64')}`
return `data:image/svg+xml;base64,${Buffer.from(svg.trim()).toString(
'base64'
)}`
}
export { svg2base64 }

17174
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,10 +21,10 @@
"url": "https://github.com/badges/shields"
},
"dependencies": {
"@fontsource/lato": "^4.5.8",
"@fontsource/lekton": "^4.5.9",
"@fontsource/lato": "^4.5.9",
"@fontsource/lekton": "^4.5.10",
"@renovate/pep440": "^1.0.0",
"@sentry/node": "^7.5.1",
"@sentry/node": "^7.13.0",
"@shields_io/camp": "^18.1.1",
"badge-maker": "file:badge-maker",
"bytes": "^3.1.2",
@@ -32,18 +32,19 @@
"chalk": "^5.0.1",
"check-node-version": "^4.2.1",
"cloudflare-middleware": "^1.0.4",
"config": "^3.3.7",
"config": "^3.3.8",
"cross-env": "^7.0.3",
"dayjs": "^1.11.5",
"decamelize": "^3.2.0",
"emojic": "^1.1.17",
"escape-string-regexp": "^4.0.0",
"fast-xml-parser": "^4.0.8",
"fast-xml-parser": "^4.0.10",
"glob": "^8.0.3",
"global-agent": "^3.0.0",
"got": "^12.1.0",
"got": "^12.4.1",
"graphql": "^15.6.1",
"graphql-tag": "^2.12.6",
"ioredis": "5.1.0",
"ioredis": "5.2.3",
"joi": "17.6.0",
"joi-extension-semver": "5.0.0",
"js-yaml": "^4.1.0",
@@ -51,17 +52,16 @@
"lodash.countby": "^4.6.0",
"lodash.groupby": "^4.6.0",
"lodash.times": "^4.3.2",
"moment": "^2.29.4",
"node-env-flag": "^0.1.0",
"parse-link-header": "^2.0.0",
"path-to-regexp": "^6.2.1",
"pretty-bytes": "^6.0.0",
"priorityqueuejs": "^2.0.0",
"prom-client": "^14.0.1",
"prom-client": "^14.1.0",
"qs": "^6.11.0",
"query-string": "^7.1.1",
"semver": "~7.3.7",
"simple-icons": "7.4.0",
"simple-icons": "7.11.0",
"webextension-store-meta": "^1.0.5",
"xmldom": "~0.6.0",
"xpath": "~0.0.32"
@@ -141,12 +141,12 @@
]
},
"devDependencies": {
"@babel/core": "^7.18.6",
"@babel/core": "^7.19.1",
"@babel/polyfill": "^7.12.1",
"@babel/register": "7.18.6",
"@babel/register": "7.18.9",
"@istanbuljs/schema": "^0.1.3",
"@mapbox/react-click-to-select": "^2.2.1",
"@types/chai": "^4.3.1",
"@types/chai": "^4.3.3",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.groupby": "^4.6.7",
"@types/mocha": "^9.1.1",
@@ -154,12 +154,12 @@
"@types/react-helmet": "^6.1.5",
"@types/react-modal": "^3.13.1",
"@types/react-select": "^4.0.17",
"@types/styled-components": "5.1.25",
"@typescript-eslint/eslint-plugin": "^5.30.5",
"@typescript-eslint/parser": "^5.27.0",
"@types/styled-components": "5.1.26",
"@typescript-eslint/eslint-plugin": "^5.37.0",
"@typescript-eslint/parser": "^5.30.7",
"babel-plugin-inline-react-svg": "^2.0.1",
"babel-preset-gatsby": "^2.14.0",
"c8": "^7.11.3",
"babel-preset-gatsby": "^2.22.0",
"c8": "^7.12.0",
"caller": "^1.1.0",
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
@@ -167,9 +167,10 @@
"chai-string": "^1.4.0",
"child-process-promise": "^2.2.1",
"clipboard-copy": "^4.0.1",
"concurrently": "^7.2.2",
"cypress": "^10.3.0",
"danger": "^11.1.1",
"concurrently": "^7.4.0",
"cypress": "^10.8.0",
"cypress-wait-for-stable-dom": "^0.0.3",
"danger": "^11.1.2",
"danger-plugin-no-test-shortcuts": "^2.0.0",
"deepmerge": "^4.2.2",
"eslint": "^7.32.0",
@@ -180,29 +181,29 @@
"eslint-plugin-chai-friendly": "^0.7.2",
"eslint-plugin-cypress": "^2.12.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsdoc": "^39.3.3",
"eslint-plugin-mocha": "^10.0.5",
"eslint-plugin-jsdoc": "^39.3.6",
"eslint-plugin-mocha": "^10.1.0",
"eslint-plugin-no-extension-in-require": "^0.2.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.2.0",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-react": "^7.31.8",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-sort-class-members": "^1.14.1",
"eslint-plugin-sort-class-members": "^1.15.2",
"fetch-ponyfill": "^7.1.0",
"form-data": "^4.0.0",
"gatsby": "4.6.2",
"gatsby-plugin-catch-links": "^4.11.0",
"gatsby-plugin-page-creator": "^4.7.0",
"gatsby-plugin-react-helmet": "^5.10.0",
"gatsby": "4.23.0",
"gatsby-plugin-catch-links": "^4.19.0",
"gatsby-plugin-page-creator": "^4.22.0",
"gatsby-plugin-react-helmet": "^5.22.0",
"gatsby-plugin-remove-trailing-slashes": "^4.9.0",
"gatsby-plugin-styled-components": "^5.11.0",
"gatsby-plugin-typescript": "^4.11.1",
"gatsby-plugin-styled-components": "^5.19.0",
"gatsby-plugin-typescript": "^4.22.0",
"humanize-string": "^2.1.0",
"icedfrisby": "4.0.0",
"icedfrisby-nock": "^2.1.0",
"is-svg": "^4.3.2",
"js-yaml-loader": "^1.2.2",
"jsdoc": "^3.6.10",
"jsdoc": "^3.6.11",
"lint-staged": "^13.0.3",
"lodash.debounce": "^4.0.8",
"lodash.difference": "^4.5.0",
@@ -211,12 +212,12 @@
"mocha-env-reporter": "^4.0.0",
"mocha-junit-reporter": "^2.0.2",
"mocha-yaml-loader": "^1.0.3",
"nock": "13.2.8",
"nock": "13.2.9",
"node-mocks-http": "^1.11.0",
"nodemon": "^2.0.19",
"nodemon": "^2.0.20",
"npm-run-all": "^4.1.5",
"open-cli": "^7.0.1",
"portfinder": "^1.0.28",
"portfinder": "^1.0.32",
"prettier": "2.7.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
@@ -236,12 +237,12 @@
"start-server-and-test": "1.14.0",
"styled-components": "^5.3.5",
"ts-mocha": "^10.0.0",
"tsd": "^0.22.0",
"typescript": "^4.7.4",
"tsd": "^0.24.1",
"typescript": "^4.8.3",
"url": "^0.11.0"
},
"engines": {
"node": ">=16.13.0",
"node": "^16.13.0",
"npm": ">=8.0.0"
},
"type": "module",

View File

@@ -29,7 +29,7 @@ async function captureTimings(warmupIterations) {
function logResults({ times, iterations, warmupIterations }) {
if (isNaN(iterations)) {
console.log(
`No timings captured. Have you included console.time statements in the badge creation code path?`
'No timings captured. Have you included console.time statements in the badge creation code path?'
)
} else {
const timedIterations = iterations - warmupIterations

36
scripts/mocha2md.js Normal file
View File

@@ -0,0 +1,36 @@
import fs from 'fs'
let data
let title
try {
if (process.argv.length < 4) {
throw new Error()
}
title = process.argv[2]
data = JSON.parse(fs.readFileSync(process.argv[3]))
} catch (e) {
process.stdout.write('failed to write summary\n')
process.exit(1)
}
process.stdout.write(`# ${title}\n\n`)
if (data.stats.passes > 0) {
process.stdout.write(`${data.stats.passes} passed\n`)
}
if (data.stats.failures > 0) {
process.stdout.write(`${data.stats.failures} failed\n\n`)
}
if (data.stats.failures > 0) {
for (const test of data.tests) {
if (test.err && Object.keys(test.err).length > 0) {
process.stdout.write(`### ${test.title}\n\n`)
process.stdout.write(`${test.fullTitle}\n\n`)
process.stdout.write('```\n')
process.stdout.write(`${test.err.stack}\n`)
process.stdout.write('```\n\n')
}
}
}

View File

@@ -1,34 +0,0 @@
#!/bin/bash
# https://discuss.circleci.com/t/switch-nodejs-version-on-machine-executor-solved/26675/3
# Start off less strict to work around various nvm errors.
set -e
export NVM_DIR="/opt/circleci/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
nvm install $NODE_VERSION
nvm use $NODE_VERSION
# Stricter.
set -euo pipefail
node --version
# Install the shields.io dependencies.
npm ci
# Run the package tests.
npm run test:package
npm run check-types:package
# Delete the full shields.io dependency tree
rm -rf node_modules/
# Run a smoke test (render a badge with the CLI) with only the package
# dependencies installed.
cd badge-maker
npm install # install only the package dependencies for this test
npm link
badge cactus grown :green @flat
rm package-lock.json && rm -rf node_modules/ # clean up package dependencies

View File

@@ -8,7 +8,7 @@ import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('unknown build definition')
.get(`/swellaby/opensource/99999999.json`)
.get('/swellaby/opensource/99999999.json')
.expectBadge({ label: 'tests', message: 'build pipeline not found' })
t.create('404 latest build error response')
@@ -51,7 +51,7 @@ t.create('no test result summary response')
})
t.create('no build response')
.get(`/swellaby/opensource/174.json`)
.get('/swellaby/opensource/174.json')
.expectBadge({ label: 'tests', message: 'build pipeline not found' })
t.create('no tests in test result summary response')

View File

@@ -27,7 +27,7 @@ function pullRequestClassGenerator(raw) {
static category = 'issue-tracking'
static route = {
base: `bitbucket/${routePrefix}`,
pattern: `:user/:repo`,
pattern: ':user/:repo',
queryParamSchema,
}

View File

@@ -1,9 +1,8 @@
import Joi from 'joi'
import { nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import { BaseJsonService } from '../index.js'
const schema = Joi.object({ activity_total: nonNegativeInteger })
const schema = Joi.object({ activity_total: Joi.number().required() })
export default class Bountysource extends BaseJsonService {
static category = 'funding'

View File

@@ -60,7 +60,7 @@ const allStatuses = greenStatuses
* Joi schema for validating Build Status.
* Checks if the build status is present in the list of allowed build status.
*
* @type {object}
* @type {Joi}
*/
const isBuildStatus = Joi.equal(...allStatuses)

View File

@@ -3,32 +3,32 @@ import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('level known project')
.get(`/level/1.json`)
.get('/level/1.json')
.expectBadge({
label: 'cii',
message: withRegex(/in progress|passing|silver|gold/),
})
t.create('percentage known project')
.get(`/percentage/29.json`)
.get('/percentage/29.json')
.expectBadge({
label: 'cii',
message: withRegex(/([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|300)%/),
})
t.create('summary known project')
.get(`/summary/33.json`)
.get('/summary/33.json')
.expectBadge({
label: 'cii',
message: withRegex(/(in progress [0-9]|[1-9][0-9]%)|passing|silver|gold/),
})
t.create('unknown project')
.get(`/level/abc.json`)
.get('/level/abc.json')
.expectBadge({ label: 'cii', message: 'project not found' })
t.create('level: gold project')
.get(`/level/1.json`)
.get('/level/1.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/1/badge.json')
@@ -43,7 +43,7 @@ t.create('level: gold project')
})
t.create('level: silver project')
.get(`/level/34.json`)
.get('/level/34.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/34/badge.json')
@@ -58,7 +58,7 @@ t.create('level: silver project')
})
t.create('level: passing project')
.get(`/level/29.json`)
.get('/level/29.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/29/badge.json')
@@ -73,7 +73,7 @@ t.create('level: passing project')
})
t.create('level: in progress project')
.get(`/level/33.json`)
.get('/level/33.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/33/badge.json')
@@ -88,7 +88,7 @@ t.create('level: in progress project')
})
t.create('percentage: gold project')
.get(`/percentage/1.json`)
.get('/percentage/1.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/1/badge.json')
@@ -103,7 +103,7 @@ t.create('percentage: gold project')
})
t.create('percentage: silver project')
.get(`/percentage/34.json`)
.get('/percentage/34.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/34/badge.json')
@@ -118,7 +118,7 @@ t.create('percentage: silver project')
})
t.create('percentage: passing project')
.get(`/percentage/29.json`)
.get('/percentage/29.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/29/badge.json')
@@ -133,7 +133,7 @@ t.create('percentage: passing project')
})
t.create('percentage: in progress project')
.get(`/percentage/33.json`)
.get('/percentage/33.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/33/badge.json')
@@ -148,7 +148,7 @@ t.create('percentage: in progress project')
})
t.create('summary: gold project')
.get(`/summary/1.json`)
.get('/summary/1.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/1/badge.json')
@@ -163,7 +163,7 @@ t.create('summary: gold project')
})
t.create('summary: silver project')
.get(`/summary/34.json`)
.get('/summary/34.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/34/badge.json')
@@ -178,7 +178,7 @@ t.create('summary: silver project')
})
t.create('summary: passing project')
.get(`/summary/29.json`)
.get('/summary/29.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/29/badge.json')
@@ -193,7 +193,7 @@ t.create('summary: passing project')
})
t.create('summary: in progress project')
.get(`/summary/33.json`)
.get('/summary/33.json')
.intercept(nock =>
nock('https://bestpractices.coreinfrastructure.org/projects')
.get('/33/badge.json')

View File

@@ -60,7 +60,7 @@ t.create('handles unauthorized private repository')
.intercept(nock =>
nock('https://codecov.io')
.get('/github/codecov/private-example-python/graph/badge.svg')
.reply(200, `<g><text x="105.5" y="14">unknown</text></g>`, {
.reply(200, '<g><text x="105.5" y="14">unknown</text></g>', {
'Content-Type': 'image/svg+xml',
})
)
@@ -110,7 +110,7 @@ t.create('gets coverage for private repository')
.get(
'/gh/codecov/private-example-python/graph/badge.svg?token=a1b2c3d4e5'
)
.reply(200, `<g><text x="105.5" y="14">100%</text></g>`, {
.reply(200, '<g><text x="105.5" y="14">100%</text></g>', {
'Content-Type': 'image/svg+xml',
})
)

View File

@@ -5,7 +5,7 @@
* @module
*/
import moment from 'moment'
import dayjs from 'dayjs'
import pep440 from '@renovate/pep440'
/**
@@ -182,7 +182,7 @@ function colorScale(steps, colors, reversed) {
*/
function age(date) {
const colorByAge = colorScale([7, 30, 180, 365, 730], undefined, true)
const daysElapsed = moment().diff(moment(date), 'days')
const daysElapsed = dayjs().diff(dayjs(date), 'days')
return colorByAge(daysElapsed)
}

View File

@@ -31,7 +31,7 @@ export default class CondaVersion extends BaseCondaService {
static render({ variant, channel, version }) {
return {
label: variant === 'vn' ? channel : `conda|${channel}`,
label: variant === 'vn' ? channel : `conda | ${channel}`,
message: versionText(version),
color: versionColor(version),
}

View File

@@ -3,7 +3,7 @@ import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('version').get('/v/conda-forge/zlib.json').expectBadge({
label: 'conda|conda-forge',
label: 'conda | conda-forge',
message: isVPlusTripleDottedVersion,
})

View File

@@ -14,12 +14,12 @@ describe('Discord', function () {
},
}
const scope = nock(`https://discord.com`, {
const scope = nock('https://discord.com', {
// This ensures that the expected credential is actually being sent with the HTTP request.
// Without this the request wouldn't match and the test would fail.
reqheaders: { Authorization: `Bot password` },
reqheaders: { Authorization: 'Bot password' },
})
.get(`/api/v6/guilds/12345/widget.json`)
.get('/api/v6/guilds/12345/widget.json')
.reply(200, {
presence_count: 125,
})

View File

@@ -72,7 +72,7 @@ class DiscourseStatus extends DiscourseBase {
static route = this.buildRoute('status')
static examples = [
{
title: `Discourse status`,
title: 'Discourse status',
namedParams: {},
queryParams: {
server: 'https://meta.discourse.org',

View File

@@ -28,6 +28,12 @@ export default class DockerCloudAutomatedBuild extends BaseJsonService {
async handle({ user, repo }) {
const data = await fetchBuild(this, { user, repo })
if (data.objects.length === 0) {
return this.constructor.render({
buildSettings: [],
})
}
return this.constructor.render({
buildSettings: data.objects[0].build_settings,
})

View File

@@ -5,13 +5,29 @@ export const t = await createServiceTester()
const isAutomatedBuildStatus = Joi.string().valid('automated', 'manual')
t.create('docker cloud automated build (valid, user)')
.get('/jrottenberg/ffmpeg.json')
t.create('docker cloud automated build (valid user)')
.get('/pavics/magpie.json')
.expectBadge({
label: 'docker build',
message: isAutomatedBuildStatus,
})
t.create('docker cloud automated build status (invalid, nonexisting user)')
.get('/pavicsssss/magpie.json')
.expectBadge({
label: 'docker build',
message: 'manual',
})
t.create(
"docker cloud build status (valid user, but the 'objects' array from the response is empty)"
)
.get('/pavics/weaver.json')
.expectBadge({
label: 'docker build',
message: 'manual',
})
t.create('docker cloud automated build (not found)')
.get('/badges/not-a-real-repo.json')
.intercept(nock =>

View File

@@ -1,4 +1,4 @@
import { BaseJsonService } from '../index.js'
import { BaseJsonService, NotFound } from '../index.js'
import { dockerBlue, buildDockerUrl } from './docker-helpers.js'
import { fetchBuild } from './docker-cloud-common-fetch.js'
@@ -31,6 +31,12 @@ export default class DockerCloudBuild extends BaseJsonService {
async handle({ user, repo }) {
const data = await fetchBuild(this, { user, repo })
if (data.objects.length === 0) {
throw new NotFound({
prettyMessage: 'automated builds not set up',
})
}
return this.constructor.render({ state: data.objects[0].state })
}
}

View File

@@ -3,13 +3,29 @@ import { createServiceTester } from '../tester.js'
import { dockerBlue } from './docker-helpers.js'
export const t = await createServiceTester()
t.create('docker cloud build status (valid, user)')
.get('/jrottenberg/ffmpeg.json')
t.create('docker cloud build status (valid user)')
.get('/pavics/magpie.json')
.expectBadge({
label: 'docker build',
message: isBuildStatus,
})
t.create('docker cloud build status (invalid, nonexisting user)')
.get('/pavicsssss/magpie.json')
.expectBadge({
label: 'docker build',
message: 'automated builds not set up',
})
t.create(
"docker cloud build status (valid user, but the 'objects' array from the response is empty)"
)
.get('/pavics/weaver.json')
.expectBadge({
label: 'docker build',
message: 'automated builds not set up',
})
t.create('docker cloud build status (not found)')
.get('/badges/not-a-real-repo.json')
.intercept(nock =>

View File

@@ -6,7 +6,7 @@ const cloudBuildSchema = Joi.object({
Joi.object({
state: Joi.string(),
build_settings: Joi.array(),
}).required()
})
)
.required(),
}).required()
@@ -14,7 +14,7 @@ const cloudBuildSchema = Joi.object({
async function fetchBuild(serviceInstance, { user, repo }) {
return serviceInstance._requestJson({
schema: cloudBuildSchema,
url: `https://cloud.docker.com/api/build/v1/source`,
url: 'https://cloud.docker.com/api/build/v1/source',
options: { searchParams: { image: `${user}/${repo}` } },
errorMessages: { 404: 'repo not found' },
})

View File

@@ -1,71 +1,36 @@
const sizeDataNoTagSemVerSort = [
{ name: 'master', full_size: 13449470 },
{ name: 'feature-smtps-support', full_size: 13449638 },
{ name: 'latest', full_size: 13448411 },
{ name: '4', full_size: 13448411 },
{ name: '4.3', full_size: 13448411 },
{ name: '4.3.0', full_size: 13448411 },
{ name: '4.2', full_size: 13443674 },
{ name: '4.2.0', full_size: 13443674 },
{ name: '4.1', full_size: 19244435 },
{ name: '4.1.0', full_size: 19244435 },
{ name: 'v4.0.0-alpha2', full_size: 10933605 },
{ name: 'v4.0.0-alpha1', full_size: 10933644 },
{ name: '4.0.0', full_size: 11512227 },
{ name: '4.0', full_size: 11512227 },
{ name: 'v2.1.9', full_size: 29739490 },
{ name: 'v2.1.10', full_size: 29739842 },
{ name: 'v3.0.0', full_size: 32882980 },
{ name: 'v3.0.1', full_size: 32880923 },
{ name: 'v3.1.0', full_size: 32441549 },
{ name: 'v3.1.1', full_size: 32441767 },
{ name: 'v3.1.2', full_size: 32442741 },
{ name: 'v3.1.3', full_size: 32442629 },
{ name: 'v3.1.4', full_size: 32478607 },
{ name: 'v3.2.0', full_size: 33489914 },
{ name: 'v3.3.0', full_size: 33628545 },
{ name: 'v3.3.1', full_size: 33629018 },
{ name: 'v3.3.3', full_size: 33628988 },
{ name: 'v3.3.4', full_size: 33629019 },
{ name: 'v3.3.6', full_size: 33628753 },
{ name: 'v3.3.7', full_size: 33629556 },
{ name: 'v3.3.8', full_size: 33644261 },
{ name: 'v3.3.9', full_size: 33644175 },
{ name: 'v3.3.10', full_size: 33644406 },
{ name: 'v3.3.11', full_size: 33644430 },
{ name: 'v3.3.12', full_size: 33644703 },
{ name: 'v3.3.13', full_size: 33644377 },
{ name: 'v3.3.15', full_size: 33644581 },
{ name: 'v3.3.16', full_size: 33644663 },
{ name: 'v3.3.17', full_size: 33644228 },
{ name: 'v3.3.18', full_size: 33644466 },
{ name: 'v3.3.19', full_size: 33644724 },
{ name: 'v3.4.0', full_size: 34918552 },
{ name: 'v3.4.2', full_size: 33605129 },
{ name: 'v3.5.0', full_size: 33582915 },
{ name: 'v3.6.0', full_size: 34789944 },
{ name: 'develop', full_size: 38129308 },
{ name: 'v3.7.0', full_size: 38179583 },
{ name: 'v3.7.1', full_size: 38614944 },
{ name: 'v3.8.0', full_size: 42962384 },
{ name: 'v3.8.1', full_size: 40000713 },
{ name: 'v3.8.2', full_size: 40000567 },
{ name: 'v3.8.3', full_size: 40040963 },
{ name: 'v3.9.0', full_size: 40044357 },
{ name: 'v3.9.1', full_size: 40048123 },
{ name: 'v3.9.2', full_size: 40047663 },
{ name: 'v3.9.3', full_size: 40048204 },
{ name: 'v3.9.4', full_size: 40049571 },
{ name: 'v3.9.5', full_size: 40049695 },
{ name: 'v3.10.0', full_size: 39940736 },
{ name: 'v3.11.0', full_size: 39928170 },
{ name: 'v3.12.0', full_size: 39966770 },
{ name: 'v3.13.0', full_size: 38556045 },
{ name: 'v3.14.0', full_size: 38574008 },
{ name: 'v3.15.0', full_size: 38578507 },
{ name: 'v3.16.0', full_size: 38852598 },
{ name: 'v3.16.1', full_size: 38851702 },
{ name: 'v3.16.2', full_size: 38969822 },
{
full_size: 300000000,
name: 'v4.0.0-alpha2',
images: [
{ architecture: 'amd64', size: 219939484 },
{ architecture: 'arm64', size: 200000000 },
],
},
{
full_size: 400000000,
name: 'v4.2.4',
images: [
{ architecture: 'amd64', size: 220000000 },
{ architecture: 'arm64', size: 210000000 },
],
},
{
full_size: 100000000,
name: 'v3.9.7',
images: [
{ architecture: 'amd64', size: 120000000 },
{ architecture: 'arm64', size: 110000000 },
],
},
{
full_size: 500000000,
name: 'latest',
images: [
{ architecture: 'amd64', size: 560000000 },
{ architecture: 'arm64', size: 460000000 },
],
},
]
const versionDataNoTagDateSort = {
count: 4,

View File

@@ -1,7 +1,28 @@
import Joi from 'joi'
// see https://github.com/badges/shields/pull/1690
import { NotFound } from '../index.js'
const dockerBlue = '066da5'
// Valid architecture values: https://golang.org/doc/install/source#environment (GOARCH)
const archSchema = Joi.alternatives(
Joi.string().valid(
'amd64',
'arm',
'arm64',
's390x',
'386',
'ppc64',
'ppc64le',
'wasm',
'mips',
'mipsle',
'mips64',
'mips64le',
'riscv64'
),
Joi.number().valid(386).cast('string')
)
function buildDockerUrl(badgeName, includeTagRoute) {
if (includeTagRoute) {
return {
@@ -55,6 +76,7 @@ function getDigestSemVerMatches({ data, digest }) {
}
export {
archSchema,
dockerBlue,
buildDockerUrl,
getDockerHubUser,

View File

@@ -4,6 +4,7 @@ import { nonNegativeInteger } from '../validators.js'
import { latest } from '../version.js'
import { BaseJsonService, NotFound } from '../index.js'
import {
archSchema,
buildDockerUrl,
getDockerHubUser,
getMultiPageData,
@@ -12,6 +13,12 @@ import {
const buildSchema = Joi.object({
name: Joi.string().required(),
full_size: nonNegativeInteger.required(),
images: Joi.array().items(
Joi.object({
size: nonNegativeInteger.required(),
architecture: Joi.string().required(),
})
),
}).required()
const pagedSchema = Joi.object({
@@ -20,14 +27,37 @@ const pagedSchema = Joi.object({
Joi.object({
name: Joi.string().required(),
full_size: nonNegativeInteger.required(),
images: Joi.array().items(
Joi.object({
size: nonNegativeInteger.required(),
architecture: Joi.string().required(),
})
),
})
),
}).required()
const queryParamSchema = Joi.object({
sort: Joi.string().valid('date', 'semver').default('date'),
arch: archSchema,
}).required()
// If user provided the arch parameter,
// check if any of the returned images has an architecture matching the arch parameter provided.
// If yes, return the size of the image with this arch.
// If not, throw the `NotFound` error.
// For details see: https://github.com/badges/shields/issues/8238
function getImageSizeForArch(images, arch) {
const imgWithArch = Object.values(images).find(
img => img.architecture === arch
)
if (!imgWithArch) {
throw new NotFound({ prettyMessage: 'architecture not found' })
}
return imgWithArch.size
}
export default class DockerSize extends BaseJsonService {
static category = 'size'
static route = { ...buildDockerUrl('image-size', true), queryParamSchema }
@@ -46,6 +76,14 @@ export default class DockerSize extends BaseJsonService {
queryParams: { sort: 'semver' },
staticPreview: this.render({ size: 136000000 }),
},
{
title:
'Docker Image Size with architecture (latest by date/latest semver)',
pattern: ':user/:repo',
namedParams: { user: 'library', repo: 'mysql' },
queryParams: { sort: 'date', arch: 'amd64' },
staticPreview: this.render({ size: 146000000 }),
},
{
title: 'Docker Image Size (tag)',
pattern: ':user/:repo/:tag',
@@ -73,30 +111,83 @@ export default class DockerSize extends BaseJsonService {
})
}
transform({ tag, sort, data }) {
if (!tag && sort === 'date') {
if (data.count === 0) {
throw new NotFound({ prettyMessage: 'repository not found' })
getSizeFromImageByLatestDate(data, arch) {
if (data.count === 0) {
throw new NotFound({ prettyMessage: 'repository not found' })
} else {
const latestEntry = data.results[0]
if (arch) {
return { size: getImageSizeForArch(latestEntry.images, arch) }
} else {
return { size: data.results[0].full_size }
return { size: latestEntry.full_size }
}
} else if (!tag && sort === 'semver') {
const [matches, versions] = data.reduce(
([m, v], d) => {
m[d.name] = d.full_size
v.push(d.name)
return [m, v]
},
[{}, []]
)
const version = latest(versions)
}
}
getSizeFromImageByLatestSemver(data, arch) {
// If no tag is specified, and sorting is by semver, first filter out the entry containing the latest semver from the response with Docker images.
// If no architecture is supplied by the user, return `full_size` from this entry.
// If the architecture is supplied by the user, check if any of the returned images for this entry has an architecture matching the arch parameter supplied by the user.
// If yes, return the size of the image with this arch.
// If not, throw the `NotFound` error.
const [matches, versions, images] = data.reduce(
([m, v, i], d) => {
m[d.name] = d.full_size
v.push(d.name)
i[d.name] = d.images
return [m, v, i]
},
[{}, [], {}]
)
const version = latest(versions)
let sizeOfImgWithArch
if (arch) {
Object.keys(images).forEach(ver => {
if (ver === version) {
sizeOfImgWithArch = getImageSizeForArch(images[ver], arch)
return { size: sizeOfImgWithArch }
}
})
if (sizeOfImgWithArch) {
return { size: sizeOfImgWithArch }
} else {
throw new NotFound({ prettyMessage: 'architecture not found' })
}
} else {
return { size: matches[version] }
}
}
getSizeFromTag(data, arch) {
// If the tag is specified, and the architecture is supplied by the user,
// check if any of the returned images has an architecture matching the arch parameter supplied by the user.
// If yes, return the size of the image with this arch.
// If no, throw the `NotFound` error.
// If no architecture is supplied by the user, return the value of the `full_size` from the response (the image with the `latest` tag).
if (arch) {
return { size: getImageSizeForArch(data.images, arch) }
} else {
return { size: data.full_size }
}
}
async handle({ user, repo, tag }, { sort }) {
transform({ tag, sort, data, arch }) {
if (!tag && sort === 'date') {
return this.getSizeFromImageByLatestDate(data, arch)
} else if (!tag && sort === 'semver') {
return this.getSizeFromImageByLatestSemver(data, arch)
} else {
return this.getSizeFromTag(data, arch)
}
}
async handle({ user, repo, tag }, { sort, arch }) {
let data
if (!tag && sort === 'date') {
@@ -111,7 +202,7 @@ export default class DockerSize extends BaseJsonService {
data = await this.fetch({ user, repo, tag })
}
const { size } = await this.transform({ tag, sort, data })
const { size } = await this.transform({ tag, sort, data, arch })
return this.constructor.render({ size })
}
}

View File

@@ -3,40 +3,99 @@ import DockerSize from './docker-size.service.js'
import { sizeDataNoTagSemVerSort } from './docker-fixtures.js'
describe('DockerSize', function () {
test(DockerSize.prototype.transform, () => {
given({
tag: '',
sort: 'date',
data: { results: [{ name: 'next', full_size: 219939484 }] },
}).expect({
test(DockerSize.prototype.getSizeFromImageByLatestDate, () => {
given(
{
count: 0,
results: [],
},
'amd64'
).expectError('Not Found: repository not found')
given(
{
count: 1,
results: [
{
full_size: 300000000,
name: 'next',
images: [{ architecture: 'amd64', size: 219939484 }],
},
],
},
'amd64'
).expect({
size: 219939484,
})
given({
tag: '',
sort: 'date',
data: {
count: 1,
results: [
{
full_size: 300000000,
name: 'next',
images: [
{ architecture: 'amd64', size: 219939484 },
{ architecture: 'arm64', size: 200000000 },
],
},
],
}).expect({
size: 300000000,
})
given(
{
count: 1,
results: [
{ name: 'latest', full_size: 74661264 },
{ name: 'arm64v8-latest', full_size: 76310416 },
{ name: 'arm32v7-latest', full_size: 68001970 },
{ name: 'amd64-latest', full_size: 74661264 },
{
full_size: 300000000,
name: 'next',
images: [
{ architecture: 'amd64', size: 219939484 },
{ architecture: 'arm64', size: 200000000 },
],
},
],
},
}).expect({
size: 74661264,
'arm64777'
).expectError('Not Found: architecture not found')
})
test(DockerSize.prototype.getSizeFromTag, () => {
given(
{
full_size: 300000000,
name: 'next',
images: [{ architecture: 'amd64', size: 219939484 }],
},
'amd64'
).expect({
size: 219939484,
})
given({
tag: '',
sort: 'semver',
data: sizeDataNoTagSemVerSort,
full_size: 300000000,
name: 'next',
images: [{ architecture: 'amd64', size: 219939484 }],
}).expect({
size: 13448411,
size: 300000000,
})
given({
tag: 'latest',
data: { name: 'latest', full_size: 13448411 },
}).expect({
size: 13448411,
given(
{
full_size: 300000000,
name: 'next',
images: [{ architecture: 'amd64', size: 219939484 }],
},
'arm64777'
).expectError('Not Found: architecture not found')
})
test(DockerSize.prototype.getSizeFromImageByLatestSemver, () => {
given(sizeDataNoTagSemVerSort, 'amd64').expect({
size: 220000000,
})
given(sizeDataNoTagSemVerSort).expect({
size: 400000000,
})
given(sizeDataNoTagSemVerSort, 'nonexistentArch').expectError(
'Not Found: architecture not found'
)
})
})

View File

@@ -9,6 +9,13 @@ t.create('docker image size (valid, library)')
message: isFileSize,
})
t.create('docker image size (valid, library, arch parameter )')
.get('/_/mysql.json?arch=amd64')
.expectBadge({
label: 'image size',
message: isFileSize,
})
t.create('docker image size (valid, library with tag)')
.get('/_/alpine/latest.json')
.expectBadge({
@@ -41,5 +48,19 @@ t.create('docker image size (invalid, unknown repository)')
.get('/_/not-a-real-repo.json')
.expectBadge({
label: 'image size',
message: 'repository not found',
message: 'repository or tag not found',
})
t.create('docker image size (invalid, wrong sorting method)')
.get('/jrottenberg/ffmpeg/3.2-alpine.json?sort=daterrr')
.expectBadge({
label: 'image size',
message: 'invalid query parameter: sort',
})
t.create('docker image size (invalid, nonexisting arch)')
.get('/jrottenberg/ffmpeg/3.2-alpine.json?arch=nonexistingArch')
.expectBadge({
label: 'image size',
message: 'invalid query parameter: arch',
})

View File

@@ -1,13 +1,18 @@
import Joi from 'joi'
import { metric } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
import { BaseService } from '../index.js'
import { BaseJsonService } from '../index.js'
import {
dockerBlue,
buildDockerUrl,
getDockerHubUser,
} from './docker-helpers.js'
export default class DockerStars extends BaseService {
const schema = Joi.object({
star_count: nonNegativeInteger.required(),
}).required()
export default class DockerStars extends BaseJsonService {
static category = 'rating'
static route = buildDockerUrl('stars')
static examples = [
@@ -31,18 +36,17 @@ export default class DockerStars extends BaseService {
}
async fetch({ user, repo }) {
const url = `https://hub.docker.com/v2/repositories/${getDockerHubUser(
user
)}/${repo}/stars/count/`
const { buffer } = await this._request({
url,
return this._requestJson({
schema,
url: `https://hub.docker.com/v2/repositories/${getDockerHubUser(
user
)}/${repo}/`,
errorMessages: { 404: 'repo not found' },
})
return this.constructor._validate(buffer, nonNegativeInteger)
}
async handle({ user, repo }) {
const stars = await this.fetch({ user, repo })
return this.constructor.render({ stars })
const { star_count } = await this.fetch({ user, repo })
return this.constructor.render({ stars: star_count })
}
}

View File

@@ -3,6 +3,7 @@ import { nonNegativeInteger } from '../validators.js'
import { latest, renderVersionBadge } from '../version.js'
import { BaseJsonService, NotFound, InvalidResponse } from '../index.js'
import {
archSchema,
buildDockerUrl,
getDockerHubUser,
getMultiPageData,
@@ -26,23 +27,7 @@ const buildSchema = Joi.object({
const queryParamSchema = Joi.object({
sort: Joi.string().valid('date', 'semver').default('date'),
arch: Joi.string()
// Valid architecture values: https://golang.org/doc/install/source#environment (GOARCH)
.valid(
'amd64',
'arm',
'arm64',
's390x',
'386',
'ppc64',
'ppc64le',
'wasm',
'mips',
'mipsle',
'mips64',
'mips64le'
)
.default('amd64'),
arch: archSchema.default('amd64'),
}).required()
export default class DockerVersion extends BaseJsonService {

View File

@@ -39,5 +39,5 @@ t.create('docker version (invalid, unknown repository)')
.get('/_/not-a-real-repo.json')
.expectBadge({
label: 'version',
message: 'repository not found',
message: 'repository or tag not found',
})

View File

@@ -10,7 +10,7 @@ describe('DroneBuild', function () {
const token = 'abc123'
const scope = nock('https://cloud.drone.io', {
reqheaders: { Authorization: `Bearer abc123` },
reqheaders: { Authorization: 'Bearer abc123' },
})
.get(/.*/)
.reply(200, { status: 'passing' })

View File

@@ -22,7 +22,7 @@ const errorMessages = {
* Joi schema for validating individual value.
* Checks if the individual value is of type string or number.
*
* @type {object}
* @type {Joi}
*/
const individualValueSchema = Joi.alternatives()
.try(Joi.string(), Joi.number())
@@ -32,7 +32,7 @@ const individualValueSchema = Joi.alternatives()
* Joi schema for validating compound value.
* Checks if the compound value is of type individualValueSchema, array of individualValueSchema or empty array.
*
* @type {object}
* @type {Joi}
*/
const compoundValueSchema = Joi.alternatives().try(
individualValueSchema,

View File

@@ -23,7 +23,7 @@ const optionalNumberWhenAnyLogoPresent = Joi.alternatives()
/**
* Joi schema for validating endpoint.
*
* @type {object}
* @type {Joi}
*/
const endpointSchema = Joi.object({
schemaVersion: 1,

View File

@@ -46,7 +46,7 @@ export default class FreeCodeCampPoints extends BaseJsonService {
async fetch({ username }) {
return this._requestJson({
schema,
url: `https://api.freecodecamp.org/api/users/get-public-profile`,
url: 'https://api.freecodecamp.org/api/users/get-public-profile',
options: {
searchParams: {
username,

View File

@@ -0,0 +1,41 @@
import { formatDate } from '../text-formatters.js'
import BaseGalaxyToolshedService from './galaxytoolshed-base.js'
export default class GalaxyToolshedCreatedDate extends BaseGalaxyToolshedService {
static category = 'activity'
static route = {
base: 'galaxytoolshed/created-date',
pattern: ':repository/:owner',
}
static examples = [
{
title: 'Galaxy Toolshed (created date)',
namedParams: {
repository: 'sra_tools',
owner: 'iuc',
},
staticPreview: this.render({
date: this.render({ date: '2022-01-01' }),
}),
},
]
static defaultBadgeData = {
label: 'created date',
color: 'blue',
}
static render({ date }) {
return { message: formatDate(date) }
}
async handle({ repository, owner }) {
const response = await this.fetchLastOrderedInstallableRevisionsSchema({
repository,
owner,
})
const { create_time: date } = response[0]
return this.constructor.render({ date })
}
}

View File

@@ -0,0 +1,23 @@
import { isFormattedDate } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Created Date')
.get('/sra_tools/iuc.json')
.expectBadge({ label: 'created date', message: isFormattedDate })
t.create('Created Date - repository not found')
.get('/sra_tool/iuc.json')
.expectBadge({ label: 'created date', message: 'not found' })
t.create('Created Date - owner not found')
.get('/sra_tools/iu.json')
.expectBadge({ label: 'created date', message: 'not found' })
t.create('Created Date - changesetRevision not found')
.get('/bioqc/badilla.json')
.expectBadge({
label: 'created date',
message: 'changesetRevision not found',
})

View File

@@ -9,6 +9,7 @@ const orderedInstallableRevisionsSchema = Joi.array()
const repositoryRevisionInstallInfoSchema = Joi.array()
.ordered(
Joi.object({
create_time: Joi.date().required(),
times_downloaded: nonNegativeInteger,
}).required()
)

View File

@@ -40,7 +40,7 @@ class GithubAuthV4Service extends BaseGraphqlService {
}
async _requestGraphql(attrs) {
const url = `/graphql`
const url = '/graphql'
/*
The Github v4 API requires us to query the rateLimit object to return

View File

@@ -0,0 +1,59 @@
import Joi from 'joi'
import { metric } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
import { GithubAuthV3Service } from './github-auth-service.js'
import { documentation, errorMessagesFor } from './github-helpers.js'
const schema = Joi.object({ total_commits: nonNegativeInteger }).required()
const queryParamSchema = Joi.object({
base: Joi.string().required(),
head: Joi.string().required(),
}).required()
export default class GithubCommitsDifference extends GithubAuthV3Service {
static category = 'activity'
static route = {
base: 'github/commits-difference',
pattern: ':user/:repo',
queryParamSchema,
}
static examples = [
{
title: 'GitHub commits difference between two branches/tags/commits',
namedParams: {
user: 'microsoft',
repo: 'vscode',
},
queryParams: {
base: '1.60.0',
head: '82f2db7',
},
staticPreview: this.render({
commitCount: 9227,
}),
documentation,
},
]
static defaultBadgeData = { label: 'commits difference', namedLogo: 'github' }
static render({ commitCount }) {
return {
message: metric(commitCount),
color: 'blue',
}
}
async handle({ user, repo }, { base, head }) {
const notFoundMessage = 'could not establish commit difference between refs'
const { total_commits: commitCount } = await this._requestJson({
schema,
url: `/repos/${user}/${repo}/compare/${base}...${head}`,
errorMessages: errorMessagesFor(notFoundMessage),
})
return this.constructor.render({ commitCount })
}
}

View File

@@ -0,0 +1,43 @@
import { isMetric } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Commits difference - correct, between branches')
.get('/microsoft/vscode.json?base=standalone/0.1.x&head=release/1.21')
.expectBadge({
label: 'commits difference',
message: isMetric,
color: 'blue',
})
t.create('Commits difference - correct, between tags')
.get('/microsoft/vscode.json?base=1.58.0&head=1.59.0')
.expectBadge({
label: 'commits difference',
message: isMetric,
color: 'blue',
})
t.create('Commits difference - correct, between commits')
.get('/microsoft/vscode.json?base=3d82ef7&head=82f2db7')
.expectBadge({
label: 'commits difference',
message: isMetric,
color: 'blue',
})
t.create('Commits difference - incorrect, between commits')
.get('/microsoft/vscode.json?base=fffffff&head=82f2db7')
.expectBadge({
label: 'commits difference',
message: 'could not establish commit difference between refs',
color: 'red',
})
t.create('Commits difference - incorrect, missing head')
.get('/microsoft/vscode.json?base=fffffff')
.expectBadge({
label: 'commits difference',
message: 'invalid query parameter: head',
color: 'red',
})

View File

@@ -0,0 +1,47 @@
import Joi from 'joi'
import { formatDate } from '../text-formatters.js'
import { age as ageColor } from '../color-formatters.js'
import { GithubAuthV3Service } from './github-auth-service.js'
import { documentation, errorMessagesFor } from './github-helpers.js'
const schema = Joi.object({
updated_at: Joi.string().required(),
}).required()
export default class GithubGistLastCommit extends GithubAuthV3Service {
static category = 'activity'
static route = { base: 'github-gist/last-commit', pattern: ':gistId' }
static examples = [
{
title: 'GitHub Gist last commit',
namedParams: {
gistId: '8710649',
},
staticPreview: this.render({ commitDate: '2022-07-29T20:01:41Z' }),
keywords: ['latest'],
documentation,
},
]
static defaultBadgeData = { label: 'last commit' }
static render({ commitDate }) {
return {
message: formatDate(commitDate),
color: ageColor(Date.parse(commitDate)),
}
}
async fetch({ gistId }) {
return this._requestJson({
url: `/gists/${gistId}`,
schema,
errorMessages: errorMessagesFor('gist not found'),
})
}
async handle({ gistId }) {
const { updated_at: commitDate } = await this.fetch({ gistId })
return this.constructor.render({ commitDate })
}
}

View File

@@ -0,0 +1,24 @@
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('last commit in gist (ancient)').get('/871064.json').expectBadge({
label: 'last commit',
message: 'september 2015',
color: 'red',
})
// not checking the color badge, since in August 2022 it is orange but later it will become red
t.create('last commit in gist (still ancient but slightly less so)')
.get('/870071abadfd66a28bf539677332f12b.json')
.expectBadge({
label: 'last commit',
message: 'october 2020',
})
t.create('last commit in gist (gist not found)')
.get('/55555555555555.json')
.expectBadge({
label: 'last commit',
message: 'gist not found',
color: 'red',
})

View File

@@ -1,6 +1,6 @@
import gql from 'graphql-tag'
import Joi from 'joi'
import moment from 'moment'
import dayjs from 'dayjs'
import { metric, maybePluralize } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
import { GithubAuthV4Service } from './github-auth-service.js'
@@ -121,7 +121,7 @@ export default class GithubHacktoberfestCombinedStatus extends GithubAuthV4Servi
// The global cutoff time is 11/1 noon UTC.
// https://github.com/badges/shields/pull/4109#discussion_r330782093
// We want to show "1 day left" on the last day so we add 1.
daysLeft = moment(`${year}-11-01 12:00:00 Z`).diff(moment(), 'days') + 1
daysLeft = dayjs(`${year}-11-01 12:00:00 Z`).diff(dayjs(), 'days') + 1
}
if (daysLeft < 0) {
return {
@@ -160,7 +160,7 @@ export default class GithubHacktoberfestCombinedStatus extends GithubAuthV4Servi
`repo:${user}/${repo}`,
'is:pr',
`created:${year}-10-01..${year}-10-31`,
`-label:invalid`,
'-label:invalid',
]
.filter(Boolean)
.join(' ')
@@ -205,10 +205,7 @@ export default class GithubHacktoberfestCombinedStatus extends GithubAuthV4Servi
}
static getCalendarPosition(year) {
const daysToStart = moment(`${year}-10-01 00:00:00 Z`).diff(
moment(),
'days'
)
const daysToStart = dayjs(`${year}-10-01 00:00:00 Z`).diff(dayjs(), 'days')
const isBefore = daysToStart > 0
return { daysToStart, isBefore }
}

View File

@@ -35,7 +35,7 @@ export default class GithubLabels extends GithubAuthV3Service {
return this._requestJson({
url: `/repos/${user}/${repo}/labels/${name}`,
schema,
errorMessages: errorMessagesFor(`repo or label not found`),
errorMessages: errorMessagesFor('repo or label not found'),
})
}

View File

@@ -85,7 +85,7 @@ export default class GithubMilestoneDetail extends GithubAuthV3Service {
return this._requestJson({
url: `/repos/${user}/${repo}/milestones/${number}`,
schema,
errorMessages: errorMessagesFor(`repo or milestone not found`),
errorMessages: errorMessagesFor('repo or milestone not found'),
})
}

View File

@@ -70,7 +70,7 @@ export default class GithubMilestone extends GithubAuthV3Service {
return this._requestJson({
url: `/repos/${user}/${repo}/milestones?state=${variant}`,
schema,
errorMessages: errorMessagesFor(`repo not found`),
errorMessages: errorMessagesFor('repo not found'),
})
}

View File

@@ -175,7 +175,7 @@ class GithubPackageJsonDependencyVersion extends ConditionalGithubAuthV3Service
})
const wantedDependency = scope ? `${scope}/${packageName}` : packageName
const { range } = getDependencyVersion({
const range = getDependencyVersion({
kind,
wantedDependency,
dependencies,

View File

@@ -1,4 +1,4 @@
import moment from 'moment'
import dayjs from 'dayjs'
import Joi from 'joi'
import { age } from '../color-formatters.js'
import { formatDate } from '../text-formatters.js'
@@ -51,7 +51,7 @@ export default class GithubReleaseDate extends GithubAuthV3Service {
static defaultBadgeData = { label: 'release date' }
static render({ date }) {
const releaseDate = moment(date)
const releaseDate = dayjs(date)
return {
message: formatDate(releaseDate),
color: age(releaseDate),

View File

@@ -5,6 +5,10 @@ import { NotFound } from '../index.js'
import { GithubAuthV3Service } from './github-auth-service.js'
import { documentation, errorMessagesFor } from './github-helpers.js'
const queryParamSchema = Joi.object({
branch: Joi.string(),
}).required()
const schema = Joi.alternatives(
Joi.object({
size: nonNegativeInteger,
@@ -18,6 +22,7 @@ export default class GithubSize extends GithubAuthV3Service {
static route = {
base: 'github/size',
pattern: ':user/:repo/:path*',
queryParamSchema,
}
static examples = [
@@ -32,6 +37,20 @@ export default class GithubSize extends GithubAuthV3Service {
keywords: ['repo'],
documentation,
},
{
title: 'GitHub file size in bytes on a specified ref (branch/commit/tag)',
namedParams: {
user: 'webcaetano',
repo: 'craft',
path: 'build/phaser-craft.min.js',
},
staticPreview: this.render({ size: 9170 }),
keywords: ['repo'],
documentation,
queryParams: {
branch: 'master',
},
},
]
static render({ size }) {
@@ -41,16 +60,25 @@ export default class GithubSize extends GithubAuthV3Service {
}
}
async fetch({ user, repo, path }) {
return this._requestJson({
url: `/repos/${user}/${repo}/contents/${path}`,
schema,
errorMessages: errorMessagesFor('repo or file not found'),
})
async fetch({ user, repo, path, branch }) {
if (branch) {
return this._requestJson({
url: `/repos/${user}/${repo}/contents/${path}?ref=${branch}`,
schema,
errorMessages: errorMessagesFor('repo, branch or file not found'),
})
} else {
return this._requestJson({
url: `/repos/${user}/${repo}/contents/${path}`,
schema,
errorMessages: errorMessagesFor('repo or file not found'),
})
}
}
async handle({ user, repo, path }) {
const body = await this.fetch({ user, repo, path })
async handle({ user, repo, path }, queryParams) {
const branch = queryParams.branch
const body = await this.fetch({ user, repo, path, branch })
if (Array.isArray(body)) {
throw new NotFound({ prettyMessage: 'not a regular file' })
}

View File

@@ -10,6 +10,22 @@ t.create('File size 404')
.get('/webcaetano/craft/build/does-not-exist.min.js.json')
.expectBadge({ label: 'size', message: 'repo or file not found' })
t.create('File size for nonexisting branch')
.get('/webcaetano/craft/build/phaser-craft.min.js.json?branch=notARealBranch')
.expectBadge({ label: 'size', message: 'repo, branch or file not found' })
t.create('File size for "not a regular file"')
.get('/webcaetano/craft/build.json')
.expectBadge({ label: 'size', message: 'not a regular file' })
t.create('File size for a specified branch')
.get('/webcaetano/craft/build/craft.min.js.json?branch=version-2')
.expectBadge({ label: 'size', message: isFileSize })
t.create('File size for a specified tag')
.get('/webcaetano/craft/build/phaser-craft.min.js.json?branch=2.1.2')
.expectBadge({ label: 'size', message: isFileSize })
t.create('File size for a specified commit')
.get('/webcaetano/craft/build/phaser-craft.min.js.json?branch=b848dbb')
.expectBadge({ label: 'size', message: isFileSize })

View File

@@ -108,7 +108,7 @@ const query = gql`
const affiliationsAllowedValues = [
'OWNER',
`COLLABORATOR`,
'COLLABORATOR',
'ORGANIZATION_MEMBER',
]
/**

View File

@@ -1,6 +1,7 @@
import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { renderContributorBadge } from '../contributor-count.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
import GitLabBase from './gitlab-base.js'
const schema = Joi.object({ 'x-total': nonNegativeInteger }).required()
@@ -9,19 +10,6 @@ const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab )
</p>
`
const customDocumentation = `
<p>
Note that only network-accessible jihulab.com and other self-managed GitLab instances are supported.
You may use your GitLab Project Id (e.g. 13953) or your Project Path (e.g. gitlab-cn/gitlab ) in <a href="https://jihulab.com">https://jihulab.com</a>
</p>
`
export default class GitlabContributors extends GitLabBase {
static category = 'activity'
static route = {
@@ -46,7 +34,7 @@ export default class GitlabContributors extends GitLabBase {
project: 'gitlab-cn/gitlab',
},
staticPreview: this.render({ contributorCount: 415 }),
documentation: customDocumentation,
documentation,
},
]
@@ -64,9 +52,7 @@ export default class GitlabContributors extends GitLabBase {
project
)}/repository/contributors`,
options: { searchParams: { page: '1', per_page: '1' } },
errorMessages: {
404: 'project not found',
},
errorMessages: errorMessagesFor('project not found'),
})
)
const data = this.constructor._validate(res.headers, schema)

View File

@@ -2,6 +2,7 @@ import Joi from 'joi'
import { coveragePercentage } from '../color-formatters.js'
import { optionalUrl } from '../validators.js'
import { BaseSvgScrapingService, NotFound } from '../index.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
const schema = Joi.object({
message: Joi.string()
@@ -14,7 +15,7 @@ const queryParamSchema = Joi.object({
job_name: Joi.string(),
}).required()
const documentation = `
const moreDocs = `
<p>
Important: If your project is publicly visible, but the badge is like this:
<img src="https://img.shields.io/badge/coverage-not&nbsp;set&nbsp;up-red" alt="coverage not set up"/>
@@ -54,7 +55,7 @@ export default class GitlabCoverage extends BaseSvgScrapingService {
branch: 'master',
},
staticPreview: this.render({ coverage: 67 }),
documentation,
documentation: documentation + moreDocs,
},
{
title: 'Gitlab code coverage (specific job)',
@@ -65,14 +66,14 @@ export default class GitlabCoverage extends BaseSvgScrapingService {
},
queryParams: { job_name: 'test coverage report' },
staticPreview: this.render({ coverage: 96 }),
documentation,
documentation: documentation + moreDocs,
},
{
title: 'Gitlab code coverage (self-managed)',
namedParams: { user: 'GNOME', repo: 'at-spi2-core', branch: 'master' },
queryParams: { gitlab_url: 'https://gitlab.gnome.org' },
staticPreview: this.render({ coverage: 93 }),
documentation,
documentation: documentation + moreDocs,
},
{
title: 'Gitlab code coverage (self-managed, specific job)',
@@ -82,7 +83,7 @@ export default class GitlabCoverage extends BaseSvgScrapingService {
job_name: 'unit-test',
},
staticPreview: this.render({ coverage: 93 }),
documentation,
documentation: documentation + moreDocs,
},
]
@@ -100,10 +101,7 @@ export default class GitlabCoverage extends BaseSvgScrapingService {
// it is recommended to not use the query param at all if not required
jobName = jobName ? `?job=${jobName}` : ''
const url = `${baseUrl}/${user}/${repo}/badges/${branch}/coverage.svg${jobName}`
const errorMessages = {
401: 'repo not found',
404: 'repo not found',
}
const errorMessages = errorMessagesFor('project not found')
return this._requestSvg({
schema,
url,

View File

@@ -0,0 +1,77 @@
import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import GitLabBase from './gitlab-base.js'
const schema = Joi.object({
forks_count: nonNegativeInteger,
}).required()
const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab ).
Note that only internet-accessible GitLab instances are supported, for example https://jihulab.com, https://gitlab.gnome.org, or https://gitlab.com/.
</p>
`
export default class GitlabForks extends GitLabBase {
static category = 'social'
static route = {
base: 'gitlab/forks',
pattern: ':project+',
queryParamSchema,
}
static examples = [
{
title: 'GitLab forks',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'Fork',
message: '6.4k',
style: 'social',
},
documentation,
},
]
static defaultBadgeData = { label: 'forks', namedLogo: 'gitlab' }
static render({ baseUrl, project, forkCount }) {
return {
message: metric(forkCount),
color: 'blue',
link: [
`${baseUrl}/${project}/-/forks/new`,
`${baseUrl}/${project}/-/forks`,
],
}
}
async fetch({ project, baseUrl }) {
// https://docs.gitlab.com/ee/api/projects.html#get-single-project
return super.fetch({
schema,
url: `${baseUrl}/api/v4/projects/${encodeURIComponent(project)}`,
errorMessages: {
404: 'project not found',
},
})
}
async handle({ project }, { gitlab_url: baseUrl = 'https://gitlab.com' }) {
const { forks_count: forkCount } = await this.fetch({
project,
baseUrl,
})
return this.constructor.render({ baseUrl, project, forkCount })
}
}

View File

@@ -0,0 +1,35 @@
import { isMetric } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
t.create('Forks')
.get('/gitlab-org/gitlab.json')
.expectBadge({
label: 'forks',
message: isMetric,
color: 'blue',
link: [
'https://gitlab.com/gitlab-org/gitlab/-/forks/new',
'https://gitlab.com/gitlab-org/gitlab/-/forks',
],
})
t.create('Forks (self-managed)')
.get('/gitlab-cn/gitlab.json?gitlab_url=https://jihulab.com')
.expectBadge({
label: 'forks',
message: isMetric,
color: 'blue',
link: [
'https://jihulab.com/gitlab-cn/gitlab/-/forks/new',
'https://jihulab.com/gitlab-cn/gitlab/-/forks',
],
})
t.create('Forks (project not found)')
.get('/user1/gitlab-does-not-have-this-repo.json')
.expectBadge({
label: 'forks',
message: 'project not found',
})

View File

@@ -0,0 +1,19 @@
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g.
<a href="https://gitlab.com/gitlab-org/gitlab" target="_blank" >gitlab-org/gitlab</a> ).
Note that only internet-accessible GitLab instances are supported, for example
<a href="https://jihulab.com" target="_blank" >https://jihulab.com</a>,
<a href="https://gitlab.gnome.org" target="_blank" >https://gitlab.gnome.org</a>, or
<a href="https://gitlab.com" target="_blank" >https://gitlab.com</a>.
</p>
`
function errorMessagesFor(notFoundMessage = 'project not found') {
return {
401: notFoundMessage,
404: notFoundMessage,
}
}
export { documentation, errorMessagesFor }

View File

@@ -1,6 +1,7 @@
import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
import GitLabBase from './gitlab-base.js'
const schema = Joi.object({
@@ -18,13 +19,6 @@ const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab ).
Note that only internet-accessible GitLab instances are supported, for example https://jihulab.com, https://gitlab.gnome.org, or https://gitlab.com/.
</p>
`
const labelDocumentation = `
<p>
If you want to use multiple labels then please use commas (<code>,</code>) to separate them, e.g. <code>foo,bar</code>.
@@ -243,9 +237,7 @@ export default class GitlabIssues extends GitLabBase {
project
)}/issues_statistics`,
options: labels ? { searchParams: { labels } } : undefined,
errorMessages: {
404: 'project not found',
},
errorMessages: errorMessagesFor('project not found'),
})
}

View File

@@ -1,6 +1,7 @@
import Joi from 'joi'
import { optionalUrl } from '../validators.js'
import { renderLicenseBadge } from '../licenses.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
import GitLabBase from './gitlab-base.js'
const schema = Joi.object({
@@ -13,19 +14,6 @@ const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab )
</p>
`
const customDocumentation = `
<p>
Note that only internet-accessible GitLab instances are supported, for example https://jihulab.com, https://gitlab.gnome.org, or https://gitlab.com/.
You may use your GitLab Project Id (e.g. 13953) or your Project Path (e.g. gitlab-cn/gitlab ) in <a href="https://jihulab.com">https://jihulab.com</a>
</p>
`
export default class GitlabLicense extends GitLabBase {
static category = 'license'
@@ -59,7 +47,7 @@ export default class GitlabLicense extends GitLabBase {
message: 'MIT License',
color: 'green',
},
documentation: customDocumentation,
documentation,
},
]
@@ -79,9 +67,7 @@ export default class GitlabLicense extends GitLabBase {
schema,
url: `${baseUrl}/api/v4/projects/${encodeURIComponent(project)}`,
options: { searchParams: { license: '1' } },
errorMessages: {
404: 'repo not found',
},
errorMessages: errorMessagesFor('project not found'),
})
}

View File

@@ -34,7 +34,7 @@ t.create('License for unknown repo')
.get('/user1/gitlab-does-not-have-this-repo.json')
.expectBadge({
label: 'license',
message: 'repo not found',
message: 'project not found',
color: 'red',
})

View File

@@ -0,0 +1,352 @@
import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
import GitLabBase from './gitlab-base.js'
// The total number of MR is in the `x-total` field in the headers.
// https://docs.gitlab.com/ee/api/index.html#other-pagination-headers
const schema = Joi.object({
'x-total': Joi.number().integer(),
'x-page': nonNegativeInteger,
})
const queryParamSchema = Joi.object({
labels: Joi.string(),
gitlab_url: optionalUrl,
}).required()
const more = `
<p>
<a href="https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers">GitLab's API </a> only reports up to 10k Merge Requests, so badges for projects that have more than 10k will not have an exact count.
</p>
`
const labelText = `
<p>
If you want to use multiple labels then please use commas (<code>,</code>) to separate them, e.g. <code>foo,bar</code>.
</p>
`
const defaultDocumentation = documentation + more
const labelDocumentation = documentation + labelText + more
export default class GitlabMergeRequests extends GitLabBase {
static category = 'issue-tracking'
static route = {
base: 'gitlab/merge-requests',
pattern: ':variant(all|open|closed|locked|merged):raw(-raw)?/:project+',
queryParamSchema,
}
static examples = [
{
title: 'GitLab merge requests',
pattern: 'open/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'merge requests',
message: '1.4k open',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab merge requests',
pattern: 'open-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'open merge requests',
message: '1.4k',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab merge requests by-label',
pattern: 'open/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,type::feature',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'test,failure::new merge requests',
message: '3 open',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab merge requests by-label',
pattern: 'open-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'gitlab-org/gitlab',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'open test,failure::new merge requests',
message: '3',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab closed merge requests',
pattern: 'closed/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'merge requests',
message: 'more than 10k closed',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab closed merge requests',
pattern: 'closed-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'closed merge requests',
message: 'more than 10k',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab closed merge requests by-label',
pattern: 'closed/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,type::feature',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'test,failure::new merge requests',
message: '32 closed',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab closed merge requests by-label',
pattern: 'closed-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,type::feature',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'closed test,failure::new merge requests',
message: '32',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab all merge requests',
pattern: 'all/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'merge requests',
message: 'more than 10k all',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab all merge requests',
pattern: 'all-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'all merge requests',
message: 'more than 10k',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab all merge requests by-label',
pattern: 'all-raw/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,failure::new',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'all test,failure::new merge requests',
message: '12',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab locked merge requests',
pattern: 'locked/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'merge requests',
message: '0 locked',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab locked merge requests by-label',
pattern: 'closed/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,type::feature',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'test,failure::new merge requests',
message: '0 locked',
color: 'blue',
},
documentation: labelDocumentation,
},
{
title: 'GitLab merged merge requests',
pattern: 'merged/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: { gitlab_url: 'https://gitlab.com' },
staticPreview: {
label: 'merge requests',
message: 'more than 10k merged',
color: 'blue',
},
documentation: defaultDocumentation,
},
{
title: 'GitLab merged merge requests by-label',
pattern: 'merged/:project+',
namedParams: {
project: 'gitlab-org/gitlab',
},
queryParams: {
labels: 'test,type::feature',
gitlab_url: 'https://gitlab.com',
},
staticPreview: {
label: 'test,failure::new merge requests',
message: '68 merged',
color: 'blue',
},
documentation: labelDocumentation,
},
]
static defaultBadgeData = { label: 'merge requests' }
static render({ variant, raw, labels, mergeRequestCount }) {
const state = variant
const isMultiLabel = labels && labels.includes(',')
const labelText = labels ? `${isMultiLabel ? `${labels}` : labels} ` : ''
let labelPrefix = ''
let messageSuffix = ''
if (raw !== undefined) {
labelPrefix = `${state} `
} else {
messageSuffix = state
}
const message = `${mergeRequestCount > 10000 ? 'more than ' : ''}${metric(
mergeRequestCount
)}${messageSuffix ? ' ' : ''}${messageSuffix}`
return {
label: `${labelPrefix}${labelText}merge requests`,
message,
color: 'blue',
}
}
async fetch({ project, baseUrl, variant, labels }) {
// https://docs.gitlab.com/ee/api/merge_requests.html#list-project-merge-requests
const { res } = await this._request(
this.authHelper.withBearerAuthHeader({
url: `${baseUrl}/api/v4/projects/${encodeURIComponent(
project
)}/merge_requests`,
options: {
searchParams: {
state: variant === 'open' ? 'opened' : variant,
page: '1',
per_page: '1',
labels,
},
},
errorMessages: errorMessagesFor('project not found'),
})
)
return this.constructor._validate(res.headers, schema)
}
static transform(data) {
if (data['x-total'] !== undefined) {
return data['x-total']
} else {
// https://docs.gitlab.com/ee/api/index.html#pagination-response-headers
// For performance reasons, if a query returns more than 10,000 records, GitLab doesnt return `x-total` header.
// Displayed on the page as "more than 10k".
return 10001
}
}
async handle(
{ variant, raw, project },
{ gitlab_url: baseUrl = 'https://gitlab.com', labels }
) {
const data = await this.fetch({
project,
baseUrl,
variant,
labels,
})
const mergeRequestCount = this.constructor.transform(data)
return this.constructor.render({
variant,
raw,
labels,
mergeRequestCount,
})
}
}

View File

@@ -0,0 +1,92 @@
import { test, given } from 'sazerac'
import nock from 'nock'
import { expect } from 'chai'
import { cleanUpNockAfterEach, defaultContext } from '../test-helpers.js'
import GitlabMergeRequests from './gitlab-merge-requests.service.js'
describe('GitlabMergeRequests', function () {
test(GitlabMergeRequests.render, () => {
given({ variant: 'open', mergeRequestCount: 1399 }).expect({
label: 'merge requests',
message: '1.4k open',
color: 'blue',
})
given({ variant: 'open', raw: '-raw', mergeRequestCount: 1399 }).expect({
label: 'open merge requests',
message: '1.4k',
color: 'blue',
})
given({
variant: 'open',
labels: 'discussion,enhancement',
mergeRequestCount: 15,
}).expect({
label: 'discussion,enhancement merge requests',
message: '15 open',
color: 'blue',
})
given({
variant: 'open',
raw: '-raw',
labels: 'discussion,enhancement',
mergeRequestCount: 15,
}).expect({
label: 'open discussion,enhancement merge requests',
message: '15',
color: 'blue',
})
given({ variant: 'open', mergeRequestCount: 0 }).expect({
label: 'merge requests',
message: '0 open',
color: 'blue',
})
given({ variant: 'open', mergeRequestCount: 10001 }).expect({
label: 'merge requests',
message: 'more than 10k open',
color: 'blue',
})
})
describe('auth', function () {
cleanUpNockAfterEach()
const fakeToken = 'abc123'
const config = {
public: {
services: {
gitlab: {
authorizedOrigins: ['https://gitlab.com'],
},
},
},
private: {
gitlab_token: fakeToken,
},
}
it('sends the auth information as configured', async function () {
const scope = nock('https://gitlab.com/')
.get(
'/api/v4/projects/foo%2Fbar/merge_requests?state=opened&page=1&per_page=1'
)
// This ensures that the expected credentials are actually being sent with the HTTP request.
// Without this the request wouldn't match and the test would fail.
.matchHeader('Authorization', `Bearer ${fakeToken}`)
.reply(200, {}, { 'x-total': '100', 'x-page': '1' })
expect(
await GitlabMergeRequests.invoke(
defaultContext,
config,
{ project: 'foo/bar', variant: 'open' },
{}
)
).to.deep.equal({
label: 'merge requests',
message: '100 open',
color: 'blue',
})
scope.done()
})
})
})

View File

@@ -0,0 +1,172 @@
import Joi from 'joi'
import { createServiceTester } from '../tester.js'
import {
isMetric,
isMetricOpenIssues,
isMetricClosedIssues,
} from '../test-validators.js'
export const t = await createServiceTester()
t.create('Merge Requests (project not found)')
.get('/open/guoxudong.io/shields-test/do-not-exist.json')
.expectBadge({
label: 'merge requests',
message: 'project not found',
})
/**
* Opened issue number case
*/
t.create('Opened merge requests')
.get('/open/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'merge requests',
message: isMetricOpenIssues,
})
t.create('Open merge requests raw')
.get('/open-raw/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'open merge requests',
message: isMetric,
})
t.create('Open merge requests by label is > zero')
.get('/open/guoxudong.io/shields-test/issue-test.json?labels=discussion')
.expectBadge({
label: 'discussion merge requests',
message: isMetricOpenIssues,
})
t.create('Open merge requests by multi-word label is > zero')
.get(
'/open/guoxudong.io/shields-test/issue-test.json?labels=discussion,enhancement'
)
.expectBadge({
label: 'discussion,enhancement merge requests',
message: isMetricOpenIssues,
})
t.create('Open merge requests by label (raw)')
.get('/open-raw/guoxudong.io/shields-test/issue-test.json?labels=discussion')
.expectBadge({
label: 'open discussion merge requests',
message: isMetric,
})
t.create('Opened merge requests by Scoped labels')
.get('/open/gitlab-org%2Fgitlab.json?labels=test,failure::new')
.expectBadge({
label: 'test,failure::new merge requests',
message: Joi.alternatives(isMetricOpenIssues, Joi.equal('0 open')),
})
/**
* Closed issue number case
*/
t.create('Closed merge requests')
.get('/closed/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'merge requests',
message: isMetricClosedIssues,
})
t.create('Closed merge requests raw')
.get('/closed-raw/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'closed merge requests',
message: isMetric,
})
t.create('Closed merge requests by label is > zero')
.get('/closed/guoxudong.io/shields-test/issue-test.json?labels=bug')
.expectBadge({
label: 'bug merge requests',
message: Joi.alternatives(isMetricClosedIssues, Joi.equal('0 closed')),
})
t.create('Closed merge requests by multi-word label is > zero')
.get('/closed/guoxudong.io/shields-test/issue-test.json?labels=bug,critical')
.expectBadge({
label: 'bug,critical merge requests',
message: Joi.alternatives(isMetricClosedIssues, Joi.equal('0 closed')),
})
t.create('Closed merge requests by label (raw)')
.get(
'/closed-raw/guoxudong.io/shields-test/issue-test.json?labels=enhancement'
)
.expectBadge({
label: 'closed enhancement merge requests',
message: isMetric,
})
/**
* All issue number case
*/
t.create('All merge requests')
.get('/all/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'merge requests',
message: Joi.string().regex(
/^([0-9]+[kMGTPEZY]?|[1-9]\.[1-9][kMGTPEZY]) all$/
),
})
t.create('All merge requests raw')
.get('/all-raw/guoxudong.io/shields-test/issue-test.json')
.expectBadge({
label: 'all merge requests',
message: isMetric,
})
t.create('All merge requests by label is > zero')
.get('/all/guoxudong.io/shields-test/issue-test.json?labels=discussion')
.expectBadge({
label: 'discussion merge requests',
message: Joi.string().regex(
/^([0-9]+[kMGTPEZY]?|[1-9]\.[1-9][kMGTPEZY]) all$/
),
})
t.create('All merge requests by multi-word label is > zero')
.get(
'/all/guoxudong.io/shields-test/issue-test.json?labels=discussion,enhancement'
)
.expectBadge({
label: 'discussion,enhancement merge requests',
message: Joi.string().regex(
/^([0-9]+[kMGTPEZY]?|[1-9]\.[1-9][kMGTPEZY]) all$/
),
})
t.create('All merge requests by label (raw)')
.get('/all-raw/guoxudong.io/shields-test/issue-test.json?labels=discussion')
.expectBadge({
label: 'all discussion merge requests',
message: isMetric,
})
t.create('more than 10k merge requests')
.get('/all/gitlab-org%2Fgitlab.json')
.expectBadge({
label: 'merge requests',
message: 'more than 10k all',
})
t.create('locked merge requests')
.get('/locked/gitlab-org%2Fgitlab.json')
.expectBadge({
label: 'merge requests',
message: Joi.string().regex(
/^([0-9]+[kMGTPEZY]?|[1-9]\.[1-9][kMGTPEZY]) locked$/
),
})
t.create('Opened merge requests (self-managed)')
.get('/open/gitlab-cn/gitlab.json?gitlab_url=https://jihulab.com')
.expectBadge({
label: 'merge requests',
message: isMetricOpenIssues,
})

View File

@@ -2,6 +2,7 @@ import Joi from 'joi'
import { isBuildStatus, renderBuildStatusBadge } from '../build-status.js'
import { optionalUrl } from '../validators.js'
import { BaseSvgScrapingService, NotFound, redirector } from '../index.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
const badgeSchema = Joi.object({
message: Joi.alternatives()
@@ -14,7 +15,7 @@ const queryParamSchema = Joi.object({
branch: Joi.string(),
}).required()
const documentation = `
const moreDocs = `
<p>
Important: You must use the Project Path, not the Project Id. Additionally, if your project is publicly visible, but the badge is like this:
<img src="https://img.shields.io/badge/build-not&nbsp;found-red" alt="build not found"/>
@@ -51,14 +52,14 @@ class GitlabPipelineStatus extends BaseSvgScrapingService {
namedParams: { project: 'gitlab-org/gitlab' },
queryParams: { branch: 'master' },
staticPreview: this.render({ status: 'passed' }),
documentation,
documentation: documentation + moreDocs,
},
{
title: 'Gitlab pipeline status (self-managed)',
namedParams: { project: 'GNOME/pango' },
queryParams: { gitlab_url: 'https://gitlab.gnome.org', branch: 'master' },
staticPreview: this.render({ status: 'passed' }),
documentation,
documentation: documentation + moreDocs,
},
]
@@ -72,10 +73,7 @@ class GitlabPipelineStatus extends BaseSvgScrapingService {
url: `${baseUrl}/${decodeURIComponent(
project
)}/badges/${branch}/pipeline.svg`,
errorMessages: {
401: 'repo not found',
404: 'repo not found',
},
errorMessages: errorMessagesFor('project not found'),
})
}

View File

@@ -2,6 +2,7 @@ import Joi from 'joi'
import { optionalUrl } from '../validators.js'
import { latest, renderVersionBadge } from '../version.js'
import { NotFound } from '../index.js'
import { documentation, errorMessagesFor } from './gitlab-helper.js'
import GitLabBase from './gitlab-base.js'
const schema = Joi.array().items(
@@ -21,11 +22,6 @@ const queryParamSchema = Joi.object({
.default('created_at'),
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 25813592) or your Project Path (e.g. megabyte-labs/dockerfile/ci-pipeline/ansible-lint)
</p>
`
const commonProps = {
namedParams: {
project: 'shields-ops-group/tag-test',
@@ -102,9 +98,7 @@ export default class GitLabRelease extends GitLabBase {
return this.fetchPaginatedArrayData({
schema,
url: `${baseUrl}/api/v4/projects/${encodeURIComponent(project)}/releases`,
errorMessages: {
404: 'project not found',
},
errorMessages: errorMessagesFor('project not found'),
options: {
searchParams: { order_by: orderBy },
},

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