Compare commits

..

573 Commits

Author SHA1 Message Date
Paul Melnikow
d9908df571 makeBadge(): Throw an error with logo parameters that don't make sense
See comment:

https://github.com/badges/shields/pull/5754/files#r510414774
2020-10-27 15:23:43 -04:00
dependabot-preview[bot]
d79b0ec46a Build(deps): bump xpath from 0.0.29 to 0.0.32 (#5768)
Bumps [xpath](https://github.com/goto100/xpath) from 0.0.29 to 0.0.32.
- [Release notes](https://github.com/goto100/xpath/releases)
- [Commits](https://github.com/goto100/xpath/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-26 19:27:21 -05:00
dependabot-preview[bot]
2104135a68 Build(deps-dev): bump nodemon from 2.0.5 to 2.0.6 (#5769)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.5 to 2.0.6.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.5...v2.0.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 20:35:00 +00:00
dependabot-preview[bot]
c2d1a8cd6d Build(deps-dev): bump @types/chai from 4.2.12 to 4.2.14 (#5766)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.12 to 4.2.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 18:02:47 +00:00
dependabot-preview[bot]
84b7413524 Build(deps-dev): bump react from 16.13.1 to 16.14.0 (#5764)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.13.1 to 16.14.0.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.14.0/packages/react)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 17:49:27 +00:00
dependabot-preview[bot]
ef56865d11 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.22 to 2.4.24 (#5762)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.22 to 2.4.24.
- [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@2.4.24/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 17:22:48 +00:00
dependabot-preview[bot]
3701780f20 Build(deps): bump simple-icons from 3.11.0 to 3.12.1 (#5761)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.11.0 to 3.12.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.11.0...3.12.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 16:43:11 +00:00
dependabot-preview[bot]
0927689f45 Build(deps-dev): bump ts-mocha from 7.0.0 to 8.0.0 (#5760)
Bumps [ts-mocha](https://github.com/piotrwitek/ts-mocha) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/piotrwitek/ts-mocha/releases)
- [Changelog](https://github.com/piotrwitek/ts-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/piotrwitek/ts-mocha/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 16:33:22 +00:00
dependabot-preview[bot]
2d92500961 Build(deps): bump @sentry/node from 5.26.0 to 5.27.1 (#5770)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.26.0 to 5.27.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/5.26.0...5.27.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 14:43:34 +00:00
dependabot-preview[bot]
40d7cc8ac6 Build(deps-dev): bump eslint-plugin-standard from 4.0.1 to 4.0.2 (#5771)
Bumps [eslint-plugin-standard](https://github.com/standard/eslint-plugin-standard) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/standard/eslint-plugin-standard/releases)
- [Commits](https://github.com/standard/eslint-plugin-standard/compare/v4.0.1...v4.0.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 12:45:29 +00:00
dependabot-preview[bot]
4121a57af3 Build(deps-dev): bump eslint-plugin-react from 7.21.4 to 7.21.5 (#5763)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.21.4 to 7.21.5.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.4...v7.21.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-25 12:16:25 +00:00
dependabot-preview[bot]
37b0edcfbc Build(deps-dev): bump eslint-plugin-jsdoc from 30.6.5 to 30.7.3 (#5759)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.6.5 to 30.7.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.6.5...v30.7.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-25 11:59:53 +00:00
dependabot-preview[bot]
c69ed93a0b Build(deps): bump query-string from 6.13.2 to 6.13.6 (#5742)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.13.2 to 6.13.6.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.13.2...v6.13.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-10-21 20:49:53 -05:00
Paul Melnikow
f1a5dd9427 Align style prop of coalesceBadge() with internal makeBadge() (#5726)
This is an analogous change to #5719 for `’template’` and `’style’`. (See the top comment for more explanation.)
2020-10-20 19:16:38 -04:00
Joe Izzard
d60b90b860 [Wordpress] Theme & Plugin Last Updated badge (#5722)
* feat: added schema and API options for new badge

* fix: fixed platform test's for new schema and api options

* feat: added new badge for theme and plugin last updated

* test: added testing for new badge

* feat: added regex pattern for last update string

* fix: fixed mock test's that didn't match regex pattern

* refactor: changed to moment formatting

Changed to use the moment lib to validate and format last_update date strings from upstream API

* fix: fixed failing platform service tests

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-10-20 17:44:58 +00:00
Joe Izzard
7e7162156b [Wordpress] Added Theme Required WP Version Badge & refactor (#5717)
* feat: added wp required version badge for themes

Refactored to allow plugin and theme extensionType for WP Required Version. Also added required schema for themes, already present for plugins.

* test: added testing for the new badge

Added testing for the new theme badge

* refactor: convert static classes to static props

* fix: modules export

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-20 01:56:13 +00:00
dependabot-preview[bot]
47a9df7b1c Build(deps-dev): bump @babel/core from 7.11.6 to 7.12.3 (#5739)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.6 to 7.12.3.
- [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.12.3/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-20 00:09:57 +00:00
Bryan Kok
dd2223407f Refactor remaining [github] services (#5748) 2020-10-19 18:41:03 -05:00
dependabot-preview[bot]
77826cf257 Build(deps-dev): bump @babel/polyfill from 7.11.5 to 7.12.1 (#5738)
* Build(deps-dev): bump @babel/polyfill from 7.11.5 to 7.12.1

Bumps [@babel/polyfill](https://github.com/babel/babel/tree/HEAD/packages/babel-polyfill) from 7.11.5 to 7.12.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.12.1/packages/babel-polyfill)

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

* deps: fix anafanafo

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <caleb.cartwright@outlook.com>
2020-10-18 20:27:04 -05:00
dependabot-preview[bot]
de0a98c3a4 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.16 to 2.4.22 (#5740)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.16 to 2.4.22.
- [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@2.4.22/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-19 00:33:38 +00:00
dependabot-preview[bot]
feeeda113a Build(deps-dev): bump nodemon from 2.0.4 to 2.0.5 (#5744)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.4...v2.0.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 18:13:03 +00:00
dependabot-preview[bot]
f77fd65f57 Build(deps-dev): bump eslint-plugin-import from 2.22.0 to 2.22.1 (#5736)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.22.0 to 2.22.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.22.0...v2.22.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 17:25:41 +00:00
dependabot-preview[bot]
7ad2410de2 Build(deps): bump @sentry/node from 5.25.0 to 5.26.0 (#5737)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.25.0 to 5.26.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/5.25.0...5.26.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 17:16:28 +00:00
dependabot-preview[bot]
36600fee1f Build(deps-dev): bump @babel/register from 7.11.5 to 7.12.1 (#5735)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.11.5 to 7.12.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.12.1/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 17:08:09 +00:00
dependabot-preview[bot]
11a2084a65 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.32 to 2.3.33 (#5732)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.32 to 2.3.33.
- [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@2.3.33/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 17:00:05 +00:00
JeongHoon Byun (a.k.a Outsider)
0737e317da Add [GitHubSponsors] badge (#5694)
* Add GitHub Sponsors badge

Signed-off-by: Outsider <outsideris@gmail.com>

* rollback custom github sponsors logo

Signed-off-by: Outsider <outsideris@gmail.com>

* remove redirect for github sponsors

Signed-off-by: Outsider <outsideris@gmail.com>

* Update services/github/github-sponsors.service.js

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

* fix indentation as prettier

Signed-off-by: Outsider <outsideris@gmail.com>

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 16:15:00 +00:00
dependabot-preview[bot]
800b61ab46 Build(deps): bump anafanafo from 2.0.0-beta.1 to 2.0.0 in /badge-maker (#5746)
Bumps [anafanafo](https://github.com/metabolize/anafanafo) from 2.0.0-beta.1 to 2.0.0.
- [Release notes](https://github.com/metabolize/anafanafo/releases)
- [Commits](https://github.com/metabolize/anafanafo/compare/anafanafo@2.0.0-beta.1...anafanafo@2.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 16:07:01 +00:00
dependabot-preview[bot]
6dbf8d009a Build(deps-dev): bump lint-staged from 10.4.0 to 10.4.2 (#5733)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.4.0 to 10.4.2.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.4.0...v10.4.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 14:38:01 +00:00
Hubert Jagodziński
7a19dc40ef Add [GithubDirectoryFileCount] badge (#5705)
* Added GithubDirectoryFileCount badge

* Additional information on a schema

* Update services/github/github-directory-file-count.service.js

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

* Update services/github/github-directory-file-count.service.js

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

* Update services/github/github-directory-file-count.service.js

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

* More examples

* Moved isArray check to transform method

* Using isMetric for validation

* Added documentaion on type and extension parameters

* Moved a couple of service tests to unit tests

* extension is applicable for type file only

* Note on GitHub API limit

* Using metric helper for a count formatting

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 14:30:15 +00:00
dependabot-preview[bot]
10ddd866da Build(deps-dev): bump eslint-config-prettier from 6.12.0 to 6.13.0 (#5745)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.12.0...v6.13.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 10:05:35 +00:00
dependabot-preview[bot]
e786d69dbe Build(deps-dev): bump eslint-plugin-jsdoc from 30.6.4 to 30.6.5 (#5734)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.6.4 to 30.6.5.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.6.4...v30.6.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-18 09:32:08 +00:00
Hubert Jagodziński
e236c9a15c Added [GithubRPackageVersion] badge (#5708)
* Added GithubRPackageVersion badge

* Minor changes to GithubGoModGoVersion badge

* More examples

* Removed mocking with nock from service tests

* Added unit tests

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-18 01:31:57 +00:00
Joe Izzard
a1c50ea4d5 [Wordpress] Plugin & Theme required php (#5723)
* feat: added schema and api options

* feat: added new badge for required php version

* test: fixed existing testing and added new for new badge

Fixed existing testing to conform to new api options and schema. Also added testing for the new badge

* fix: changed to mocked test

Changed the Theme Not Set test to a mock as unable to find a live example (previously used 'generatepress' however this now has the data). Also split out query selector fields to allow updating in one place for themes and plugins

* fix: changed the style of the badge to better show the info

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-17 18:31:58 +00:00
Marcin Mielnicki
6822922ad2 getSimpleIcon handles 'get' icon (#5730) 2020-10-17 19:23:39 +02:00
Paul Melnikow
4415d07e8b A few straight refactors in badge-renderers (#5716)
These are aimed at improving readability and a bit of DRY.
2020-10-17 11:27:09 -04:00
CRIMX
668ea878d9 Add back [ChromeWebStore] rating (#5697)
* Add back Chrome Web Store rating

Replace chrome-web-store-item-property with webextension-store-meta.

fix #5475

* perf: imporve parsing performance of webextension-store-meta

* perf: improve chrome-web-store start-up speeding

* refactor: remove getters

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-10-17 13:26:40 +02:00
Sam Donald
21c15e4029 Specify logoColor does not work with logoSvg (#5727)
If your endpoint uses the `logoSvg` you can _not_ specify the `logoColor` property. This will result in the 'invalid properties: logoColor' badge.

Related to #4749
2020-10-16 21:59:51 -05:00
Paul Melnikow
1184938ed1 Align label and message props of coalesceBadge() with internal makeBadge() (#5719)
There is an internal `makeBadge()` function which is called from a few places in the server and from the public `makeBadge()` function which is a light wrapper. (Eventually we want to dogfood the public API: that's the work of #4950, and this helps with it by aligning the interfaces.)

Related to that is #3370, which is about aligning the `serviceData` schema (i.e. the result of `handle()`) with the public `makeBadge()` function.

A legacy quirk of the _private_ `makeBadge()` function is accepting a `text: ['label', 'message']` array instead of separate `{ label, message }` props like the rest of the codebase. `coalesceBadge()` has to translate from `{ label, message }` to `text: ['label', message']`. This removes that bit of indirection.

It also rewrites most of the tests of `coalesceBadge()` to use `.includes()`, providing IMO a slight improvement in readability.
2020-10-16 18:06:32 -04:00
Paul Melnikow
e1bd1602a6 Fail in CI when package tests fail (#5718)
* Fail in CI when package tests fail

Fixes #5713

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-10-16 21:24:23 +01:00
Paul Melnikow
aa5addb442 Change [issuestats] redirector from format to pattern (#5720)
* Change [issuestats] redirector from format to pattern

Ref #3329

* Match other services where this approach was taken
2020-10-16 20:11:17 +00:00
Joe Izzard
374bf4aafa [Wordpress] Convert static classes to props (#5725)
* refactor: downloads

* refactor: ratings

* refactor: versions

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-16 19:44:59 +00:00
Paul Melnikow
43f7adbe64 Use our typical casing for [nodeping] label (#5715)
* Use our typical casing for [nodeping] label

* Fix test + reformat
2020-10-16 00:17:19 +00:00
Paul Melnikow
af3f720113 Improve appearance of for-the-badge and social badges by measuring correct font (#5696)
Even before #2311, Shields has measured all badge text using 11px Verdana, which is the correct font for plastic, flat, and flat-square.

However the for-the-badge style uses 10px Verdana and bold 10px Verdana, and the social badge uses bold 11px _Helvetica_. This causes these badges to be wider or narrower than they should be, and the text to be stretched accordingly.

Since the for-the-badge style relies on synthetic letter spacing (we just multiply the computed length in code) there is room to massage this further. Our test badges all look as good or better than before, so I think it should not block merging this, however we might need to get it right before the downstream problem in squint goes away. (There's also #4691 which this doesn't attempt to address.)

Fixes #4275
2020-10-15 20:06:46 -04:00
Dominik Grzelak
d1ec834cb5 [Github] Handle the case when the Github deployment status returns null (#5704)
* Handle the case when the Github deployment status returns null

* Integration test null latestStatus response from Github Deployments

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-15 23:51:31 +00:00
Paul Melnikow
cd70bf5246 Prettify the SVG snapshots (and a couple cleanups) (#5714)
I’m running into some strange issues working on badge-maker in #5696, where the images look good but the snapshots have changed in unexpected ways. I’m finding them a little tricky to debug.

This saves the prettified snapshots instead, which I think will make them easier to compare and debug. They may have to be updated when we upgrade prettier.

I also inlined a few things in the test file.
2020-10-15 19:40:14 -04:00
Paul Melnikow
cbd8eba2c4 Fix REQUIRE_CLOUDFLARE for Heroku (#5712)
Ref #3027
2020-10-15 19:27:07 -04:00
chris48s
a4a8258fd5 unskip token integration test (#5711)
* unskip token integration test

* Update services/github/github-api-provider.integration.js

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-10-15 21:44:07 +00:00
Marcin Mielnicki
e03549d88d fix: TypeError in [DockerVersion] badge (#5707)
* fix: TypeError in DockerVersion badge

* A reference to the issue in test

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-10-15 22:02:04 +02:00
Marcin Mielnicki
1aa25ab321 Add a deployment status using GitHub Actions (#5709) 2020-10-15 21:52:40 +02:00
Hubert Jagodziński
b9d5da66fd Update service-tests.md (#5706)
* Update service-tests.md

Added information `expectBadge()` accepts a RegExp.

* Run prettier
2020-10-15 19:19:46 +00:00
Caleb Cartwright
740947ba06 tests: fix PackagistVersion service test (#5703) 2020-10-14 22:03:36 +00:00
Caleb Cartwright
3576fbd7b8 test(aur): use unit tests for outdated (#5700) 2020-10-13 18:40:23 -05:00
Paul Melnikow
1fab1a7140 When configured, require requests to come from Cloudflare (#5666)
This is the code part of #3027, following [this article](https://www.viget.com/articles/heroku-cloudflare-the-right-way/) and using [this middleware](https://github.com/clive-io/cloudflare-middleware).

I pulled in the `addHandlerAtIndex()` function @chris48s wrote for #5574.

The middleware isn't perfect for scoutcamp, since it relies on `req.ip` which is something set by Express. However, the other solutions I found were either explicitly deprecated ([cloudflare-ip](https://www.npmjs.com/package/cloudflare-ip)) or relied on dynamically fetching the list of Cloudflare hosts ([cloudflare-ips](https://www.npmjs.com/package/cloudflare-ips)), which seems unnecessary as this list has not changed in several years.

I've left this off to start, so we can test it in production using an env var before we make it the production default.
2020-10-12 12:36:42 -04:00
dependabot-preview[bot]
4da15aafc1 Build(deps-dev): bump danger from 10.4.1 to 10.5.0 (#5693)
Bumps [danger](https://github.com/danger/danger-js) from 10.4.1 to 10.5.0.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.4.1...10.5.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-12 11:34:29 +00:00
dependabot-preview[bot]
a0008ba7d1 Build(deps): bump moment from 2.29.0 to 2.29.1 (#5685)
Bumps [moment](https://github.com/moment/moment) from 2.29.0 to 2.29.1.
- [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.0...2.29.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 20:10:41 +00:00
dependabot-preview[bot]
ace467246d Build(deps): bump camelcase from 5.3.1 to 6.1.0 (#5687)
Bumps [camelcase](https://github.com/sindresorhus/camelcase) from 5.3.1 to 6.1.0.
- [Release notes](https://github.com/sindresorhus/camelcase/releases)
- [Commits](https://github.com/sindresorhus/camelcase/compare/v5.3.1...v6.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 20:01:23 +00:00
dependabot-preview[bot]
1d2d92b968 Build(deps-dev): bump @types/react-select from 3.0.21 to 3.0.22 (#5690)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.21 to 3.0.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 17:09:19 +00:00
dependabot-preview[bot]
1a5eb7376f Build(deps-dev): bump @types/node from 14.11.2 to 14.11.8 (#5682)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.11.2 to 14.11.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 17:02:16 +00:00
chris48s
57ae9cdb6b loosen [visualstudiomarketplace] input schema (#5638)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 16:53:25 +00:00
dependabot-preview[bot]
d1808c8d26 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.30 to 2.3.32 (#5683)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.30 to 2.3.32.
- [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@2.3.32/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 16:37:48 +00:00
dependabot-preview[bot]
681d2c0505 Build(deps-dev): bump gatsby from 2.24.65 to 2.24.73 (#5688)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.65 to 2.24.73.
- [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@2.24.65...gatsby@2.24.73)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 16:23:56 +00:00
dependabot-preview[bot]
19e6f18d9b Build(deps): bump @sentry/node from 5.24.2 to 5.25.0 (#5681)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.24.2 to 5.25.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/5.24.2...5.25.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 16:13:15 +00:00
dependabot-preview[bot]
498f57d960 Build(deps): bump simple-icons from 3.10.0 to 3.11.0 (#5680)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.10.0...3.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 16:05:39 +00:00
dependabot-preview[bot]
c134d4914d Build(deps-dev): bump sinon from 9.1.0 to 9.2.0 (#5692)
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v9.1.0...v9.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 08:23:12 +00:00
dependabot-preview[bot]
5d8adbe54f Build(deps-dev): bump eslint-plugin-jsdoc from 30.6.3 to 30.6.4 (#5691)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.6.3 to 30.6.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.6.3...v30.6.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-11 08:14:17 +00:00
dependabot-preview[bot]
7c0f211e0b Build(deps-dev): bump eslint-plugin-react from 7.21.3 to 7.21.4 (#5689)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.21.3 to 7.21.4.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.3...v7.21.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-11 08:02:04 +00:00
Paul Melnikow
564a9145e9 Remove FsTokenPersistence (#5671)
Closes #5665
2020-10-10 21:59:52 +00:00
JeongHoon Byun (a.k.a Outsider)
dc32a5fc4b Fix wrong anchor for writing tests document (#5677) 2020-10-10 05:14:52 +00:00
Paul Melnikow
3b1aaf3137 Move chai-as-promised from prod to dev dependencies (#5674) 2020-10-08 17:39:55 -04:00
Paul Melnikow
e1ac63d3be Finish removing server-secrets.js (#5664)
I’ve tested locally that setting `gh_token` still conditionally enables `ConditionalGithubAuthV3Service`.

Closes #3393
2020-10-07 17:29:03 -04:00
Paul Melnikow
3a23695f89 Update Danger rule for joi (#5667)
Follow-on to #5624
2020-10-06 20:48:03 -04:00
Pierre-Yves B
e0604d855b Update badge-maker to version 3.3.0 (#5661) 2020-10-06 17:52:05 +01:00
Jabbar Memon
ff9273a958 converted [nodeping npm nexus node] from static classes to props (#5662)
* converted [nexus node] from static classes to props

* fixing node module route field

* converted [nodeping npm] from static classes to props

* Removed Commented code

Co-authored-by: Jabbar Memon <jabbar@zoop.one>
2020-10-05 00:10:52 -05:00
Jabbar Memon
4d712e8386 Completed [twitch twitter ubuntu uptimerobot vaadindirectory] from static classes to props (#5660)
Co-authored-by: Jabbar Memon <jabbar@zoop.one>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 21:26:33 +00:00
Jabbar Memon
c18bc82347 Converted [swagger symfony teamcity travis treeware] from static class to props (#5659)
* Converted [swagger] from static class to props

* Converted [symfony teamcity travis treeware] from static classes to props

* Fixed staticPreview field in travis

Co-authored-by: Jabbar Memon <jabbar@zoop.one>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 21:17:10 +00:00
dependabot-preview[bot]
8fe7547a08 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.27 to 2.3.30 (#5657)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.27 to 2.3.30.
- [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@2.3.30/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 21:10:41 +00:00
dependabot-preview[bot]
64f82dd4eb Build(deps): bump simple-icons from 3.9.0 to 3.10.0 (#5652)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.9.0...3.10.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 21:00:41 +00:00
dependabot-preview[bot]
de8033f8bb Build(deps-dev): bump start-server-and-test from 1.11.4 to 1.11.5 (#5654)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.11.4 to 1.11.5.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.11.4...v1.11.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 20:51:44 +00:00
dependabot-preview[bot]
a0080f1d7a Build(deps-dev): bump @types/react-select from 3.0.20 to 3.0.21 (#5650)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.20 to 3.0.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 20:44:04 +00:00
Christian Haag
fba860fbe9 Refactor service classes [snyk sonar sourceforge sourcegraph spack] (#5632)
* Refactor service classes snyk-sonar-sourceforge-sourcegraph-spack

* Amend end-line issue on pull-request #5632

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 16:14:47 +00:00
Thakur Karthik
5d3c26efe1 Refactor [requires scrutinizer securityheaders shippable] services (#5643)
* Refactor readthedocs reddit redmine repology services

* Refactor requires scrutinizer security-headers shippable services

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-10-03 10:49:17 -05:00
Thakur Karthik
2fa69ba359 Refactor readthedocs reddit redmine repology services (#5641)
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-10-03 15:10:16 +00:00
dependabot-preview[bot]
a0313437b6 Build(deps-dev): bump sinon from 9.0.3 to 9.1.0 (#5655)
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.0.3 to 9.1.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v9.0.3...v9.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 12:45:20 +00:00
dependabot-preview[bot]
7c45593ca4 Build(deps-dev): bump eslint-plugin-react from 7.21.2 to 7.21.3 (#5658)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.21.2 to 7.21.3.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.21.2...v7.21.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 12:36:44 +00:00
dependabot-preview[bot]
7642f2d4eb Build(deps-dev): bump eslint-plugin-jsdoc from 30.5.2 to 30.6.3 (#5656)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.5.2 to 30.6.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.5.2...v30.6.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 12:27:48 +00:00
dependabot-preview[bot]
30f3be44bc Build(deps-dev): bump eslint-plugin-cypress from 2.11.1 to 2.11.2 (#5653)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.11.1 to 2.11.2.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.11.1...v2.11.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 12:16:42 +00:00
dependabot-preview[bot]
d4fa62f0b2 Build(deps-dev): bump cypress from 5.2.0 to 5.3.0 (#5651)
Bumps [cypress](https://github.com/cypress-io/cypress) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.json)
- [Commits](https://github.com/cypress-io/cypress/compare/v5.2.0...v5.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-03 12:04:37 +00:00
N Balgopal Patro
85e3772de9 Converted Service Classes to Static Fields, run [visualstudio w3c] (#5642)
* Completed For visual-studio-app-center

* Completed For visual-studio-marketplace

* Completed For w3c

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 02:19:48 +00:00
Paul Melnikow
9d173930ef Remove EditorConfig from recommend VS Code plugins (#5640)
Frequently when I open Shields in VS Code it pops up a message asking if
I want to install the recommended plugins. I think for Shields to
recommend a plugin, we should agree it is pretty much essential for
working on the project.

I have never used any form of EditorConfig. I imagine it may be useful
for some users on some platforms, though for the majority of users, it
is definitely not essential.

Perhaps the users who need it (Windows users?) know who they are and can
take it on themselves to install the plugin if PRs cause them problems.

Certainly open to discussion if people feel otherwise!
2020-10-03 01:25:47 +00:00
Jonathan
fcf6678a12 [GithubIssues] Add examples for count github pull requests closed by label (#5639)
* Implement LOC badge

* Apply suggestions from code review

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

* Fix tokei tests after API change

* Format the code

* Rename tokei service file

* Add comment about Tokei API behavior

* Document tokei badge behavior

* Make keywords consistent and add examples

* Fix typo

* Add examples for labeled closed issues

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-03 00:00:05 +00:00
Paul Melnikow
f0b8480280 Inject shieldsSecret into GitHub token admin endpoint (#5631)
Ref #3393
2020-10-01 23:12:22 -04:00
Thakur Karthik
5931b86c85 Reactor powershellgallery pub puppetforge pypi services (#5635)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-10-02 02:04:03 +00:00
Reece Dunham
17b975b53f Refactor [Spiget Steam StackExchange static] badge services (#5633)
* Spiget

Signed-off-by: Reece Dunham <me@rdil.rocks>

* Stack exchange

Signed-off-by: Reece Dunham <me@rdil.rocks>

* Static-badge

Signed-off-by: Reece Dunham <me@rdil.rocks>

* Steam

Signed-off-by: Reece Dunham <me@rdil.rocks>

* Missed one!

* Formatting fix

Signed-off-by: Reece Dunham <me@rdil.rocks>
2020-10-01 20:29:03 -05:00
Thakur Karthik
0c28fe7144 Refactor osslifecycle,packagecontrol,packagist,plgreview,poeditor service files (#5634) 2020-09-30 21:18:49 -05:00
chris48s
504015c0ba migrate hapi/joi to joi (#5624)
* update joi + joi-extension-semver

* @hapi/joi --> joi

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-30 17:51:02 +00:00
Paul Melnikow
86366588a2 Minor coverage cleanup (#5630) 2020-09-29 21:33:28 -04:00
Paul Melnikow
eb9743c25c Remove obsolete peer-to-peer GitHub token-sharing code (#5628)
Prevent tokens from being sent to the OVH servers. Instead, add them directly to the Redis DB.

Ref #3393
2020-09-29 21:22:30 -04:00
Paul Melnikow
bdc41670a9 Remove obsolete WebSocket logs monitor (#5629)
This never worked in prod (see #1460)
2020-09-29 21:05:55 -04:00
Paul Melnikow
39756bde78 Clean up Danger rule for serverSecrets (#5627)
"serverSecrets" is no longer used to access auth in services, so it no longer makes sense to include it in this rule.

Ref #3393
2020-09-29 20:44:28 -04:00
Paul Melnikow
0e90b7e6ed Remove enzyme which we aren’t using right now (#5626)
Our approach to preventing bugs on the frontend has mostly leveraged types, though we could restore these if we start writing frontend tests again. In the meantime it's one less thing to unnecessarily install and maintain.
2020-09-29 20:17:49 -04:00
Paul Melnikow
342ea93c52 package.json: sort dependency array (#5625) 2020-09-29 19:55:44 -04:00
Caleb Cartwright
5d0116f959 convert some service classes to static fields, run [GithubPipenv GithubPullRequestCheckState GithubReleaseDate GithubRelease GithubRepoSize] (#5622)
* refactor(githubpipenv): convert to static fields

* refactor(githubpullrequest): convert to static fields

* refactor(githubreleasedate): convert to static fields

* refactor(githubrelease): convert to static fields

* refactor(githubreposize): convert to static fields
2020-09-29 02:15:49 +00:00
Thomas Cross
a4216434f8 [Criterion] Add support for "no change" status (#5621)
* add the const value "no change" as a new status

* add no change status to schema valid status list

* set default color for not found status

* change colors to respect the severity of the status and include "no change"

* add "no change" to the test case

* keep not found status for #5521
2020-09-28 23:11:25 +02:00
Caleb Cartwright
c02050a13a test: fix jsdeliver service tests (#5620)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-28 13:20:16 +00:00
dependabot-preview[bot]
501c53a0b4 Build(deps): bump css-color-converter from 1.1.1 to 2.0.0 in /badge-maker (#5615)
* Build(deps): bump css-color-converter in /badge-maker

Bumps [css-color-converter](https://github.com/andyjansson/css-color-converter) from 1.1.1 to 2.0.0.
- [Release notes](https://github.com/andyjansson/css-color-converter/releases)
- [Changelog](https://github.com/andyjansson/css-color-converter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/andyjansson/css-color-converter/commits)

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

* Update implementation and package-lock.json

* Fix some URLs which switched to HTTP

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: PyvesB <PyvesDev@gmail.com>
2020-09-28 09:16:57 +01:00
Caleb Cartwright
63f56f0762 tests: fix amodownloads service test (#5618)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 15:35:29 +00:00
dependabot-preview[bot]
0eedc8d180 Build(deps-dev): bump gatsby from 2.24.57 to 2.24.65 (#5613)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.57 to 2.24.65.
- [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@2.24.57...gatsby@2.24.65)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 05:18:36 +00:00
dependabot-preview[bot]
0e0f6903c8 Build(deps-dev): bump @types/react-select from 3.0.19 to 3.0.20 (#5610)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.19 to 3.0.20.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 05:09:14 +00:00
dependabot-preview[bot]
4eda1c7593 Build(deps-dev): bump danger from 10.4.0 to 10.4.1 (#5607)
Bumps [danger](https://github.com/danger/danger-js) from 10.4.0 to 10.4.1.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.4.0...10.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 03:39:10 +00:00
dependabot-preview[bot]
b31b7b15ea Build(deps-dev): bump start-server-and-test from 1.11.3 to 1.11.4 (#5609)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.11.3 to 1.11.4.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.11.3...v1.11.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 03:28:44 +00:00
dependabot-preview[bot]
8322bbddaf Build(deps): bump config from 3.3.1 to 3.3.2 (#5606)
Bumps [config](https://github.com/lorenwest/node-config) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/lorenwest/node-config/releases)
- [Changelog](https://github.com/lorenwest/node-config/blob/master/History.md)
- [Commits](https://github.com/lorenwest/node-config/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 03:15:03 +00:00
dependabot-preview[bot]
02642ac289 Build(deps): bump moment from 2.28.0 to 2.29.0 (#5604)
Bumps [moment](https://github.com/moment/moment) from 2.28.0 to 2.29.0.
- [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.28.0...2.29.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-27 03:03:53 +00:00
Pierre-Yves B
d784525049 Remove camelcase from package-lock.json (#5616) 2020-09-26 19:00:31 +01:00
dependabot-preview[bot]
613154b8ee Build(deps-dev): bump @types/node from 14.11.1 to 14.11.2 (#5601)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.11.1 to 14.11.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 06:08:25 +00:00
dependabot-preview[bot]
473aa16d66 Build(deps): bump simple-icons from 3.8.0 to 3.9.0 (#5600)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.8.0...3.9.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 05:44:07 +00:00
dependabot-preview[bot]
84583f510f Build(deps-dev): bump jsdoc from 3.6.5 to 3.6.6 (#5599)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.5 to 3.6.6.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/3.6.6/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.5...3.6.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 05:33:17 +00:00
dependabot-preview[bot]
37de6fe742 Build(deps-dev): bump cypress from 5.1.0 to 5.2.0 (#5614)
Bumps [cypress](https://github.com/cypress-io/cypress) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.json)
- [Commits](https://github.com/cypress-io/cypress/compare/v5.1.0...v5.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 05:16:59 +00:00
dependabot-preview[bot]
9d4dcb5886 Build(deps-dev): bump eslint-plugin-react from 7.20.6 to 7.21.2 (#5608)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.20.6 to 7.21.2.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 05:02:59 +00:00
dependabot-preview[bot]
cba467ecde Build(deps-dev): bump eslint-config-prettier from 6.11.0 to 6.12.0 (#5603)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.11.0...v6.12.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 04:45:43 +00:00
dependabot-preview[bot]
b92f05b9ab Build(deps-dev): bump enzyme-adapter-react-16 from 1.15.4 to 1.15.5 (#5612)
Bumps [enzyme-adapter-react-16](https://github.com/enzymejs/enzyme/tree/HEAD/packages/enzyme-adapter-react-16) from 1.15.4 to 1.15.5.
- [Release notes](https://github.com/enzymejs/enzyme/releases)
- [Changelog](https://github.com/enzymejs/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/enzymejs/enzyme/commits/enzyme-adapter-react-16@1.15.5/packages/enzyme-adapter-react-16)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-26 04:21:31 +00:00
dependabot-preview[bot]
6818765d89 Build(deps-dev): bump eslint-plugin-jsdoc from 30.4.2 to 30.5.2 (#5602)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.4.2 to 30.5.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.4.2...v30.5.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-26 03:39:11 +00:00
Thakur Karthik
bc2832e566 Refactor nuget nycrc opencollective opm services (#5598) 2020-09-25 19:06:10 -05:00
Jabbar Memon
1b91b03b2b Completed [mavencentral mavenmetadata microbadger mozillaobservatory myget netlify] static classes into static props (#5591)
* convert [homebrew,hsts,itunes,jenkins,jetbrains] classes to static props

* Run the prettier across the files

* Updated the correct values in logos.spec.js

* revert back the logos.spec.js changes

* Completed refactoring of [lgtm liberapay librariesio localizely luarocks]

* Convert defaultBadgeData to object

* Completed some classes[maven-central maven-metadata microbadger mozilla-observatory myget netlify] into props

* Completed some classes[maven-central maven-metadata microbadger mozilla-observatory myget netlify] into props

* changed the title

* Added todo in mozilla-observatory service

Co-authored-by: Jabbar Memon <jabbar@zoop.one>
2020-09-24 19:20:37 -05:00
Caleb Cartwright
88b3bc72dd docs: add hacktoberfest badges to readme (#5596) 2020-09-24 04:26:04 +00:00
Caleb Cartwright
b149659187 convert some service classes to static fields, run [GitHubLernaJson GithubLicense GithubManifest GithubMilestoneDetail GithubMilestone GithubPackageJson] (#5595)
* refactor(githublernajson): convert to static fields

* refactor(githublicense): convert to static fields

* refactor(githubmanifest): convert to static fields

* refactor(githubmilestonedetail): convert to static fields

* refactor(githubmilestone): convert to static fields

* refactor(githubpackagejson): convert to static fields
2020-09-23 23:41:36 -04:00
Caleb Cartwright
ec5b976c0d convert some service classes to static fields, run [GitHubForks GitHubGoMod GitHubIssueDetail GitHubIssues GitHubLabels GitHubLanguageCount GitHubLastCommit] (#5590)
* refactor(githubforks): convert to static fields

* refactor(githubgomod): convert to static fields

* refactor(githubissuedetail): convert to static fields

* refactor(githubissues): convert to static fields

* refactor(githublabels): convert to static fields

* refactor(githublanguagecount): convert to static fields

* refactor(githublastcommit): convert to static fields

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-09-22 18:18:54 -05:00
chris48s
484c652719 use HEAD ref in [github] fetchJsonFromRepo (#5589)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-22 18:15:27 +00:00
Thakur Karthik
aa171180e5 Convert [maintenance mastodon matrix mavencentral] classes to static props (#5588)
* Refactor jira,jitpack,jsdelivr,keybase service files

* refactor maintenance mastodon matric and maven-central service files

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-22 03:30:18 +00:00
Paul Melnikow
0067fed6f6 Work around DT conflict; bump TS and @types/styled-components (#5586)
@types/styled-components causes a conflict with @types/react-native. See DefinitelyTyped/DefinitelyTyped#33311.

Close #5294

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-22 03:21:54 +00:00
Jabbar Memon
76f13aa686 convert [lgtm liberapay librariesio localizely luarocks] classes to static props (#5587)
* convert [homebrew,hsts,itunes,jenkins,jetbrains] classes to static props

* Run the prettier across the files

* Updated the correct values in logos.spec.js

* revert back the logos.spec.js changes

* Completed refactoring of [lgtm liberapay librariesio localizely luarocks]

* Convert defaultBadgeData to object

Co-authored-by: Jabbar Memon <jabbar@zoop.one>
2020-09-21 22:11:33 -05:00
Caleb Cartwright
5a3064d0d4 convert some service classes to static fields, run [GitHubCommitsSince GitHubContributors GitHubDeployments GitHubDownloads GitHubFollowers] (#5585)
* refactor(githubcommitssince): convert to static fields

* refactor(githubcontributors): convert to static fields

* refactor(githubdeployments): convert to static fields

* refactor(githubdownloads): convert to static fields

* refactor(githubfollowers): convert to static fields
2020-09-21 11:25:15 -04:00
Caleb Cartwright
fa608e29d3 refactor(github): convert some clasess to static fields (#5556)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 20:17:22 +00:00
Caleb Cartwright
7712d26897 tests: add a validator for 0/timePeriod (#5583)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 19:58:54 +00:00
Caleb Cartwright
36395715a5 [GitHubHacktoberfest] 2020 (and beyond) (#5549)
* feat: GitHub Hacktoberfest 2020 (and beyond)

* chore: prettify

* refactor: convert to static fields

* refactor: fix spelling in pre-start message

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 18:40:47 +00:00
Joe Izzard
ff3acce7bb [WordPress] API Update (#5579)
* feat: updated to new WordPress API

Updated to the new WordPress API, and separated plugin and theme schemas for future expansion

* test: updated testing for new API

Updated some testing to work with the new API request

* feat: updated schema to require keys

Updated schema to require all the keys in the schema

* fix: remove duplicate requirement

The helper already includes required so we don't need to require it again

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

* fix: remove duplicate requirement

The helper already includes required so we don't need to require it again

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

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 18:31:31 +00:00
dependabot-preview[bot]
e00c1c252c Build(deps-dev): bump lint-staged from 10.3.0 to 10.4.0 (#5563)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.3.0...v10.4.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 17:25:48 +00:00
chris48s
2c47d12745 bump approve-bot to 2.0.1 (#5578)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-09-20 12:15:58 -05:00
Jabbar Memon
b61fc8291c convert [homebrew hsts itunes jenkins jetbrains] classes to static props (#5582)
* convert [homebrew,hsts,itunes,jenkins,jetbrains] classes to static props

* Run the prettier across the files

* Updated the correct values in logos.spec.js

* revert back the logos.spec.js changes

Co-authored-by: Jabbar Memon <jabbar@zoop.one>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-20 16:07:59 +00:00
Thakur Karthik
4c34b14b4a Refactor jira,jitpack,jsdelivr,keybase service files (#5581) 2020-09-20 15:44:47 +00:00
Caleb Cartwright
fc91038652 Fix [GitlabPipeline] not found repo service test (#5538)
* tests(GitlabPipelineStatus): fix not found service test

* docs: describe gitlab innaccessible message

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 20:08:23 +00:00
dependabot-preview[bot]
a4baeb786a Build(deps-dev): bump @types/node from 14.10.1 to 14.11.1 (#5572)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.10.1 to 14.11.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 19:29:36 +00:00
Thakur Karthik
c997a2aa5c refactor gitlab,gitter,hackage,hexpm service files (#5575)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 17:00:46 +00:00
dependabot-preview[bot]
c281683a61 Build(deps-dev): bump prettier from 2.1.1 to 2.1.2 (#5571)
Bumps [prettier](https://github.com/prettier/prettier) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.1.1...2.1.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 16:18:23 +00:00
dependabot-preview[bot]
f31b50adc7 Build(deps): bump moment from 2.27.0 to 2.28.0 (#5567)
Bumps [moment](https://github.com/moment/moment) from 2.27.0 to 2.28.0.
- [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.27.0...2.28.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 16:09:02 +00:00
dependabot-preview[bot]
b13d2aa352 Build(deps-dev): bump got from 11.6.2 to 11.7.0 (#5561)
Bumps [got](https://github.com/sindresorhus/got) from 11.6.2 to 11.7.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.6.2...v11.7.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 15:58:58 +00:00
dependabot-preview[bot]
142cec1273 Build(deps): bump @sentry/node from 5.23.0 to 5.24.2 (#5565)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.23.0 to 5.24.2.
- [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/5.23.0...5.24.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-19 15:49:07 +00:00
dependabot-preview[bot]
7845800f80 Build(deps): bump query-string from 6.13.1 to 6.13.2 (#5558)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.13.1 to 6.13.2.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.13.1...v6.13.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-19 10:29:31 -05:00
dependabot-preview[bot]
ce73281aaa Build(deps): bump simple-icons from 3.7.0 to 3.8.0 (#5564)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.7.0...3.8.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-19 10:17:37 -05:00
Pratapi Hemant
108a819c3a [GITHUB] Badge for total stars of an user / org (#5507)
* added badge for total stars of an user / org
* Added a transformJson method in graphql-base to handle partial data


Co-authored-by: Pratapi Hemant Patel <pratpatel@expedia.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-09-19 12:07:23 +01:00
Caleb Cartwright
737254f4a5 convert some service classes to static props, run [gem gerrit] (#5553)
* refactor(gem): convert to static props

* refactor(gerrit): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-18 22:28:24 +00:00
Caleb Cartwright
6682b87efe convert some service classes to static props, run [f-droid fedora flathub] (#5552)
* refactor(f-droid): convert to static props

* refactor(fedora): convert to static props

* refactor(flathub): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-18 22:19:05 +00:00
Jonathan
c8eb99fc4c [Tokei] Implement a lines of code (LOC) badge (#5547)
* Implement LOC badge

* Apply suggestions from code review

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

* Fix tokei tests after API change

* Format the code

* Rename tokei service file

* Add comment about Tokei API behavior

* Document tokei badge behavior

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-09-17 22:34:15 -05:00
Caleb Cartwright
ab65b42f0b Adopt Code of Conduct (#5236)
* docs: adopt Contributor Covenant

* chore: make pretty with prettier!

* docs: add contact methods to CoC

* docs: update CoC contacts

* docs: update email badges

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-16 00:41:33 +00:00
Caleb Cartwright
614daef08f convert some service classes to static props, run [EclipseMarketplace Ecologi ElmPackage Endpoint] (#5544)
* refactor(eclipsemarketplace): convert to static props

* refactor(ecologi): convert to static props

* refactor(elmpackage): convert to static props

* refactor(endpoint): convert to static props
2020-09-15 11:46:27 +00:00
Caleb Cartwright
ac54dd3ced convert some service classes to static props, run [drone dub dynamic] (#5543)
* refactor(drone): convert to static props

* refactor(dub): convert to static props

* refactor(dynamic): convert to static props
2020-09-15 01:42:57 +00:00
Caleb Cartwright
0b31461af6 convert some service classes to static props, run [date david debian debug dependabot] (#5539)
* refactor(date): convert to static props

* refactor(david): convert to static props

* refactor(debian): convert to static props

* refactor(debug): convert to static props

* refactor(dependabot): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-14 21:54:22 +00:00
Caleb Cartwright
1d649fa702 convert some service classes to static props, run [depfu discourse docker] (#5540)
* refactor(depfu): convert to static props

* refactor(discourse): convert to static props

* refactor(docker): convert to static props
2020-09-14 21:44:55 +00:00
Pierre-Yves B
f1007a5ee2 Remove duplicate normalizeColor calls (#5534)
* Remove duplicate normalizeColor calls

* Clarify behaviour with comment
2020-09-13 22:11:22 +02:00
Pierre-Yves B
bf4fd96059 Remove camelcase dependency from badge-maker package (#5533) 2020-09-13 09:17:07 +02:00
Pierre-Yves B
3eadcf448f Add guidelines about including tokens in badge URLs (#5522)
* Add guidelines about including tokens in badge URLs

* Tweak wording

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

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-09-13 09:08:32 +02:00
dependabot-preview[bot]
932b3b56c5 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.22 to 2.3.27 (#5532)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.22 to 2.3.27.
- [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@2.3.27/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 18:09:38 +00:00
dependabot-preview[bot]
07f4d67cea Build(deps-dev): bump gatsby from 2.24.53 to 2.24.57 (#5531)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.53 to 2.24.57.
- [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@2.24.53...gatsby@2.24.57)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 17:57:11 +00:00
Caleb Cartwright
9f814fa3e2 convert some service classes to static props, run [cran crates ctan] (#5517)
* refactor(cran): convert to static props

* refactor(crates): convert to static props

* refactor(ctan): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 17:46:33 +00:00
Caleb Cartwright
bb6d2b5c78 convert some service classes to static props, run [cookbook coveralls cpan] (#5516)
* refactor(cookbook): convert to static props

* refactor(coveralls): convert to static props

* refactor(coverity): convert to static props

* refactor(cpan): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 17:39:01 +00:00
Caleb Cartwright
b7dcf58bd6 convert some service classes to static props, run [codefactor codeship conda continuousphp] (#5515)
* refactor(codefactor): convert to static props

* refactor(codeship): convert to static props

* refactor(conda): convert to static props

* refactor(continuousphp): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 17:17:19 +00:00
Caleb Cartwright
65295ddcdf convert some service classes to static props, run [clojars cocoapods] (#5513)
* refactor(clojars): convert to static props

* refactor(cocoapods): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 17:03:52 +00:00
Caleb Cartwright
005b3ba4ac convert some service classes to static props, run [codacy codeclimate codecov] (#5514)
* refactor(codacy): convert to static props

* refactor(codeclimate): convert to static props

* refactor(codecov): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 16:55:45 +00:00
dependabot-preview[bot]
55310c3ed0 Build(deps): bump @sentry/node from 5.22.3 to 5.23.0 (#5526)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.22.3 to 5.23.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/5.22.3...5.23.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 16:39:38 +00:00
Caleb Cartwright
bb2f827e00 convert some service classes to static props, run [ciibestpractices circleci cirrus] (#5511)
* refactor(ciibestpractices): convert to static props

* refactor(circleci): convert to static props

* refactor(cirrus): convert to static props

* chore: prettify

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 16:22:03 +00:00
Caleb Cartwright
a88302eafb convert some service classes to static props, run [cdnjs chromewebstore] (#5509)
* refactor(cdnjs): convert to static props

* refactor(chromewebstore): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 16:04:20 +00:00
Caleb Cartwright
1c01520515 test(coverity): fix failing service test (#5519)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 14:36:00 +00:00
Caleb Cartwright
9ef79889b0 test(criterion): fix failing service test (#5521)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 14:27:02 +00:00
dependabot-preview[bot]
83bfb069ee Build(deps-dev): bump husky from 4.2.5 to 4.3.0 (#5530)
Bumps [husky](https://github.com/typicode/husky) from 4.2.5 to 4.3.0.
- [Release notes](https://github.com/typicode/husky/releases)
- [Changelog](https://github.com/typicode/husky/blob/master/CHANGELOG.md)
- [Commits](https://github.com/typicode/husky/compare/v4.2.5...v4.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-12 13:39:51 +00:00
dependabot-preview[bot]
f12add001d Build(deps-dev): bump got from 11.6.0 to 11.6.2 (#5529)
Bumps [got](https://github.com/sindresorhus/got) from 11.6.0 to 11.6.2.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.6.0...v11.6.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 13:16:36 +00:00
dependabot-preview[bot]
b53cb879a9 Build(deps-dev): bump @types/enzyme from 3.10.5 to 3.10.6 (#5528)
Bumps [@types/enzyme](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/enzyme) from 3.10.5 to 3.10.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/enzyme)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-12 13:07:56 +00:00
dependabot-preview[bot]
e836a7b8b2 Build(deps-dev): bump @types/node from 14.6.4 to 14.10.1 (#5524)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.6.4 to 14.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-12 12:54:48 +00:00
dependabot-preview[bot]
235447e6cb Build(deps): bump simple-icons from 3.6.1 to 3.7.0 (#5523)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.6.1 to 3.7.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.6.1...3.7.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-12 12:43:11 +00:00
dependabot-preview[bot]
ba1d0435c8 Build(deps-dev): bump eslint-plugin-jsdoc from 30.3.1 to 30.4.2 (#5525)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.3.1 to 30.4.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.3.1...v30.4.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-12 12:00:33 +00:00
Pierre-Yves B
06dff040c6 Rework isCSSColor check (#5508)
* Rework isCSSColor check

* Expand tests and accept strings with whitespace

* Remove void(0) edge-case test
2020-09-12 12:04:41 +02:00
Caleb Cartwright
e626d64b4e convert some service classes to static props, run [ansible apm appveyor] (#5496)
* refactor(ansible): convert to static props

* refactor(apm): convert to static props

* refactor(appveyor): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-09 22:57:47 +00:00
Zoran Luledzija
939d748619 Add [Localizely] badges (#5472)
* Add Localizely badges for overall and per-language translation progress

* Update route config

* Update services names

* Update service logic according code review suggestions

* Update message for unauthorized access

* Rename service file name

* Remove Accept header

* Update example badges with real parameter values

* Update documentation with security warning

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-09-09 19:09:04 +02:00
Caleb Cartwright
7e68644587 convert some service classes to static props, run [archlinux aur azuredevops] (#5500)
* refactor(archlinux): convert to static props

* refactor(aur): convert to static props

* refactor(azuredevops): convert to static props

* tests: fix AzDO Coverage service test

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-08 22:13:31 +00:00
Caleb Cartwright
e9b3a0a921 convert some service classes to static props, run [bitbucket bitrise bountysource] (#5502)
* refactor(bitbucket): convert to static props

* refactor(bitrise): convert to static props

* refactor(bountysource): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-08 22:03:12 +00:00
Caleb Cartwright
542e2cf407 convert some service classes to static props, run [beerpay bintray bit] (#5501)
* refactor(beerpay): convert to static props

* refactor(bintray): convert to static props

* refactor(bit): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-08 21:54:52 +00:00
Caleb Cartwright
1027c296ee convert some service classes to static props, run [bower bstats] (#5503)
* refactor(bower): convert to static props

* refactor(bstats): convert to static props

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-08 16:45:46 -05:00
Caleb Cartwright
70089bafba convert some service classes to static props, run [buildkite bundlephobia] (#5504)
* refactor(bugzilla): convert to static props

* refactor(buildkite): convert to static props

* refactor(bundlephobia): convert to static props
2020-09-08 21:37:40 +00:00
Pierre-Yves B
471f3f4ad1 Use black font when background color is too light (#5467)
* Use black font when background color is too light

* Tweak dark color

* Extract magic brightness numbers to constants

* Fix snapshot tests

* Switch threshold to 0.69
2020-09-07 19:07:28 +02:00
chris48s
38322e1412 redirect /endpoint with no query params to endpoint docs (#5137)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-06 17:21:58 +00:00
Cédric Luthi
6e88aee7c8 [Scoop] Add scoop badge service (#5081)
* [Scoop] Add scoop badge service

* Rename scoop.service.js into scoop-version.service.js

Also rename scoop.tester.js into scoop-version.tester.js

* Cache buckets file

* Fix test

* Improve regex to handle trailing slash

* Switch to static fields

Co-authored-by: PyvesB <PyvesDev@gmail.com>
2020-09-06 19:01:37 +02:00
chris48s
56a303df87 deprecate [ChromeWebStoreRating] badges (#5495)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-06 16:39:50 +00:00
Ben Ramsey
8082eeb47b fix(packagist): use default branch as indicated by Packagist (#5474)
Instead of assuming dev-master for the default branch, check the package
data from Packagist to see which branch is set as the default, and use
it.

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-06 14:08:12 +00:00
Pierre-Yves B
1009491b68 Fix externally hosted [Spiget] test (#5477)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-06 10:04:48 +00:00
dependabot-preview[bot]
2bc62926a3 Build(deps-dev): bump got from 11.5.2 to 11.6.0 (#5488)
Bumps [got](https://github.com/sindresorhus/got) from 11.5.2 to 11.6.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.5.2...v11.6.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-05 16:27:08 -05:00
dependabot-preview[bot]
3880e22e83 Build(deps-dev): bump @babel/register from 7.10.5 to 7.11.5 (#5487)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.10.5 to 7.11.5.
- [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.11.5/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 21:07:30 +00:00
dependabot-preview[bot]
532a4eb665 Build(deps-dev): bump gatsby from 2.24.52 to 2.24.53 (#5486)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.52 to 2.24.53.
- [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@2.24.52...gatsby@2.24.53)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 20:13:10 +00:00
dependabot-preview[bot]
d043000844 Build(deps-dev): bump @babel/core from 7.11.4 to 7.11.6 (#5485)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.4 to 7.11.6.
- [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.11.6/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 20:05:30 +00:00
dependabot-preview[bot]
4690cd25b0 Build(deps-dev): bump @types/node from 14.6.2 to 14.6.4 (#5480)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.6.2 to 14.6.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 18:21:49 +00:00
dependabot-preview[bot]
a613ebd99e Build(deps-dev): bump styled-components from 5.1.1 to 5.2.0 (#5483)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 5.1.1 to 5.2.0.
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Changelog](https://github.com/styled-components/styled-components/blob/master/CHANGELOG.md)
- [Commits](https://github.com/styled-components/styled-components/compare/v5.1.1...v5.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 18:06:29 +00:00
dependabot-preview[bot]
9abfe221a4 Build(deps-dev): bump @babel/polyfill from 7.10.4 to 7.11.5 (#5479)
Bumps [@babel/polyfill](https://github.com/babel/babel/tree/HEAD/packages/babel-polyfill) from 7.10.4 to 7.11.5.
- [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.11.5/packages/babel-polyfill)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 17:57:25 +00:00
Pierre-Yves B
a0178f317c Deprecate [Codetally] service (#5478) 2020-09-05 16:23:37 +02:00
dependabot-preview[bot]
ff08c5d177 Build(deps-dev): bump lint-staged from 10.2.13 to 10.3.0 (#5492)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.13 to 10.3.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.13...v10.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 14:13:01 +00:00
dependabot-preview[bot]
244c18a572 Build(deps): bump pretty-bytes from 5.4.0 to 5.4.1 (#5490)
Bumps [pretty-bytes](https://github.com/sindresorhus/pretty-bytes) from 5.4.0 to 5.4.1.
- [Release notes](https://github.com/sindresorhus/pretty-bytes/releases)
- [Commits](https://github.com/sindresorhus/pretty-bytes/compare/v5.4.0...v5.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 14:00:08 +00:00
Thomas Cross
55e1d8f00c Add [Criterion] badge (#5471)
* add criterion shield service and tests

* remove error function.  replace with const statuses

* use shared const and formatting

* use commonjs/nodejs "module.exports"

* simplify badge generation

* leverage static fields, for newer version of node

* add documentation and contact links

* Update services/criterion/criterion.service.js

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

* Update services/criterion/criterion.service.js

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

* make criterion prettier

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-09-05 15:49:43 +02:00
dependabot-preview[bot]
f7ba544a81 Build(deps): bump simple-icons from 3.6.0 to 3.6.1 (#5489)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.6.0...3.6.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 13:38:24 +00:00
dependabot-preview[bot]
07cf531ab1 Build(deps-dev): bump enzyme-adapter-react-16 from 1.15.3 to 1.15.4 (#5482)
Bumps [enzyme-adapter-react-16](https://github.com/enzymejs/enzyme/tree/HEAD/packages/enzyme-adapter-react-16) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/enzymejs/enzyme/releases)
- [Changelog](https://github.com/enzymejs/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/enzymejs/enzyme/commits/enzyme-adapter-react-16@1.15.4/packages/enzyme-adapter-react-16)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 12:44:34 +00:00
dependabot-preview[bot]
cb5dcd175d Build(deps-dev): bump eslint-plugin-jsdoc from 30.3.0 to 30.3.1 (#5484)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.3.0 to 30.3.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.3.0...v30.3.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-05 12:17:33 +00:00
dependabot-preview[bot]
bcffe9133b Build(deps-dev): bump cypress from 5.0.0 to 5.1.0 (#5481)
Bumps [cypress](https://github.com/cypress-io/cypress) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v5.0.0...v5.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-05 11:52:56 +00:00
dependabot-preview[bot]
bf98260a4c Build(deps-dev): bump @types/node from 14.6.0 to 14.6.2 (#5464)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.6.0 to 14.6.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-01 21:28:39 +00:00
dependabot-preview[bot]
a949f31def Build(deps): bump pretty-bytes from 5.3.0 to 5.4.0 (#5462)
Bumps [pretty-bytes](https://github.com/sindresorhus/pretty-bytes) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/sindresorhus/pretty-bytes/releases)
- [Commits](https://github.com/sindresorhus/pretty-bytes/compare/v5.3.0...v5.4.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-09-01 21:19:30 +00:00
dependabot-preview[bot]
681489d10d Build(deps-dev): bump lint-staged from 10.2.11 to 10.2.13 (#5463)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.11 to 10.2.13.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.11...v10.2.13)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-31 13:52:34 +00:00
dependabot-preview[bot]
056e5e5b31 Build(deps-dev): bump eslint-plugin-jsdoc from 30.2.4 to 30.3.0 (#5461)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.2.4 to 30.3.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.2.4...v30.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-31 13:43:01 +00:00
dependabot-preview[bot]
d1d00128f8 Build(deps): bump simple-icons from 3.5.0 to 3.6.0 (#5465)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.5.0...3.6.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-31 06:37:52 +00:00
dependabot-preview[bot]
60d92cd5d6 Build(deps-dev): bump prettier from 2.0.5 to 2.1.1; test [pypi] (#5466)
* Build(deps-dev): bump prettier from 2.0.5 to 2.1.1

Bumps [prettier](https://github.com/prettier/prettier) from 2.0.5 to 2.1.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.5...2.1.1)

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

* update code formatting for new prettier version

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-08-30 16:08:50 +01:00
dependabot-preview[bot]
8c50458285 Build(deps-dev): bump gatsby from 2.24.47 to 2.24.52 (#5459)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.47 to 2.24.52.
- [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@2.24.47...gatsby@2.24.52)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-08-30 15:57:38 +01:00
Pierre-Yves B
2c329cdbb3 Update documentation about snapshot tests (#5468) 2020-08-29 21:28:27 +02:00
dependabot-preview[bot]
6880bc06f9 Build(deps): bump @sentry/node from 5.21.3 to 5.22.3 (#5458)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.21.3 to 5.22.3.
- [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/5.21.3...5.22.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-29 11:39:42 -05:00
Pierre-Yves B
1047fd9c7e Remove badgerbadgerbadger from related projects and add poser (#5456) 2020-08-23 19:08:30 +02:00
dependabot-preview[bot]
a2e132d98f Build(deps): bump xpath from 0.0.27 to 0.0.29 (#5452)
Bumps [xpath](https://github.com/goto100/xpath) from 0.0.27 to 0.0.29.
- [Release notes](https://github.com/goto100/xpath/releases)
- [Commits](https://github.com/goto100/xpath/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-23 16:54:00 +00:00
dependabot-preview[bot]
5c0a9a3beb Build(deps-dev): bump cypress from 4.12.1 to 5.0.0 (#5447)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.12.1 to 5.0.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.12.1...v5.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-23 16:38:14 +00:00
dependabot-preview[bot]
ada4bae12d Build(deps-dev): bump @babel/core from 7.11.1 to 7.11.4 (#5450)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.1 to 7.11.4.
- [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.11.4/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-23 10:24:52 +00:00
dependabot-preview[bot]
c463e77da3 Build(deps-dev): bump @types/node from 14.0.27 to 14.6.0 (#5446)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.27 to 14.6.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 18:31:30 +00:00
dependabot-preview[bot]
106e2a1cf1 Build(deps): bump @sentry/node from 5.21.1 to 5.21.3 (#5453)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.21.1 to 5.21.3.
- [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/5.21.1...5.21.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 18:22:10 +00:00
dependabot-preview[bot]
3c1b5a86f5 Build(deps-dev): bump @types/react-select from 3.0.16 to 3.0.19 (#5448)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.16 to 3.0.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 18:13:42 +00:00
dependabot-preview[bot]
ab596a164f Build(deps-dev): bump node-mocks-http from 1.8.1 to 1.9.0 (#5445)
Bumps [node-mocks-http](https://github.com/howardabrams/node-mocks-http) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/howardabrams/node-mocks-http/releases)
- [Changelog](https://github.com/howardabrams/node-mocks-http/blob/master/HISTORY.md)
- [Commits](https://github.com/howardabrams/node-mocks-http/compare/v1.8.1...v1.9.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 18:04:01 +00:00
dependabot-preview[bot]
b3a5c9224e Build(deps-dev): bump @types/mocha from 8.0.2 to 8.0.3 (#5454)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 8.0.2 to 8.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 17:52:55 +00:00
dependabot-preview[bot]
ab3dc93776 Build(deps-dev): bump danger from 10.3.0 to 10.4.0 (#5444)
Bumps [danger](https://github.com/danger/danger-js) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.3.0...10.4.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 03:12:55 +00:00
dependabot-preview[bot]
47b55cf9e0 Build(deps): bump simple-icons from 3.4.1 to 3.5.0 (#5451)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.4.1...3.5.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-22 03:03:37 +00:00
dependabot-preview[bot]
aef6368390 Build(deps-dev): bump eslint-plugin-jsdoc from 30.2.2 to 30.2.4 (#5443)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.2.2 to 30.2.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.2.2...v30.2.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-22 01:44:49 +00:00
Sebastian Meyer
0d62406d0b feat: GithubWorkflowStatus event query string (#5442)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-19 23:09:24 +00:00
Paul Melnikow
7c226456fe Adopt static fields in [amo] and core (#5440)
Since we've upgraded production to Node 12 (#5436) we can finally adopt static fields!

This starts the process by updating core and one of the service families.
2020-08-19 14:49:29 -04:00
chris48s
0bcd7eef15 Run on node 12 in production, update test matrix (#5436)
* upgrade node/npm versions in package.json

* delete config for zeit now
zeit now is no more, vercel have decomissioned the now v1 platform

* upgrade to node 12 for (docker) self-hosting users

* update docs

* update test matrix
run tests on node 12 and node 14

* link to nodejs version support docs in package comment
we'll continue to tun the package tests on node 10
while its still maintained and drop in the next
major release

* update depcheck

* remove npm-install job
2020-08-18 19:28:58 +01:00
Owen Voke
4059bdcdfa feat: rename [OffsetEarth] to [Ecologi] (#5434)
* chore: update Offset Earth (Carbon) to Ecologi

* chore: update Offset Earth (Trees) to Ecologi

* chore: add redirect for Offset Earth (Carbon)

* chore: add redirect for Offset Earth (Trees)

* tests: fix pathPrefix in Offset Earth redirects

* chore: add redirect to Offset Earth filenames
2020-08-17 11:14:57 +02:00
chris48s
b9810b01e8 auto-close 'version bump only' gatsby deps (#5432)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-16 16:15:41 +01:00
dependabot-preview[bot]
41911ac53f Build(deps): bump @sentry/node from 5.20.1 to 5.21.1 (#5426)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.20.1 to 5.21.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/5.20.1...5.21.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-16 15:00:59 +00:00
dependabot-preview[bot]
abdd915de2 Build(deps-dev): bump nock from 13.0.3 to 13.0.4 (#5427)
Bumps [nock](https://github.com/nock/nock) from 13.0.3 to 13.0.4.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.0.3...v13.0.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 21:34:22 +00:00
kitsunyan
26e22e62b1 Migrate to the official F-Droid API (#5416)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 20:24:25 +00:00
dependabot-preview[bot]
957429113b Build(deps): bump emojic from 1.1.15 to 1.1.16 (#5423)
Bumps [emojic](https://github.com/IonicaBizau/emojic) from 1.1.15 to 1.1.16.
- [Release notes](https://github.com/IonicaBizau/emojic/releases)
- [Commits](https://github.com/IonicaBizau/emojic/commits/1.1.16)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 20:13:09 +00:00
dependabot-preview[bot]
3137dbdaab Build(deps): bump simple-icons from 3.4.0 to 3.4.1 (#5425)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.4.0...3.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 19:58:46 +00:00
dependabot-preview[bot]
a2a44a3699 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.19 to 2.3.22 (#5429)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.19 to 2.3.22.
- [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@2.3.22/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 19:47:55 +00:00
dependabot-preview[bot]
c5e7c4c292 Build(deps-dev): bump gatsby from 2.24.35 to 2.24.47 (#5431)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.35 to 2.24.47.
- [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@2.24.35...gatsby@2.24.47)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 19:33:16 +00:00
dependabot-preview[bot]
af66f652ed Build(deps-dev): bump start-server-and-test from 1.11.2 to 1.11.3 (#5420)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.11.2 to 1.11.3.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.11.2...v1.11.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 19:25:40 +00:00
dependabot-preview[bot]
de4de4bf80 Build(deps-dev): bump @types/mocha from 8.0.1 to 8.0.2 (#5419)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-15 02:27:27 +00:00
dependabot-preview[bot]
7b3fde090f Build(deps-dev): bump eslint-plugin-react from 7.20.5 to 7.20.6 (#5424)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.20.5 to 7.20.6.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.5...v7.20.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-14 21:01:23 +00:00
dependabot-preview[bot]
95034b56ed Build(deps-dev): bump sinon from 9.0.2 to 9.0.3 (#5428)
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v9.0.2...v9.0.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-14 20:53:33 +00:00
dependabot-preview[bot]
3ca0d2c9cf Build(deps-dev): bump eslint-plugin-sort-class-members (#5430)
Bumps [eslint-plugin-sort-class-members](https://github.com/bryanrsmith/eslint-plugin-sort-class-members) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/releases)
- [Commits](https://github.com/bryanrsmith/eslint-plugin-sort-class-members/compare/v1.7.0...v1.8.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-14 20:41:08 +00:00
dependabot-preview[bot]
915ad86736 Build(deps-dev): bump eslint-plugin-jsdoc from 30.2.1 to 30.2.2 (#5422)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.2.1 to 30.2.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.2.1...v30.2.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-14 20:10:10 +00:00
dependabot-preview[bot]
c673eff3a6 Build(deps-dev): bump enzyme-adapter-react-16 from 1.15.2 to 1.15.3 (#5418)
Bumps [enzyme-adapter-react-16](https://github.com/enzymejs/enzyme/tree/HEAD/packages/enzyme-adapter-react-16) from 1.15.2 to 1.15.3.
- [Release notes](https://github.com/enzymejs/enzyme/releases)
- [Changelog](https://github.com/enzymejs/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/enzymejs/enzyme/commits/enzyme-adapter-react-16@1.15.3/packages/enzyme-adapter-react-16)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-14 19:55:52 +00:00
Martynas Petuška
3dd163e2a7 [Bintray] Downloads (Bintray Versions renamed and not changed) (#5316)
* Bintray Downloads (Bintray Versions renamed and not changed)

* Tests fix

* Tests fix

* Tests fix

* Refactoring

* PR suggestions

* PR suggestions

* PR suggestions

Co-authored-by: Martynas Petuška <petuska.m@cambridgeassessment.org.uk>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-11 12:52:56 +00:00
Aaron Junker
f55f00cfa7 Add emoji for "Support Question" in config.yml (#5413)
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-08-11 14:05:31 +02:00
alex4200
b97fce43c7 Add quickstart section to readme (#5370)
* Update README.md

Added sentence to make it more clear how to select and use a badge to add to a user's github repo.

* Update README.md

* Reformat

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
Co-authored-by: Paul Melnikow <email@paulmelnikow.com>
2020-08-10 22:37:53 -05:00
Pierre-Yves B
3a8528493a Update Node.js versions in README (#5410) 2020-08-09 08:51:34 +02:00
Pierre-Yves B
0b5067c412 Fix all remaining LGTM alerts (#5394) 2020-08-08 08:45:46 +02:00
dependabot-preview[bot]
e139264675 Build(deps-dev): bump concurrently from 5.2.0 to 5.3.0 (#5409)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v5.2.0...v5.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-08 01:51:42 +00:00
dependabot-preview[bot]
0b5b75987a Build(deps-dev): bump nock from 13.0.2 to 13.0.3 (#5404)
Bumps [nock](https://github.com/nock/nock) from 13.0.2 to 13.0.3.
- [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.0.2...v13.0.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-08 01:41:19 +00:00
dependabot-preview[bot]
c06318d128 Build(deps-dev): bump @babel/core from 7.11.0 to 7.11.1 (#5406)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.0 to 7.11.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.11.1/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-08 01:33:02 +00:00
dependabot-preview[bot]
d88b4c5cfb Build(deps-dev): bump @types/react-select from 3.0.15 to 3.0.16 (#5407)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.15 to 3.0.16.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-07 20:25:13 -05:00
dependabot-preview[bot]
36e51f4971 Build(deps-dev): bump @types/react-helmet from 6.0.0 to 6.1.0 (#5398)
Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-08 01:02:39 +00:00
dependabot-preview[bot]
63d3a09bef Build(deps-dev): bump gatsby from 2.24.11 to 2.24.35 (#5403)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.11 to 2.24.35.
- [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@2.24.11...gatsby@2.24.35)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-07 20:56:36 +00:00
dependabot-preview[bot]
1c6ef980ff Build(deps): bump simple-icons from 3.3.0 to 3.4.0 (#5400)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.3.0...3.4.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-07 20:48:44 +00:00
dependabot-preview[bot]
4f52f3950c Build(deps-dev): bump got from 11.5.1 to 11.5.2 (#5402)
Bumps [got](https://github.com/sindresorhus/got) from 11.5.1 to 11.5.2.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.5.1...v11.5.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-07 20:34:52 +00:00
dependabot-preview[bot]
6db80e57fb Build(deps-dev): bump eslint-plugin-jsdoc from 30.1.0 to 30.2.1 (#5408)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.1.0 to 30.2.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.1.0...v30.2.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-07 18:11:51 +00:00
dependabot-preview[bot]
4942ec82c7 Build(deps-dev): bump cypress from 4.11.0 to 4.12.1 (#5401)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.11.0 to 4.12.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.11.0...v4.12.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-07 17:46:53 +00:00
Hrishikesh Patil
1e6acc830b [GitlabCoverage] Add badge for code coverage (#5262)
* Add base for GitLab code coverage badge

* Change examples to repos which have implemented code coverage reporting
in GitLab UI

* Add tests for Gitlab Coverage badge

* Fix test data that was not changed

* Update code according to new branch detection

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Update docs and examples, make branch required option that was missed in
previous commit

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Apply suggestions from PR discussion

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Remove default value of branch param

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Apply further discussed changes to service

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Fix tests that were failing

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Add fetch and transform functions

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Add examples and tests for custom job name

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Add finishing touches

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

* Change to a working example

Signed-off-by: Hrishikesh Patil <hrishikeshpatil.754@gmail.com>

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-07 00:15:47 +00:00
chris48s
164e9ea737 add guidance about scraping and unofficial APIs (#5393) 2020-08-06 19:15:11 +01:00
Yash Totale
63a40ce1b1 Change [LGTM] alerts label (#5391) 2020-08-05 19:06:23 +01:00
Yash Totale
4b2a16b0c7 VS Code Marketplace Last Updated Badge added along with tests, run [VisualStudioMarketplace] (#5388)
* VS Code Marketplace Release Date Badge added along with tests

* VS Code Marketplace Last Updated Badge added along with tests

* made review changes

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-04 02:44:22 +00:00
dependabot-preview[bot]
69ef82903d Build(deps-dev): bump @babel/core from 7.10.5 to 7.11.0 (#5383)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.5 to 7.11.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.11.0/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-02 17:02:33 +00:00
dependabot-preview[bot]
2858189809 Build(deps-dev): bump portfinder from 1.0.27 to 1.0.28 (#5384)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.27 to 1.0.28.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.27...v1.0.28)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-02 16:53:33 +00:00
dependabot-preview[bot]
9204eea7e1 Build(deps-dev): bump @types/node from 14.0.25 to 14.0.27 (#5380)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.25 to 14.0.27.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-02 16:44:39 +00:00
dependabot-preview[bot]
7c81585ca6 Build(deps-dev): bump danger from 10.2.1 to 10.3.0 (#5382)
Bumps [danger](https://github.com/danger/danger-js) from 10.2.1 to 10.3.0.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.2.1...10.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-02 16:37:50 +00:00
dependabot-preview[bot]
afc9ccc0a0 Build(deps-dev): bump @types/react-select from 3.0.14 to 3.0.15 (#5379)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.14 to 3.0.15.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-02 16:28:08 +00:00
dependabot-preview[bot]
b3f9f58a82 Build(deps): bump graphql-tag from 2.10.4 to 2.11.0 (#5378)
Bumps [graphql-tag](https://github.com/apollographql/graphql-tag) from 2.10.4 to 2.11.0.
- [Release notes](https://github.com/apollographql/graphql-tag/releases)
- [Changelog](https://github.com/apollographql/graphql-tag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apollographql/graphql-tag/commits/v2.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-01 18:31:32 +00:00
dependabot-preview[bot]
ea24784b26 Build(deps): bump simple-icons from 3.2.0 to 3.3.0 (#5377)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.2.0...3.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-01 18:11:38 +00:00
dependabot-preview[bot]
65c54c22d2 Build(deps-dev): bump @types/mocha from 8.0.0 to 8.0.1 (#5376)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-01 17:57:36 +00:00
dependabot-preview[bot]
e0c3fd4364 Build(deps): [security] bump lodash from 4.17.15 to 4.17.19 (#5374)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-01 17:48:55 +00:00
dependabot-preview[bot]
babd32c98b Build(deps-dev): bump eslint-plugin-jsdoc from 30.0.3 to 30.1.0 (#5381)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 30.0.3 to 30.1.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v30.0.3...v30.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-08-01 04:46:23 +00:00
dependabot-preview[bot]
a70589d919 Build(deps-dev): bump eslint-plugin-react from 7.20.3 to 7.20.5 (#5375)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.20.3 to 7.20.5.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.3...v7.20.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-01 04:27:16 +00:00
kitsunyan
5a75ffaa99 Migrate to F-Droid API (#5362)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-30 00:16:24 +00:00
Kid
86a9ac27d0 Add [Flathub] badge (#5345)
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-07-29 17:59:22 +01:00
chris48s
f3d17ff435 bypass checkErrorResponse on [website] badge (#5347)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-26 15:44:31 +00:00
dependabot-preview[bot]
23f416b42a Build(deps): bump @sentry/node from 5.19.2 to 5.20.1 (#5361)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.19.2 to 5.20.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/5.19.2...5.20.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-26 01:43:16 +00:00
dependabot-preview[bot]
5d02a66796 Build(deps-dev): bump gatsby from 2.24.4 to 2.24.11 (#5360)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.4 to 2.24.11.
- [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@2.24.4...gatsby@2.24.11)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 19:32:48 +00:00
dependabot-preview[bot]
b6213efac2 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.15 to 2.4.16 (#5355)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.15 to 2.4.16.
- [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@2.4.16/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 19:25:03 +00:00
dependabot-preview[bot]
89c9bd5db1 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.12 to 2.3.19 (#5354)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.12 to 2.3.19.
- [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@2.3.19/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 19:17:33 +00:00
dependabot-preview[bot]
524f78f4f4 Build(deps-dev): bump eslint-plugin-jsdoc from 29.2.0 to 30.0.3 (#5352)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 29.2.0 to 30.0.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v29.2.0...v30.0.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 19:07:58 +00:00
Jules Sam. Randolph
d9cda5c2ff [npm] Support tags containing slashes (/) (#5367)
closes #5364
2020-07-25 18:57:15 +00:00
dependabot-preview[bot]
72c749c6b6 Build(deps-dev): bump jsdoc from 3.6.4 to 3.6.5 (#5356)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.4 to 3.6.5.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/3.6.5/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.4...3.6.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 09:58:17 +00:00
dependabot-preview[bot]
77d655ecc9 Build(deps): bump simple-icons from 3.1.0 to 3.2.0 (#5357)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.1.0...3.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-25 09:50:30 +00:00
dependabot-preview[bot]
44078775ca Build(deps-dev): bump @types/chai from 4.2.11 to 4.2.12 (#5359)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.11 to 4.2.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-24 18:15:46 +00:00
dependabot-preview[bot]
b9438f91a4 Build(deps-dev): bump portfinder from 1.0.26 to 1.0.27 (#5358)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.26 to 1.0.27.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.26...v1.0.27)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-24 18:04:54 +00:00
dependabot-preview[bot]
dfa6862329 Build(deps-dev): bump cypress from 4.10.0 to 4.11.0 (#5353)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.10.0 to 4.11.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.10.0...v4.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-24 17:34:31 +00:00
dependabot-preview[bot]
3600b9c6f7 Build(deps-dev): bump @types/node from 14.0.23 to 14.0.25 (#5351)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.23 to 14.0.25.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-24 17:17:16 +00:00
Pierre-Yves B
135b842946 Migrate [Discord] implementation to use bot token (#5346)
* Migrate [Discord] implementation to use bot token

* Rework authorization field creation

* Revert "Rework authorization field creation"

This reverts commit caf65bde5d.

* Add LGTM exclusion for hardcoded credentials
2020-07-24 18:04:12 +02:00
chris48s
c85512997c add 'aborted' as a valid build status (#5348)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-22 19:32:23 +00:00
dependabot-preview[bot]
cdb6bb1890 Build(deps-dev): bump @types/node from 14.0.22 to 14.0.23 (#5327)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.22 to 14.0.23.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-21 02:01:40 +00:00
dependabot-preview[bot]
b1841f288e Build(deps): bump @sentry/node from 5.19.1 to 5.19.2 (#5326)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.19.1 to 5.19.2.
- [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/5.19.1...5.19.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-20 00:33:20 +00:00
chris48s
3f622f9ed9 convert branch to required param on [shippable] (#5344)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-19 20:58:18 +00:00
dependabot-preview[bot]
f46bbb914a Build(deps-dev): bump gatsby-plugin-typescript from 2.4.13 to 2.4.15 (#5330)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.13 to 2.4.15.
- [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@2.4.15/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-19 17:03:07 +00:00
dependabot-preview[bot]
e186211a29 Build(deps-dev): bump @babel/register from 7.10.4 to 7.10.5 (#5334)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.10.4 to 7.10.5.
- [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.10.5/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-19 16:53:37 +00:00
dependabot-preview[bot]
aa1fcb4c84 Build(deps-dev): bump @babel/core from 7.10.4 to 7.10.5 (#5332)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.4 to 7.10.5.
- [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.10.5/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-19 16:45:10 +00:00
dependabot-preview[bot]
50f9c434e7 Build(deps-dev): bump gatsby from 2.24.2 to 2.24.4 (#5342)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.24.2 to 2.24.4.
- [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@2.24.2...gatsby@2.24.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-18 20:42:52 +00:00
dependabot-preview[bot]
95ad4830cb Build(deps): bump simple-icons from 3.0.1 to 3.1.0 (#5337)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/3.0.1...3.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-18 20:33:30 +00:00
dependabot-preview[bot]
cc5d4c07f1 Build(deps-dev): bump @types/mocha from 7.0.2 to 8.0.0 (#5333)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 7.0.2 to 8.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-18 20:22:19 +00:00
dependabot-preview[bot]
8930f3cf9c Build(deps-dev): bump tsd from 0.12.1 to 0.13.1 (#5325)
Bumps [tsd](https://github.com/SamVerschueren/tsd) from 0.12.1 to 0.13.1.
- [Release notes](https://github.com/SamVerschueren/tsd/releases)
- [Commits](https://github.com/SamVerschueren/tsd/compare/v0.12.1...v0.13.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-18 20:14:54 +00:00
dependabot-preview[bot]
02edc84a7c Build(deps-dev): bump start-server-and-test from 1.11.1 to 1.11.2 (#5336)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.11.1...v1.11.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-18 08:53:01 +00:00
dependabot-preview[bot]
9d02d6f9d4 Build(deps-dev): bump got from 11.5.0 to 11.5.1 (#5338)
Bumps [got](https://github.com/sindresorhus/got) from 11.5.0 to 11.5.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.5.0...v11.5.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-18 08:32:43 +00:00
dependabot-preview[bot]
c131741128 Build(deps-dev): bump eslint-plugin-jsdoc from 29.1.3 to 29.2.0 (#5328)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 29.1.3 to 29.2.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v29.1.3...v29.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-17 17:20:24 +00:00
dependabot-preview[bot]
8196d18efb Build(deps): bump simple-icons from 2.18.0 to 3.0.1 (#5309)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.18.0 to 3.0.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.18.0...3.0.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-07-16 21:17:18 +01:00
dependabot-preview[bot]
dc61e831e0 Build(deps-dev): bump start-server-and-test from 1.11.0 to 1.11.1 (#5311)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.11.0...v1.11.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-15 20:33:59 +00:00
chris48s
810efb14f9 Make branch a required param on bb/gitlab/travis-php (#5318) 2020-07-15 21:00:43 +01:00
dependabot-preview[bot]
5bc7c3e015 Build(deps-dev): bump @types/node from 14.0.14 to 14.0.22 (#5312)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.14 to 14.0.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-07-14 03:56:31 +00:00
dependabot-preview[bot]
21a544351c Build(deps-dev): bump eslint-plugin-jsdoc from 28.5.1 to 29.1.3 (#5314)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 28.5.1 to 29.1.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v28.5.1...v29.1.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-14 03:39:18 +00:00
dependabot-preview[bot]
314751b6da Build(deps): bump @sentry/node from 5.18.1 to 5.19.1 (#5315)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.18.1 to 5.19.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/5.18.1...5.19.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-14 02:44:18 +00:00
chris48s
32ac819813 package 3.2.0 (#5319) 2020-07-13 20:32:36 +01:00
Evelyn Hathaway
c1ded757c7 feat: add accessible text alternative in when a graphic and link (#5289)
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-07-13 20:07:26 +01:00
dependabot-preview[bot]
4a592a905c Build(deps-dev): bump icedfrisby from 3.0.0 to 4.0.0 (#5303)
Bumps [icedfrisby](https://github.com/IcedFrisby/IcedFrisby) from 3.0.0 to 4.0.0.
- [Release notes](https://github.com/IcedFrisby/IcedFrisby/releases)
- [Changelog](https://github.com/IcedFrisby/IcedFrisby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/IcedFrisby/IcedFrisby/compare/3.0.0...4.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-11 14:18:31 +00:00
dependabot-preview[bot]
ba02d3b162 Build(deps): bump graphql from 14.6.0 to 14.7.0 (#5307)
Bumps [graphql](https://github.com/graphql/graphql-js) from 14.6.0 to 14.7.0.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v14.6.0...v14.7.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-11 06:22:36 +00:00
dependabot-preview[bot]
053a0ddbf0 Build(deps-dev): bump @types/react-select from 3.0.13 to 3.0.14 (#5304)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.13 to 3.0.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-11 05:56:26 +00:00
dependabot-preview[bot]
6a0a87530c Build(deps): bump graphql-tag from 2.10.3 to 2.10.4 (#5299)
Bumps [graphql-tag](https://github.com/apollographql/graphql-tag) from 2.10.3 to 2.10.4.
- [Release notes](https://github.com/apollographql/graphql-tag/releases)
- [Changelog](https://github.com/apollographql/graphql-tag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apollographql/graphql-tag/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-11 05:48:00 +00:00
dependabot-preview[bot]
1e63e37b71 Build(deps-dev): bump gatsby from 2.23.20 to 2.24.2 (#5301)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.23.20 to 2.24.2.
- [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@2.23.20...gatsby@2.24.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-11 00:26:07 -05:00
dependabot-preview[bot]
ab8a735034 Build(deps-dev): bump got from 11.3.0 to 11.5.0 (#5306)
Bumps [got](https://github.com/sindresorhus/got) from 11.3.0 to 11.5.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.3.0...v11.5.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-10 22:42:11 +00:00
dependabot-preview[bot]
5007c84419 Build(deps-dev): bump cypress from 4.9.0 to 4.10.0 (#5300)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.9.0 to 4.10.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.9.0...v4.10.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-10 17:06:08 +00:00
Paul Melnikow
8fa61ae164 Update Cloudflare access + remove OAuth app (#5295) 2020-07-08 19:12:22 -04:00
Pierre-Yves B
964ad08767 Prepare Discussions launch (#5288) 2020-07-06 09:34:49 +02:00
Caleb Cartwright
4514718d7b tests: increase website test timeout (#5286)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-06 02:11:18 +00:00
Caleb Cartwright
6042216e77 tests: fix ansible quality service tests (#5287) 2020-07-05 12:40:50 -05:00
dependabot-preview[bot]
f2e24055a9 Build(deps-dev): bump eslint-plugin-react from 7.20.0 to 7.20.3 (#5270)
* Build(deps-dev): bump eslint-plugin-react from 7.20.0 to 7.20.3

Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.20.0 to 7.20.3.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.20.0...v7.20.3)

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

* chore: apply eslint tweaks for latest version

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <caleb.cartwright@outlook.com>
2020-07-05 02:46:15 +00:00
dependabot-preview[bot]
1ff0448dc4 Build(deps-dev): bump nock from 13.0.0 to 13.0.2 (#5274)
Bumps [nock](https://github.com/nock/nock) from 13.0.0 to 13.0.2.
- [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.0.0...v13.0.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 17:01:10 +00:00
dependabot-preview[bot]
ed172e124e Build(deps-dev): bump tsd from 0.11.0 to 0.12.1 (#5272)
Bumps [tsd](https://github.com/SamVerschueren/tsd) from 0.11.0 to 0.12.1.
- [Release notes](https://github.com/SamVerschueren/tsd/releases)
- [Commits](https://github.com/SamVerschueren/tsd/compare/v0.11.0...v0.12.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 16:50:10 +00:00
dependabot-preview[bot]
9ca54a6e7f Build(deps-dev): bump @babel/core from 7.10.2 to 7.10.4 (#5273)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.2 to 7.10.4.
- [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.10.4/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-04 16:40:41 +00:00
dependabot-preview[bot]
03b5a627c8 Build(deps-dev): bump @babel/polyfill from 7.10.1 to 7.10.4 (#5271)
Bumps [@babel/polyfill](https://github.com/babel/babel/tree/HEAD/packages/babel-polyfill) from 7.10.1 to 7.10.4.
- [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.10.4/packages/babel-polyfill)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 15:58:34 +00:00
Hunter Kvalevog
95a0f66f76 Escape special characters in badge URL (#5263)
* Markdown: Encode spaces in badge URL as %20

* Revert "Markdown: Encode spaces in badge URL as %20"

This reverts commit f49945e9e9.

* Escape special characters in badge URL

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 15:40:58 +00:00
dependabot-preview[bot]
78048fe887 Build(deps-dev): bump @babel/register from 7.10.3 to 7.10.4 (#5269)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.10.3 to 7.10.4.
- [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.10.4/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 15:27:00 +00:00
dependabot-preview[bot]
6740651f9a Build(deps-dev): bump babel-preset-gatsby from 0.4.12 to 0.5.1 (#5266)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.12 to 0.5.1.
- [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@0.5.1/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 15:11:20 +00:00
dependabot-preview[bot]
27de6ca0ff Build(deps-dev): bump gatsby-plugin-typescript from 2.4.8 to 2.4.13 (#5267)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.8 to 2.4.13.
- [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@2.4.13/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-04 10:02:24 -05:00
dependabot-preview[bot]
fc673df32e Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5268)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.3.7 to 2.3.10.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.10/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-04 14:46:18 +00:00
dependabot-preview[bot]
1918dada8b Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.7 to 2.3.10 (#5275)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.7 to 2.3.10.
- [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@2.3.10/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-03 21:35:21 +00:00
dependabot-preview[bot]
52b29363cc Build(deps-dev): bump gatsby-plugin-styled-components (#5264)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.6 to 3.3.9.
- [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@3.3.9/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-03 21:20:19 +00:00
dependabot-preview[bot]
3a9e176845 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.6 to 3.3.9 (#5265)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.6 to 3.3.9.
- [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@3.3.9/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-03 22:10:59 +01:00
dependabot-preview[bot]
828d4cc40a Build(deps-dev): bump gatsby from 2.23.11 to 2.23.20 (#5279)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.23.11 to 2.23.20.
- [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@2.23.11...gatsby@2.23.20)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-03 18:15:13 +00:00
dependabot-preview[bot]
1b51ee644c Build(deps-dev): bump eslint-plugin-import from 2.21.2 to 2.22.0 (#5278)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.21.2 to 2.22.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.21.2...v2.22.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-07-03 17:27:16 +00:00
dependabot-preview[bot]
670b825d20 Build(deps-dev): bump chai-datetime from 1.6.0 to 1.7.0 (#5276)
Bumps [chai-datetime](https://github.com/mguterl/chai-datetime) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/mguterl/chai-datetime/releases)
- [Commits](https://github.com/mguterl/chai-datetime/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-03 17:14:16 +00:00
Felix C. Stegerman
b4579adc44 [crates] recent_downloads can be null (#5237)
* crates: recent_downloads can be null

* crates: add test for recent_downloads = null
2020-06-27 20:44:48 +00:00
dependabot-preview[bot]
cde8254743 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.4 to 3.3.6 (#5254)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.4 to 3.3.6.
- [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@3.3.6/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-27 18:32:18 +00:00
dependabot-preview[bot]
029450a7c9 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.10 to 2.3.12 (#5258)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.10 to 2.3.12.
- [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@2.3.12/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 16:46:32 +00:00
dependabot-preview[bot]
708e34d2fc Build(deps-dev): bump danger from 10.2.0 to 10.2.1 (#5253)
Bumps [danger](https://github.com/danger/danger-js) from 10.2.0 to 10.2.1.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.2.0...10.2.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 16:26:58 +00:00
dependabot-preview[bot]
7b744ceaef Build(deps-dev): bump gatsby-plugin-styled-components (#5252)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.4 to 3.3.6.
- [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@3.3.6/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 06:16:29 +00:00
dependabot-preview[bot]
614c0894e2 Build(deps-dev): bump gatsby from 2.22.12 to 2.23.11 (#5250)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.22.12 to 2.23.11.
- [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@2.22.12...gatsby@2.23.11)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 06:05:18 +00:00
dependabot-preview[bot]
cd32cdb124 Build(deps-dev): bump @types/react-modal from 3.10.5 to 3.10.6 (#5248)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.10.5 to 3.10.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-modal)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 05:52:30 +00:00
dependabot-preview[bot]
17a904e086 Build(deps-dev): bump @babel/register from 7.10.1 to 7.10.3 (#5247)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.10.1 to 7.10.3.
- [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.10.3/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 05:42:20 +00:00
dependabot-preview[bot]
10c538b86b Build(deps-dev): bump @types/node from 14.0.13 to 14.0.14 (#5246)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.13 to 14.0.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 05:24:15 +00:00
dependabot-preview[bot]
3ee0502a4a Build(deps-dev): bump babel-preset-gatsby from 0.4.10 to 0.4.12 (#5245)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.10 to 0.4.12.
- [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@0.4.12/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 05:14:11 +00:00
dependabot-preview[bot]
b8d87c8a95 Build(deps): bump @sentry/node from 5.17.0 to 5.18.1 (#5244)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.17.0 to 5.18.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/5.17.0...5.18.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 05:05:28 +00:00
dependabot-preview[bot]
b957204d76 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.6 to 2.4.8 (#5243)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.6 to 2.4.8.
- [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@2.4.8/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-27 04:42:26 +00:00
dependabot-preview[bot]
71c2be59fe Build(deps-dev): bump eslint-plugin-jsdoc from 27.1.2 to 28.5.1 (#5249)
* Build(deps-dev): bump eslint-plugin-jsdoc from 27.1.2 to 28.5.1

Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 27.1.2 to 28.5.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v27.1.2...v28.5.1)

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

* don't run in typescript mode on backend code

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-26 19:37:00 +00:00
dependabot-preview[bot]
79582dbddd Build(deps): bump simple-icons from 2.17.1 to 2.18.0 (#5256)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.17.1 to 2.18.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.17.1...2.18.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-26 19:16:55 +00:00
dependabot-preview[bot]
5195c0e9e7 Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.5 to 2.3.7 (#5255)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.5 to 2.3.7.
- [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@2.3.7/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-26 18:58:18 +00:00
dependabot-preview[bot]
b4c9c5978e Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5251)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.3.5 to 2.3.7.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.7/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-26 18:48:18 +00:00
dependabot-preview[bot]
3d1e01b353 Build(deps-dev): bump cypress from 4.8.0 to 4.9.0 (#5257)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.8.0...v4.9.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-26 16:44:20 +00:00
chris48s
270c29f757 auto-detect default branch on [github nycrc osslifecycle] (#5234)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-25 20:15:20 +00:00
Pierre-Yves B
9acc305d31 Handle [cpan] versions that aren't returned as strings (#5239) 2020-06-25 08:26:23 +02:00
Caleb Cartwright
f02df4f826 support custom manifest path for [GitHubManifest] and fix service tests (#5232)
feat: custom manifest path for GH Manifest + fix tests
2020-06-22 19:20:56 +01:00
chris48s
7a709acf01 fix failing [gitlab] service test (#5233)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-21 11:40:13 +00:00
dependabot-preview[bot]
e9a92c04aa Build(deps-dev): bump babel-preset-gatsby from 0.4.8 to 0.4.10 (#5228)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.8 to 0.4.10.
- [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@0.4.10/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-20 11:02:47 -05:00
dependabot-preview[bot]
8922918507 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.9 to 2.3.10 (#5220)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.9 to 2.3.10.
- [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@2.3.10/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-20 15:43:52 +00:00
dependabot-preview[bot]
7440e65552 Build(deps-dev): bump @types/node from 14.0.11 to 14.0.13 (#5224)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.11 to 14.0.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-20 15:31:19 +00:00
dependabot-preview[bot]
311b84737f Build(deps-dev): bump lint-staged from 10.2.10 to 10.2.11 (#5221)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.10 to 10.2.11.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.10...v10.2.11)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-20 15:19:46 +00:00
dependabot-preview[bot]
892e931219 Build(deps-dev): bump nock from 13.0.0-beta.5 to 13.0.0 (#5225)
Bumps [nock](https://github.com/nock/nock) from 13.0.0-beta.5 to 13.0.0.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.0.0-beta.5...v13.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-19 17:29:05 +00:00
dependabot-preview[bot]
34e0038efb Build(deps): bump moment from 2.26.0 to 2.27.0 (#5222)
Bumps [moment](https://github.com/moment/moment) from 2.26.0 to 2.27.0.
- [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.26.0...2.27.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 17:20:39 +00:00
dependabot-preview[bot]
48c2cd493f Build(deps): bump simple-icons from 2.16.0 to 2.17.1 (#5223)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.16.0 to 2.17.1.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.16.0...2.17.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-19 16:59:51 +00:00
dependabot-preview[bot]
2e6355a6de Build(deps-dev): bump eslint-plugin-import from 2.20.2 to 2.21.2 (#5229)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.2 to 2.21.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.2...v2.21.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 16:07:21 +00:00
dependabot-preview[bot]
a50cb76ed0 Build(deps-dev): bump eslint-plugin-jsdoc from 27.0.6 to 27.1.2 (#5227)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 27.0.6 to 27.1.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v27.0.6...v27.1.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-19 15:53:58 +00:00
chris48s
dd958efae5 Community/sponsors page (#5155) 2020-06-17 19:11:14 +01:00
Pierre-Yves B
1639417a55 Fix [Twitch] Client-ID header (#5217) 2020-06-17 19:18:25 +02:00
Paul Melnikow
778b146d8e Update list of who has access to production resources (#5192)
This action item was requested at the ops team meeting.

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-14 20:09:04 +00:00
chris48s
1b460e2d29 fix failing [aur] service test (#5212)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-14 19:57:50 +00:00
chris48s
9e3b71a241 update [codeclimate] service tests/example (#5213)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-14 19:48:37 +00:00
dependabot-preview[bot]
0ef238ce9d Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.7 to 2.3.9 (#5210)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.7 to 2.3.9.
- [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@2.3.9/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-14 00:37:10 +00:00
dependabot-preview[bot]
785db7c4e7 Build(deps): bump query-string from 6.12.1 to 6.13.1 (#5209)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.12.1 to 6.13.1.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.12.1...v6.13.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-13 20:08:28 +00:00
dependabot-preview[bot]
924f967e5a Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.3 to 3.3.4 (#5211)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.3 to 3.3.4.
- [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@3.3.4/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-13 19:42:16 +00:00
dependabot-preview[bot]
219cece5ac Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5208)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.3.3 to 2.3.5.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.5/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 19:04:58 +00:00
dependabot-preview[bot]
a492de0db1 Build(deps-dev): bump mocha-junit-reporter from 1.23.3 to 2.0.0 (#5207)
Bumps [mocha-junit-reporter](https://github.com/michaelleeallen/mocha-junit-reporter) from 1.23.3 to 2.0.0.
- [Release notes](https://github.com/michaelleeallen/mocha-junit-reporter/releases)
- [Commits](https://github.com/michaelleeallen/mocha-junit-reporter/compare/v1.23.3...v2.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 18:55:04 +00:00
dependabot-preview[bot]
7ec67d9488 Build(deps-dev): bump lint-staged from 10.2.9 to 10.2.10 (#5206)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.9 to 10.2.10.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.9...v10.2.10)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 18:35:30 +00:00
dependabot-preview[bot]
a114830e6f Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.4 to 2.3.5 (#5205)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.4 to 2.3.5.
- [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@2.3.5/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 18:19:41 +00:00
dependabot-preview[bot]
f9fd064026 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.4 to 2.4.6 (#5204)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.4 to 2.4.6.
- [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@2.4.6/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 18:08:50 +00:00
dependabot-preview[bot]
7883a40985 Build(deps): bump @sentry/node from 5.16.1 to 5.17.0 (#5203)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.16.1 to 5.17.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/5.16.1...5.17.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-13 17:57:56 +00:00
dependabot-preview[bot]
fcffb4163b Build(deps): bump fast-xml-parser from 3.17.3 to 3.17.4 (#5199)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.17.3 to 3.17.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 23:30:44 +00:00
dependabot-preview[bot]
c86af9107c Build(deps-dev): bump nyc from 15.0.1 to 15.1.0 (#5202)
Bumps [nyc](https://github.com/istanbuljs/nyc) from 15.0.1 to 15.1.0.
- [Release notes](https://github.com/istanbuljs/nyc/releases)
- [Changelog](https://github.com/istanbuljs/nyc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/istanbuljs/nyc/compare/v15.0.1...v15.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 23:20:33 +00:00
dependabot-preview[bot]
644ef27a87 Build(deps-dev): bump react-helmet from 6.0.0 to 6.1.0 (#5198)
Bumps [react-helmet](https://github.com/nfl/react-helmet) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/nfl/react-helmet/releases)
- [Changelog](https://github.com/nfl/react-helmet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nfl/react-helmet/compare/6.0.0...6.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 22:47:16 +00:00
dependabot-preview[bot]
4479709788 Build(deps-dev): bump gatsby-plugin-styled-components (#5200)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.3 to 3.3.4.
- [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@3.3.4/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 22:39:01 +00:00
dependabot-preview[bot]
9d70335127 Build(deps): bump chalk from 3.0.0 to 4.1.0 (#5195)
Bumps [chalk](https://github.com/chalk/chalk) from 3.0.0 to 4.1.0.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v3.0.0...v4.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 21:53:29 +00:00
dependabot-preview[bot]
1ebdc18934 Build(deps-dev): bump eslint-plugin-jsdoc from 27.0.4 to 27.0.6 (#5196)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 27.0.4 to 27.0.6.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v27.0.4...v27.0.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-12 15:46:57 +00:00
dependabot-preview[bot]
8c790d6804 Build(deps-dev): bump cypress from 4.7.0 to 4.8.0 (#5197)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.7.0 to 4.8.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.7.0...v4.8.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-12 15:22:49 +00:00
chris48s
245ee798dc fix lockfile (#5193) 2020-06-11 19:43:02 +01:00
Pierre-Yves B
0fd557d7bb Implement [YouTube] badge (#5132)
* Implement [YouTube] badge

* Update production-hosting.md with account owner

* Add votes badge variant

* Add links to tests

* Switch to social badge style
2020-06-10 18:44:21 +02:00
Paul Melnikow
4582ea1c56 Avoid using racially linked language (#5190) 2020-06-09 02:28:53 +00:00
Joe Izzard
36e1d30631 [Reddit] New badge and additional testing (#5166)
* fix: added detection of private subs and aded a test

* test: added test for no subscriber info

* feat: added user-karma badge

* refactor: changed class name for testing

Changed the class name to allow testing the whole service with 'reddit'

* refactor: refactored code for code and output style

* refactor: change how variables are passed to be cleaner

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-09 02:15:07 +00:00
dependabot-preview[bot]
88ad5aac01 Build(deps): [security] bump graphql-playground-html (#5191)
Bumps [graphql-playground-html](https://github.com/graphcool/graphql-playground) from 1.6.20 to 1.6.25. **This update includes a security fix.**
- [Release notes](https://github.com/graphcool/graphql-playground/releases)
- [Commits](https://github.com/graphcool/graphql-playground/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-08 20:59:34 -05:00
kendell
4954e0fe21 Update simple-icons (#5189) 2020-06-08 21:08:37 +01:00
dependabot-preview[bot]
0fdc062e24 Build(deps): bump camelcase from 5.3.1 to 6.0.0 in /badge-maker (#5175)
Bumps [camelcase](https://github.com/sindresorhus/camelcase) from 5.3.1 to 6.0.0.
- [Release notes](https://github.com/sindresorhus/camelcase/releases)
- [Commits](https://github.com/sindresorhus/camelcase/compare/v5.3.1...v6.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 21:01:44 +00:00
dependabot-preview[bot]
47ebb31bd9 Build(deps-dev): bump gatsby-plugin-styled-components (#5181)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.2 to 3.3.3.
- [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@3.3.3/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 16:15:36 +00:00
dependabot-preview[bot]
7f8f7b9e99 Build(deps): bump simple-icons from 2.14.0 to 2.15.0 (#5184)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.14.0...2.15.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 15:58:29 +00:00
dependabot-preview[bot]
0b90e5f864 Build(deps-dev): bump got from 11.1.4 to 11.3.0 (#5182)
Bumps [got](https://github.com/sindresorhus/got) from 11.1.4 to 11.3.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.1.4...v11.3.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 15:46:01 +00:00
chris48s
f08d9f5e56 run a smoke test for package with no shields.io deps installed (#5162)
run a smoke test for package with no shields.io deps installed
2020-06-06 16:33:27 +01:00
dependabot-preview[bot]
09693390c5 Build(deps-dev): bump @babel/core from 7.10.1 to 7.10.2 (#5180)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.1 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 04:04:07 +00:00
dependabot-preview[bot]
21b45dafb6 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.3 to 2.4.4 (#5179)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.3 to 2.4.4.
- [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@2.4.4/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 03:56:01 +00:00
dependabot-preview[bot]
52cb222dfc Build(deps): bump ioredis from 4.17.1 to 4.17.3 (#5176)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.17.1 to 4.17.3.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/master/Changelog.md)
- [Commits](https://github.com/luin/ioredis/compare/v4.17.1...v4.17.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 03:26:19 +00:00
dependabot-preview[bot]
1b9b8a78ba Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.2 to 3.3.3 (#5173)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.2 to 3.3.3.
- [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@3.3.3/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 03:17:07 +00:00
dependabot-preview[bot]
2f92a41fbe Build(deps-dev): bump @types/node from 14.0.5 to 14.0.11 (#5178)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.5 to 14.0.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 03:04:50 +00:00
dependabot-preview[bot]
45a82eb336 Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.3 to 2.3.4 (#5172)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.3 to 2.3.4.
- [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@2.3.4/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 02:52:13 +00:00
dependabot-preview[bot]
aa965ae198 Build(deps-dev): bump eslint-plugin-jsdoc from 26.0.0 to 27.0.4 (#5174)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 26.0.0 to 27.0.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v26.0.0...v27.0.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 02:32:21 +00:00
dependabot-preview[bot]
6caebdaf86 Build(deps-dev): bump babel-preset-gatsby from 0.4.7 to 0.4.8 (#5170)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.7 to 0.4.8.
- [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@0.4.8/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 02:20:48 +00:00
dependabot-preview[bot]
dba6707e00 Build(deps): bump @sentry/node from 5.15.5 to 5.16.1 (#5171)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.15.5 to 5.16.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/5.15.5...5.16.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 02:10:12 +00:00
dependabot-preview[bot]
e370dccbdc Build(deps-dev): bump fetch-ponyfill from 6.1.0 to 6.1.1 (#5169)
Bumps [fetch-ponyfill](https://github.com/qubyte/fetch-ponyfill) from 6.1.0 to 6.1.1.
- [Release notes](https://github.com/qubyte/fetch-ponyfill/releases)
- [Changelog](https://github.com/qubyte/fetch-ponyfill/blob/master/HISTORY.md)
- [Commits](https://github.com/qubyte/fetch-ponyfill/compare/v6.1.0...v6.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 02:01:28 +00:00
dependabot-preview[bot]
206a9362c1 Build(deps-dev): bump lint-staged from 10.2.7 to 10.2.9 (#5168)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.7 to 10.2.9.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.7...v10.2.9)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-06 01:50:48 +00:00
dependabot-preview[bot]
46f091aefd Build(deps): [security] bump websocket-extensions from 0.1.3 to 0.1.4 (#5167)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.**
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-05 20:40:26 -05:00
Joe Izzard
56ae094afb doc: fixed the link to badge URL spec (#5164)
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-06-04 19:12:13 +02:00
Joe Izzard
a17bb10662 Implement All Contributors Badge, run [GitHubAllContributors] (#5163)
* feat: added all-contributors badge and test

* Update services/github/github-all-contributors.service.js

Updated to schema to ensure the array always exists

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

* fix: added branch to parameters

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-06-03 22:44:49 -05:00
chris48s
084285755f Package 3.1.0 (#5160)
* exclude typedef tests from npm pack
* update docs
* bump version
2020-06-03 18:44:15 +01:00
Xianming Zhong
d0f3f2251f add type definitions to badge-maker package (#5126)
* add types for badge-maker
* update package.json and readme with tsd tests

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-06-02 20:30:25 +01:00
chris48s
7b5f43fee8 add missing dependency (#5159)
* add missing dependency
* bump version

closes #5158
2020-06-02 20:10:43 +01:00
chris48s
8dee584f44 update 'operations' section in README (#5156)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-02 18:36:28 +00:00
saibotk
afedaa7c9f Add the /steam/update-date badge, run [steam] (#5154)
* Add the /steam/update-date badge

This adds the /steam/update-date badge, to also provide a badge that shows the date of a file on steam when it was last updated.

* Add class to module exports

* Add new field to schema definition

This fixes the tests

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-06-01 02:32:25 +00:00
Viktor Szépe
88ea1f9149 Fix invalid Cache-Control header, run [Endpoint] (#5139)
* Fix invalid Cache-Control header
* Update endpoint.tester.js
* Update legacy-request-handler.spec.js

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-05-31 14:04:37 +01:00
dependabot-preview[bot]
4225abba9b Build(deps-dev): bump gatsby from 2.21.33 to 2.22.12 (#5151)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.21.33 to 2.22.12.
- [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@2.21.33...gatsby@2.22.12)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-30 23:16:28 +00:00
dependabot-preview[bot]
41a255739f Build(deps-dev): bump @babel/core from 7.9.6 to 7.10.1 (#5149)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.9.6 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-core)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-30 23:00:56 +00:00
dependabot-preview[bot]
4baeb72d6f Build(deps-dev): bump @babel/register from 7.9.0 to 7.10.1 (#5147)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.9.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-register)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-30 22:54:06 +00:00
dependabot-preview[bot]
01df5d6819 Build(deps-dev): bump lint-staged from 10.2.6 to 10.2.7 (#5150)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.6 to 10.2.7.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.6...v10.2.7)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-30 09:22:17 +00:00
dependabot-preview[bot]
b8499716e0 Build(deps-dev): bump styled-components from 5.1.0 to 5.1.1 (#5153)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Changelog](https://github.com/styled-components/styled-components/blob/master/CHANGELOG.md)
- [Commits](https://github.com/styled-components/styled-components/compare/v5.1.0...v5.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-30 09:13:23 +00:00
dependabot-preview[bot]
0c141adf20 Build(deps): bump js-yaml from 3.13.1 to 3.14.0 (#5146)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.13.1 to 3.14.0.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 23:03:52 +00:00
dependabot-preview[bot]
5dc5fbb15a Build(deps-dev): bump @babel/polyfill from 7.8.7 to 7.10.1 (#5140)
Bumps [@babel/polyfill](https://github.com/babel/babel/tree/HEAD/packages/babel-polyfill) from 7.8.7 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-polyfill)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 22:44:14 +00:00
dependabot-preview[bot]
c08588c51d Build(deps): bump fast-xml-parser from 3.17.1 to 3.17.3 (#5142)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.17.1 to 3.17.3.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 20:16:18 +00:00
dependabot-preview[bot]
69e4b5655c Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.2 to 2.3.3 (#5144)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.2 to 2.3.3.
- [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@2.3.3/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 20:04:56 +00:00
dependabot-preview[bot]
7830fba4c4 Build(deps): bump simple-icons from 2.13.0 to 2.14.0 (#5141)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.13.0...2.14.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 19:54:45 +00:00
dependabot-preview[bot]
0c0151ce9a Build(deps-dev): bump eslint-plugin-jsdoc from 25.4.2 to 26.0.0 (#5148)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 25.4.2 to 26.0.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v25.4.2...v26.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-29 19:46:41 +00:00
dependabot-preview[bot]
05cc23cabd Build(deps-dev): bump eslint-plugin-cypress from 2.10.3 to 2.11.1 (#5152)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.10.3 to 2.11.1.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.10.3...v2.11.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 17:10:00 +00:00
dependabot-preview[bot]
f217c048a8 Build(deps-dev): bump mocha from 7.1.2 to 7.2.0 (#5145)
Bumps [mocha](https://github.com/mochajs/mocha) from 7.1.2 to 7.2.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v7.1.2...v7.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-29 17:00:21 +00:00
dependabot-preview[bot]
a8360ffda6 Build(deps-dev): bump cypress from 4.6.0 to 4.7.0 (#5143)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.6.0...v4.7.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-29 16:39:32 +00:00
chris48s
9ab4596654 fix docs paths in dangerfile (#5136) 2020-05-28 20:56:33 +01:00
chris48s
064a3418a3 fix [githubpullrequestcheckstate] service test (#5128)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 13:59:56 +00:00
dependabot-preview[bot]
eaa5db56e3 Build(deps): bump ioredis from 4.16.3 to 4.17.1 (#5119)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.3 to 4.17.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/master/Changelog.md)
- [Commits](https://github.com/luin/ioredis/compare/v4.16.3...v4.17.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 13:41:07 +00:00
dependabot-preview[bot]
c380a7576a Build(deps-dev): bump gatsby-plugin-styled-components (#5120)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.1 to 3.3.2.
- [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@3.3.2/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-23 13:31:36 +00:00
dependabot-preview[bot]
2c04d9e9d1 Build(deps-dev): bump gatsby-plugin-typescript from 2.4.2 to 2.4.3 (#5122)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.2 to 2.4.3.
- [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@2.4.3/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-23 13:14:31 +00:00
dependabot-preview[bot]
f985cfc40a Build(deps-dev): bump got from 11.1.3 to 11.1.4 (#5118)
Bumps [got](https://github.com/sindresorhus/got) from 11.1.3 to 11.1.4.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.1.3...v11.1.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 12:48:47 +00:00
dependabot-preview[bot]
f6d0f5be8d Build(deps): bump moment from 2.25.3 to 2.26.0 (#5125)
Bumps [moment](https://github.com/moment/moment) from 2.25.3 to 2.26.0.
- [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.25.3...2.26.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 12:39:24 +00:00
dependabot-preview[bot]
800453ae6e Build(deps): bump joi-extension-semver from 4.0.0 to 4.1.1 (#5112)
Bumps [joi-extension-semver](https://github.com/dszakallas/joi-extension-semver) from 4.0.0 to 4.1.1.
- [Release notes](https://github.com/dszakallas/joi-extension-semver/releases)
- [Changelog](https://github.com/dszakallas/joi-extension-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dszakallas/joi-extension-semver/compare/4.0.0...4.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 12:31:43 +00:00
dependabot-preview[bot]
010a15ac20 Build(deps-dev): bump eslint-plugin-jsdoc from 25.4.1 to 25.4.2 (#5123)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 25.4.1 to 25.4.2.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v25.4.1...v25.4.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 12:11:52 +00:00
dependabot-preview[bot]
ff8d278dd6 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5117)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.3/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 11:54:54 +00:00
dependabot-preview[bot]
02113acdff Build(deps): bump fast-xml-parser from 3.16.0 to 3.17.1 (#5121)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.16.0 to 3.17.1.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/3.16.0...3.17.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 11:18:15 +00:00
dependabot-preview[bot]
018e9bafa6 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.1 to 3.3.2 (#5124)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.1 to 3.3.2.
- [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@3.3.2/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 11:08:37 +00:00
chris48s
8788ad82e6 update discord domain (#5105)
Co-authored-by: Alison <zacharyknox2026@gmail.com>
2020-05-23 11:57:33 +01:00
chris48s
0ef261f219 security policy 🔒 (#5100)
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-05-23 11:50:05 +01:00
dependabot-preview[bot]
57f4900ea0 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.2 to 2.3.7 (#5114)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.2 to 2.3.7.
- [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@2.3.7/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 06:54:24 +00:00
dependabot-preview[bot]
80d1b4a75d Build(deps-dev): bump babel-preset-gatsby from 0.4.2 to 0.4.7 (#5115)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.2 to 0.4.7.
- [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@0.4.7/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 06:43:26 +00:00
dependabot-preview[bot]
5486e3f316 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#5116)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.33.0 to 2.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.34.0/packages/eslint-plugin)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 06:33:56 +00:00
dependabot-preview[bot]
7b48fcb2da Build(deps-dev): bump lint-staged from 10.2.2 to 10.2.6 (#5113)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.2 to 10.2.6.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.2...v10.2.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 05:37:52 +00:00
dependabot-preview[bot]
2fba00f2b2 Build(deps-dev): bump cypress from 4.5.0 to 4.6.0 (#5110)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.5.0...v4.6.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 05:24:10 +00:00
dependabot-preview[bot]
c021e114eb Build(deps-dev): bump @types/node from 14.0.1 to 14.0.5 (#5109)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.1 to 14.0.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 04:54:14 +00:00
dependabot-preview[bot]
86faf31058 Build(deps-dev): bump @typescript-eslint/parser from 2.33.0 to 2.34.0 (#5108)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.33.0 to 2.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.34.0/packages/parser)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-23 04:38:40 +00:00
dependabot-preview[bot]
51264b7736 Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.1 to 2.3.2 (#5107)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.1 to 2.3.2.
- [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@2.3.2/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-22 23:29:50 -05:00
dependabot-preview[bot]
59a39ae977 Build(deps): bump simple-icons from 2.12.0 to 2.13.0 (#5111)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.12.0...2.13.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-22 19:28:28 +01:00
Pierre Grimaud
8ceb4f2c31 Fix typos in comments (#5102) 2020-05-19 21:23:13 +01:00
dependabot-preview[bot]
2ff6d15f38 Build(deps-dev): bump eslint-plugin-react from 7.19.0 to 7.20.0 (#5088)
* Build(deps-dev): bump eslint-plugin-react from 7.19.0 to 7.20.0

Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.19.0 to 7.20.0.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.19.0...v7.20.0)

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

* escape slashes

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris.shaw480@gmail.com>
2020-05-18 19:00:47 +00:00
chris48s
abd4c31791 resolve some vulnerability warnings (#5099)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-17 15:58:46 +00:00
dependabot-preview[bot]
fc6390d62e Build(deps-dev): bump eslint-plugin-jsdoc from 24.0.6 to 25.4.1 (#5085)
* Build(deps-dev): bump eslint-plugin-jsdoc from 24.0.6 to 25.4.1

Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 24.0.6 to 25.4.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v24.0.6...v25.4.1)

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

* fix errors identified by new linting rules

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-17 15:00:21 +00:00
dependabot-preview[bot]
f0f06e93f3 Build(deps-dev): bump babel-preset-gatsby from 0.4.1 to 0.4.2 (#5098)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.1 to 0.4.2.
- [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@0.4.2/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-16 18:09:24 +00:00
dependabot-preview[bot]
95e2e265de Build(deps-dev): bump gatsby from 2.21.21 to 2.21.33 (#5097)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.21.21 to 2.21.33.
- [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@2.21.21...gatsby@2.21.33)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-16 17:56:36 +00:00
dependabot-preview[bot]
038de38e8b Build(deps-dev): bump @types/react-helmet from 5.0.15 to 6.0.0 (#5094)
Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 5.0.15 to 6.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-16 16:38:18 +00:00
dependabot-preview[bot]
988ae2d805 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.1 to 2.3.2 (#5089)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.1 to 2.3.2.
- [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@2.3.2/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-16 16:28:50 +00:00
dependabot-preview[bot]
0dbfe0bbff Build(deps-dev): bump got from 11.1.2 to 11.1.3 (#5091)
Bumps [got](https://github.com/sindresorhus/got) from 11.1.2 to 11.1.3.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.1.2...v11.1.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-16 00:32:17 -05:00
dependabot-preview[bot]
70c08d10b1 Build(deps): bump simple-icons from 2.11.0 to 2.12.0 (#5084)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.11.0...2.12.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-16 02:54:50 +00:00
dependabot-preview[bot]
1bc26e5bc9 Build(deps-dev): bump @types/node from 13.13.5 to 14.0.1 (#5096)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.13.5 to 14.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-15 18:02:38 +00:00
dependabot-preview[bot]
0bf9d49b3b Build(deps-dev): bump @typescript-eslint/eslint-plugin (#5093)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.31.0 to 2.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.33.0/packages/eslint-plugin)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-15 17:54:00 +00:00
dependabot-preview[bot]
84a6131e5f Build(deps-dev): bump nock from 13.0.0-beta.4 to 13.0.0-beta.5 (#5086)
Bumps [nock](https://github.com/nock/nock) from 13.0.0-beta.4 to 13.0.0-beta.5.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.0.0-beta.4...v13.0.0-beta.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-15 17:17:27 +00:00
dependabot-preview[bot]
6f074e082b Build(deps-dev): bump nodemon from 2.0.3 to 2.0.4 (#5090)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.3...v2.0.4)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-15 16:57:04 +00:00
dependabot-preview[bot]
1eb31bfca9 Build(deps-dev): bump @types/react-select from 3.0.12 to 3.0.13 (#5087)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.12 to 3.0.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-15 16:42:07 +00:00
dependabot-preview[bot]
d56836a5cc Build(deps-dev): bump @typescript-eslint/parser from 2.31.0 to 2.33.0 (#5092)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.31.0 to 2.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.33.0/packages/parser)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-15 12:28:26 -04:00
dependabot-preview[bot]
87fb882ef5 Build(deps-dev): bump gatsby-plugin-page-creator from 2.3.0 to 2.3.1 (#5072)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.3.0 to 2.3.1.
- [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@2.3.1/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-09 04:33:32 +00:00
dependabot-preview[bot]
00ff689033 Build(deps-dev): bump gatsby from 2.21.11 to 2.21.21 (#5078)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.21.11 to 2.21.21.
- [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@2.21.11...gatsby@2.21.21)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-09 04:25:47 +00:00
dependabot-preview[bot]
66171cc83f Build(deps-dev): bump babel-preset-gatsby from 0.4.0 to 0.4.1 (#5076)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.4.0 to 0.4.1.
- [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@0.4.1/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-09 04:14:56 +00:00
dependabot-preview[bot]
028a8de3c0 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.3.0 to 3.3.1 (#5071)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.3.0 to 3.3.1.
- [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@3.3.1/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-08 22:59:19 -05:00
dependabot-preview[bot]
629e64ca00 Build(deps-dev): bump gatsby-plugin-styled-components (#5070)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.3.0 to 3.3.1.
- [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@3.3.1/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-08 22:45:30 -05:00
dependabot-preview[bot]
a2715f496c Build(deps-dev): bump gatsby-plugin-typescript from 2.4.0 to 2.4.2 (#5068)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.4.0 to 2.4.2.
- [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@2.4.2/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-09 00:38:49 +00:00
dependabot-preview[bot]
27675df00d Build(deps-dev): bump @types/node from 13.13.4 to 13.13.5 (#5067)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.13.4 to 13.13.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 19:30:09 -05:00
dependabot-preview[bot]
02bfe643b1 Build(deps): bump moment from 2.25.1 to 2.25.3 (#5064)
Bumps [moment](https://github.com/moment/moment) from 2.25.1 to 2.25.3.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 23:58:11 +00:00
dependabot-preview[bot]
86ff74368a Build(deps-dev): bump @typescript-eslint/parser from 2.30.0 to 2.31.0 (#5066)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.30.0 to 2.31.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.31.0/packages/parser)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 23:37:59 +00:00
dependabot-preview[bot]
a832f2bb51 Build(deps-dev): bump danger from 10.1.1 to 10.2.0 (#5061)
Bumps [danger](https://github.com/danger/danger-js) from 10.1.1 to 10.2.0.
- [Release notes](https://github.com/danger/danger-js/releases)
- [Changelog](https://github.com/danger/danger-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/danger/danger-js/compare/10.1.1...10.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 23:17:51 +00:00
dependabot-preview[bot]
1e6a54e4ef Build(deps-dev): bump got from 11.1.0 to 11.1.2 (#5075)
Bumps [got](https://github.com/sindresorhus/got) from 11.1.0 to 11.1.2.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.1.0...11.1.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 18:29:48 +00:00
dependabot-preview[bot]
85f1477611 Build(deps-dev): bump gatsby-plugin-catch-links from 2.3.0 to 2.3.1 (#5069)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.3.0 to 2.3.1.
- [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@2.3.1/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 18:21:38 +00:00
dependabot-preview[bot]
b9a330654a Build(deps-dev): bump react-helmet from 5.2.1 to 6.0.0 (#5077)
Bumps [react-helmet](https://github.com/nfl/react-helmet) from 5.2.1 to 6.0.0.
- [Release notes](https://github.com/nfl/react-helmet/releases)
- [Changelog](https://github.com/nfl/react-helmet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nfl/react-helmet/commits/6.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 18:02:54 +00:00
dependabot-preview[bot]
69a7fca50d Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5074)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.3.0 to 2.3.2.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.2/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 17:49:01 +00:00
dependabot-preview[bot]
fcb682b57c Build(deps): bump simple-icons from 2.10.0 to 2.11.0 (#5063)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.10.0 to 2.11.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.10.0...2.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 17:39:56 +00:00
dependabot-preview[bot]
4f17c03672 Build(deps): bump priorityqueuejs from 1.0.0 to 2.0.0 (#5065)
Bumps [priorityqueuejs](https://github.com/janogonzalez/priorityqueuejs) from 1.0.0 to 2.0.0.
- [Release notes](https://github.com/janogonzalez/priorityqueuejs/releases)
- [Changelog](https://github.com/janogonzalez/priorityqueuejs/blob/master/History.md)
- [Commits](https://github.com/janogonzalez/priorityqueuejs/compare/1.0.0...v2.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 16:32:08 +00:00
dependabot-preview[bot]
b6fbc04d2a Build(deps-dev): bump @typescript-eslint/eslint-plugin (#5060)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.30.0 to 2.31.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.31.0/packages/eslint-plugin)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-08 16:25:08 +00:00
dependabot-preview[bot]
872545cf69 Build(deps-dev): bump eslint-plugin-jsdoc from 24.0.0 to 24.0.6 (#5073)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 24.0.0 to 24.0.6.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v24.0.0...v24.0.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-08 15:15:39 +00:00
dependabot-preview[bot]
b133fdc898 Build(deps): bump @hapi/joi from 16.1.8 to 17.1.1 (#5025)
Bumps [@hapi/joi](https://github.com/hapijs/joi) from 16.1.8 to 17.1.1.
- [Release notes](https://github.com/hapijs/joi/releases)
- [Commits](https://github.com/hapijs/joi/compare/v16.1.8...v17.1.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-07 20:38:36 +00:00
chris48s
31ee02cfbe bump to node 10 for self-hosting users (#5058)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-07 20:26:41 +00:00
dependabot-preview[bot]
947abcd862 Build(deps): bump escape-string-regexp from 2.0.0 to 4.0.0 (#5021)
Bumps [escape-string-regexp](https://github.com/sindresorhus/escape-string-regexp) from 2.0.0 to 4.0.0.
- [Release notes](https://github.com/sindresorhus/escape-string-regexp/releases)
- [Commits](https://github.com/sindresorhus/escape-string-regexp/compare/v2.0.0...v4.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-07 20:19:05 +00:00
chris48s
98e67f15f9 remove git add from lint-staged action (#5059)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-07 20:10:14 +00:00
Caleb Cartwright
c584ef85e3 tests: fix endpoint mocked cache tests (#5056) 2020-05-06 19:55:51 -05:00
chris48s
c03a73b573 v3 stable (#5037)
* fix outdated docblock
* 3.0.0
2020-05-06 19:51:21 +01:00
dependabot-preview[bot]
9ac2b41206 Build(deps-dev): bump react-error-overlay from 3.0.0 to 6.0.7 (#5033)
Bumps [react-error-overlay](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-error-overlay) from 3.0.0 to 6.0.7.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-2.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-error-overlay@6.0.7/packages/react-error-overlay)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-05-06 16:19:59 +00:00
Paul Melnikow
46250dd105 Update depcheck script for minimum supported Node version (#5053)
Ref #4977
2020-05-06 12:12:23 -04:00
dependabot-preview[bot]
c4314094dc Build(deps-dev): bump gatsby from 2.19.41 to 2.21.11 (#5052)
* Build(deps-dev): bump gatsby from 2.19.41 to 2.21.11

Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.41 to 2.21.11.
- [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@2.19.41...gatsby@2.21.11)

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

* Bump cypress base image to Node 12

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Melnikow <email@paulmelnikow.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-05-06 11:46:24 -04:00
chris48s
13d75e0607 upgrade to prettier 2 (#5051)
* arrowParens: avoid
* remove trailingComma setting
2020-05-05 21:07:43 +01:00
chris48s
1c736f2159 send s-maxage cache header (#5046)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-05 18:55:22 +01:00
dependabot-preview[bot]
0059599662 Build(deps): bump cross-env from 6.0.3 to 7.0.2 (#5035)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.2.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v6.0.3...v7.0.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-05-05 17:47:32 +00:00
dependabot-preview[bot]
4da0c7b8dd Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.24 to 3.3.0 (#5032)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.24 to 3.3.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@3.3.0/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-05 05:33:02 +00:00
dependabot-preview[bot]
6163de5a80 Build(deps-dev): bump start-server-and-test from 1.10.7 to 1.11.0 (#5031)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.10.7 to 1.11.0.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.10.7...v1.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-05 00:13:30 -05:00
dependabot-preview[bot]
d967c62497 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.46 to 2.3.0 (#5030)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.46 to 2.3.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@2.3.0/packages/gatsby-plugin-page-creator)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-05 03:32:00 +00:00
dependabot-preview[bot]
562dac6711 Use latest beta release of Nock (#5027) 2020-05-04 20:18:29 -04:00
Makarenko Anton
6ca2fa0c89 Fix rendering in Firefox on Windows (#5038)
Close #4813
2020-05-04 20:01:15 -04:00
Munif Tanjim
594e14c1b6 Support [Codecov] coverage badge with flag (#4968)
* Support Codecov coverage badge with flag

* Tweak Codecov service and tests

* Maintain Codecov backward-compatibility

* Tweak Codecov docs

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-04 17:15:01 +00:00
Caleb Cartwright
6e9e25451f tests: increase timeout for svc name check (#5050)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-04 17:08:27 +00:00
Caleb Cartwright
34d4271509 tests: fix Gitlab service tests (#5049)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-04 14:10:34 +00:00
dependabot-preview[bot]
784b45160b Build(deps-dev): bump sinon from 8.1.1 to 9.0.2 (#5029)
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.1.1 to 9.0.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v8.1.1...v9.0.2)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 22:38:10 +00:00
dependabot-preview[bot]
d2cdbc7a01 Build(deps-dev): bump babel-preset-gatsby from 0.2.36 to 0.4.0 (#5028)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.36 to 0.4.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@0.4.0/packages/babel-preset-gatsby)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 22:29:20 +00:00
dependabot-preview[bot]
ba149f2c75 Build(deps-dev): bump gatsby-plugin-styled-components (#5024)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.21 to 3.3.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@3.3.0/packages/gatsby-plugin-styled-components)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 20:58:43 +00:00
dependabot-preview[bot]
1cd92e2e71 Build(deps-dev): bump eslint-plugin-jsdoc from 20.4.0 to 24.0.0 (#5023)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 20.4.0 to 24.0.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v20.4.0...v24.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 20:49:29 +00:00
Caleb Cartwright
86c0b41219 tests: increase timeout on servicenames (#5047)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 15:34:50 -05:00
dependabot-preview[bot]
622f39635a Build(deps-dev): bump lint-staged from 9.5.0 to 10.2.2 (#5022)
* Build(deps-dev): bump lint-staged from 9.5.0 to 10.2.2

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 9.5.0 to 10.2.2.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v9.5.0...v10.2.2)

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

* deps: remove unneeded lint-stage git add

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <caleb.cartwright@outlook.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-03 20:28:58 +00:00
Dan Untenzu
2b363096bb Streamline Packagist Badge Titles (#5041)
Streamline Packagist Badge titles in frontend.
Always add the general topic/category to each badge title.

Closes #5039

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-05-03 20:10:29 +00:00
Dan Untenzu
d9c483abbe Add badge for Packagist stars (favers) (#5040)
Add a badge to show stars given to a PHP package on Packagist.

Closes #4912

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-05-03 21:49:04 +02:00
chris48s
171aac3c42 update production hosting/deploy docs (#5013) 2020-05-03 16:00:37 +01:00
chris48s
0129eba673 show link previews on /dev/styles page (#5045) 2020-05-03 15:47:56 +01:00
chris48s
9c3ddab7bf run typescript checks in npm test (#5044) 2020-05-03 15:39:39 +01:00
dependabot-preview[bot]
072c6fa689 Build(deps-dev): bump got from 11.0.3 to 11.1.0 (#5020)
Bumps [got](https://github.com/sindresorhus/got) from 11.0.3 to 11.1.0.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.0.3...v11.1.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-03 00:09:42 -05:00
dependabot-preview[bot]
cbb3cebfa0 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.28 to 2.3.0 (#5019)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.28 to 2.3.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@2.3.0/packages/gatsby-plugin-catch-links)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-02 23:36:37 -05:00
dependabot-preview[bot]
ed9672bfcf Build(deps-dev): bump sazerac from 1.1.0 to 2.0.0 (#5018)
Bumps [sazerac](https://github.com/sazeracjs/sazerac) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/sazeracjs/sazerac/releases)
- [Changelog](https://github.com/sazeracjs/sazerac/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sazeracjs/sazerac/compare/v1.1.0...v2.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-02 23:16:14 -05:00
dependabot-preview[bot]
0afdeca5c3 Build(deps-dev): bump husky from 3.1.0 to 4.2.5 (#5017)
Bumps [husky](https://github.com/typicode/husky) from 3.1.0 to 4.2.5.
- [Release notes](https://github.com/typicode/husky/releases)
- [Changelog](https://github.com/typicode/husky/blob/master/CHANGELOG.md)
- [Commits](https://github.com/typicode/husky/compare/v3.1.0...v4.2.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-02 22:52:38 -05:00
dependabot-preview[bot]
07eb48fce8 Build(deps-dev): bump gatsby-plugin-typescript from 2.2.5 to 2.4.0 (#5016)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.2.5 to 2.4.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@2.4.0/packages/gatsby-plugin-typescript)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-02 22:41:07 -05:00
dependabot-preview[bot]
14f91ab16d Build(deps): bump moment from 2.24.0 to 2.25.1 (#5026)
Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.25.1.
- [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.24.0...2.25.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-02 21:56:31 +00:00
dependabot-preview[bot]
26d753019e Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#5015)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.24 to 2.3.0.
- [Release notes](https://github.com/gatsbyjs/gatsby/releases)
- [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-remove-trailing-slashes/CHANGELOG.md)
- [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-remove-trailing-slashes@2.3.0/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-02 20:47:38 +00:00
dependabot-preview[bot]
ed551b3a68 Build(deps-dev): bump @babel/core from 7.9.0 to 7.9.6 (#4998)
Bumps [@babel/core](https://github.com/babel/babel) from 7.9.0 to 7.9.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.0...v7.9.6)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-02 17:52:37 +01:00
chris48s
6e58db0379 require node 10+ in badge-maker package.json (#5010) 2020-05-02 17:46:22 +01:00
chris48s
4d275e0642 upgrade to got 11 (#5008) 2020-05-02 17:39:23 +01:00
chris48s
af4b9e67cd re-enable dependabot node10+ upgrades (#5009) 2020-05-02 17:32:14 +01:00
dependabot-preview[bot]
8d0b8987ce Build(deps-dev): bump tmp from 0.1.0 to 0.2.1 (#4997)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.1.0 to 0.2.1.
- [Release notes](https://github.com/raszi/node-tmp/releases)
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-02 16:19:10 +00:00
dependabot-preview[bot]
fb63713f7e Build(deps-dev): bump portfinder from 1.0.25 to 1.0.26 (#4995)
Bumps [portfinder](https://github.com/http-party/node-portfinder) from 1.0.25 to 1.0.26.
- [Release notes](https://github.com/http-party/node-portfinder/releases)
- [Commits](https://github.com/http-party/node-portfinder/compare/v1.0.25...v1.0.26)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-02 04:14:01 +00:00
dependabot-preview[bot]
3424e07d21 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4999)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.30.0/packages/eslint-plugin)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-05-01 21:54:24 +00:00
dependabot-preview[bot]
a29565a02d Build(deps-dev): bump concurrently from 5.1.0 to 5.2.0 (#5005)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v5.1.0...v5.2.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-01 21:23:57 +00:00
dependabot-preview[bot]
271b84e1cb Build(deps): bump simple-icons from 2.9.0 to 2.10.0 (#5004)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.9.0...2.10.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-01 21:14:21 +00:00
chris48s
17374873ad fix link width params (#4991)
closes #4989

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-01 20:55:57 +00:00
Paul Melnikow
6bc0d40c37 Fix production crash in [GithubStars] with trailing spaces (#4983)
* Fix production crash in [GithubStars] with trailing spaces

Closes #4982

* Remove .only()

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-05-01 20:46:42 +00:00
dependabot-preview[bot]
7385739a43 Build(deps-dev): bump @typescript-eslint/parser from 2.29.0 to 2.30.0 (#5003)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.30.0/packages/parser)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-05-01 20:17:28 +00:00
dependabot-preview[bot]
d95aff75a9 Build(deps-dev): bump @types/node from 13.13.2 to 13.13.4 (#5006)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.13.2 to 13.13.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-01 13:21:57 -04:00
dependabot-preview[bot]
07d1466cd3 Build(deps-dev): bump @types/react-select from 3.0.11 to 3.0.12 (#5001)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.11 to 3.0.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-01 16:42:06 +00:00
dependabot-preview[bot]
283ded9e8e Build(deps-dev): bump cypress from 4.4.1 to 4.5.0 (#5002)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.4.1...v4.5.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-05-01 16:26:56 +00:00
dependabot-preview[bot]
7198c5af50 Build(deps-dev): bump chai-datetime from 1.5.0 to 1.6.0 (#4996)
Bumps [chai-datetime](https://github.com/mguterl/chai-datetime) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/mguterl/chai-datetime/releases)
- [Commits](https://github.com/mguterl/chai-datetime/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-01 16:08:45 +00:00
Paul Melnikow
f0030a4025 Fill GitHub token pool on startup (#4987)
We're still seeing a few "Token pool is exhausted" errors at the moment the dynos are coming up. I'm wondering if this might help.

Ref #3771
2020-04-30 23:39:01 -04:00
Paul Melnikow
b6c78a1110 Allow a numeric version for NuGet v2 [chocolatey powershellgallery resharper] (#4985)
Closes #2929
2020-04-30 23:28:40 -04:00
Paul Melnikow
5b42c8310b [dynamicjson] Fix unexpected token in JSONPath query (#4984)
Includes a test.

Fixes #4988
2020-04-30 23:19:39 -04:00
chris48s
612a43aaa9 Update test matrix and docs (#4992)
* update test matrix

* update docs
2020-04-30 21:33:59 +01:00
Paul Melnikow
7af965113b Fix missing [Cocoapods] license (#4986)
Closes #4688
2020-04-29 23:46:41 -04:00
Paul Melnikow
36f9a8083a Lengthen timeout on a sometimes slow test (#4978) 2020-04-29 22:04:34 +00:00
Paul Melnikow
6e76fabe26 Upgrade to Mocha 7 (#4976)
For some reason the `--delay` version is not working in Mocha 7. I'm not sure why that is. Although, invoking Mocha the normal synchronous way seems to be working fine, so maybe `--delay` just isn't necessary anymore for what we're doing in Shields.

I don't see anything in the changelog about this 🤷‍♂️

Closes #4842
2020-04-29 17:20:17 -04:00
chris48s
762306d7aa document request header size limit (#4966)
closes #4960
2020-04-29 11:45:04 -04:00
Paul Melnikow
f9d5f57f49 Delay start until the server is ready (#4959)
Fixes #4958

Fixes, but only in Heroku, #3771, so let's keep that open.
2020-04-27 22:45:19 -04:00
Mohamed Feddad
98ebc3ad5e Add [AUR] maintainer and last modified badges (#4952)
* Add [AUR] maintainer badge

* Add [AUR] last-modified badge

* Fix missing whitelist to Maintainer schema

* Apply suggestions from code review

Fail-safe maintainer and remove additional label color

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Add Arch wiki link. Replace category social with other.

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-04-27 21:01:23 -05:00
Caleb Cartwright
4fe80bb150 Get data for [Discord] badges via OVH server proxies (#4956) 2020-04-27 09:39:57 -04:00
Paul Melnikow
5f80d931ac Set Influx config for Heroku production app (#4953) 2020-04-26 20:48:12 -04:00
chris48s
d8840b83e7 fix logo placement with custom logoWidth value (#4946) 2020-04-25 16:34:34 +01:00
dependabot-preview[bot]
6bd4b182b6 Build(deps): bump ioredis from 4.16.2 to 4.16.3 (#4942)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.2 to 4.16.3.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/master/Changelog.md)
- [Commits](https://github.com/luin/ioredis/compare/v4.16.2...v4.16.3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-25 03:13:51 +00:00
dependabot-preview[bot]
1602443e51 Build(deps): bump @sentry/node from 5.15.4 to 5.15.5 (#4936)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.15.4 to 5.15.5.
- [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/5.15.4...5.15.5)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-25 01:36:54 +00:00
Paul Melnikow
90eb4fc73f Update a few remaining references to gh-badges and remove nowignore (#4945)
I was hoping I'd find something in here that would fix the install issue on Heroku but I don't think any of this is it.
2020-04-24 18:14:09 +00:00
dependabot-preview[bot]
56456bcbed Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4939)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.29.0/packages/eslint-plugin)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-24 18:07:42 +00:00
dependabot-preview[bot]
e987358c5e Build(deps-dev): bump eslint-plugin-chai-friendly from 0.5.0 to 0.6.0 (#4940)
Bumps [eslint-plugin-chai-friendly](https://github.com/ihordiachenko/eslint-plugin-chai-friendly) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/releases)
- [Commits](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/compare/v0.5.0...v0.6.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-24 17:11:39 +00:00
dependabot-preview[bot]
e60b588feb Build(deps-dev): bump @types/node from 13.11.1 to 13.13.2 (#4944)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.11.1 to 13.13.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-24 16:40:18 +00:00
dependabot-preview[bot]
78ad619399 Build(deps-dev): bump @typescript-eslint/parser from 2.28.0 to 2.29.0 (#4943)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.29.0/packages/parser)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-24 16:23:28 +00:00
dependabot-preview[bot]
446c1031f9 Build(deps-dev): bump eslint-config-prettier from 6.10.1 to 6.11.0 (#4941)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.10.1 to 6.11.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.10.1...v6.11.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-24 15:38:16 +00:00
dependabot-preview[bot]
6984918cab Build(deps-dev): bump cypress from 4.4.0 to 4.4.1 (#4937)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.4.0...v4.4.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-24 15:20:03 +00:00
chris48s
3ba05cb184 📦 version 3 (#4756)
* Validate input to BadgeFactory.create() (#3875)

* validate input to create()

* remove deprecated properties (#3881)

* remove BadgeFactory class (#3884)

* Template literal templates (#4459)

- Remove use of the doT template library and move to generating SVG output using javascript template literals.
- Drop SVGO and mostly manually implement the optimisations.
- Add a bunch more tests

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>

* drop raster support in package CLI (#4523)

* drop raster support in package CLI
* update docs

* rename gh-badges package to badge-maker

* rename gh-badges dir to badge-maker

* update relative imports and other refs to in parent dir

'gh-badges' --> 'badge-maker'

* update snyk service tests

This change is only tangentially related

We've used the shields repo as an example for these tests so
moving files around in our repo has a knock-on effect on them

* add missing type hints to dev style page

* write the changelog/migration guide for v3

* use extension in README CLI example

* update CLI help

whoops - missed this in #4523

* bump version

* update for self-hosting users

* README updates

* drop .format param from CLI, always output SVG

* Change text[] to label and message, Remove JSON output

- Change text[] to label and message
- Fix message only badge
- Remove JSON output format
- Update the docs

* update package-lock

* rename 'template' to 'style'

* handle invalid styles in coalesceBadge

* ensure makeBadge is passed a string for template in coalesceBadge()

issue #4925

* fix (logo/no label text/label color specified) case

issue #4926

* add example of (logo/no label text/label color specified) to style debug page

* update type defs

* padding fix for FTB style

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-04-23 20:05:48 +01:00
Marcin Mielnicki
b64987d2dd Do not log errors in influx tests (#4931) 2020-04-22 16:58:11 -05:00
864 changed files with 34504 additions and 24680 deletions

View File

@@ -86,24 +86,12 @@ services_steps: &services_steps
- store_test_results:
path: junit
run_package_tests: &run_package_tests
when: always
command: |
# https://discuss.circleci.com/t/switch-nodejs-version-on-machine-executor-solved/26675/3
set +e
export NVM_DIR="/opt/circleci/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install $NODE_VERSION
nvm use $NODE_VERSION
node --version
npm run test:package
package_steps: &package_steps
steps:
- checkout
- run:
name: Install dependencies
name: Install node and npm
command: |
set +e
export NVM_DIR="/opt/circleci/.nvm"
@@ -111,82 +99,71 @@ package_steps: &package_steps
nvm install v12
nvm use v12
npm install -g npm
npm ci
environment:
CYPRESS_INSTALL_BINARY: 0
# Run the package tests on each currently supported node version. See:
# https://github.com/badges/shields/blob/master/gh-badges/README.md#node-version-support
# https://github.com/badges/shields/blob/master/badge-maker/README.md#node-version-support
# https://nodejs.org/en/about/releases/
- run:
<<: *run_package_tests
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/gh-badges/v8/results.xml
NODE_VERSION: v8
name: Run package tests on Node 8
- run:
<<: *run_package_tests
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/gh-badges/v10/results.xml
MOCHA_FILE: junit/badge-maker/v10/results.xml
NODE_VERSION: v10
CYPRESS_INSTALL_BINARY: 0
name: Run package tests on Node 10
command: scripts/run_package_tests.sh
- run:
<<: *run_package_tests
environment:
mocha_reporter: mocha-junit-reporter
MOCHA_FILE: junit/gh-badges/v12/results.xml
MOCHA_FILE: junit/badge-maker/v12/results.xml
NODE_VERSION: v12
CYPRESS_INSTALL_BINARY: 0
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
name: Run package tests on Node 14
command: scripts/run_package_tests.sh
- store_test_results:
path: junit
jobs:
npm-install:
docker:
- image: circleci/node:8
steps:
- checkout
- run:
name: Install dependencies
command: npm ci
environment:
CYPRESS_INSTALL_BINARY: 0
main:
docker:
- image: circleci/node:8
- image: circleci/node:12
<<: *main_steps
main@node-latest:
main@node-14:
docker:
- image: circleci/node:latest
- image: circleci/node:14
<<: *main_steps
integration:
docker:
- image: circleci/node:8
- image: circleci/node:12
- image: redis
<<: *integration_steps
integration@node-latest:
integration@node-14:
docker:
- image: circleci/node:latest
- image: circleci/node:14
- image: redis
<<: *integration_steps
danger:
docker:
- image: circleci/node:8
- image: circleci/node:12
steps:
- checkout
@@ -206,7 +183,7 @@ jobs:
frontend:
docker:
- image: circleci/node:8
- image: circleci/node:12
steps:
- checkout
@@ -247,19 +224,19 @@ jobs:
services:
docker:
- image: circleci/node:8
- image: circleci/node:12
<<: *services_steps
services@node-latest:
services@node-14:
docker:
- image: circleci/node:latest
- image: circleci/node:14
<<: *services_steps
e2e:
docker:
- image: cypress/base:8
- image: cypress/base:12
steps:
- checkout
@@ -308,11 +285,11 @@ workflows:
filters:
branches:
ignore: gh-pages
- main@node-latest:
- main@node-14:
filters:
branches:
ignore: gh-pages
- integration@node-latest:
- integration@node-14:
filters:
branches:
ignore: gh-pages
@@ -330,7 +307,7 @@ workflows:
ignore:
- master
- gh-pages
- services@node-latest:
- services@node-14:
filters:
branches:
ignore:

View File

@@ -14,9 +14,6 @@ update_configs:
- match:
dependency_name: 'eslint*'
update_type: 'semver:minor'
- match:
dependency_name: 'enzyme*'
update_type: 'semver:minor'
- match:
dependency_name: 'mocha*'
update_type: 'semver:minor'
@@ -29,81 +26,8 @@ update_configs:
- match:
dependency_name: 'snap-shot-it'
update_type: 'semver:minor'
ignored_updates:
- match:
dependency_name: babel-preset-gatsby
version_requirement: '>=0.3.0'
- match:
dependency_name: camelcase
version_requirement: '>=6.0.0'
- match:
dependency_name: chalk
version_requirement: '>=4.0.0'
- match:
dependency_name: cross-env
version_requirement: '>=7.0.0'
- match:
dependency_name: decamelize
version_requirement: '>=4.0.0'
- match:
dependency_name: escape-string-regexp
version_requirement: '>=3.0.0'
- match:
dependency_name: eslint-plugin-jsdoc
version_requirement: '>=21.0.0'
- match:
dependency_name: gatsby
version_requirement: '>=2.19.50'
- match:
dependency_name: gatsby-plugin-catch-links
version_requirement: '>=2.2.0'
- match:
dependency_name: gatsby-plugin-page-creator
version_requirement: '>=2.2.0'
- match:
dependency_name: gatsby-plugin-react-helmet
version_requirement: '>=3.2.0'
- match:
dependency_name: gatsby-plugin-remove-trailing-slashes
version_requirement: '>=2.2.0'
- match:
dependency_name: gatsby-plugin-styled-components
version_requirement: '>=3.2.0'
- match:
dependency_name: gatsby-plugin-typescript
version_requirement: '>=2.3.0'
- match:
dependency_name: got
version_requirement: '>=10.0.0'
- match:
dependency_name: '@hapi/joi'
version_requirement: '>=17.0.0'
- match:
dependency_name: husky
version_requirement: '>=4.0.0'
- match:
dependency_name: lint-staged
version_requirement: '>=10.0.0'
- match:
dependency_name: nock
version_requirement: '>=12.0.0'
- match:
dependency_name: prom-client
version_requirement: '>=12.0.0'
- match:
dependency_name: react-error-overlay
version_requirement: '>=3.0.0'
- match:
dependency_name: sinon
version_requirement: '>=9.0.0'
- match:
dependency_name: start-server-and-test
version_requirement: '>=1.10.8'
- match:
dependency_name: xmldom
version_requirement: '>=0.3.0'
# gh-badges package dependencies
# badge-maker package dependencies
- package_manager: 'javascript'
directory: '/gh-badges'
directory: '/badge-maker'
update_schedule: 'weekly'

View File

@@ -3,4 +3,4 @@
/coverage
/__snapshots__
/public
gh-badges/node_modules/
badge-maker/node_modules/

View File

@@ -16,6 +16,8 @@ parserOptions:
settings:
react:
version: '16.8'
jsdoc:
mode: jsdoc
plugins:
- chai-friendly
@@ -149,7 +151,7 @@ rules:
# allow Joi as an undefined type
jsdoc/no-undefined-types: ['error', { definedTypes: ['Joi'] }]
# all the other reccomended rules as errors (not warnings)
# all the other recommended rules as errors (not warnings)
jsdoc/check-alignment: 'error'
jsdoc/check-param-names: 'error'
jsdoc/check-tag-names: 'error'

View File

@@ -8,7 +8,7 @@ Are you experiencing an issue with...
- [ ] [shields.io](https://shields.io/#/)
- [ ] My own instance
- [ ] [gh-badges NPM package](https://www.npmjs.com/package/gh-badges)
- [ ] [badge-maker NPM package](https://www.npmjs.com/package/badge-maker)
:beetle: **Description**

View File

@@ -1,17 +0,0 @@
---
name: ❓ Support Question
about: Ask a question about shields.io
labels: 'question'
---
:question: **Question**
<!--
Ask your question clearly and concisely.
#support on our [Discord](https://discordapp.com/invite/HjJCwm5)
is also a great place to ask questions and get help
-->
<!-- Love Shields? Please consider donating $10 to sustain our activities:
👉 https://opencollective.com/shields -->

4
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
contact_links:
- name: ❓ Support Question
url: https://github.com/badges/shields/discussions
about: Ask a question about Shields.io

10
.github/probot.js vendored
View File

@@ -1,10 +0,0 @@
on('pull_request.closed')
.filter(context => context.payload.pull_request.merged)
.filter(
context =>
context.payload.pull_request.head.ref.slice(0, 11) !== 'dependabot/'
)
.filter(context => context.payload.pull_request.base.ref === 'master')
.comment(`This pull request was merged to [{{ pull_request.base.ref }}]({{ repository.html_url }}/tree/{{ pull_request.base.ref }}) branch. This change is now waiting for deployment, which will usually happen within a few days. Stay tuned by joining our \`#ops\` channel on [Discord](https://discordapp.com/invite/HjJCwm5)!
After deployment, changes are copied to [gh-pages]({{ repository.html_url }}/tree/gh-pages) branch: ![](https://img.shields.io/github/commit-status/{{ repository.full_name }}/gh-pages/{{ pull_request.merge_commit_sha }}.svg?label=deploy%20status)`)

View File

@@ -0,0 +1,28 @@
name: Ddd deployment status
on:
pull_request_target:
types: [closed]
jobs:
add_deployment_status:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Create comment
if: ${{ github.event_name == 'pull_request_target'
&& github.event.action == 'closed'
&& github.event.pull_request.merged
&& !startsWith(github.event.pull_request.head.ref, 'dependabot/')
&& github.event.pull_request.base.ref == 'master' }}
# From a security perspective it's good practice to reference the commit hash
# https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#security
uses: peter-evans/create-or-update-comment@41f3207a84f33bd70388036109082784d059dcaa
with:
issue-number: ${{ github.event.pull_request.number }}
edit-mode: replace
body: |
This pull request was merged to [${{ github.event.pull_request.base.ref }}](${{ github.event.repository.html_url }}/tree/${{ github.event.pull_request.base.ref }}) branch. This change is now waiting for deployment, which will usually happen within a few days. Stay tuned by joining our `#ops` channel on [Discord](https://discordapp.com/invite/HjJCwm5)!
After deployment, changes are copied to [gh-pages](${{ github.event.repository.html_url }}/tree/gh-pages) branch: ![](https://img.shields.io/github/commit-status/${{ github.event.repository.full_name }}/gh-pages/${{ github.event.pull_request.merge_commit_sha }}.svg?label=deploy%20status)

View File

@@ -5,6 +5,6 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: chris48s/approve-bot@1.0.0
- uses: chris48s/approve-bot@2.0.1
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'

2
.gitignore vendored
View File

@@ -7,7 +7,7 @@
/private
/index.html
/shields.env
gh-badges/package-lock.json
badge-maker/package-lock.json
# Folder view configuration files
.DS_Store

View File

@@ -1,30 +0,0 @@
*
!frontend/
!gh-badges/
!lib/
!core/
!logo/
!pages/
!public/
!templates/
!services/
!package-lock.json
!/*.js
!scripts/export-*.js
!config/
config/local*.yml
*.spec.js
*~
.env
.circleci
.github
.vscode
__snapshots__
.buildpacks
.eslint*
.editorconfig
.nycrc*
.gitpod*
.prettier*
CONTRIBUTING.md
Dockerfile

View File

@@ -10,6 +10,7 @@
"**/*-test-helpers.js",
"**/*-fixtures.js",
"**/mocha-*.js",
"**/*.test-d.ts",
"dangerfile.js",
"gatsby-*.js",
"core/service-test-runner",

View File

@@ -10,6 +10,5 @@ package-lock.json
private/*.json
/.nyc_output
analytics.json
gh-badges/templates/default-template.json
supported-features.json
service-definitions.yml

View File

@@ -1,5 +1,5 @@
semi: false
singleQuote: true
trailingComma: es5
bracketSpacing: true
endOfLine: lf
arrowParens: avoid

View File

@@ -1,7 +1,3 @@
{
"recommendations": [
"esbenp.prettier-vscode",
"EditorConfig.EditorConfig",
"dbaeumer.vscode-eslint"
]
"recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
}

129
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,129 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
![](https://img.shields.io/badge/conduct-%40shields.io-blue) or directly to [@calebcartwright](https://github.com/calebcartwright) ![](https://img.shields.io/badge/caleb-%40shields.io-blue) or [@paulmelnikow](https://github.com/paulmelnikow) ![](https://img.shields.io/badge/paul-%40shields.io-blue)
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -49,8 +49,9 @@ simple changes, like badge additions. These are usually tagged with
Please review [these impeccable guidelines][code review guidelines].
You can monitor [issues][] and the [chat room][], and help other people who
have questions about contributing to Shields, or using it for their projects.
You can monitor [issues][], [discussions][] and the [chat room][], and help
other people who have questions about contributing to Shields, or using it
for their projects.
Feel free to reach out to one of the [maintainers][]
if you need help getting started.
@@ -58,6 +59,7 @@ if you need help getting started.
[service badge pr tag]: https://github.com/badges/shields/pulls?q=is%3Apr+is%3Aopen+label%3Aservice-badge
[code review guidelines]: https://kickstarter.engineering/a-guide-to-mindful-communication-in-code-reviews-48aab5282e5e
[issues]: https://github.com/badges/shields/issues
[discussions]: https://github.com/badges/shields/discussions
[chat room]: https://discordapp.com/invite/HjJCwm5
[maintainers]: https://github.com/badges/shields#project-leaders
@@ -86,9 +88,9 @@ We're also asking for [one-time \$10 donations](https://opencollective.com/shiel
There are three places to get help:
1. If you're new to the project, a good place to start is the [tutorial][].
2. If you need help getting started or implementing a change, [open an issue][]
2. If you need help getting started or implementing a change, [start a discussion][discussions]
with your question. We promise it's okay to do that. If there is already an
issue open for the feature you're working on, you can post there.
issue open for the feature you're working on, you can post there directly.
3. You can also join the [chat room][] and ask your question there.
[tutorial]: doc/TUTORIAL.md
@@ -96,11 +98,18 @@ There are three places to get help:
## Badge guidelines
- Shields.io hosts integrations for services which are primarily
used by developers or which are widely used by developers
used by developers or which are widely used by developers.
- The left-hand side of a badge should not advertise. It should be a lowercase _noun_
succinctly describing the meaning of the right-hand side.
- Except for badges using the `social` style, logos should be _turned off by
default_.
- Badges should not obtain data from undocumented or reverse-engineered API endpoints.
- Badges should not obtain data by scraping web pages - these are likely to break frequently.
Whereas API publishers are incentivised to maintain a stable platform for their users,
authors of web pages have no such incentive.
- Badges may require users to specify a token in the badge URL as long it is scoped only to
fetching information and doesn't expose any sensitive information. Generating a token with the
correct scope must be clearly documented.
## Badge URLs

View File

@@ -1,12 +1,12 @@
FROM node:8-alpine
FROM node:12-alpine
RUN mkdir -p /usr/src/app
RUN mkdir /usr/src/app/private
WORKDIR /usr/src/app
COPY package.json package-lock.json /usr/src/app/
# Without the gh-badges package.json and CLI script in place, `npm ci` will fail.
COPY gh-badges /usr/src/app/gh-badges/
# Without the badge-maker package.json and CLI script in place, `npm ci` will fail.
COPY badge-maker /usr/src/app/badge-maker/
# We need dev deps to build the front end. We don't need Cypress, though.
RUN NODE_ENV=development CYPRESS_INSTALL_BINARY=0 npm ci

View File

@@ -43,16 +43,16 @@ Every month it serves over 470 million images.
This repo hosts:
- The [Shields.io][shields.io] frontend and server code
- An [NPM library for generating badges][gh-badges]
- [documentation][gh-badges-docs]
- [changelog][gh-badges-changelog]
- An [NPM library for generating badges][badge-maker]
- [documentation][badge-maker-docs]
- [changelog][badge-maker-changelog]
- The [badge design specification][badge-spec]
[shields.io]: https://shields.io/
[gh-badges]: https://www.npmjs.com/package/gh-badges
[badge-maker]: https://www.npmjs.com/package/badge-maker
[badge-spec]: https://github.com/badges/shields/tree/master/spec
[gh-badges-docs]: https://github.com/badges/shields/tree/master/gh-badges/README.md
[gh-badges-changelog]: https://github.com/badges/shields/tree/master/gh-badges/CHANGELOG.md
[badge-maker-docs]: https://github.com/badges/shields/tree/master/badge-maker/README.md
[badge-maker-changelog]: https://github.com/badges/shields/tree/master/badge-maker/CHANGELOG.md
## Examples
@@ -70,10 +70,14 @@ This repo hosts:
[Make your own badges!][custom badges]
(Quick example: `https://img.shields.io/badge/left-right-f39f37`)
Browse a [complete list of badges][shields.io].
[custom badges]: http://shields.io/#your-badge
### Quickstart
Browse a [complete list of badges][shields.io] and locate a particular badge by using the search bar or by browsing the categories. Click on the badge to fill in required data elements for that badge type (like your username or repo) and optionally customize (label, colors etc.). And it's ready for use!
Use the button at the bottom to copy your badge url or snippet, which can then be added to places like your GitHub readme files or other web pages.
## Contributing
Shields is a community project. We invite your participation through issues
@@ -82,20 +86,24 @@ and pull requests! You can peruse the [contributing guidelines][contributing].
When adding or changing a service [please add tests][service-tests].
This project has quite a backlog of suggestions! If you're new to the project,
maybe you'd like to open a pull request to address one of them:
[![GitHub issues by-label](https://img.shields.io/github/issues/badges/shields/good%20first%20issue)](https://github.com/badges/shields/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
maybe you'd like to open a pull request to address one of them.
You can read a [tutorial on how to add a badge][tutorial].
[![GitHub issues by-label](https://img.shields.io/github/issues/badges/shields/good%20first%20issue)](https://github.com/badges/shields/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
[![Hacktoberfest 2020](https://img.shields.io/github/hacktoberfest/2020/badges/shields?label=hacktoberfest%202020)](https://github.com/badges/shields/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest)
Let's see if we can beat last year!
[![Hacktoberfest 2019](https://img.shields.io/github/hacktoberfest/2019/badges/shields?label=hacktoberfest%202019)](https://github.com/badges/shields/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest)
[service-tests]: https://github.com/badges/shields/blob/master/doc/service-tests.md
[tutorial]: doc/TUTORIAL.md
[contributing]: CONTRIBUTING.md
## Development
1. Install Node 8 or later. You can use the [package manager][] of your choice.
Tests need to pass in Node 8 and 10.
1. Install Node 12 or later. You can use the [package manager][] of your choice.
Tests need to pass in Node 12 and 14.
2. Clone this repository.
3. Run `npm ci` to install the dependencies.
4. Run `npm start` to start the badge server and the frontend dev server.
@@ -124,8 +132,8 @@ Please report any Gitpod bugs, questions, or suggestions in issue
[Snapshot tests][] ensure we don't inadvertently make changes that affect the
SVG or JSON output. When deliberately changing the output, run
`SNAPSHOT_DRY=1 npm run test:js:server` to preview changes to the saved
snapshots, and `SNAPSHOT_UPDATE=1 npm run test:js:server` to update them.
`SNAPSHOT_DRY=1 npm run test:package` to preview changes to the saved
snapshots, and `SNAPSHOT_UPDATE=1 npm run test:package` to update them.
The server can be configured to use [Sentry][] ([configuration][sentry configuration]) and [Prometheus][] ([configuration][prometheus configuration]).
@@ -183,7 +191,6 @@ Maintainers:
- [calebcartwright](https://github.com/calebcartwright) (core team)
- [chris48s](https://github.com/chris48s) (core team)
- [Daniel15](https://github.com/Daniel15) (core team)
- [espadrine](https://github.com/espadrine) (core team)
- [paulmelnikow](https://github.com/paulmelnikow) (core team)
- [platan](https://github.com/platan) (core team)
- [PyvesB](https://github.com/PyvesB) (core team)
@@ -191,19 +198,22 @@ Maintainers:
Operations:
- [espadrine](https://github.com/espadrine) (sysadmin)
- [paulmelnikow](https://github.com/paulmelnikow) (limited access)
- [calebcartwright](https://github.com/calebcartwright)
- [chris48s](https://github.com/chris48s)
- [paulmelnikow](https://github.com/paulmelnikow)
- [PyvesB](https://github.com/PyvesB)
Alumni:
- [espadrine](https://github.com/espadrine)
- [olivierlacan](https://github.com/olivierlacan)
## Related projects
- [badgerbadgerbadger gem][gem]
- [poser PHP library][poser]
- [pybadges python library][pybadges]
[gem]: https://github.com/badges/badgerbadgerbadger
[poser]: https://github.com/badges/poser
[pybadges]: https://github.com/google/pybadges
## License
@@ -214,28 +224,6 @@ domain unless specified otherwise.
The assets in `logo/` are trademarks of their respective companies and are
under their terms and license.
## Contributors
## Community
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
<a href="https://github.com/badges/shields/graphs/contributors"><img src="https://opencollective.com/shields/contributors.svg?width=890" /></a>
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/shields#backer)]
<a href="https://opencollective.com/shields#backers" target="_blank"><img src="https://opencollective.com/shields/backers.svg?width=890"></a>
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/shields#sponsor)]
<a href="https://opencollective.com/shields/sponsor/0/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/1/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/2/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/3/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/4/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/5/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/6/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/7/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/8/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/shields/sponsor/9/website" target="_blank"><img src="https://opencollective.com/shields/sponsor/9/avatar.svg"></a>
Thanks to the people and companies who donate money, services or time to keep the project running. [https://shields.io/community](https://shields.io/community)

25
SECURITY.md Normal file
View File

@@ -0,0 +1,25 @@
# Security Policy
## Supported Projects
Please follow this guidance when reporting security issues affecting:
- [Shields.io](https://shields.io)
- [Raster.shields.io](https://raster.shields.io)
- Self-hosted Shields instances
- The [svg-to-image-proxy](https://www.npmjs.com/package/svg-to-image-proxy) NPM package
- The [badge-maker](https://www.npmjs.com/package/badge-maker) NPM package
The [gh-badges](https://www.npmjs.com/package/gh-badges) NPM package is now deprecated and will no longer receive fixes for bugs or security issues.
## Reporting a Vulnerability
If you find a security vulnerability affecting any of our supported projects, please email [security@shields.io](mailto:security@shields.io), rather than opening a public issue on GitHub. After receiving the initial report, we will endeavor to keep you informed of the progress towards a fix and full announcement. We may ask you for additional information. You are also welcome to propose a patch or solution.
Report security bugs in third-party modules to the person or team maintaining the module.
## Coordinated Disclosure
We aim to patch confirmed vulnerabilities within 90 days or less, disclosing the details of those vulnerabilities when a patch is published. We ask that you refrain from sharing your report with others while we work on our patch.
We may want to coordinate an advisory with you to be published simultaneously with the patch, but you are also welcome to self-disclose after 90 days if you prefer. We will never publish information about you or our communications with you without your permission.

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,3 @@
lib/make-badge-test-helpers.js
lib/**/*.spec.js
index.test-d.ts

View File

@@ -1,6 +1,86 @@
# Changelog
## 2.2.1
## 3.3.0
- Readability improvements: a dark font color is automatically used when the badge's background is too light. For example: ![](https://img.shields.io/badge/hello-world-white)
- Better CSS color compliance: thanks to a switch from _is-css-color_ to _[css-color-converter](https://www.npmjs.com/package/css-color-converter)_, you can use a wider range of color formats from the latest CSS specification, for example `rgb(0 255 0)`
- Less dependencies: _badge-maker_ no longer depends on _camelcase_
## 3.2.0
- Accessibility improvements: Help users of assistive technologies to read the badges when used inline
## 3.1.0
- Add TypeScript definitions
## 3.0.1
- Fix missing dependency
## 3.0.0
### Breaking Changes
- Dropped support for node < 10
- Package name has changed to `badge-maker` and moved to https://www.npmjs.com/package/badge-maker
- `BadgeFactory` class is removed and replaced by `makeBadge()` function.
- Deprecated parameters have been removed. In version 2.2.0 the `colorA`, `colorB` and `colorscheme` params were deprecated. In version 3.0.0 these have been removed.
- Only SVG output format is now provided. JSON format has been dropped and the `format` key has been removed.
- The `text` array has been replaced by `label` and `message` keys.
- The `template` key has been renamed `style`.
To upgrade from v2.1.1, change your code from:
```js
const { BadgeFactory } = require('gh-badges')
const bf = new BadgeFactory()
const svg = bf.create({
text: ['build', 'passed'],
format: 'svg',
template: 'flat-square',
})
```
to:
```js
const { makeBadge } = require('badge-maker')
const svg = makeBadge({
label: 'build',
message: 'passed',
style: 'flat-square',
})
```
- `ValidationError` had been added and inputs are now validated. In previous releases, invalid inputs would be discarded and replaced with defaults. For example, in 2.2.1
```js
const { BadgeFactory } = require('gh-badges')
const bf = new BadgeFactory()
const svg = bf.create({
text: ['build', 'passed'],
template: 'some invalid value',
})
```
would generate an SVG badge. In version >=3
```js
const { makeBadge } = require('badge-maker')
const svg = makeBadge({
label: 'build',
message: 'passed',
style: 'some invalid value',
})
```
will throw a `ValidationError`.
- Raster support has been removed from the CLI. It will now only output SVG. On the console, the output of `badge` can be piped to a utility like [imagemagick](https://imagemagick.org/script/command-line-processing.php). If you were previously using
```sh
badge build passed :green .gif
```
this could be replaced by
```sh
badge build passed :green | magick svg:- gif:-
```
### Security
- Removed dependency on doT library which has known vulnerabilities.
## 2.2.1 - 2019-05-30
### Fixes

View File

@@ -1,12 +1,13 @@
# gh-badges
# badge-maker
[![npm version](https://img.shields.io/npm/v/gh-badges.svg)](https://npmjs.org/package/gh-badges)
[![npm license](https://img.shields.io/npm/l/gh-badges.svg)](https://npmjs.org/package/gh-badges)
[![npm version](https://img.shields.io/npm/v/badge-maker.svg)](https://npmjs.org/package/badge-maker)
[![npm license](https://img.shields.io/npm/l/badge-maker.svg)](https://npmjs.org/package/badge-maker)
[![npm type definitions](https://img.shields.io/npm/types/badge-maker)](https://npmjs.org/package/badge-maker)
## Installation
```sh
npm install gh-badges
npm install badge-maker
```
## Usage
@@ -14,29 +15,44 @@ npm install gh-badges
### On the console
```sh
npm install -g gh-badges
badge build passed :green .png > mybadge.png
npm install -g badge-maker
badge build passed :green > mybadge.svg
```
### As a library
With CommonJS in JavaScript,
```js
const { BadgeFactory } = require('gh-badges')
const { makeBadge, ValidationError } = require('badge-maker')
```
const bf = new BadgeFactory()
With ESM or TypeScript,
```ts
import { makeBadge, ValidationError } from 'badge-maker'
```
```js
const format = {
text: ['build', 'passed'],
label: 'build',
message: 'passed',
color: 'green',
template: 'flat',
}
const svg = bf.create(format)
const svg = makeBadge(format)
console.log(svg) // <svg...
try {
makeBadge({})
} catch (e) {
console.log(e) // ValidationError: Field `message` is required
}
```
### Node version support
The latest version of gh-badges supports all currently maintained Node
The latest version of badge-maker supports all currently maintained Node
versions. See the [Node Release Schedule][].
[node release schedule]: https://github.com/nodejs/Release#release-schedule
@@ -47,28 +63,17 @@ The format is the following:
```js
{
text: [ 'build', 'passed' ], // Textual information shown, in order
label: 'build', // (Optional) Badge label
message: 'passed', // (Required) Badge message
labelColor: '#555', // (Optional) Label color
color: '#4c1', // (Optional) Message color
format: 'svg', // Also supports json
color: '#4c1',
labelColor: '#555',
// See templates/ for a list of available templates.
// (Optional) One of: 'plastic', 'flat', 'flat-square', 'for-the-badge' or 'social'
// Each offers a different visual design.
template: 'flat',
// Deprecated attributes:
colorscheme: 'green', // Now an alias for `color`.
colorB: '#4c1', // Now an alias for `color`.
colorA: '#555', // Now an alias for `labelColor`.
style: 'flat',
}
```
### See also
- [templates/](./templates) for the `template` option
## Colors
There are three ways to specify `color` and `labelColor`:
@@ -126,3 +131,12 @@ There are three ways to specify `color` and `labelColor`:
[lightslategray]: https://img.shields.io/badge/lightslategray-lightslategray.svg
[css color]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
[css/svg color]: http://www.w3.org/TR/SVG/types.html#DataTypeColor
## Raster Formats
Conversion to raster formats is no longer directly supported. In javascript
code, SVG badges can be converted to raster formats using a library like
[gm](https://www.npmjs.com/package/gm). On the console, the output of `badge`
can be piped to a utility like
[imagemagick](https://imagemagick.org/script/command-line-processing.php)
e.g: `badge build passed :green | magick svg:- gif:-`.

11
badge-maker/index.d.ts vendored Normal file
View File

@@ -0,0 +1,11 @@
interface Format {
label?: string
message: string
labelColor?: string
color?: string
style?: 'plastic' | 'flat' | 'flat-square' | 'for-the-badge' | 'social'
}
export declare class ValidationError extends Error {}
export declare function makeBadge(format: Format): string

View File

@@ -0,0 +1,35 @@
import { expectType, expectError, expectAssignable } from 'tsd'
import { makeBadge, ValidationError } from '.'
expectError(makeBadge('string is invalid'))
expectError(makeBadge({}))
expectError(
makeBadge({
message: 'passed',
style: 'invalid style',
})
)
expectType<string>(
makeBadge({
message: 'passed',
})
)
expectType<string>(
makeBadge({
label: 'build',
message: 'passed',
})
)
expectType<string>(
makeBadge({
label: 'build',
message: 'passed',
labelColor: 'green',
color: 'red',
style: 'flat',
})
)
const error = new ValidationError()
expectAssignable<Error>(error)

View File

@@ -2,23 +2,18 @@
'use strict'
const makeBadge = require('./make-badge')
const svg2img = require('./svg-to-img')
const { namedColors } = require('./color')
const { makeBadge } = require('./index')
if (process.argv.length < 4) {
console.log('Usage: badge subject status [:color] [.output] [@style]')
console.log(
'Or: badge subject status color [labelColor] [.output] [@style]'
)
console.log('Usage: badge label message [:color] [@style]')
console.log('Or: badge label message color [labelColor] [@style]')
console.log()
console.log(' color, labelColor:')
console.log(` one of ${Object.keys(namedColors).join(', ')}.`)
console.log(' #xxx (three hex digits)')
console.log(' #xxxxxx (six hex digits)')
console.log(' color (CSS color)')
console.log(' output:')
console.log(' svg, png, jpg, or gif')
console.log()
console.log('Eg: badge cactus grown :green @flat')
console.log()
@@ -26,14 +21,8 @@ if (process.argv.length < 4) {
}
// Find a format specifier.
let format = 'svg'
let style = ''
for (let i = 4; i < process.argv.length; i++) {
if (process.argv[i][0] === '.') {
format = process.argv[i].slice(1)
process.argv.splice(i, 1)
continue
}
if (process.argv[i][0] === '@') {
style = process.argv[i].slice(1)
process.argv.splice(i, 1)
@@ -41,14 +30,14 @@ for (let i = 4; i < process.argv.length; i++) {
}
}
const subject = process.argv[2]
const status = process.argv[3]
const label = process.argv[2]
const message = process.argv[3]
let color = process.argv[4] || ':green'
const colorA = process.argv[5]
const labelColor = process.argv[5]
const badgeData = { text: [subject, status], format }
const badgeData = { label, message }
if (style) {
badgeData.template = style
badgeData.style = style
}
if (color[0] === ':') {
@@ -58,28 +47,17 @@ if (color[0] === ':') {
console.error('Invalid color scheme.')
process.exit(1)
}
badgeData.colorscheme = color
badgeData.color = color
} else {
badgeData.colorB = color
if (colorA) {
badgeData.colorA = colorA
badgeData.color = color
if (labelColor) {
badgeData.labelColor = labelColor
}
}
async function main() {
const svg = makeBadge(badgeData)
if (/png|jpg|gif/.test(format)) {
const data = await svg2img(svg, format)
process.stdout.write(data)
} else {
console.log(svg)
}
}
;(async () => {
;(() => {
try {
await main()
console.log(makeBadge(badgeData))
} catch (e) {
console.error(e)
process.exit(1)

View File

@@ -1,7 +1,6 @@
'use strict'
const path = require('path')
const isPng = require('is-png')
const isSvg = require('is-svg')
const { spawn } = require('child-process-promise')
const { expect, use } = require('chai')
@@ -14,13 +13,13 @@ function runCli(args) {
})
}
describe('The CLI', function() {
it('should provide a help message', async function() {
describe('The CLI', function () {
it('should provide a help message', async function () {
const { stdout } = await runCli([])
expect(stdout).to.startWith('Usage')
})
it('should produce default badges', async function() {
it('should produce default badges', async function () {
const { stdout } = await runCli(['cactus', 'grown'])
expect(stdout)
.to.satisfy(isSvg)
@@ -28,30 +27,13 @@ describe('The CLI', function() {
.and.to.include('grown')
})
it('should produce colorschemed badges', async function() {
it('should produce colorschemed badges', async function () {
const { stdout } = await runCli(['cactus', 'grown', ':green'])
expect(stdout).to.satisfy(isSvg)
})
it('should produce right-color badges', async function() {
it('should produce right-color badges', async function () {
const { stdout } = await runCli(['cactus', 'grown', '#abcdef'])
expect(stdout)
.to.satisfy(isSvg)
.and.to.include('#abcdef')
})
it('should produce PNG badges', async function() {
const child = runCli(['cactus', 'grown', '.png'])
// The buffering done by `child-process-promise` doesn't seem correctly to
// handle binary data.
let chunk
child.childProcess.stdout.once('data', data => {
chunk = data
})
await child
expect(chunk).to.satisfy(isPng)
expect(stdout).to.satisfy(isSvg).and.to.include('#abcdef')
})
})

View File

@@ -0,0 +1,708 @@
'use strict'
const anafanafo = require('anafanafo')
const { brightness } = require('./color')
const fontFamily = 'font-family="Verdana,Geneva,DejaVu Sans,sans-serif"'
const socialFontFamily =
'font-family="Helvetica Neue,Helvetica,Arial,sans-serif"'
const brightnessThreshold = 0.69
function capitalize(s) {
return `${s.charAt(0).toUpperCase()}${s.slice(1)}`
}
function colorsForBackground(color) {
if (brightness(color) <= brightnessThreshold) {
return { textColor: '#fff', shadowColor: '#010101' }
} else {
return { textColor: '#333', shadowColor: '#ccc' }
}
}
function escapeXml(s) {
if (s === undefined || typeof s !== 'string') {
return undefined
} else {
return s
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;')
}
}
function roundUpToOdd(val) {
return val % 2 === 0 ? val + 1 : val
}
function preferredWidthOf(str, options) {
// Increase chances of pixel grid alignment.
return roundUpToOdd(anafanafo(str, options) | 0)
}
function createAccessibleText({ label, message }) {
const labelPrefix = label ? `${label}: ` : ''
return labelPrefix + message
}
function hasLinks({ links }) {
const [leftLink, rightLink] = links || []
const hasLeftLink = leftLink && leftLink.length
const hasRightLink = rightLink && rightLink.length
const hasLink = hasLeftLink && hasRightLink
return { hasLink, hasLeftLink, hasRightLink }
}
function shouldWrapBodyWithLink({ links }) {
const { hasLeftLink, hasRightLink } = hasLinks({ links })
return hasLeftLink && !hasRightLink
}
function renderAriaAttributes({ accessibleText, links }) {
const { hasLink } = hasLinks({ links })
return hasLink ? '' : `role="img" aria-label="${escapeXml(accessibleText)}"`
}
function renderTitle({ accessibleText, links }) {
const { hasLink } = hasLinks({ links })
return hasLink ? '' : `<title>${escapeXml(accessibleText)}</title>`
}
function renderLogo({
logo,
badgeHeight,
horizPadding,
logoWidth = 14,
logoPadding = 0,
}) {
if (logo) {
const logoHeight = 14
const y = (badgeHeight - logoHeight) / 2
const x = horizPadding
return {
hasLogo: true,
totalLogoWidth: logoWidth + logoPadding,
renderedLogo: `<image x="${x}" y="${y}" width="${logoWidth}" height="${logoHeight}" xlink:href="${escapeXml(
logo
)}"/>`,
}
} else {
return { hasLogo: false, totalLogoWidth: 0, renderedLogo: '' }
}
}
function renderLink({
link,
height,
textLength,
horizPadding,
leftMargin,
renderedText,
}) {
const rectHeight = height
const rectWidth = textLength + horizPadding * 2
const rectX = leftMargin > 1 ? leftMargin + 1 : 0
return `<a target="_blank" xlink:href="${escapeXml(link)}">
<rect width="${rectWidth}" x="${rectX}" height="${rectHeight}" fill="rgba(0,0,0,0)" />
${renderedText}
</a>`
}
function renderText({
leftMargin,
horizPadding = 0,
content,
link,
height,
verticalMargin = 0,
shadow = false,
color,
}) {
if (!content.length) {
return { renderedText: '', width: 0 }
}
const textLength = preferredWidthOf(content, { font: '11px Verdana' })
const escapedContent = escapeXml(content)
const shadowMargin = 150 + verticalMargin
const textMargin = 140 + verticalMargin
const outTextLength = 10 * textLength
const x = 10 * (leftMargin + 0.5 * textLength + horizPadding)
let renderedText = ''
const { textColor, shadowColor } = colorsForBackground(color)
if (shadow) {
renderedText = `<text aria-hidden="true" x="${x}" y="${shadowMargin}" fill="${shadowColor}" fill-opacity=".3" transform="scale(.1)" textLength="${outTextLength}">${escapedContent}</text>`
}
renderedText += `<text x="${x}" y="${textMargin}" transform="scale(.1)" fill="${textColor}" textLength="${outTextLength}">${escapedContent}</text>`
return {
renderedText: link
? renderLink({
link,
height,
textLength,
horizPadding,
leftMargin,
renderedText,
})
: renderedText,
width: textLength,
}
}
function renderBadge(
{ links, leftWidth, rightWidth, height, accessibleText },
main
) {
const width = leftWidth + rightWidth
const leftLink = escapeXml(links[0])
return `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="${width}" height="${height}" ${renderAriaAttributes(
{ links, accessibleText }
)}>
${renderTitle({ accessibleText, links })}
${
shouldWrapBodyWithLink({ links })
? `<a target="_blank" xlink:href="${leftLink}">${main}</a>`
: main
}
</svg>`
}
class Badge {
static get fontFamily() {
throw new Error('Not implemented')
}
static get height() {
throw new Error('Not implemented')
}
static get verticalMargin() {
throw new Error('Not implemented')
}
static get shadow() {
throw new Error('Not implemented')
}
constructor({
label,
message,
links,
logo,
logoWidth,
logoPadding,
color = '#4c1',
labelColor,
}) {
const horizPadding = 5
const { hasLogo, totalLogoWidth, renderedLogo } = renderLogo({
logo,
badgeHeight: this.constructor.height,
horizPadding,
logoWidth,
logoPadding,
})
const hasLabel = label.length || labelColor
if (labelColor == null) {
labelColor = '#555'
}
const [leftLink, rightLink] = links
labelColor = hasLabel || hasLogo ? labelColor : color
labelColor = escapeXml(labelColor)
color = escapeXml(color)
const labelMargin = totalLogoWidth + 1
const { renderedText: renderedLabel, width: labelWidth } = renderText({
leftMargin: labelMargin,
horizPadding,
content: label,
link: !shouldWrapBodyWithLink({ links }) && leftLink,
height: this.constructor.height,
verticalMargin: this.constructor.verticalMargin,
shadow: this.constructor.shadow,
color: labelColor,
})
const leftWidth = hasLabel
? labelWidth + 2 * horizPadding + totalLogoWidth
: 0
let messageMargin = leftWidth - (message.length ? 1 : 0)
if (!hasLabel) {
if (hasLogo) {
messageMargin = messageMargin + totalLogoWidth + horizPadding
} else {
messageMargin = messageMargin + 1
}
}
const { renderedText: renderedMessage, width: messageWidth } = renderText({
leftMargin: messageMargin,
horizPadding,
content: message,
link: rightLink,
height: this.constructor.height,
verticalMargin: this.constructor.verticalMargin,
shadow: this.constructor.shadow,
color,
})
let rightWidth = messageWidth + 2 * horizPadding
if (hasLogo && !hasLabel) {
rightWidth += totalLogoWidth + horizPadding - 1
}
const width = leftWidth + rightWidth
const accessibleText = createAccessibleText({ label, message })
this.links = links
this.leftWidth = leftWidth
this.rightWidth = rightWidth
this.width = width
this.labelColor = labelColor
this.color = color
this.label = label
this.message = message
this.accessibleText = accessibleText
this.renderedLogo = renderedLogo
this.renderedLabel = renderedLabel
this.renderedMessage = renderedMessage
}
static render(params) {
return new this(params).render()
}
render() {
throw new Error('Not implemented')
}
}
class Plastic extends Badge {
static get fontFamily() {
return fontFamily
}
static get height() {
return 18
}
static get verticalMargin() {
return -10
}
static get shadow() {
return true
}
render() {
return renderBadge(
{
links: this.links,
leftWidth: this.leftWidth,
rightWidth: this.rightWidth,
accessibleText: this.accessibleText,
height: this.constructor.height,
},
`
<linearGradient id="s" x2="0" y2="100%">
<stop offset="0" stop-color="#fff" stop-opacity=".7"/>
<stop offset=".1" stop-color="#aaa" stop-opacity=".1"/>
<stop offset=".9" stop-color="#000" stop-opacity=".3"/>
<stop offset="1" stop-color="#000" stop-opacity=".5"/>
</linearGradient>
<clipPath id="r">
<rect width="${this.width}" height="${this.constructor.height}" rx="4" fill="#fff"/>
</clipPath>
<g clip-path="url(#r)">
<rect width="${this.leftWidth}" height="${this.constructor.height}" fill="${this.labelColor}"/>
<rect x="${this.leftWidth}" width="${this.rightWidth}" height="${this.constructor.height}" fill="${this.color}"/>
<rect width="${this.width}" height="${this.constructor.height}" fill="url(#s)"/>
</g>
<g fill="#fff" text-anchor="middle" ${this.constructor.fontFamily} text-rendering="geometricPrecision" font-size="110">
${this.renderedLogo}
${this.renderedLabel}
${this.renderedMessage}
</g>`
)
}
}
class Flat extends Badge {
static get fontFamily() {
return fontFamily
}
static get height() {
return 20
}
static get verticalMargin() {
return 0
}
static get shadow() {
return true
}
render() {
return renderBadge(
{
links: this.links,
leftWidth: this.leftWidth,
rightWidth: this.rightWidth,
accessibleText: this.accessibleText,
height: this.constructor.height,
},
`
<linearGradient id="s" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<clipPath id="r">
<rect width="${this.width}" height="${this.constructor.height}" rx="3" fill="#fff"/>
</clipPath>
<g clip-path="url(#r)">
<rect width="${this.leftWidth}" height="${this.constructor.height}" fill="${this.labelColor}"/>
<rect x="${this.leftWidth}" width="${this.rightWidth}" height="${this.constructor.height}" fill="${this.color}"/>
<rect width="${this.width}" height="${this.constructor.height}" fill="url(#s)"/>
</g>
<g fill="#fff" text-anchor="middle" ${this.constructor.fontFamily} text-rendering="geometricPrecision" font-size="110">
${this.renderedLogo}
${this.renderedLabel}
${this.renderedMessage}
</g>`
)
}
}
class FlatSquare extends Badge {
static get fontFamily() {
return fontFamily
}
static get height() {
return 20
}
static get verticalMargin() {
return 0
}
static get shadow() {
return false
}
render() {
return renderBadge(
{
links: this.links,
leftWidth: this.leftWidth,
rightWidth: this.rightWidth,
accessibleText: this.accessibleText,
height: this.constructor.height,
},
`
<g shape-rendering="crispEdges">
<rect width="${this.leftWidth}" height="${this.constructor.height}" fill="${this.labelColor}"/>
<rect x="${this.leftWidth}" width="${this.rightWidth}" height="${this.constructor.height}" fill="${this.color}"/>
</g>
<g fill="#fff" text-anchor="middle" ${this.constructor.fontFamily} text-rendering="geometricPrecision" font-size="110">
${this.renderedLogo}
${this.renderedLabel}
${this.renderedMessage}
</g>`
)
}
}
function social({
label,
message,
links = [],
logo,
logoWidth,
logoPadding,
color = '#4c1',
labelColor = '#555',
}) {
// Social label is styled with a leading capital. Convert to caps here so
// width can be measured using the correct characters.
label = capitalize(label)
const externalHeight = 20
const internalHeight = 19
const labelHorizPadding = 5
const messageHorizPadding = 4
const horizGutter = 6
const { totalLogoWidth, renderedLogo } = renderLogo({
logo,
badgeHeight: externalHeight,
horizPadding: labelHorizPadding,
logoWidth,
logoPadding,
})
const hasMessage = message.length
const font = 'bold 11px Helvetica'
const labelTextWidth = preferredWidthOf(label, { font })
const messageTextWidth = preferredWidthOf(message, { font })
const labelRectWidth = labelTextWidth + totalLogoWidth + 2 * labelHorizPadding
const messageRectWidth = messageTextWidth + 2 * messageHorizPadding
let [leftLink, rightLink] = links
leftLink = escapeXml(leftLink)
rightLink = escapeXml(rightLink)
const { hasLeftLink, hasRightLink, hasLink } = hasLinks({ links })
const accessibleText = createAccessibleText({ label, message })
function renderMessageBubble() {
const messageBubbleMainX = labelRectWidth + horizGutter + 0.5
const messageBubbleNotchX = labelRectWidth + horizGutter
return `
<rect x="${messageBubbleMainX}" y="0.5" width="${messageRectWidth}" height="${internalHeight}" rx="2" fill="#fafafa"/>
<rect x="${messageBubbleNotchX}" y="7.5" width="0.5" height="5" stroke="#fafafa"/>
<path d="M${messageBubbleMainX} 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/>
`
}
function renderLabelText() {
const labelTextX =
10 * (totalLogoWidth + labelTextWidth / 2 + labelHorizPadding)
const labelTextLength = 10 * labelTextWidth
const escapedLabel = escapeXml(label)
const shouldWrapWithLink = hasLeftLink && !shouldWrapBodyWithLink({ links })
const rect = `<rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="${labelRectWidth}" height="${internalHeight}" rx="2" />`
const shadow = `<text aria-hidden="true" x="${labelTextX}" y="150" fill="#fff" transform="scale(.1)" textLength="${labelTextLength}">${escapedLabel}</text>`
const text = `<text x="${labelTextX}" y="140" transform="scale(.1)" textLength="${labelTextLength}">${escapedLabel}</text>`
return shouldWrapWithLink
? `
<a target="_blank" xlink:href="${leftLink}">
${shadow}
${text}
${rect}
</a>
`
: `
${rect}
${shadow}
${text}
`
}
function renderMessageText() {
const messageTextX =
10 * (labelRectWidth + horizGutter + messageRectWidth / 2)
const messageTextLength = 10 * messageTextWidth
const escapedMessage = escapeXml(message)
const rect = `<rect width="${messageRectWidth + 1}" x="${
labelRectWidth + horizGutter
}" height="${internalHeight + 1}" fill="rgba(0,0,0,0)" />`
const shadow = `<text aria-hidden="true" x="${messageTextX}" y="150" fill="#fff" transform="scale(.1)" textLength="${messageTextLength}">${escapedMessage}</text>`
const text = `<text id="rlink" x="${messageTextX}" y="140" transform="scale(.1)" textLength="${messageTextLength}">${escapedMessage}</text>`
return hasRightLink
? `
<a target="_blank" xlink:href="${rightLink}">
${rect}
${shadow}
${text}
</a>
`
: `
${shadow}
${text}
`
}
return renderBadge(
{
links,
leftWidth: labelRectWidth + 1,
rightWidth: hasMessage ? horizGutter + messageRectWidth : 0,
accessibleText,
height: externalHeight,
},
`
<style>a:hover #llink{fill:url(#b);stroke:#ccc}a:hover #rlink{fill:#4183c4}</style>
<linearGradient id="a" x2="0" y2="100%">
<stop offset="0" stop-color="#fcfcfc" stop-opacity="0"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<linearGradient id="b" x2="0" y2="100%">
<stop offset="0" stop-color="#ccc" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<g stroke="#d5d5d5">
<rect stroke="none" fill="#fcfcfc" x="0.5" y="0.5" width="${labelRectWidth}" height="${internalHeight}" rx="2"/>
${hasMessage ? renderMessageBubble() : ''}
</g>
${renderedLogo}
<g aria-hidden="${!hasLink}" fill="#333" text-anchor="middle" ${socialFontFamily} text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px">
${renderLabelText()}
${hasMessage ? renderMessageText() : ''}
</g>
`
)
}
function forTheBadge({
label,
message,
links,
logo,
logoWidth,
logoPadding,
color = '#4c1',
labelColor,
}) {
// For the Badge is styled in all caps. Convert to caps here so widths can
// be measured using the correct characters.
label = label.toUpperCase()
message = message.toUpperCase()
let labelWidth = preferredWidthOf(label, { font: '10px Verdana' }) || 0
let messageWidth =
preferredWidthOf(message, { font: 'bold 10px Verdana' }) || 0
const height = 28
const hasLabel = label.length || labelColor
if (labelColor == null) {
labelColor = '#555'
}
const horizPadding = 9
const { hasLogo, totalLogoWidth, renderedLogo } = renderLogo({
logo,
badgeHeight: height,
horizPadding,
logoWidth,
logoPadding,
})
labelWidth += 10 + totalLogoWidth
if (label.length) {
// Add 10 px of padding, plus approximately 1 px of letter spacing per
// character.
labelWidth += 10 + 2 * label.length
} else if (hasLogo) {
if (hasLabel) {
labelWidth += 7
} else {
labelWidth -= 7
}
} else {
labelWidth -= 11
}
// Add 20 px of padding, plus approximately 1.5 px of letter spacing per
// character.
messageWidth += 20 + 1.5 * message.length
const leftWidth = hasLogo && !hasLabel ? 0 : labelWidth
const rightWidth =
hasLogo && !hasLabel ? messageWidth + labelWidth : messageWidth
labelColor = hasLabel || hasLogo ? labelColor : color
color = escapeXml(color)
labelColor = escapeXml(labelColor)
let [leftLink, rightLink] = links
leftLink = escapeXml(leftLink)
rightLink = escapeXml(rightLink)
const { hasLeftLink, hasRightLink } = hasLinks({ links })
const accessibleText = createAccessibleText({ label, message })
function renderLabelText() {
const { textColor } = colorsForBackground(labelColor)
const labelTextX = ((labelWidth + totalLogoWidth) / 2) * 10
const labelTextLength = (labelWidth - (24 + totalLogoWidth)) * 10
const escapedLabel = escapeXml(label)
const text = `<text fill="${textColor}" x="${labelTextX}" y="175" transform="scale(.1)" textLength="${labelTextLength}">${escapedLabel}</text>`
if (hasLeftLink && !shouldWrapBodyWithLink({ links })) {
return `
<a target="_blank" xlink:href="${leftLink}">
<rect width="${leftWidth}" height="${height}" fill="rgba(0,0,0,0)"/>
${text}
</a>
`
} else {
return text
}
}
function renderMessageText() {
const { textColor } = colorsForBackground(color)
const text = `<text fill="${textColor}" x="${
(labelWidth + messageWidth / 2) * 10
}" y="175" font-weight="bold" transform="scale(.1)" textLength="${
(messageWidth - 24) * 10
}">
${escapeXml(message)}</text>`
if (hasRightLink) {
return `
<a target="_blank" xlink:href="${rightLink}">
<rect width="${rightWidth}" height="${height}" x="${labelWidth}" fill="rgba(0,0,0,0)"/>
${text}
</a>
`
} else {
return text
}
}
return renderBadge(
{
links,
leftWidth,
rightWidth,
accessibleText,
height,
},
`
<g shape-rendering="crispEdges">
<rect width="${leftWidth}" height="${height}" fill="${labelColor}"/>
<rect x="${leftWidth}" width="${rightWidth}" height="${height}" fill="${color}"/>
</g>
<g fill="#fff" text-anchor="middle" ${fontFamily} text-rendering="geometricPrecision" font-size="100">
${renderedLogo}
${hasLabel ? renderLabelText() : ''}
${renderMessageText()}
</g>`
)
}
module.exports = {
plastic: params => Plastic.render(params),
flat: params => Flat.render(params),
'flat-square': params => FlatSquare.render(params),
social,
'for-the-badge': forTheBadge,
}

View File

@@ -1,8 +1,8 @@
'use strict'
const isCSSColor = require('is-css-color')
const { fromString } = require('css-color-converter')
// When updating these, be sure also to update the list in `gh-badges/README.md`.
// When updating these, be sure also to update the list in `badge-maker/README.md`.
const namedColors = {
brightgreen: '#4c1',
green: '#97ca00',
@@ -37,6 +37,10 @@ function isHexColor(s = '') {
return hexColorRegex.test(s)
}
function isCSSColor(color) {
return typeof color === 'string' && fromString(color.trim())
}
function normalizeColor(color) {
if (color === undefined) {
return undefined
@@ -64,9 +68,21 @@ function toSvgColor(color) {
}
}
function brightness(color) {
if (color) {
const cssColor = fromString(color)
if (cssColor) {
const rgb = cssColor.toRgbaArray()
return +((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 255000).toFixed(2)
}
}
return 0
}
module.exports = {
namedColors,
isHexColor,
normalizeColor,
toSvgColor,
brightness,
}

View File

@@ -1,7 +1,12 @@
'use strict'
const { test, given, forCases } = require('sazerac')
const { isHexColor, normalizeColor, toSvgColor } = require('./color')
const {
isHexColor,
normalizeColor,
toSvgColor,
brightness,
} = require('./color')
test(isHexColor, () => {
forCases([given('f00bae'), given('4c1'), given('ABC123')]).expect(true)
@@ -23,15 +28,35 @@ test(normalizeColor, () => {
given('4c1').expect('#4c1')
given('f00f00').expect('#f00f00')
given('ABC123').expect('#abc123')
given('#ccc').expect('#ccc')
given('#fffe').expect('#fffe')
given('#fffeffff').expect('#fffeffff')
given('#ABC123').expect('#abc123')
given('papayawhip').expect('papayawhip')
given('purple').expect('purple')
given(' blue ').expect(' blue ')
given('rgb(100%, 200%, 222%)').expect('rgb(100%, 200%, 222%)')
given('rgb(122, 200, 222)').expect('rgb(122, 200, 222)')
given('rgb(122, 200, 222, 1)').expect('rgb(122, 200, 222, 1)')
given('rgba(100, 20, 111, 1)').expect('rgba(100, 20, 111, 1)')
given('hsl(122, 200%, 222%)').expect('hsl(122, 200%, 222%)')
given('hsla(122, 200%, 222%, 1)').expect('hsla(122, 200%, 222%, 1)')
forCases([
given(),
given(''),
given('not-a-color'),
given('#ABCFGH'),
given('rgb(-100, 20, 111)'),
given('rgb(100%, 200, 222)'),
given('rgba(-100, 20, 111, 1.1)'),
given('hsl(122, 200, 222, 1)'),
given('hsl(122, 200, 222)'),
given('hsl(122, 200, 222%)'),
given(undefined),
given(null),
given(true),
given(1),
given(Math),
given([]),
given({}),
given(() => {}),
@@ -55,3 +80,12 @@ test(toSvgColor, () => {
given('lightgray').expect('#9f9f9f')
given('informational').expect('#007ec6')
})
test(brightness, () => {
given('white').expect(1)
given('black').expect(0)
given('#abc123').expect(0.66)
given('rgb(10, 5, 128)').expect(0.08)
given(undefined).expect(0)
given('not-a-color').expect(0)
})

81
badge-maker/lib/index.js Normal file
View File

@@ -0,0 +1,81 @@
'use strict'
/**
* @module badge-maker
*/
const _makeBadge = require('./make-badge')
class ValidationError extends Error {}
function _validate(format) {
if (format !== Object(format)) {
throw new ValidationError('makeBadge takes an argument of type object')
}
if (!('message' in format)) {
throw new ValidationError('Field `message` is required')
}
const stringFields = ['labelColor', 'color', 'message', 'label']
stringFields.forEach(function (field) {
if (field in format && typeof format[field] !== 'string') {
throw new ValidationError(`Field \`${field}\` must be of type string`)
}
})
const styleValues = [
'plastic',
'flat',
'flat-square',
'for-the-badge',
'social',
]
if ('style' in format && !styleValues.includes(format.style)) {
throw new ValidationError(
`Field \`style\` must be one of (${styleValues.toString()})`
)
}
}
function _clean(format) {
const expectedKeys = ['label', 'message', 'labelColor', 'color', 'style']
const cleaned = {}
Object.keys(format).forEach(key => {
if (format[key] != null && expectedKeys.includes(key)) {
cleaned[key] = format[key]
} else {
throw new ValidationError(
`Unexpected field '${key}'. Allowed values are (${expectedKeys.toString()})`
)
}
})
// Legacy.
cleaned.label = cleaned.label || ''
return cleaned
}
/**
* Create a badge
*
* @param {object} format Object specifying badge data
* @param {string} format.label (Optional) Badge label (e.g: 'build')
* @param {string} format.message (Required) Badge message (e.g: 'passing')
* @param {string} format.labelColor (Optional) Label color
* @param {string} format.color (Optional) Message color
* @param {string} format.style (Optional) Visual style e.g: 'flat'
* @returns {string} Badge in SVG format
* @see https://github.com/badges/shields/tree/master/badge-maker/README.md
*/
function makeBadge(format) {
_validate(format)
const cleanedFormat = _clean(format)
return _makeBadge(cleanedFormat)
}
module.exports = {
makeBadge,
ValidationError,
}

View File

@@ -0,0 +1,75 @@
'use strict'
const { expect } = require('chai')
const isSvg = require('is-svg')
const { makeBadge, ValidationError } = require('.')
describe('makeBadge function', function () {
it('should produce badge with valid input', function () {
expect(
makeBadge({
label: 'build',
message: 'passed',
})
).to.satisfy(isSvg)
expect(
makeBadge({
message: 'passed',
})
).to.satisfy(isSvg)
expect(
makeBadge({
label: 'build',
message: 'passed',
color: 'green',
style: 'flat',
})
).to.satisfy(isSvg)
})
it('should throw a ValidationError with invalid inputs', function () {
;[null, undefined, 7, 'foo', 4.25].forEach(x => {
console.log(x)
expect(() => makeBadge(x)).to.throw(
ValidationError,
'makeBadge takes an argument of type object'
)
})
expect(() => makeBadge({})).to.throw(
ValidationError,
'Field `message` is required'
)
expect(() => makeBadge({ label: 'build' })).to.throw(
ValidationError,
'Field `message` is required'
)
expect(() =>
makeBadge({ label: 'build', message: 'passed', labelColor: 7 })
).to.throw(ValidationError, 'Field `labelColor` must be of type string')
expect(() =>
makeBadge({ label: 'build', message: 'passed', format: 'png' })
).to.throw(ValidationError, "Unexpected field 'format'")
expect(() =>
makeBadge({ label: 'build', message: 'passed', template: 'flat' })
).to.throw(ValidationError, "Unexpected field 'template'")
expect(() =>
makeBadge({ label: 'build', message: 'passed', foo: 'bar' })
).to.throw(ValidationError, "Unexpected field 'foo'")
expect(() =>
makeBadge({
label: 'build',
message: 'passed',
style: 'something else',
})
).to.throw(
ValidationError,
'Field `style` must be one of (plastic,flat,flat-square,for-the-badge,social)'
)
expect(() =>
makeBadge({ label: 'build', message: 'passed', style: 'popout' })
).to.throw(
ValidationError,
'Field `style` must be one of (plastic,flat,flat-square,for-the-badge,social)'
)
})
})

View File

@@ -0,0 +1,70 @@
'use strict'
const { normalizeColor, toSvgColor } = require('./color')
const badgeRenderers = require('./badge-renderers')
function stripXmlWhitespace(xml) {
return xml.replace(/>\s+/g, '>').replace(/<\s+/g, '<').trim()
}
/*
note: makeBadge() is fairly thinly wrapped so if we are making changes here
it is likely this will impact on the package's public interface in index.js
*/
module.exports = function makeBadge({
format,
style = 'flat',
label,
message,
color,
labelColor,
logo,
logoPosition,
logoWidth,
links = ['', ''],
}) {
if (!logo && (logoPosition !== undefined || logoWidth !== undefined)) {
throw Error('`logoPosition` and `logoWidth` require `logo`')
}
// String coercion and whitespace removal.
label = `${label}`.trim()
message = `${message}`.trim()
// This ought to be the responsibility of the server, not `makeBadge`.
if (format === 'json') {
return JSON.stringify({
label,
message,
logoWidth,
// Only call normalizeColor for the JSON case: this is handled
// internally by toSvgColor in the SVG case.
color: normalizeColor(color),
labelColor: normalizeColor(labelColor),
link: links,
name: label,
value: message,
})
}
const render = badgeRenderers[style]
if (!render) {
throw new Error(`Unknown badge style: '${style}'`)
}
logoWidth = +logoWidth || (logo ? 14 : 0)
return stripXmlWhitespace(
render({
label,
message,
links,
logo,
logoPosition,
logoWidth,
logoPadding: logo && label.length ? 3 : 0,
color: toSvgColor(color),
labelColor: toSvgColor(labelColor),
})
)
}

View File

@@ -0,0 +1,583 @@
'use strict'
const { test, given, forCases } = require('sazerac')
const { expect } = require('chai')
const snapshot = require('snap-shot-it')
const isSvg = require('is-svg')
const prettier = require('prettier')
const makeBadge = require('./make-badge')
function expectBadgeToMatchSnapshot(format) {
snapshot(prettier.format(makeBadge(format), { parser: 'html' }))
}
function testColor(color = '', colorAttr = 'color') {
return JSON.parse(
makeBadge({
label: 'name',
message: 'Bob',
[colorAttr]: color,
format: 'json',
})
).color
}
describe('The badge generator', function () {
describe('color test', function () {
test(testColor, () => {
// valid hex
forCases([
given('#4c1'),
given('#4C1'),
given('4C1'),
given('4c1'),
]).expect('#4c1')
forCases([
given('#abc123'),
given('#ABC123'),
given('abc123'),
given('ABC123'),
]).expect('#abc123')
// valid rgb(a)
given('rgb(0,128,255)').expect('rgb(0,128,255)')
given('rgb(220,128,255,0.5)').expect('rgb(220,128,255,0.5)')
given('rgba(0,0,255)').expect('rgba(0,0,255)')
given('rgba(0,128,255,0)').expect('rgba(0,128,255,0)')
// valid hsl(a)
given('hsl(100, 56%, 10%)').expect('hsl(100, 56%, 10%)')
given('hsl(360,50%,50%,0.5)').expect('hsl(360,50%,50%,0.5)')
given('hsla(25,20%,0%,0.1)').expect('hsla(25,20%,0%,0.1)')
given('hsla(0,50%,101%)').expect('hsla(0,50%,101%)')
// CSS named color.
given('papayawhip').expect('papayawhip')
// Shields named color.
given('red').expect('red')
given('green').expect('green')
given('blue').expect('blue')
given('yellow').expect('yellow')
// Semantic color alias
given('success').expect('brightgreen')
given('informational').expect('blue')
forCases(
// invalid hex
given('#123red'), // contains letter above F
given('#red'), // contains letter above F
// neither a css named color nor colorscheme
given('notacolor'),
given('bluish'),
given('almostred'),
given('brightmaroon'),
given('cactus')
).expect(undefined)
})
})
describe('color aliases', function () {
test(testColor, () => {
forCases([given('#4c1', 'color')]).expect('#4c1')
})
})
describe('SVG', function () {
it('should produce SVG', function () {
expect(makeBadge({ label: 'cactus', message: 'grown', format: 'svg' }))
.to.satisfy(isSvg)
.and.to.include('cactus')
.and.to.include('grown')
})
it('should match snapshot', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
})
})
})
describe('JSON', function () {
it('should produce the expected JSON', function () {
const json = makeBadge({
label: 'cactus',
message: 'grown',
format: 'json',
links: ['https://example.com/', 'https://other.example.com/'],
})
expect(JSON.parse(json)).to.deep.equal({
name: 'cactus',
label: 'cactus',
value: 'grown',
message: 'grown',
link: ['https://example.com/', 'https://other.example.com/'],
})
})
it('should replace undefined svg badge style with "flat"', function () {
const jsonBadgeWithUnknownStyle = makeBadge({
label: 'name',
message: 'Bob',
format: 'svg',
})
const jsonBadgeWithDefaultStyle = makeBadge({
label: 'name',
message: 'Bob',
format: 'svg',
style: 'flat',
})
expect(jsonBadgeWithUnknownStyle)
.to.equal(jsonBadgeWithDefaultStyle)
.and.to.satisfy(isSvg)
})
it('should fail with unknown svg badge style', function () {
expect(() =>
makeBadge({
label: 'name',
message: 'Bob',
format: 'svg',
style: 'unknown_style',
})
).to.throw(Error, "Unknown badge style: 'unknown_style'")
})
})
describe('"flat" template badge generation', function () {
it('should match snapshots: message/label, no logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
labelColor: '#0f0',
})
})
it('should match snapshots: message/label, with logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, no logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
})
})
it('should match snapshots: message only, with logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, with logo and labelColor', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message/label, with links', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#b3e',
labelColor: '#0f0',
links: ['https://shields.io/', 'https://www.google.co.uk/'],
})
})
})
describe('"flat-square" template badge generation', function () {
it('should match snapshots: message/label, no logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
})
})
it('should match snapshots: message/label, with logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, no logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
})
})
it('should match snapshots: message only, with logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, with logo and labelColor', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message/label, with links', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
links: ['https://shields.io/', 'https://www.google.co.uk/'],
})
})
})
describe('"plastic" template badge generation', function () {
it('should match snapshots: message/label, no logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
labelColor: '#0f0',
})
})
it('should match snapshots: message/label, with logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, no logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
})
})
it('should match snapshots: message only, with logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, with logo and labelColor', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message/label, with links', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'plastic',
color: '#b3e',
labelColor: '#0f0',
links: ['https://shields.io/', 'https://www.google.co.uk/'],
})
})
})
describe('"for-the-badge" template badge generation', function () {
// https://github.com/badges/shields/issues/1280
it('numbers should produce a string', function () {
expect(
makeBadge({
label: 1998,
message: 1999,
format: 'svg',
style: 'for-the-badge',
})
)
.to.include('1998')
.and.to.include('1999')
})
it('lowercase/mixedcase string should produce uppercase string', function () {
expect(
makeBadge({
label: 'Label',
message: '1 string',
format: 'svg',
style: 'for-the-badge',
})
)
.to.include('LABEL')
.and.to.include('1 STRING')
})
it('should match snapshots: message/label, no logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
})
})
it('should match snapshots: message/label, with logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, no logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
})
})
it('should match snapshots: message only, with logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, with logo and labelColor', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message/label, with links', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
links: ['https://shields.io/', 'https://www.google.co.uk/'],
})
})
})
describe('"social" template badge generation', function () {
it('should produce capitalized string for badge key', function () {
expect(
makeBadge({
label: 'some-key',
message: 'some-value',
format: 'svg',
style: 'social',
})
)
.to.include('Some-key')
.and.to.include('some-value')
})
// https://github.com/badges/shields/issues/1606
it('should handle empty strings used as badge keys', function () {
expect(
makeBadge({
label: '',
message: 'some-value',
format: 'json',
style: 'social',
})
)
.to.include('""')
.and.to.include('some-value')
})
it('should match snapshots: message/label, no logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
labelColor: '#0f0',
})
})
it('should match snapshots: message/label, with logo', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, no logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
})
})
it('should match snapshots: message only, with logo', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message only, with logo and labelColor', function () {
expectBadgeToMatchSnapshot({
label: '',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
it('should match snapshots: message/label, with links', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'social',
color: '#b3e',
labelColor: '#0f0',
links: ['https://shields.io/', 'https://www.google.co.uk/'],
})
})
})
describe('badges with logos should always produce the same badge', function () {
it('badge with logo', function () {
expectBadgeToMatchSnapshot({
label: 'label',
message: 'message',
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
})
})
describe('text colors', function () {
it('should use black text when the label color is light', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'flat',
color: '#000',
labelColor: '#f3f3f3',
})
})
it('should use black text when the message color is light', function () {
expectBadgeToMatchSnapshot({
label: 'cactus',
message: 'grown',
format: 'svg',
style: 'for-the-badge',
color: '#e2ffe1',
labelColor: '#000',
})
})
})
})

View File

@@ -1,6 +1,6 @@
{
"name": "gh-badges",
"version": "2.2.1",
"name": "badge-maker",
"version": "3.3.0",
"description": "Shields.io badge library",
"keywords": [
"GitHub",
@@ -9,11 +9,12 @@
"image",
"shields.io"
],
"types": "index.d.ts",
"main": "lib/index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/badges/shields.git",
"directory": "gh-badges"
"directory": "badge-maker"
},
"author": "Thaddée Tyl <thaddee.tyl@gmail.com>",
"license": "CC0-1.0",
@@ -25,7 +26,7 @@
"badge": "lib/badge-cli.js"
},
"engines": {
"node": ">= 8",
"node": ">= 10",
"npm": ">= 5"
},
"collective": {
@@ -34,11 +35,8 @@
"logo": "https://opencollective.com/opencollective/logo.txt"
},
"dependencies": {
"anafanafo": "^1.0.0",
"dot": "^1.1.2",
"gm": "^1.23.0",
"is-css-color": "^1.0.0",
"svgo": "^1.1.1"
"anafanafo": "2.0.0",
"css-color-converter": "^2.0.0"
},
"scripts": {
"test": "echo 'Run tests from parent dir'; false"

View File

@@ -30,9 +30,6 @@ public:
__name: 'ALLOWED_ORIGIN'
__format: 'json'
persistence:
dir: 'PERSISTENCE_DIR'
services:
bitbucketServer:
authorizedOrigins: 'BITBUCKET_SERVER_ORIGINS'
@@ -62,9 +59,9 @@ public:
rateLimit: 'RATE_LIMIT'
integrations:
default:
fetchLimit: 'FETCH_LIMIT'
fetchLimit: 'FETCH_LIMIT'
requireCloudflare: 'REQUIRE_CLOUDFLARE'
private:
azure_devops_token: 'AZURE_DEVOPS_TOKEN'
@@ -74,6 +71,7 @@ private:
bitbucket_password: 'BITBUCKET_PASS'
bitbucket_server_username: 'BITBUCKET_SERVER_USER'
bitbucket_server_password: 'BITBUCKET_SERVER_PASS'
discord_bot_token: 'DISCORD_BOT_TOKEN'
drone_token: 'DRONE_TOKEN'
gh_client_id: 'GH_CLIENT_ID'
gh_client_secret: 'GH_CLIENT_SECRET'
@@ -98,3 +96,4 @@ private:
wheelmap_token: 'WHEELMAP_TOKEN'
influx_username: 'INFLUX_USERNAME'
influx_password: 'INFLUX_PASSWORD'
youtube_api_key: 'YOUTUBE_API_KEY'

View File

@@ -16,9 +16,6 @@ public:
cors:
allowedOrigin: []
persistence:
dir: './private'
services:
github:
baseUri: 'https://api.github.com/'
@@ -34,17 +31,8 @@ public:
handleInternalErrors: true
integrations:
default:
fetchLimit: '10MB'
fetchLimit: '10MB'
DynamicJson:
fetchLimit: '2MB'
DynamicXml:
fetchLimit: '128KB'
DynamicYaml:
fetchLimit: '64KB'
requireCloudflare: false
private: {}

View File

@@ -1,5 +1,6 @@
private:
# These are the keys which are set on the production servers.
discord_bot_token: ...
gh_client_id: ...
gh_client_secret: ...
redis_url: ...
@@ -10,3 +11,4 @@ private:
twitch_client_id: ...
twitch_client_secret: ...
wheelmap_token: ...
youtube_api_key: ...

View File

@@ -8,3 +8,4 @@ private:
twitch_client_id: '...'
twitch_client_secret: '...'
wheelmap_token: '...'
youtube_api_key: '...'

View File

@@ -2,7 +2,12 @@ public:
metrics:
prometheus:
enabled: true
endpointEnabled: true
influx:
enabled: true
url: https://metrics.shields.io/telegraf
instanceIdFrom: env-var
instanceIdEnvVarName: HEROKU_DYNO_ID
envLabel: shields-production
ssl:
isSecure: true
@@ -13,7 +18,3 @@ public:
redirectUrl: 'https://shields.io/'
rasterUrl: 'https://raster.shields.io'
private:
# These are not really private; they should be moved to `public`.
shields_ips: ['192.99.59.72', '51.254.114.150', '149.56.96.133']

View File

@@ -38,18 +38,22 @@ export function staticBadgeUrl({
baseUrl,
label,
message,
labelColor,
color,
style,
namedLogo,
format,
links,
}: {
baseUrl?: string
label: string
message: string
labelColor?: string
color?: string
style?: string
namedLogo?: string
format?: string
links?: string[]
}): string
export function queryStringStaticBadgeUrl({

View File

@@ -59,15 +59,19 @@ function staticBadgeUrl({
baseUrl = '',
label,
message,
labelColor,
color = 'lightgray',
style,
namedLogo,
format = '',
links = [],
}) {
const path = [label, message, color].map(encodeField).join('-')
const outQueryString = queryString.stringify({
labelColor,
style,
logo: namedLogo,
link: links,
})
const outExt = format.length ? `.${format}` : ''
const suffix = outQueryString ? `?${outQueryString}` : ''

View File

@@ -10,7 +10,7 @@ const {
dynamicBadgeUrl,
} = require('./make-badge-url')
describe('Badge URL generation functions', function() {
describe('Badge URL generation functions', function () {
test(badgeUrlFromPath, () => {
given({
baseUrl: 'http://example.com',

View File

@@ -146,9 +146,11 @@ class AuthHelper {
)
}
get _bearerAuthHeader() {
_bearerAuthHeader(bearerKey) {
const { _pass: pass } = this
return this.isConfigured ? { Authorization: `Bearer ${pass}` } : undefined
return this.isConfigured
? { Authorization: `${bearerKey} ${pass}` }
: undefined
}
static _mergeHeaders(requestParams, headers) {
@@ -168,9 +170,15 @@ class AuthHelper {
}
}
withBearerAuthHeader(requestParams) {
withBearerAuthHeader(
requestParams,
bearerKey = 'Bearer' // lgtm [js/hardcoded-credentials]
) {
return this._withAnyAuth(requestParams, requestParams =>
this.constructor._mergeHeaders(requestParams, this._bearerAuthHeader)
this.constructor._mergeHeaders(
requestParams,
this._bearerAuthHeader(bearerKey)
)
)
}

View File

@@ -5,20 +5,20 @@ const { test, given, forCases } = require('sazerac')
const { AuthHelper } = require('./auth-helper')
const { InvalidParameter } = require('./errors')
describe('AuthHelper', function() {
describe('constructor checks', function() {
it('throws without userKey or passKey', function() {
describe('AuthHelper', function () {
describe('constructor checks', function () {
it('throws without userKey or passKey', function () {
expect(() => new AuthHelper({}, {})).to.throw(
Error,
'Expected userKey or passKey to be set'
)
})
it('throws without serviceKey or authorizedOrigins', function() {
it('throws without serviceKey or authorizedOrigins', function () {
expect(
() => new AuthHelper({ userKey: 'myci_user', passKey: 'myci_pass' }, {})
).to.throw(Error, 'Expected authorizedOrigins or serviceKey to be set')
})
it('throws when authorizedOrigins is not an array', function() {
it('throws when authorizedOrigins is not an array', function () {
expect(
() =>
new AuthHelper(
@@ -33,7 +33,7 @@ describe('AuthHelper', function() {
})
})
describe('isValid', function() {
describe('isValid', function () {
function validate(config, privateConfig) {
return new AuthHelper(
{ authorizedOrigins: ['https://example.test'], ...config },
@@ -89,7 +89,7 @@ describe('AuthHelper', function() {
})
})
describe('_basicAuth', function() {
describe('_basicAuth', function () {
function validate(config, privateConfig) {
return new AuthHelper(
{ authorizedOrigins: ['https://example.test'], ...config },
@@ -128,7 +128,7 @@ describe('AuthHelper', function() {
})
})
describe('_isInsecureSslRequest', function() {
describe('_isInsecureSslRequest', function () {
test(AuthHelper._isInsecureSslRequest, () => {
forCases([
given({ url: 'http://example.test' }),
@@ -146,31 +146,31 @@ describe('AuthHelper', function() {
})
})
describe('enforceStrictSsl', function() {
describe('enforceStrictSsl', function () {
const authConfig = {
userKey: 'myci_user',
passKey: 'myci_pass',
serviceKey: 'myci',
}
context('by default', function() {
context('by default', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: { myci: { authorizedOrigins: ['http://myci.test'] } },
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
})
it('does not throw for secure requests', function() {
it('does not throw for secure requests', function () {
expect(() => authHelper.enforceStrictSsl({})).not.to.throw()
})
it('throws for insecure requests', function() {
it('throws for insecure requests', function () {
expect(() =>
authHelper.enforceStrictSsl({ options: { strictSSL: false } })
).to.throw(InvalidParameter)
})
})
context("when strict SSL isn't required", function() {
context("when strict SSL isn't required", function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
@@ -182,10 +182,10 @@ describe('AuthHelper', function() {
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
})
it('does not throw for secure requests', function() {
it('does not throw for secure requests', function () {
expect(() => authHelper.enforceStrictSsl({})).not.to.throw()
})
it('does not throw for insecure requests', function() {
it('does not throw for insecure requests', function () {
expect(() =>
authHelper.enforceStrictSsl({ options: { strictSSL: false } })
).not.to.throw()
@@ -193,14 +193,14 @@ describe('AuthHelper', function() {
})
})
describe('shouldAuthenticateRequest', function() {
describe('shouldAuthenticateRequest', function () {
const authConfig = {
userKey: 'myci_user',
passKey: 'myci_pass',
serviceKey: 'myci',
}
context('by default', function() {
context('by default', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
@@ -213,12 +213,12 @@ describe('AuthHelper', function() {
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function() {
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test/api' }).expect(true)
})
})
describe('an insecure request', function() {
describe('an insecure request', function () {
test(shouldAuthenticateRequest, () => {
given({
url: 'https://myci.test/api',
@@ -226,7 +226,7 @@ describe('AuthHelper', function() {
}).expect(false)
})
})
describe('a request to an unauthorized origin', function() {
describe('a request to an unauthorized origin', function () {
test(shouldAuthenticateRequest, () => {
forCases([
given({ url: 'http://myci.test/api' }),
@@ -237,7 +237,7 @@ describe('AuthHelper', function() {
})
})
context('when auth over insecure SSL is allowed', function() {
context('when auth over insecure SSL is allowed', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
@@ -251,12 +251,12 @@ describe('AuthHelper', function() {
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function() {
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test' }).expect(true)
})
})
describe('an insecure request', function() {
describe('an insecure request', function () {
test(shouldAuthenticateRequest, () => {
given({
url: 'https://myci.test',
@@ -264,7 +264,7 @@ describe('AuthHelper', function() {
}).expect(true)
})
})
describe('a request to an unauthorized origin', function() {
describe('a request to an unauthorized origin', function () {
test(shouldAuthenticateRequest, () => {
forCases([
given({ url: 'http://myci.test' }),
@@ -275,7 +275,7 @@ describe('AuthHelper', function() {
})
})
context('when the service is partly configured', function() {
context('when the service is partly configured', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
@@ -289,7 +289,7 @@ describe('AuthHelper', function() {
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function() {
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test' }).expect(false)
})
@@ -297,7 +297,7 @@ describe('AuthHelper', function() {
})
})
describe('withBasicAuth', function() {
describe('withBasicAuth', function () {
const authHelper = new AuthHelper(
{
userKey: 'myci_user',
@@ -318,7 +318,7 @@ describe('AuthHelper', function() {
const withBasicAuth = requestOptions =>
authHelper.withBasicAuth(requestOptions)
describe('authenticates a secure request to an authorized origin', function() {
describe('authenticates a secure request to an authorized origin', function () {
test(withBasicAuth, () => {
given({
url: 'https://myci.test/api',
@@ -343,7 +343,7 @@ describe('AuthHelper', function() {
})
})
describe('does not authenticate a request to an unauthorized origin', function() {
describe('does not authenticate a request to an unauthorized origin', function () {
test(withBasicAuth, () => {
given({
url: 'https://other.test/api',
@@ -364,7 +364,7 @@ describe('AuthHelper', function() {
})
})
describe('throws on an insecure SSL request', function() {
describe('throws on an insecure SSL request', function () {
expect(() =>
withBasicAuth({
url: 'https://myci.test/api',

View File

@@ -46,6 +46,9 @@ class BaseGraphqlService extends BaseService {
* and custom error messages e.g: `{ 404: 'package not found' }`.
* This can be used to extend or override the
* [default](https://github.com/badges/shields/blob/master/core/base-service/check-error-response.js#L5)
* @param {Function} [attrs.transformJson=data => data] Function which takes the raw json and transforms it before
* further procesing. In case of multiple query in a single graphql call and few of them
* throw error, partial data might be used ignoring the error.
* @param {Function} [attrs.transformErrors=defaultTransformErrors]
* Function which takes an errors object from a GraphQL
* response and returns an instance of ShieldsRuntimeError.
@@ -61,6 +64,7 @@ class BaseGraphqlService extends BaseService {
variables = {},
options = {},
httpErrorMessages = {},
transformJson = data => data,
transformErrors = defaultTransformErrors,
}) {
const mergedOptions = {
@@ -74,7 +78,7 @@ class BaseGraphqlService extends BaseService {
options: mergedOptions,
errorMessages: httpErrorMessages,
})
const json = this._parseJson(buffer)
const json = transformJson(this._parseJson(buffer))
if (json.errors) {
const exception = transformErrors(json.errors)
if (exception instanceof ShieldsRuntimeError) {

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
const gql = require('graphql-tag')
const sinon = require('sinon')
@@ -12,15 +12,8 @@ const dummySchema = Joi.object({
}).required()
class DummyGraphqlService extends BaseGraphqlService {
static get category() {
return 'cat'
}
static get route() {
return {
base: 'foo',
}
}
static category = 'cat'
static route = { base: 'foo' }
async handle() {
const { requiredString } = await this._requestGraphql({
@@ -36,10 +29,10 @@ class DummyGraphqlService extends BaseGraphqlService {
}
}
describe('BaseGraphqlService', function() {
describe('Making requests', function() {
describe('BaseGraphqlService', function () {
describe('Making requests', function () {
let sendAndCacheRequest
beforeEach(function() {
beforeEach(function () {
sendAndCacheRequest = sinon.stub().returns(
Promise.resolve({
buffer: '{"some": "json"}',
@@ -48,7 +41,7 @@ describe('BaseGraphqlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyGraphqlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -64,7 +57,7 @@ describe('BaseGraphqlService', function() {
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithOptions extends DummyGraphqlService {
async handle() {
const { value } = await this._requestGraphql({
@@ -98,8 +91,8 @@ describe('BaseGraphqlService', function() {
})
})
describe('Making badges', function() {
it('handles valid json responses', async function() {
describe('Making badges', function () {
it('handles valid json responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: '{"requiredString": "some-string"}',
res: { statusCode: 200 },
@@ -114,7 +107,7 @@ describe('BaseGraphqlService', function() {
})
})
it('handles json responses which do not match the schema', async function() {
it('handles json responses which do not match the schema', async function () {
const sendAndCacheRequest = async () => ({
buffer: '{"unexpectedKey": "some-string"}',
res: { statusCode: 200 },
@@ -131,7 +124,7 @@ describe('BaseGraphqlService', function() {
})
})
it('handles unparseable json responses', async function() {
it('handles unparseable json responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: 'not json',
res: { statusCode: 200 },
@@ -149,8 +142,8 @@ describe('BaseGraphqlService', function() {
})
})
describe('Error handling', function() {
it('handles generic error', async function() {
describe('Error handling', function () {
it('handles generic error', async function () {
const sendAndCacheRequest = async () => ({
buffer: '{ "errors": [ { "message": "oh noes!!" } ] }',
res: { statusCode: 200 },
@@ -167,7 +160,7 @@ describe('BaseGraphqlService', function() {
})
})
it('handles custom error', async function() {
it('handles custom error', async function () {
class WithErrorHandler extends DummyGraphqlService {
async handle() {
const { requiredString } = await this._requestGraphql({
@@ -178,7 +171,7 @@ describe('BaseGraphqlService', function() {
requiredString
}
`,
transformErrors: function(errors) {
transformErrors: function (errors) {
if (errors[0].message === 'oh noes!!') {
return new InvalidResponse({
prettyMessage: 'a terrible thing has happened',

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
const sinon = require('sinon')
const BaseJsonService = require('./base-json')
@@ -10,15 +10,8 @@ const dummySchema = Joi.object({
}).required()
class DummyJsonService extends BaseJsonService {
static get category() {
return 'cat'
}
static get route() {
return {
base: 'foo',
}
}
static category = 'cat'
static route = { base: 'foo' }
async handle() {
const { requiredString } = await this._requestJson({
@@ -29,10 +22,10 @@ class DummyJsonService extends BaseJsonService {
}
}
describe('BaseJsonService', function() {
describe('Making requests', function() {
describe('BaseJsonService', function () {
describe('Making requests', function () {
let sendAndCacheRequest
beforeEach(function() {
beforeEach(function () {
sendAndCacheRequest = sinon.stub().returns(
Promise.resolve({
buffer: '{"some": "json"}',
@@ -41,7 +34,7 @@ describe('BaseJsonService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyJsonService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -55,7 +48,7 @@ describe('BaseJsonService', function() {
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithOptions extends DummyJsonService {
async handle() {
const { value } = await this._requestJson({
@@ -83,8 +76,8 @@ describe('BaseJsonService', function() {
})
})
describe('Making badges', function() {
it('handles valid json responses', async function() {
describe('Making badges', function () {
it('handles valid json responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: '{"requiredString": "some-string"}',
res: { statusCode: 200 },
@@ -99,7 +92,7 @@ describe('BaseJsonService', function() {
})
})
it('handles json responses which do not match the schema', async function() {
it('handles json responses which do not match the schema', async function () {
const sendAndCacheRequest = async () => ({
buffer: '{"unexpectedKey": "some-string"}',
res: { statusCode: 200 },
@@ -116,7 +109,7 @@ describe('BaseJsonService', function() {
})
})
it('handles unparseable json responses', async function() {
it('handles unparseable json responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: 'not json',
res: { statusCode: 200 },

View File

@@ -1,6 +1,6 @@
'use strict'
const makeBadge = require('../../gh-badges/lib/make-badge')
const makeBadge = require('../../badge-maker/lib/make-badge')
const BaseService = require('./base')
const { MetricHelper } = require('./metric-helper')
const { setCacheHeaders } = require('./cache-headers')

View File

@@ -1,6 +1,6 @@
'use strict'
const makeBadge = require('../../gh-badges/lib/make-badge')
const makeBadge = require('../../badge-maker/lib/make-badge')
const BaseService = require('./base')
const {
serverHasBeenUpSinceResourceCached,

View File

@@ -2,28 +2,17 @@
const { expect } = require('chai')
const sinon = require('sinon')
const Joi = require('@hapi/joi')
const makeBadge = require('../../gh-badges/lib/make-badge')
const Joi = require('joi')
const makeBadge = require('../../badge-maker/lib/make-badge')
const BaseSvgScrapingService = require('./base-svg-scraping')
function makeExampleSvg({ label, message }) {
return makeBadge({ text: ['this is the label', 'this is the result!'] })
}
const schema = Joi.object({
message: Joi.string().required(),
}).required()
class DummySvgScrapingService extends BaseSvgScrapingService {
static get category() {
return 'cat'
}
static get route() {
return {
base: 'foo',
}
}
static category = 'cat'
static route = { base: 'foo' }
async handle() {
return this._requestSvg({
@@ -33,25 +22,22 @@ class DummySvgScrapingService extends BaseSvgScrapingService {
}
}
describe('BaseSvgScrapingService', function() {
describe('BaseSvgScrapingService', function () {
const exampleLabel = 'this is the label'
const exampleMessage = 'this is the result!'
const exampleSvg = makeExampleSvg({
label: exampleLabel,
message: exampleMessage,
})
const exampleSvg = makeBadge({ label: exampleLabel, message: exampleMessage })
describe('valueFromSvgBadge', function() {
it('should find the correct value', function() {
describe('valueFromSvgBadge', function () {
it('should find the correct value', function () {
expect(BaseSvgScrapingService.valueFromSvgBadge(exampleSvg)).to.equal(
exampleMessage
)
})
})
describe('Making requests', function() {
describe('Making requests', function () {
let sendAndCacheRequest
beforeEach(function() {
beforeEach(function () {
sendAndCacheRequest = sinon.stub().returns(
Promise.resolve({
buffer: exampleSvg,
@@ -60,7 +46,7 @@ describe('BaseSvgScrapingService', function() {
)
})
it('invokes _sendAndCacheRequest with the expected header', async function() {
it('invokes _sendAndCacheRequest with the expected header', async function () {
await DummySvgScrapingService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -74,7 +60,7 @@ describe('BaseSvgScrapingService', function() {
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithCustomOptions extends DummySvgScrapingService {
async handle() {
const { message } = await this._requestSvg({
@@ -105,8 +91,8 @@ describe('BaseSvgScrapingService', function() {
})
})
describe('Making badges', function() {
it('handles valid svg responses', async function() {
describe('Making badges', function () {
it('handles valid svg responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: exampleSvg,
res: { statusCode: 200 },
@@ -121,11 +107,9 @@ describe('BaseSvgScrapingService', function() {
})
})
it('allows overriding the valueMatcher', async function() {
it('allows overriding the valueMatcher', async function () {
class WithValueMatcher extends BaseSvgScrapingService {
static get route() {
return {}
}
static route = {}
async handle() {
return this._requestSvg({
@@ -149,7 +133,7 @@ describe('BaseSvgScrapingService', function() {
})
})
it('handles unparseable svg responses', async function() {
it('handles unparseable svg responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: 'not svg yo',
res: { statusCode: 200 },

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
const sinon = require('sinon')
const BaseXmlService = require('./base-xml')
@@ -10,15 +10,8 @@ const dummySchema = Joi.object({
}).required()
class DummyXmlService extends BaseXmlService {
static get category() {
return 'cat'
}
static get route() {
return {
base: 'foo',
}
}
static category = 'cat'
static route = { base: 'foo' }
async handle() {
const { requiredString } = await this._requestXml({
@@ -29,10 +22,10 @@ class DummyXmlService extends BaseXmlService {
}
}
describe('BaseXmlService', function() {
describe('Making requests', function() {
describe('BaseXmlService', function () {
describe('Making requests', function () {
let sendAndCacheRequest
beforeEach(function() {
beforeEach(function () {
sendAndCacheRequest = sinon.stub().returns(
Promise.resolve({
buffer: '<requiredString>some-string</requiredString>',
@@ -41,7 +34,7 @@ describe('BaseXmlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyXmlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -55,11 +48,9 @@ describe('BaseXmlService', function() {
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithCustomOptions extends BaseXmlService {
static get route() {
return {}
}
static route = {}
async handle() {
const { requiredString } = await this._requestXml({
@@ -87,8 +78,8 @@ describe('BaseXmlService', function() {
})
})
describe('Making badges', function() {
it('handles valid xml responses', async function() {
describe('Making badges', function () {
it('handles valid xml responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: '<requiredString>some-string</requiredString>',
res: { statusCode: 200 },
@@ -103,7 +94,7 @@ describe('BaseXmlService', function() {
})
})
it('parses XML response with custom parser options', async function() {
it('parses XML response with custom parser options', async function () {
const customParserOption = { trimValues: false }
class DummyXmlServiceWithParserOption extends DummyXmlService {
async handle() {
@@ -130,7 +121,7 @@ describe('BaseXmlService', function() {
})
})
it('handles xml responses which do not match the schema', async function() {
it('handles xml responses which do not match the schema', async function () {
const sendAndCacheRequest = async () => ({
buffer: '<unexpectedAttribute>some-string</unexpectedAttribute>',
res: { statusCode: 200 },
@@ -147,7 +138,7 @@ describe('BaseXmlService', function() {
})
})
it('handles unparseable xml responses', async function() {
it('handles unparseable xml responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: 'not xml',
res: { statusCode: 200 },

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
const sinon = require('sinon')
const BaseYamlService = require('./base-yaml')
@@ -10,15 +10,8 @@ const dummySchema = Joi.object({
}).required()
class DummyYamlService extends BaseYamlService {
static get category() {
return 'cat'
}
static get route() {
return {
base: 'foo',
}
}
static category = 'cat'
static route = { base: 'foo' }
async handle() {
const { requiredString } = await this._requestYaml({
@@ -45,10 +38,10 @@ foo: bar
foo: baz
`
describe('BaseYamlService', function() {
describe('Making requests', function() {
describe('BaseYamlService', function () {
describe('Making requests', function () {
let sendAndCacheRequest
beforeEach(function() {
beforeEach(function () {
sendAndCacheRequest = sinon.stub().returns(
Promise.resolve({
buffer: expectedYaml,
@@ -57,7 +50,7 @@ describe('BaseYamlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyYamlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -74,7 +67,7 @@ describe('BaseYamlService', function() {
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithOptions extends DummyYamlService {
async handle() {
const { requiredString } = await this._requestYaml({
@@ -105,8 +98,8 @@ describe('BaseYamlService', function() {
})
})
describe('Making badges', function() {
it('handles valid yaml responses', async function() {
describe('Making badges', function () {
it('handles valid yaml responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: expectedYaml,
res: { statusCode: 200 },
@@ -121,7 +114,7 @@ describe('BaseYamlService', function() {
})
})
it('handles yaml responses which do not match the schema', async function() {
it('handles yaml responses which do not match the schema', async function () {
const sendAndCacheRequest = async () => ({
buffer: unexpectedYaml,
res: { statusCode: 200 },
@@ -138,7 +131,7 @@ describe('BaseYamlService', function() {
})
})
it('handles unparseable yaml responses', async function() {
it('handles unparseable yaml responses', async function () {
const sendAndCacheRequest = async () => ({
buffer: invalidYaml,
res: { statusCode: 200 },

View File

@@ -3,10 +3,9 @@
* @module
*/
const bytes = require('bytes')
// See available emoji at http://emoji.muan.co/
const emojic = require('emojic')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const log = require('../server/log')
const { AuthHelper } = require('./auth-helper')
const { MetricHelper, MetricNames } = require('./metric-helper')
@@ -59,10 +58,7 @@ const serviceDataSchema = Joi.object({
// `render()` to always return a string.
message: Joi.alternatives(Joi.string().allow(''), Joi.number()).required(),
color: Joi.string(),
link: Joi.array()
.items(Joi.string().uri())
.single()
.max(2),
link: Joi.array().items(Joi.string().uri()).single().max(2),
// Generally services should not use these options, which are provided to
// support the Endpoint badge.
labelColor: Joi.string(),
@@ -71,9 +67,7 @@ const serviceDataSchema = Joi.object({
logoColor: optionalStringWhenNamedLogoPresent,
logoWidth: optionalNumberWhenAnyLogoPresent,
logoPosition: optionalNumberWhenAnyLogoPresent,
cacheSeconds: Joi.number()
.integer()
.min(0),
cacheSeconds: Joi.number().integer().min(0),
style: Joi.string(),
})
.oxor('namedLogo', 'logoSvg')
@@ -96,9 +90,7 @@ class BaseService {
throw new Error(`Category not set for ${this.name}`)
}
static get isDeprecated() {
return false
}
static isDeprecated = false
/**
* Route to mount this service on
@@ -120,14 +112,12 @@ class BaseService {
* credentials to the request. For example:
* - `{ options: { auth: this.authHelper.basicAuth } }`
* - `{ options: { headers: this.authHelper.bearerAuthHeader } }`
* - `{ options: { qs: { token: this.authHelper.pass } } }`
* - `{ options: { qs: { token: this.authHelper._pass } } }`
*
* @abstract
* @type {module:core/base-service/base~Auth}
*/
static get auth() {
return undefined
}
static auth = undefined
/**
* Array of Example objects describing example URLs for this service.
@@ -145,9 +135,7 @@ class BaseService {
* @abstract
* @type {module:core/base-service/base~Example[]}
*/
static get examples() {
return []
}
static examples = []
static get _cacheLength() {
const cacheLengths = {
@@ -166,9 +154,7 @@ class BaseService {
*
* @type {module:core/base-service/base~DefaultBadgeData}
*/
static get defaultBadgeData() {
return {}
}
static defaultBadgeData = {}
static render(props) {
throw new Error(`render() function not implemented for ${this.name}`)
@@ -234,9 +220,7 @@ class BaseService {
return checkErrorResponse(errorMessages)({ buffer, res })
}
static get enabledMetrics() {
return []
}
static enabledMetrics = []
static isMetricEnabled(metricName) {
return this.enabledMetrics.includes(metricName)
@@ -426,8 +410,7 @@ class BaseService {
{ camp, handleRequest, githubApiProvider, metricInstance },
serviceConfig
) {
const { cacheHeaders: cacheHeaderConfig, fetchLimit } = serviceConfig
const fetchLimitBytes = bytes.parse(fetchLimit)
const { cacheHeaders: cacheHeaderConfig, fetchLimitBytes } = serviceConfig
const { regex, captureNames } = prepareRoute(this.route)
const queryParams = getQueryParamNames(this.route)

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const chai = require('chai')
const { expect } = chai
const sinon = require('sinon')
@@ -29,32 +29,19 @@ const queryParamSchema = Joi.object({
.required()
class DummyService extends BaseService {
static get category() {
return 'other'
}
static category = 'other'
static route = { base: 'foo', pattern: ':namedParamA', queryParamSchema }
static get route() {
return {
base: 'foo',
pattern: ':namedParamA',
queryParamSchema,
}
}
static examples = [
{
pattern: ':world',
namedParams: { world: 'World' },
staticPreview: this.render({ namedParamA: 'foo', queryParamA: 'bar' }),
keywords: ['hello'],
},
]
static get examples() {
return [
{
pattern: ':world',
namedParams: { world: 'World' },
staticPreview: this.render({ namedParamA: 'foo', queryParamA: 'bar' }),
keywords: ['hello'],
},
]
}
static get defaultBadgeData() {
return { label: 'cat', namedLogo: 'appveyor' }
}
static defaultBadgeData = { label: 'cat', namedLogo: 'appveyor' }
static render({ namedParamA, queryParamA }) {
return {
@@ -68,12 +55,10 @@ class DummyService extends BaseService {
}
class DummyServiceWithServiceResponseSizeMetricEnabled extends DummyService {
static get enabledMetrics() {
return [MetricNames.SERVICE_RESPONSE_SIZE]
}
static enabledMetrics = [MetricNames.SERVICE_RESPONSE_SIZE]
}
describe('BaseService', function() {
describe('BaseService', function () {
const defaultConfig = {
public: {
handleInternalErrors: false,
@@ -82,7 +67,7 @@ describe('BaseService', function() {
private: {},
}
it('Invokes the handler as expected', async function() {
it('Invokes the handler as expected', async function () {
expect(
await DummyService.invoke(
{},
@@ -95,7 +80,7 @@ describe('BaseService', function() {
})
})
it('Validates query params', async function() {
it('Validates query params', async function () {
expect(
await DummyService.invoke(
{},
@@ -110,49 +95,47 @@ describe('BaseService', function() {
})
})
describe('Required overrides', function() {
it('Should throw if render() is not overridden', function() {
describe('Required overrides', function () {
it('Should throw if render() is not overridden', function () {
expect(() => BaseService.render()).to.throw(
/^render\(\) function not implemented for BaseService$/
)
})
it('Should throw if route is not overridden', function() {
it('Should throw if route is not overridden', function () {
return expect(BaseService.invoke({}, {}, {})).to.be.rejectedWith(
/^Route not defined for BaseService$/
)
})
class WithRoute extends BaseService {
static get route() {
return {}
}
static route = {}
}
it('Should throw if handle() is not overridden', function() {
it('Should throw if handle() is not overridden', function () {
return expect(WithRoute.invoke({}, {}, {})).to.be.rejectedWith(
/^Handler not implemented for WithRoute$/
)
})
it('Should throw if category is not overridden', function() {
it('Should throw if category is not overridden', function () {
expect(() => BaseService.category).to.throw(
/^Category not set for BaseService$/
)
})
})
describe('Logging', function() {
describe('Logging', function () {
let sandbox
beforeEach(function() {
beforeEach(function () {
sandbox = sinon.createSandbox()
})
afterEach(function() {
afterEach(function () {
sandbox.restore()
})
beforeEach(function() {
beforeEach(function () {
sandbox.stub(trace, 'logTrace')
})
it('Invokes the logger as expected', async function() {
it('Invokes the logger as expected', async function () {
await DummyService.invoke(
{},
defaultConfig,
@@ -180,8 +163,8 @@ describe('BaseService', function() {
})
})
describe('Service data validation', function() {
it('Allows a link array', async function() {
describe('Service data validation', function () {
it('Allows a link array', async function () {
const message = 'hello'
const link = ['https://example.com/', 'https://other.example.com/']
class LinkService extends DummyService {
@@ -202,7 +185,7 @@ describe('BaseService', function() {
})
})
context('On invalid data', function() {
context('On invalid data', function () {
class ThrowingService extends DummyService {
async handle() {
return {
@@ -211,7 +194,7 @@ describe('BaseService', function() {
}
}
it('Throws a validation error on invalid data', async function() {
it('Throws a validation error on invalid data', async function () {
try {
await ThrowingService.invoke(
{},
@@ -229,7 +212,7 @@ describe('BaseService', function() {
// Ensure debuggabillity.
// https://github.com/badges/shields/issues/3784
it('Includes the service class in the stack trace', async function() {
it('Includes the service class in the stack trace', async function () {
try {
await ThrowingService.invoke(
{},
@@ -244,8 +227,8 @@ describe('BaseService', function() {
})
})
describe('Error handling', function() {
it('Handles internal errors', async function() {
describe('Error handling', function () {
it('Handles internal errors', async function () {
class ThrowingService extends DummyService {
async handle() {
throw Error("I've made a huge mistake")
@@ -265,8 +248,8 @@ describe('BaseService', function() {
})
})
describe('Handles known subtypes of ShieldsInternalError', function() {
it('handles NotFound errors', async function() {
describe('Handles known subtypes of ShieldsInternalError', function () {
it('handles NotFound errors', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new NotFound()
@@ -281,7 +264,7 @@ describe('BaseService', function() {
})
})
it('handles Inaccessible errors', async function() {
it('handles Inaccessible errors', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new Inaccessible()
@@ -296,7 +279,7 @@ describe('BaseService', function() {
})
})
it('handles InvalidResponse errors', async function() {
it('handles InvalidResponse errors', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new InvalidResponse()
@@ -311,7 +294,7 @@ describe('BaseService', function() {
})
})
it('handles Deprecated', async function() {
it('handles Deprecated', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new Deprecated()
@@ -326,7 +309,7 @@ describe('BaseService', function() {
})
})
it('handles InvalidParameter errors', async function() {
it('handles InvalidParameter errors', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new InvalidParameter()
@@ -343,7 +326,7 @@ describe('BaseService', function() {
})
})
describe('ScoutCamp integration', function() {
describe('ScoutCamp integration', function () {
// TODO Strangly, without the useless escape the regexes do not match in Node 12.
// eslint-disable-next-line no-useless-escape
const expectedRouteRegex = /^\/foo\/([^\/]+?)(|\.svg|\.json)$/
@@ -351,7 +334,7 @@ describe('BaseService', function() {
let mockCamp
let mockHandleRequest
beforeEach(function() {
beforeEach(function () {
mockCamp = {
route: sinon.spy(),
}
@@ -362,12 +345,12 @@ describe('BaseService', function() {
)
})
it('registers the service', function() {
it('registers the service', function () {
expect(mockCamp.route).to.have.been.calledOnce
expect(mockCamp.route).to.have.been.calledWith(expectedRouteRegex)
})
it('handles the request', async function() {
it('handles the request', async function () {
expect(mockHandleRequest).to.have.been.calledOnce
const {
@@ -390,9 +373,10 @@ describe('BaseService', function() {
const expectedFormat = 'svg'
expect(mockSendBadge).to.have.been.calledOnce
expect(mockSendBadge).to.have.been.calledWith(expectedFormat, {
text: ['cat', 'Hello namedParamA: bar with queryParamA: ?'],
label: 'cat',
message: 'Hello namedParamA: bar with queryParamA: ?',
color: 'lightgrey',
template: undefined,
style: 'flat',
namedLogo: undefined,
logo: undefined,
logoWidth: undefined,
@@ -404,8 +388,8 @@ describe('BaseService', function() {
})
})
describe('getDefinition', function() {
it('returns the expected result', function() {
describe('getDefinition', function () {
it('returns the expected result', function () {
const {
category,
name,
@@ -432,12 +416,12 @@ describe('BaseService', function() {
})
})
describe('validate', function() {
describe('validate', function () {
const dummySchema = Joi.object({
requiredString: Joi.string().required(),
}).required()
it('throws error for invalid responses', function() {
it('throws error for invalid responses', function () {
expect(() =>
DummyService._validate(
{ requiredString: ['this', "shouldn't", 'work'] },
@@ -449,19 +433,19 @@ describe('BaseService', function() {
})
})
describe('request', function() {
describe('request', function () {
let sandbox
beforeEach(function() {
beforeEach(function () {
sandbox = sinon.createSandbox()
})
afterEach(function() {
afterEach(function () {
sandbox.restore()
})
beforeEach(function() {
beforeEach(function () {
sandbox.stub(trace, 'logTrace')
})
it('logs appropriate information', async function() {
it('logs appropriate information', async function () {
const sendAndCacheRequest = async () => ({
buffer: '',
res: { statusCode: 200 },
@@ -491,7 +475,7 @@ describe('BaseService', function() {
)
})
it('handles errors', async function() {
it('handles errors', async function () {
const sendAndCacheRequest = async () => ({
buffer: '',
res: { statusCode: 404 },
@@ -512,14 +496,14 @@ describe('BaseService', function() {
})
})
describe('Metrics', function() {
describe('Metrics', function () {
let register
beforeEach(function() {
beforeEach(function () {
register = new prometheus.Registry()
})
const url = 'some-url'
it('service response size metric is optional', async function() {
it('service response size metric is optional', async function () {
const metricHelper = MetricHelper.create({
metricInstance: new PrometheusMetrics({ register }),
ServiceClass: DummyServiceWithServiceResponseSizeMetricEnabled,
@@ -544,7 +528,7 @@ describe('BaseService', function() {
)
})
it('service response size metric is disabled by default', async function() {
it('service response size metric is disabled by default', async function () {
const metricHelper = MetricHelper.create({
metricInstance: new PrometheusMetrics({ register }),
ServiceClass: DummyService,
@@ -565,14 +549,12 @@ describe('BaseService', function() {
).to.not.contain('service_response_bytes_bucket')
})
})
describe('auth', function() {
describe('auth', function () {
class AuthService extends DummyService {
static get auth() {
return {
passKey: 'myci_pass',
serviceKey: 'myci',
isRequired: true,
}
static auth = {
passKey: 'myci_pass',
serviceKey: 'myci',
isRequired: true,
}
async handle() {
@@ -582,7 +564,7 @@ describe('BaseService', function() {
}
}
it('when auth is configured properly, invoke() sets authHelper', async function() {
it('when auth is configured properly, invoke() sets authHelper', async function () {
expect(
await AuthService.invoke(
{},
@@ -598,7 +580,7 @@ describe('BaseService', function() {
).to.deep.equal({ message: 'The CI password is abc123' })
})
it('when auth is not configured properly, invoke() returns inacessible', async function() {
it('when auth is not configured properly, invoke() returns inacessible', async function () {
expect(
await AuthService.invoke(
{},

View File

@@ -1,15 +1,13 @@
'use strict'
const assert = require('assert')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const coalesce = require('./coalesce')
const serverStartTimeGMTString = new Date().toGMTString()
const serverStartTimestamp = Date.now()
const isOptionalNonNegativeInteger = Joi.number()
.integer()
.min(0)
const isOptionalNonNegativeInteger = Joi.number().integer().min(0)
const queryParamSchema = Joi.object({
cacheSeconds: isOptionalNonNegativeInteger,
@@ -69,7 +67,7 @@ function setHeadersForCacheLength(res, cacheLengthSeconds) {
cacheControl = 'no-cache, no-store, must-revalidate'
expires = nowGMTString
} else {
cacheControl = `max-age=${cacheLengthSeconds}`
cacheControl = `max-age=${cacheLengthSeconds}, s-maxage=${cacheLengthSeconds}`
expires = new Date(now.getTime() + cacheLengthSeconds * 1000).toGMTString()
}
@@ -94,7 +92,7 @@ function setCacheHeaders({
setHeadersForCacheLength(res, cacheLengthSeconds)
}
const staticCacheControlHeader = `max-age=${24 * 3600}` // 1 day.
const staticCacheControlHeader = `max-age=${24 * 3600}, s-maxage=${24 * 3600}` // 1 day.
function setCacheHeadersForStaticResource(res) {
res.setHeader('Cache-Control', staticCacheControlHeader)
res.setHeader('Last-Modified', serverStartTimeGMTString)

View File

@@ -15,13 +15,13 @@ const {
chai.use(require('chai-datetime'))
describe('Cache header functions', function() {
describe('Cache header functions', function () {
let res
beforeEach(function() {
beforeEach(function () {
res = httpMocks.createResponse()
})
describe('coalesceCacheLength', function() {
describe('coalesceCacheLength', function () {
const cacheHeaderConfig = { defaultCacheLengthSeconds: 777 }
test(coalesceCacheLength, () => {
given({ cacheHeaderConfig, queryParams: {} }).expect(777)
@@ -101,18 +101,18 @@ describe('Cache header functions', function() {
})
})
describe('setHeadersForCacheLength', function() {
describe('setHeadersForCacheLength', function () {
let sandbox
beforeEach(function() {
beforeEach(function () {
sandbox = sinon.createSandbox()
sandbox.useFakeTimers()
})
afterEach(function() {
afterEach(function () {
sandbox.restore()
sandbox = undefined
})
it('should set the correct Date header', function() {
it('should set the correct Date header', function () {
// Confidence check.
expect(res._headers.date).to.equal(undefined)
@@ -124,40 +124,42 @@ describe('Cache header functions', function() {
expect(res._headers.date).to.equal(now)
})
context('cacheLengthSeconds is zero', function() {
beforeEach(function() {
context('cacheLengthSeconds is zero', function () {
beforeEach(function () {
setHeadersForCacheLength(res, 0)
})
it('should set the expected Cache-Control header', function() {
it('should set the expected Cache-Control header', function () {
expect(res._headers['cache-control']).to.equal(
'no-cache, no-store, must-revalidate'
)
})
it('should set the expected Expires header', function() {
it('should set the expected Expires header', function () {
expect(res._headers.expires).to.equal(new Date().toGMTString())
})
})
context('cacheLengthSeconds is nonzero', function() {
beforeEach(function() {
context('cacheLengthSeconds is nonzero', function () {
beforeEach(function () {
setHeadersForCacheLength(res, 123)
})
it('should set the expected Cache-Control header', function() {
expect(res._headers['cache-control']).to.equal('max-age=123')
it('should set the expected Cache-Control header', function () {
expect(res._headers['cache-control']).to.equal(
'max-age=123, s-maxage=123'
)
})
it('should set the expected Expires header', function() {
it('should set the expected Expires header', function () {
const expires = new Date(Date.now() + 123 * 1000).toGMTString()
expect(res._headers.expires).to.equal(expires)
})
})
})
describe('setCacheHeaders', function() {
it('sets the expected fields', function() {
describe('setCacheHeaders', function () {
it('sets the expected fields', function () {
const expectedFields = ['date', 'cache-control', 'expires']
expectedFields.forEach(field =>
expect(res._headers[field]).to.equal(undefined)
@@ -178,16 +180,18 @@ describe('Cache header functions', function() {
})
})
describe('setCacheHeadersForStaticResource', function() {
beforeEach(function() {
describe('setCacheHeadersForStaticResource', function () {
beforeEach(function () {
setCacheHeadersForStaticResource(res)
})
it('should set the expected Cache-Control header', function() {
expect(res._headers['cache-control']).to.equal(`max-age=${24 * 3600}`)
it('should set the expected Cache-Control header', function () {
expect(res._headers['cache-control']).to.equal(
`max-age=${24 * 3600}, s-maxage=${24 * 3600}`
)
})
it('should set the expected Last-Modified header', function() {
it('should set the expected Last-Modified header', function () {
const lastModified = res._headers['last-modified']
expect(new Date(lastModified)).to.be.withinTime(
// Within the last 60 seconds.
@@ -197,17 +201,17 @@ describe('Cache header functions', function() {
})
})
describe('serverHasBeenUpSinceResourceCached', function() {
describe('serverHasBeenUpSinceResourceCached', function () {
// The stringified req's are hard to understand. I thought Sazerac
// provided a way to override the describe message, though I can't find it.
context('when there is no If-Modified-Since header', function() {
it('returns false', function() {
context('when there is no If-Modified-Since header', function () {
it('returns false', function () {
const req = httpMocks.createRequest()
expect(serverHasBeenUpSinceResourceCached(req)).to.equal(false)
})
})
context('when the If-Modified-Since header is invalid', function() {
it('returns false', function() {
context('when the If-Modified-Since header is invalid', function () {
it('returns false', function () {
const req = httpMocks.createRequest({
headers: { 'If-Modified-Since': 'this-is-not-a-date' },
})
@@ -216,8 +220,8 @@ describe('Cache header functions', function() {
})
context(
'when the If-Modified-Since header is before the process started',
function() {
it('returns false', function() {
function () {
it('returns false', function () {
const req = httpMocks.createRequest({
headers: { 'If-Modified-Since': '2018-02-01T05:00:00.000Z' },
})
@@ -227,8 +231,8 @@ describe('Cache header functions', function() {
)
context(
'when the If-Modified-Since header is after the process started',
function() {
it('returns true', function() {
function () {
it('returns true', function () {
const modifiedTimeStamp = new Date(Date.now() + 1800000)
const req = httpMocks.createRequest({
headers: { 'If-Modified-Since': modifiedTimeStamp.toISOString() },

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const categories = require('../../services/categories')
const isRealCategory = Joi.equal(...categories.map(({ id }) => id)).required()

View File

@@ -7,7 +7,7 @@ const defaultErrorMessages = {
}
module.exports = function checkErrorResponse(errorMessages = {}) {
return async function({ buffer, res }) {
return async function ({ buffer, res }) {
let error
errorMessages = { ...defaultErrorMessages, ...errorMessages }
if (res.statusCode === 404) {

View File

@@ -4,11 +4,11 @@ const { expect } = require('chai')
const { NotFound, InvalidResponse, Inaccessible } = require('./errors')
const checkErrorResponse = require('./check-error-response')
describe('async error handler', function() {
describe('async error handler', function () {
const buffer = Buffer.from('some stuff')
context('when status is 200', function() {
it('passes through the inputs', async function() {
context('when status is 200', function () {
it('passes through the inputs', async function () {
const res = { statusCode: 200 }
expect(await checkErrorResponse()({ res, buffer })).to.deep.equal({
res,
@@ -17,11 +17,11 @@ describe('async error handler', function() {
})
})
context('when status is 404', function() {
context('when status is 404', function () {
const buffer = Buffer.from('some stuff')
const res = { statusCode: 404 }
it('throws NotFound', async function() {
it('throws NotFound', async function () {
try {
await checkErrorResponse()({ res, buffer })
expect.fail('Expected to throw')
@@ -34,7 +34,7 @@ describe('async error handler', function() {
}
})
it('displays the custom not found message', async function() {
it('displays the custom not found message', async function () {
const notFoundMessage = 'no goblins found'
try {
await checkErrorResponse({ 404: notFoundMessage })({ res, buffer })
@@ -47,8 +47,8 @@ describe('async error handler', function() {
})
})
context('when status is 4xx', function() {
it('throws InvalidResponse', async function() {
context('when status is 4xx', function () {
it('throws InvalidResponse', async function () {
const res = { statusCode: 499 }
try {
await checkErrorResponse()({ res, buffer })
@@ -64,7 +64,7 @@ describe('async error handler', function() {
}
})
it('displays the custom error message', async function() {
it('displays the custom error message', async function () {
const res = { statusCode: 403 }
try {
await checkErrorResponse({ 403: 'access denied' })({ res })
@@ -79,8 +79,8 @@ describe('async error handler', function() {
})
})
context('when status is 5xx', function() {
it('throws Inaccessible', async function() {
context('when status is 5xx', function () {
it('throws Inaccessible', async function () {
const res = { statusCode: 503 }
try {
await checkErrorResponse()({ res, buffer })
@@ -96,7 +96,7 @@ describe('async error handler', function() {
}
})
it('displays the custom error message', async function() {
it('displays the custom error message', async function () {
const res = { statusCode: 500 }
try {
await checkErrorResponse({ 500: 'server overloaded' })({ res, buffer })

View File

@@ -104,7 +104,23 @@ module.exports = function coalesceBadge(
labelColor: defaultLabelColor,
} = defaultBadgeData
const style = coalesce(overrideStyle, serviceStyle)
let style = coalesce(overrideStyle, serviceStyle)
if (typeof style !== 'string') {
style = 'flat'
}
if (style.startsWith('popout')) {
style = style.replace('popout', 'flat')
}
const styleValues = [
'plastic',
'flat',
'flat-square',
'for-the-badge',
'social',
]
if (!styleValues.includes(style)) {
style = 'flat'
}
let namedLogo, namedLogoColor, logoWidth, logoPosition, logoSvgBase64
if (overrideLogo) {
@@ -144,12 +160,10 @@ module.exports = function coalesceBadge(
}
return {
text: [
// Use `coalesce()` to support empty labels and messages, as in the
// static badge.
coalesce(overrideLabel, serviceLabel, defaultLabel, category),
coalesce(serviceMessage, 'n/a'),
],
// Use `coalesce()` to support empty labels and messages, as in the static
// badge.
label: coalesce(overrideLabel, serviceLabel, defaultLabel, category),
message: coalesce(serviceMessage, 'n/a'),
color: coalesce(
// In case of an error, disregard user's color override.
isError ? undefined : overrideColor,
@@ -163,7 +177,7 @@ module.exports = function coalesceBadge(
serviceLabelColor,
defaultLabelColor
),
template: style,
style,
namedLogo,
logo: logoSvgBase64,
logoWidth,

View File

@@ -4,124 +4,123 @@ const { expect } = require('chai')
const { getShieldsIcon, getSimpleIcon } = require('../../lib/logos')
const coalesceBadge = require('./coalesce-badge')
describe('coalesceBadge', function() {
describe('Label', function() {
it('uses the default label', function() {
expect(coalesceBadge({}, {}, { label: 'heyo' }).text).to.deep.equal([
'heyo',
'n/a',
])
describe('coalesceBadge', function () {
describe('Label', function () {
it('uses the default label', function () {
expect(coalesceBadge({}, {}, { label: 'heyo' })).to.include({
label: 'heyo',
})
})
// This behavior isn't great and we might want to remove it.
it('uses the category as a default label', function() {
expect(
coalesceBadge({}, {}, {}, { category: 'cat' }).text
).to.deep.equal(['cat', 'n/a'])
it('uses the category as a default label', function () {
expect(coalesceBadge({}, {}, {}, { category: 'cat' })).to.include({
label: 'cat',
})
})
it('preserves an empty label', function() {
expect(
coalesceBadge({}, { label: '', message: '10k' }, {}).text
).to.deep.equal(['', '10k'])
it('preserves an empty label', function () {
expect(coalesceBadge({}, { label: '', message: '10k' }, {})).to.include({
label: '',
})
})
it('overrides the label', function() {
it('overrides the label', function () {
expect(
coalesceBadge({ label: 'purr count' }, { label: 'purrs' }, {}).text
).to.deep.equal(['purr count', 'n/a'])
coalesceBadge({ label: 'purr count' }, { label: 'purrs' }, {})
).to.include({ label: 'purr count' })
})
})
describe('Message', function() {
it('applies the service message', function() {
expect(coalesceBadge({}, { message: '10k' }, {}).text).to.deep.equal([
undefined,
'10k',
])
describe('Message', function () {
it('applies the service message', function () {
expect(coalesceBadge({}, { message: '10k' }, {})).to.include({
message: '10k',
})
})
it('applies a numeric service message', function() {
// https://github.com/badges/shields/issues/1280
it('converts a number to a string', function () {
// While a number of badges use this, in the long run we may want
// `render()` to always return a string.
expect(coalesceBadge({}, { message: 10 }, {}).text).to.deep.equal([
undefined,
10,
])
expect(coalesceBadge({}, { message: 10 }, {})).to.include({
message: 10,
})
})
})
describe('Right color', function() {
it('uses the default color', function() {
expect(coalesceBadge({}, {}, {}).color).to.equal('lightgrey')
describe('Right color', function () {
it('uses the default color', function () {
expect(coalesceBadge({}, {}, {})).to.include({ color: 'lightgrey' })
})
it('overrides the color', function() {
it('overrides the color', function () {
expect(
coalesceBadge({ color: '10ADED' }, { color: 'red' }, {}).color
).to.equal('10ADED')
coalesceBadge({ color: '10ADED' }, { color: 'red' }, {})
).to.include({ color: '10ADED' })
// also expected for legacy name
expect(
coalesceBadge({ colorB: 'B0ADED' }, { color: 'red' }, {}).color
).to.equal('B0ADED')
coalesceBadge({ colorB: 'B0ADED' }, { color: 'red' }, {})
).to.include({ color: 'B0ADED' })
})
context('In case of an error', function() {
it('does not override the color', function() {
context('In case of an error', function () {
it('does not override the color', function () {
expect(
coalesceBadge(
{ color: '10ADED' },
{ isError: true, color: 'lightgray' },
{}
).color
).to.equal('lightgray')
)
).to.include({ color: 'lightgray' })
// also expected for legacy name
expect(
coalesceBadge(
{ colorB: 'B0ADED' },
{ isError: true, color: 'lightgray' },
{}
).color
).to.equal('lightgray')
)
).to.include({ color: 'lightgray' })
})
})
it('applies the service color', function() {
expect(coalesceBadge({}, { color: 'red' }, {}).color).to.equal('red')
it('applies the service color', function () {
expect(coalesceBadge({}, { color: 'red' }, {})).to.include({
color: 'red',
})
})
})
describe('Left color', function() {
it('provides no default label color', function() {
describe('Left color', function () {
it('provides no default label color', function () {
expect(coalesceBadge({}, {}, {}).labelColor).to.be.undefined
})
it('applies the service label color', function() {
expect(coalesceBadge({}, { labelColor: 'red' }, {}).labelColor).to.equal(
'red'
)
it('applies the service label color', function () {
expect(coalesceBadge({}, { labelColor: 'red' }, {})).to.include({
labelColor: 'red',
})
})
it('overrides the label color', function() {
it('overrides the label color', function () {
expect(
coalesceBadge({ labelColor: '42f483' }, { color: 'green' }, {})
.labelColor
).to.equal('42f483')
).to.include({ labelColor: '42f483' })
// also expected for legacy name
expect(
coalesceBadge({ colorA: 'B2f483' }, { color: 'green' }, {}).labelColor
).to.equal('B2f483')
coalesceBadge({ colorA: 'B2f483' }, { color: 'green' }, {})
).to.include({ labelColor: 'B2f483' })
})
it('converts a query-string numeric color to a string', function() {
it('converts a query-string numeric color to a string', function () {
expect(
coalesceBadge(
// Scoutcamp converts numeric query params to numbers.
{ color: 123 },
{ color: 'green' },
{}
).color
).to.equal('123')
)
).to.include({ color: '123' })
// also expected for legacy name
expect(
coalesceBadge(
@@ -129,47 +128,47 @@ describe('coalesceBadge', function() {
{ colorB: 123 },
{ color: 'green' },
{}
).color
).to.equal('123')
)
).to.include({ color: '123' })
})
})
describe('Named logos', function() {
it('when not a social badge, ignores the default named logo', function() {
describe('Named logos', function () {
it('when not a social badge, ignores the default named logo', function () {
expect(coalesceBadge({}, {}, { namedLogo: 'appveyor' }).logo).to.be
.undefined
})
it('when a social badge, uses the default named logo', function() {
it('when a social badge, uses the default named logo', function () {
// .not.be.empty for confidence that nothing has changed with `getShieldsIcon()`.
expect(
coalesceBadge({ style: 'social' }, {}, { namedLogo: 'appveyor' }).logo
).to.equal(getSimpleIcon({ name: 'appveyor' })).and.not.be.empty
})
it('applies the named logo', function() {
expect(coalesceBadge({}, { namedLogo: 'npm' }, {}).namedLogo).to.equal(
'npm'
)
it('applies the named logo', function () {
expect(coalesceBadge({}, { namedLogo: 'npm' }, {})).to.include({
namedLogo: 'npm',
})
expect(coalesceBadge({}, { namedLogo: 'npm' }, {}).logo).to.equal(
getShieldsIcon({ name: 'npm' })
).and.not.to.be.empty
})
it('applies the named logo with color', function() {
it('applies the named logo with color', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoColor: 'blue' }, {}).logo
).to.equal(getShieldsIcon({ name: 'npm', color: 'blue' })).and.not.to.be
.empty
})
it('overrides the logo', function() {
it('overrides the logo', function () {
expect(
coalesceBadge({ logo: 'npm' }, { namedLogo: 'appveyor' }, {}).logo
).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty
})
it('overrides the logo with a color', function() {
it('overrides the logo with a color', function () {
expect(
coalesceBadge(
{ logo: 'npm', logoColor: 'blue' },
@@ -180,7 +179,7 @@ describe('coalesceBadge', function() {
.empty
})
it("when the logo is overridden, it ignores the service's logo color, position, and width", function() {
it("when the logo is overridden, it ignores the service's logo color, position, and width", function () {
expect(
coalesceBadge(
{ logo: 'npm' },
@@ -195,7 +194,7 @@ describe('coalesceBadge', function() {
).to.equal(getShieldsIcon({ name: 'npm' })).and.not.be.empty
})
it("overrides the service logo's color", function() {
it("overrides the service logo's color", function () {
expect(
coalesceBadge(
{ logoColor: 'blue' },
@@ -207,7 +206,7 @@ describe('coalesceBadge', function() {
})
// https://github.com/badges/shields/issues/2998
it('overrides logoSvg', function() {
it('overrides logoSvg', function () {
const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxu'
expect(coalesceBadge({ logo: 'npm' }, { logoSvg }, {}).logo).to.equal(
getShieldsIcon({ name: 'npm' })
@@ -215,55 +214,56 @@ describe('coalesceBadge', function() {
})
})
describe('Custom logos', function() {
it('overrides the logo with custom svg', function() {
describe('Custom logos', function () {
it('overrides the logo with custom svg', function () {
const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxu'
expect(
coalesceBadge({ logo: logoSvg }, { namedLogo: 'appveyor' }, {}).logo
).to.equal(logoSvg)
coalesceBadge({ logo: logoSvg }, { namedLogo: 'appveyor' }, {})
).to.include({ logo: logoSvg })
})
it('ignores the color when custom svg is provided', function() {
it('ignores the color when custom svg is provided', function () {
const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxu'
expect(
coalesceBadge(
{ logo: logoSvg, logoColor: 'brightgreen' },
{ namedLogo: 'appveyor' },
{}
).logo
).to.equal(logoSvg)
)
).to.include({ logo: logoSvg })
})
})
describe('Logo width', function() {
it('overrides the logoWidth', function() {
expect(coalesceBadge({ logoWidth: 20 }, {}, {}).logoWidth).to.equal(20)
describe('Logo width', function () {
it('overrides the logoWidth', function () {
expect(coalesceBadge({ logoWidth: 20 }, {}, {})).to.include({
logoWidth: 20,
})
})
it('applies the logo width', function() {
it('applies the logo width', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoWidth: 275 }, {}).logoWidth
).to.equal(275)
coalesceBadge({}, { namedLogo: 'npm', logoWidth: 275 }, {})
).to.include({ logoWidth: 275 })
})
})
describe('Logo position', function() {
it('overrides the logoPosition', function() {
expect(
coalesceBadge({ logoPosition: -10 }, {}, {}).logoPosition
).to.equal(-10)
describe('Logo position', function () {
it('overrides the logoPosition', function () {
expect(coalesceBadge({ logoPosition: -10 }, {}, {})).to.include({
logoPosition: -10,
})
})
it('applies the logo position', function() {
it('applies the logo position', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoPosition: -10 }, {})
.logoPosition
).to.equal(-10)
).to.include({ logoPosition: -10 })
})
})
describe('Links', function() {
it('overrides the links', function() {
describe('Links', function () {
it('overrides the links', function () {
expect(
coalesceBadge(
{ link: 'https://circleci.com/gh/badges/daily-tests' },
@@ -277,18 +277,34 @@ describe('coalesceBadge', function() {
})
})
describe('Style', function() {
it('overrides the template', function() {
expect(coalesceBadge({ style: 'pill' }, {}, {}).template).to.equal('pill')
describe('Style', function () {
it('falls back to flat with invalid style', function () {
expect(coalesceBadge({ style: 'pill' }, {}, {})).to.include({
style: 'flat',
})
expect(coalesceBadge({ style: 7 }, {}, {})).to.include({
style: 'flat',
})
expect(coalesceBadge({ style: undefined }, {}, {})).to.include({
style: 'flat',
})
})
it('replaces legacy popout styles', function () {
expect(coalesceBadge({ style: 'popout' }, {}, {})).to.include({
style: 'flat',
})
expect(coalesceBadge({ style: 'popout-square' }, {}, {})).to.include({
style: 'flat-square',
})
})
})
describe('Cache length', function() {
it('overrides the cache length', function() {
describe('Cache length', function () {
it('overrides the cache length', function () {
expect(
coalesceBadge({ style: 'pill' }, { cacheSeconds: 123 }, {})
.cacheLengthSeconds
).to.equal(123)
).to.include({ cacheLengthSeconds: 123 })
})
})
})

View File

@@ -7,8 +7,8 @@ const coalesce = require('./coalesce')
// `undefined` instead of `null`, though h/t to
// https://github.com/royriojas/coalescy for these tests!
describe('coalesce', function() {
test(coalesce, function() {
describe('coalesce', function () {
test(coalesce, function () {
given().expect(undefined)
given(null, []).expect([])
given(null, [], {}).expect([])

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const camelcase = require('camelcase')
const BaseService = require('./base')
const { isValidCategory } = require('./categories')
@@ -26,33 +26,17 @@ function deprecatedService(attrs) {
)
return class DeprecatedService extends BaseService {
static get name() {
return name
? `Deprecated${name}`
: `Deprecated${camelcase(route.base.replace(/\//g, '_'), {
pascalCase: true,
})}`
}
static name = name
? `Deprecated${name}`
: `Deprecated${camelcase(route.base.replace(/\//g, '_'), {
pascalCase: true,
})}`
static get category() {
return category
}
static get isDeprecated() {
return true
}
static get route() {
return route
}
static get examples() {
return examples
}
static get defaultBadgeData() {
return { label }
}
static category = category
static isDeprecated = true
static route = route
static examples = examples
static defaultBadgeData = { label }
async handle() {
throw new Deprecated({ prettyMessage: message })

View File

@@ -3,7 +3,7 @@
const { expect } = require('chai')
const deprecatedService = require('./deprecated-service')
describe('DeprecatedService', function() {
describe('DeprecatedService', function () {
const route = {
base: 'service/that/no/longer/exists',
format: '(?:.+)',
@@ -12,33 +12,33 @@ describe('DeprecatedService', function() {
const dateAdded = new Date()
const commonAttrs = { route, category, dateAdded }
it('returns true on isDeprecated', function() {
it('returns true on isDeprecated', function () {
const service = deprecatedService({ ...commonAttrs })
expect(service.isDeprecated).to.be.true
})
it('has the expected name', function() {
it('has the expected name', function () {
const service = deprecatedService({ ...commonAttrs })
expect(service.name).to.equal('DeprecatedServiceThatNoLongerExists')
})
it('sets specified route', function() {
it('sets specified route', function () {
const service = deprecatedService({ ...commonAttrs })
expect(service.route).to.deep.equal(route)
})
it('sets specified label', function() {
it('sets specified label', function () {
const label = 'coverity'
const service = deprecatedService({ ...commonAttrs, label })
expect(service.defaultBadgeData.label).to.equal(label)
})
it('sets specified category', function() {
it('sets specified category', function () {
const service = deprecatedService({ ...commonAttrs })
expect(service.category).to.equal(category)
})
it('sets specified examples', function() {
it('sets specified examples', function () {
const examples = [
{
title: 'Not sure we would have examples',
@@ -48,7 +48,7 @@ describe('DeprecatedService', function() {
expect(service.examples).to.deep.equal(examples)
})
it('uses default deprecation message when no message specified', async function() {
it('uses default deprecation message when no message specified', async function () {
const service = deprecatedService({ ...commonAttrs })
expect(await service.invoke()).to.deep.equal({
isError: true,
@@ -57,7 +57,7 @@ describe('DeprecatedService', function() {
})
})
it('uses custom deprecation message when specified', async function() {
it('uses custom deprecation message when specified', async function () {
const message = 'extended outage'
const service = deprecatedService({ ...commonAttrs, message })
expect(await service.invoke()).to.deep.equal({

View File

@@ -1,6 +1,6 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { pathToRegexp, compile } = require('path-to-regexp')
const categories = require('../../services/categories')
const coalesceBadge = require('./coalesce-badge')
@@ -21,19 +21,12 @@ const schema = Joi.object({
staticPreview: Joi.object({
label: Joi.string(),
message: Joi.alternatives()
.try(
Joi.string()
.allow('')
.required(),
Joi.number()
)
.try(Joi.string().allow('').required(), Joi.number())
.required(),
color: Joi.string(),
style: Joi.string(),
}).required(),
keywords: Joi.array()
.items(Joi.string())
.default([]),
keywords: Joi.array().items(Joi.string()).default([]),
documentation: Joi.string(), // Valid HTML.
}).required()
@@ -131,12 +124,7 @@ function transformExample(inExample, index, ServiceClass) {
documentation,
} = validateExample(inExample, index, ServiceClass)
const {
text: [label, message],
color,
template: style,
namedLogo,
} = coalesceBadge(
const { label, message, color, style, namedLogo } = coalesceBadge(
{},
staticPreview,
ServiceClass.defaultBadgeData,

View File

@@ -4,8 +4,8 @@ const { expect } = require('chai')
const { test, given } = require('sazerac')
const { validateExample, transformExample } = require('./examples')
describe('validateExample function', function() {
it('passes valid examples', function() {
describe('validateExample function', function () {
it('passes valid examples', function () {
const validExamples = [
{
title: 'Package manager versioning badge',
@@ -23,7 +23,7 @@ describe('validateExample function', function() {
})
})
it('rejects invalid examples', function() {
it('rejects invalid examples', function () {
const invalidExamples = [
{},
{ staticPreview: { message: '123' } },
@@ -74,7 +74,7 @@ describe('validateExample function', function() {
})
})
test(transformExample, function() {
test(transformExample, function () {
const ExampleService = {
name: 'ExampleService',
route: {

View File

@@ -7,8 +7,8 @@ const { mergeQueries } = require('./graphql')
require('../register-chai-plugins.spec')
describe('mergeQueries function', function() {
it('merges valid gql queries', function() {
describe('mergeQueries function', function () {
it('merges valid gql queries', function () {
expect(
print(
mergeQueries(
@@ -86,7 +86,7 @@ describe('mergeQueries function', function() {
).to.equalIgnoreSpaces('{ foo bar }')
})
it('throws an error when passed invalid params', function() {
it('throws an error when passed invalid params', function () {
expect(() => mergeQueries('', '')).to.throw(Error)
expect(() => mergeQueries(undefined, 17, true)).to.throw(Error)
expect(() => mergeQueries(gql``, gql`foo`)).to.throw(Error)

View File

@@ -2,7 +2,7 @@
const request = require('request')
const queryString = require('query-string')
const makeBadge = require('../../gh-badges/lib/make-badge')
const makeBadge = require('../../badge-maker/lib/make-badge')
const { setCacheHeaders } = require('./cache-headers')
const {
Inaccessible,
@@ -107,6 +107,20 @@ function handleRequest(cacheHeaderConfig, handlerOptions) {
} = handlerOptions
return (queryParams, match, end, ask) => {
/*
This is here for legacy reasons. The badge server and frontend used to live
on two different servers. When we merged them there was a conflict so we
did this to avoid moving the endpoint docs to another URL.
Never ever do this again.
*/
if (match[0] === '/endpoint' && Object.keys(queryParams).length === 0) {
ask.res.statusCode = 301
ask.res.setHeader('Location', '/endpoint/')
ask.res.end()
return
}
const reqTime = new Date()
// `defaultCacheLengthSeconds` can be overridden by
@@ -254,7 +268,7 @@ function handleRequest(cacheHeaderConfig, handlerOptions) {
let dataHasChanged = false
if (
cached !== undefined &&
cached.data.badgeData.text[1] !== badgeData.text[1]
cached.data.badgeData.message !== badgeData.message
) {
dataHasChanged = true
}

View File

@@ -3,7 +3,7 @@
const { expect } = require('chai')
const nock = require('nock')
const portfinder = require('portfinder')
const Camp = require('camp')
const Camp = require('@shields_io/camp')
const got = require('../got-test-client')
const coalesceBadge = require('./coalesce-badge')
const {
@@ -70,19 +70,19 @@ function fakeHandlerWithNetworkIo(queryParams, match, sendBadge, request) {
})
}
describe('The request handler', function() {
describe('The request handler', function () {
let port, baseUrl
beforeEach(async function() {
beforeEach(async function () {
port = await portfinder.getPortPromise()
baseUrl = `http://127.0.0.1:${port}`
})
let camp
beforeEach(function(done) {
beforeEach(function (done) {
camp = Camp.start({ port, hostname: '::' })
camp.on('listening', () => done())
})
afterEach(function(done) {
afterEach(function (done) {
clearRequestCache()
if (camp) {
camp.close(() => done())
@@ -92,17 +92,17 @@ describe('The request handler', function() {
const standardCacheHeaders = { defaultCacheLengthSeconds: 120 }
describe('the options object calling style', function() {
beforeEach(function() {
describe('the options object calling style', function () {
beforeEach(function () {
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
handleRequest(standardCacheHeaders, { handler: fakeHandler })
)
})
it('should return the expected response', async function() {
it('should return the expected response', async function () {
const { statusCode, body } = await got(`${baseUrl}/testing/123.json`, {
json: true,
responseType: 'json',
})
expect(statusCode).to.equal(200)
expect(body).to.deep.equal({
@@ -116,17 +116,17 @@ describe('The request handler', function() {
})
})
describe('the function shorthand calling style', function() {
beforeEach(function() {
describe('the function shorthand calling style', function () {
beforeEach(function () {
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
handleRequest(standardCacheHeaders, fakeHandler)
)
})
it('should return the expected response', async function() {
it('should return the expected response', async function () {
const { statusCode, body } = await got(`${baseUrl}/testing/123.json`, {
json: true,
responseType: 'json',
})
expect(statusCode).to.equal(200)
expect(body).to.deep.equal({
@@ -140,8 +140,8 @@ describe('The request handler', function() {
})
})
describe('the response size limit', function() {
beforeEach(function() {
describe('the response size limit', function () {
beforeEach(function () {
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
handleRequest(standardCacheHeaders, {
@@ -151,13 +151,13 @@ describe('The request handler', function() {
)
})
it('should not throw an error if the response <= fetchLimitBytes', async function() {
it('should not throw an error if the response <= fetchLimitBytes', async function () {
nock('https://www.google.com')
.get('/foo/bar')
.once()
.reply(200, 'x'.repeat(100))
const { statusCode, body } = await got(`${baseUrl}/testing/123.json`, {
json: true,
responseType: 'json',
})
expect(statusCode).to.equal(200)
expect(body).to.deep.equal({
@@ -170,13 +170,13 @@ describe('The request handler', function() {
})
})
it('should throw an error if the response is > fetchLimitBytes', async function() {
it('should throw an error if the response is > fetchLimitBytes', async function () {
nock('https://www.google.com')
.get('/foo/bar')
.once()
.reply(200, 'x'.repeat(101))
const { statusCode, body } = await got(`${baseUrl}/testing/123.json`, {
json: true,
responseType: 'json',
})
expect(statusCode).to.equal(200)
expect(body).to.deep.equal({
@@ -189,15 +189,15 @@ describe('The request handler', function() {
})
})
afterEach(function() {
afterEach(function () {
nock.cleanAll()
})
})
describe('caching', function() {
describe('standard query parameters', function() {
describe('caching', function () {
describe('standard query parameters', function () {
let handlerCallCount
beforeEach(function() {
beforeEach(function () {
handlerCallCount = 0
})
@@ -214,12 +214,12 @@ describe('The request handler', function() {
)
}
context('With standard cache settings', function() {
beforeEach(function() {
context('With standard cache settings', function () {
beforeEach(function () {
register({ cacheHeaderConfig: standardCacheHeaders })
})
it('should cache identical requests', async function() {
it('should cache identical requests', async function () {
await performTwoRequests(
baseUrl,
'/testing/123.svg',
@@ -228,7 +228,7 @@ describe('The request handler', function() {
expect(handlerCallCount).to.equal(1)
})
it('should differentiate known query parameters', async function() {
it('should differentiate known query parameters', async function () {
await performTwoRequests(
baseUrl,
'/testing/123.svg?label=foo',
@@ -237,7 +237,7 @@ describe('The request handler', function() {
expect(handlerCallCount).to.equal(2)
})
it('should ignore unknown query parameters', async function() {
it('should ignore unknown query parameters', async function () {
await performTwoRequests(
baseUrl,
'/testing/123.svg?foo=1',
@@ -247,17 +247,17 @@ describe('The request handler', function() {
})
})
it('should set the expires header to current time + defaultCacheLengthSeconds', async function() {
it('should set the expires header to current time + defaultCacheLengthSeconds', async function () {
register({ cacheHeaderConfig: { defaultCacheLengthSeconds: 900 } })
const { headers } = await got(`${baseUrl}/testing/123.json`)
const expectedExpiry = new Date(
+new Date(headers.date) + 900000
).toGMTString()
expect(headers.expires).to.equal(expectedExpiry)
expect(headers['cache-control']).to.equal('max-age=900')
expect(headers['cache-control']).to.equal('max-age=900, s-maxage=900')
})
it('should set the expected cache headers on cached responses', async function() {
it('should set the expected cache headers on cached responses', async function () {
register({ cacheHeaderConfig: { defaultCacheLengthSeconds: 900 } })
// Make first request.
@@ -268,10 +268,10 @@ describe('The request handler', function() {
+new Date(headers.date) + 900000
).toGMTString()
expect(headers.expires).to.equal(expectedExpiry)
expect(headers['cache-control']).to.equal('max-age=900')
expect(headers['cache-control']).to.equal('max-age=900, s-maxage=900')
})
it('should let live service data override the default cache headers with longer value', async function() {
it('should let live service data override the default cache headers with longer value', async function () {
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
handleRequest(
@@ -289,10 +289,10 @@ describe('The request handler', function() {
)
const { headers } = await got(`${baseUrl}/testing/123.json`)
expect(headers['cache-control']).to.equal('max-age=400')
expect(headers['cache-control']).to.equal('max-age=400, s-maxage=400')
})
it('should not let live service data override the default cache headers with shorter value', async function() {
it('should not let live service data override the default cache headers with shorter value', async function () {
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
handleRequest(
@@ -310,10 +310,10 @@ describe('The request handler', function() {
)
const { headers } = await got(`${baseUrl}/testing/123.json`)
expect(headers['cache-control']).to.equal('max-age=300')
expect(headers['cache-control']).to.equal('max-age=300, s-maxage=300')
})
it('should set the expires header to current time + cacheSeconds', async function() {
it('should set the expires header to current time + cacheSeconds', async function () {
register({ cacheHeaderConfig: { defaultCacheLengthSeconds: 0 } })
const { headers } = await got(
`${baseUrl}/testing/123.json?cacheSeconds=3600`
@@ -322,10 +322,10 @@ describe('The request handler', function() {
+new Date(headers.date) + 3600000
).toGMTString()
expect(headers.expires).to.equal(expectedExpiry)
expect(headers['cache-control']).to.equal('max-age=3600')
expect(headers['cache-control']).to.equal('max-age=3600, s-maxage=3600')
})
it('should ignore cacheSeconds when shorter than defaultCacheLengthSeconds', async function() {
it('should ignore cacheSeconds when shorter than defaultCacheLengthSeconds', async function () {
register({ cacheHeaderConfig: { defaultCacheLengthSeconds: 600 } })
const { headers } = await got(
`${baseUrl}/testing/123.json?cacheSeconds=300`
@@ -334,10 +334,10 @@ describe('The request handler', function() {
+new Date(headers.date) + 600000
).toGMTString()
expect(headers.expires).to.equal(expectedExpiry)
expect(headers['cache-control']).to.equal('max-age=600')
expect(headers['cache-control']).to.equal('max-age=600, s-maxage=600')
})
it('should set Cache-Control: no-cache, no-store, must-revalidate if cache seconds is 0', async function() {
it('should set Cache-Control: no-cache, no-store, must-revalidate if cache seconds is 0', async function () {
register({ cacheHeaderConfig: { defaultCacheLengthSeconds: 0 } })
const { headers } = await got(`${baseUrl}/testing/123.json`)
expect(headers.expires).to.equal(headers.date)
@@ -346,25 +346,25 @@ describe('The request handler', function() {
)
})
describe('the cache key', function() {
beforeEach(function() {
describe('the cache key', function () {
beforeEach(function () {
register({ cacheHeaderConfig: standardCacheHeaders })
})
const expectedCacheKey = '/testing/123.json?color=123&label=foo'
it('should match expected and use canonical order - 1', async function() {
it('should match expected and use canonical order - 1', async function () {
await got(`${baseUrl}/testing/123.json?color=123&label=foo`)
expect(_requestCache.cache).to.have.keys(expectedCacheKey)
})
it('should match expected and use canonical order - 2', async function() {
it('should match expected and use canonical order - 2', async function () {
await got(`${baseUrl}/testing/123.json?label=foo&color=123`)
expect(_requestCache.cache).to.have.keys(expectedCacheKey)
})
})
})
describe('custom query parameters', function() {
describe('custom query parameters', function () {
let handlerCallCount
beforeEach(function() {
beforeEach(function () {
handlerCallCount = 0
camp.route(
/^\/testing\/([^/]+)\.(svg|png|gif|jpg|json)$/,
@@ -378,7 +378,7 @@ describe('The request handler', function() {
)
})
it('should differentiate them', async function() {
it('should differentiate them', async function () {
await performTwoRequests(
baseUrl,
'/testing/123.svg?foo=1',

View File

@@ -3,28 +3,12 @@
const BaseJsonService = require('../base-json')
class GoodServiceOne extends BaseJsonService {
static get category() {
return 'build'
}
static get route() {
return {
base: 'good',
pattern: 'one',
}
}
static category = 'build'
static route = { base: 'good', pattern: 'one' }
}
class GoodServiceTwo extends BaseJsonService {
static get category() {
return 'build'
}
static get route() {
return {
base: 'good',
pattern: 'two',
}
}
static category = 'build'
static route = { base: 'good', pattern: 'two' }
}
module.exports = [GoodServiceOne, GoodServiceTwo]

View File

@@ -3,16 +3,8 @@
const BaseJsonService = require('../base-json')
class GoodService extends BaseJsonService {
static get category() {
return 'build'
}
static get route() {
return {
base: 'it/is',
pattern: 'good',
}
}
static category = 'build'
static route = { base: 'it/is', pattern: 'good' }
}
module.exports = GoodService

View File

@@ -3,28 +3,12 @@
const BaseJsonService = require('../base-json')
class GoodServiceOne extends BaseJsonService {
static get category() {
return 'build'
}
static get route() {
return {
base: 'good',
pattern: 'one',
}
}
static category = 'build'
static route = { base: 'good', pattern: 'one' }
}
class GoodServiceTwo extends BaseJsonService {
static get category() {
return 'build'
}
static get route() {
return {
base: 'good',
pattern: 'two',
}
}
static category = 'build'
static route = { base: 'good', pattern: 'two' }
}
module.exports = { GoodServiceOne, GoodServiceTwo }

View File

@@ -3,8 +3,8 @@
const { expect } = require('chai')
const { loadServiceClasses, InvalidService } = require('./loader')
describe('loadServiceClasses function', function() {
it('throws if module exports empty', function() {
describe('loadServiceClasses function', function () {
it('throws if module exports empty', function () {
expect(() =>
loadServiceClasses(['./loader-test-fixtures/empty-undefined.fixture.js'])
).to.throw(InvalidService)
@@ -26,7 +26,7 @@ describe('loadServiceClasses function', function() {
).to.throw(InvalidService)
})
it('throws if module exports invalid', function() {
it('throws if module exports invalid', function () {
expect(() =>
loadServiceClasses(['./loader-test-fixtures/invalid-no-base.fixture.js'])
).to.throw(InvalidService)
@@ -47,7 +47,7 @@ describe('loadServiceClasses function', function() {
).to.throw(InvalidService)
})
it('registers services if module exports valid service classes', function() {
it('registers services if module exports valid service classes', function () {
expect(
loadServiceClasses([
'./loader-test-fixtures/valid-array.fixture.js',

View File

@@ -126,7 +126,7 @@ Cache.prototype = {
}
},
clear: function() {
clear: function () {
this.cache.clear()
this.newest = null
this.oldest = null

View File

@@ -25,14 +25,14 @@ function expectCacheSlots(cache, keys) {
}
}
describe('The LRU cache', function() {
it('should support a zero capacity', function() {
describe('The LRU cache', function () {
it('should support a zero capacity', function () {
const cache = new LRU(0)
cache.set('key', 'value')
expect(cache.cache.size).to.equal(0)
})
it('should support a one capacity', function() {
it('should support a one capacity', function () {
const cache = new LRU(1)
cache.set('key1', 'value1')
expectCacheSlots(cache, ['key1'])
@@ -42,7 +42,7 @@ describe('The LRU cache', function() {
expect(cache.get('key2')).to.equal('value2')
})
it('should remove the oldest element when reaching capacity', function() {
it('should remove the oldest element when reaching capacity', function () {
const cache = new LRU(2)
cache.set('key1', 'value1')
@@ -57,7 +57,7 @@ describe('The LRU cache', function() {
expect(cache.get('key3')).to.equal('value3')
})
it('should make sure that resetting a key in cache makes it newest', function() {
it('should make sure that resetting a key in cache makes it newest', function () {
const cache = new LRU(2)
cache.set('key', 'value')
@@ -70,9 +70,9 @@ describe('The LRU cache', function() {
expectCacheSlots(cache, ['key2', 'key'])
})
describe('getting a key in the cache', function() {
context('when the requested key is oldest', function() {
it('should leave the keys in the expected order', function() {
describe('getting a key in the cache', function () {
context('when the requested key is oldest', function () {
it('should leave the keys in the expected order', function () {
const cache = new LRU(2)
cache.set('key1', 'value1')
cache.set('key2', 'value2')
@@ -85,8 +85,8 @@ describe('The LRU cache', function() {
})
})
context('when the requested key is newest', function() {
it('should leave the keys in the expected order', function() {
context('when the requested key is newest', function () {
it('should leave the keys in the expected order', function () {
const cache = new LRU(2)
cache.set('key1', 'value1')
cache.set('key2', 'value2')
@@ -97,8 +97,8 @@ describe('The LRU cache', function() {
})
})
context('when the requested key is in the middle', function() {
it('should leave the keys in the expected order', function() {
context('when the requested key is in the middle', function () {
it('should leave the keys in the expected order', function () {
const cache = new LRU(3)
cache.set('key1', 'value1')
cache.set('key2', 'value2')
@@ -113,7 +113,7 @@ describe('The LRU cache', function() {
})
})
it('should clear', function() {
it('should clear', function () {
// Set up.
const cache = new LRU(2)
cache.set('key1', 'value1')

View File

@@ -2,7 +2,7 @@
const camelcase = require('camelcase')
const emojic = require('emojic')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const queryString = require('query-string')
const BaseService = require('./base')
const {
@@ -41,27 +41,15 @@ module.exports = function redirector(attrs) {
} = Joi.attempt(attrs, attrSchema, `Redirector for ${attrs.route.base}`)
return class Redirector extends BaseService {
static get name() {
if (name) {
return name
} else {
return `${camelcase(route.base.replace(/\//g, '_'), {
pascalCase: true,
})}Redirect`
}
}
static name =
name ||
`${camelcase(route.base.replace(/\//g, '_'), {
pascalCase: true,
})}Redirect`
static get category() {
return category
}
static get isDeprecated() {
return true
}
static get route() {
return route
}
static category = category
static isDeprecated = true
static route = route
static register({ camp, metricInstance }, { rasterUrl }) {
const { regex, captureNames } = prepareRoute({

View File

@@ -1,12 +1,12 @@
'use strict'
const Camp = require('camp')
const Camp = require('@shields_io/camp')
const portfinder = require('portfinder')
const { expect } = require('chai')
const got = require('../got-test-client')
const redirector = require('./redirector')
describe('Redirector', function() {
describe('Redirector', function () {
const route = {
base: 'very/old/service',
pattern: ':namedParamA',
@@ -16,15 +16,15 @@ describe('Redirector', function() {
const dateAdded = new Date()
const attrs = { category, route, transformPath, dateAdded }
it('returns true on isDeprecated', function() {
it('returns true on isDeprecated', function () {
expect(redirector(attrs).isDeprecated).to.be.true
})
it('has the expected name', function() {
it('has the expected name', function () {
expect(redirector(attrs).name).to.equal('VeryOldServiceRedirect')
})
it('overrides the name', function() {
it('overrides the name', function () {
expect(
redirector({
...attrs,
@@ -33,33 +33,33 @@ describe('Redirector', function() {
).to.equal('ShinyRedirect')
})
it('sets specified route', function() {
it('sets specified route', function () {
expect(redirector(attrs).route).to.deep.equal(route)
})
it('sets specified category', function() {
it('sets specified category', function () {
expect(redirector(attrs).category).to.equal(category)
})
it('throws the expected error when dateAdded is missing', function() {
it('throws the expected error when dateAdded is missing', function () {
expect(() =>
redirector({ route, category, transformPath }).validateDefinition()
).to.throw('"dateAdded" is required')
})
describe('ScoutCamp integration', function() {
describe('ScoutCamp integration', function () {
let port, baseUrl
beforeEach(async function() {
beforeEach(async function () {
port = await portfinder.getPortPromise()
baseUrl = `http://127.0.0.1:${port}`
})
let camp
beforeEach(async function() {
beforeEach(async function () {
camp = Camp.start({ port, hostname: '::' })
await new Promise(resolve => camp.on('listening', () => resolve()))
})
afterEach(async function() {
afterEach(async function () {
if (camp) {
await new Promise(resolve => camp.close(resolve))
camp = undefined
@@ -68,7 +68,7 @@ describe('Redirector', function() {
const transformPath = ({ namedParamA }) => `/new/service/${namedParamA}`
beforeEach(function() {
beforeEach(function () {
const ServiceClass = redirector({
category,
route,
@@ -81,7 +81,7 @@ describe('Redirector', function() {
)
})
it('should redirect as configured', async function() {
it('should redirect as configured', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/very/old/service/hello-world.svg`,
{
@@ -93,7 +93,7 @@ describe('Redirector', function() {
expect(headers.location).to.equal('/new/service/hello-world.svg')
})
it('should redirect raster extensions to the canonical path as configured', async function() {
it('should redirect raster extensions to the canonical path as configured', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/very/old/service/hello-world.png`,
{
@@ -107,7 +107,7 @@ describe('Redirector', function() {
)
})
it('should forward the query params', async function() {
it('should forward the query params', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/very/old/service/hello-world.svg?color=123&style=flat-square`,
{
@@ -121,14 +121,14 @@ describe('Redirector', function() {
)
})
describe('transformQueryParams', function() {
describe('transformQueryParams', function () {
const route = {
base: 'another/old/service',
pattern: 'token/:token/:namedParamA',
}
const transformQueryParams = ({ token }) => ({ token })
beforeEach(function() {
beforeEach(function () {
const ServiceClass = redirector({
category,
route,
@@ -139,7 +139,7 @@ describe('Redirector', function() {
ServiceClass.register({ camp }, {})
})
it('should forward the transformed query params', async function() {
it('should forward the transformed query params', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/another/old/service/token/abc123/hello-world.svg`,
{
@@ -153,7 +153,7 @@ describe('Redirector', function() {
)
})
it('should forward the specified and transformed query params', async function() {
it('should forward the specified and transformed query params', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/another/old/service/token/abc123/hello-world.svg?color=123&style=flat-square`,
{
@@ -167,7 +167,7 @@ describe('Redirector', function() {
)
})
it('should use transformed query params on param conflicts by default', async function() {
it('should use transformed query params on param conflicts by default', async function () {
const { statusCode, headers } = await got(
`${baseUrl}/another/old/service/token/abc123/hello-world.svg?color=123&style=flat-square&token=def456`,
{
@@ -181,7 +181,7 @@ describe('Redirector', function() {
)
})
it('should use specified query params on param conflicts when configured', async function() {
it('should use specified query params on param conflicts when configured', async function () {
const route = {
base: 'override/service',
pattern: 'token/:token/:namedParamA',

View File

@@ -1,7 +1,7 @@
'use strict'
const escapeStringRegexp = require('escape-string-regexp')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { pathToRegexp } = require('path-to-regexp')
function makeFullUrl(base, partialUrl) {
@@ -9,9 +9,7 @@ function makeFullUrl(base, partialUrl) {
}
const isValidRoute = Joi.object({
base: Joi.string()
.allow('')
.required(),
base: Joi.string().allow('').required(),
pattern: Joi.string().allow(''),
format: Joi.string(),
capture: Joi.alternatives().conditional('format', {

View File

@@ -1,7 +1,7 @@
'use strict'
const { expect } = require('chai')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { test, given, forCases } = require('sazerac')
const {
prepareRoute,
@@ -9,8 +9,8 @@ const {
getQueryParamNames,
} = require('./route')
describe('Route helpers', function() {
context('A `pattern` with a named param is declared', function() {
describe('Route helpers', function () {
context('A `pattern` with a named param is declared', function () {
const { regex, captureNames } = prepareRoute({
base: 'foo',
pattern: ':namedParamA',
@@ -36,7 +36,7 @@ describe('Route helpers', function() {
})
})
context('A `format` with a named param is declared', function() {
context('A `format` with a named param is declared', function () {
const { regex, captureNames } = prepareRoute({
base: 'foo',
format: '([^/]+?)',
@@ -62,7 +62,7 @@ describe('Route helpers', function() {
})
})
context('No named params are declared', function() {
context('No named params are declared', function () {
const { regex, captureNames } = prepareRoute({
base: 'foo',
format: '(?:[^/]+)',
@@ -78,7 +78,7 @@ describe('Route helpers', function() {
})
})
context('The wrong number of params are declared', function() {
context('The wrong number of params are declared', function () {
const { regex, captureNames } = prepareRoute({
base: 'foo',
format: '([^/]+)/([^/]+)',
@@ -94,7 +94,7 @@ describe('Route helpers', function() {
)
})
it('getQueryParamNames', function() {
it('getQueryParamNames', function () {
expect(
getQueryParamNames({
queryParamSchema: Joi.object({ foo: Joi.string() }).required(),

View File

@@ -1,14 +1,11 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
// This should be kept in sync with the schema in
// `frontend/lib/service-definitions/index.ts`.
const arrayOfStrings = Joi.array()
.items(Joi.string())
.min(0)
.required()
const arrayOfStrings = Joi.array().items(Joi.string()).min(0).required()
const objectOfKeyValues = Joi.object()
.pattern(/./, Joi.string().allow(null))
@@ -39,9 +36,7 @@ const serviceDefinition = Joi.object({
}).required(),
preview: Joi.object({
label: Joi.string(),
message: Joi.string()
.allow('')
.required(),
message: Joi.string().allow('').required(),
color: Joi.string().required(),
style: Joi.string(),
namedLogo: Joi.string(),
@@ -70,9 +65,7 @@ const serviceDefinitionExport = Joi.object({
})
)
.required(),
services: Joi.array()
.items(serviceDefinition)
.required(),
services: Joi.array().items(serviceDefinition).required(),
}).required()
function assertValidServiceDefinitionExport(examples, message = undefined) {

View File

@@ -1,7 +1,7 @@
'use strict'
const emojic = require('emojic')
const Joi = require('@hapi/joi')
const Joi = require('joi')
const trace = require('./trace')
function validate(

View File

@@ -1,25 +1,25 @@
'use strict'
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
const sinon = require('sinon')
const trace = require('./trace')
const { InvalidParameter } = require('./errors')
const validate = require('./validate')
describe('validate', function() {
describe('validate', function () {
const schema = Joi.object({
requiredString: Joi.string().required(),
}).required()
let sandbox
beforeEach(function() {
beforeEach(function () {
sandbox = sinon.createSandbox()
})
afterEach(function() {
afterEach(function () {
sandbox.restore()
})
beforeEach(function() {
beforeEach(function () {
sandbox.stub(trace, 'logTrace')
})
@@ -35,8 +35,8 @@ describe('validate', function() {
traceSuccessMessage,
}
context('schema is not provided', function() {
it('throws the expected programmer error', function() {
context('schema is not provided', function () {
it('throws the expected programmer error', function () {
try {
validate(options, { requiredString: 'bar' }, undefined)
expect.fail('Expected to throw')
@@ -47,8 +47,8 @@ describe('validate', function() {
})
})
context('data matches schema', function() {
it('logs the data', function() {
context('data matches schema', function () {
it('logs the data', function () {
validate(options, { requiredString: 'bar' }, schema)
expect(trace.logTrace).to.be.calledWithMatch(
'validate',
@@ -60,8 +60,8 @@ describe('validate', function() {
})
})
context('data does not match schema', function() {
it('logs the data and throws the expected error', function() {
context('data does not match schema', function () {
it('logs the data and throws the expected error', function () {
try {
validate(
options,
@@ -84,8 +84,8 @@ describe('validate', function() {
)
})
context('with includeKeys: true', function() {
it('includes keys in the error text', function() {
context('with includeKeys: true', function () {
it('includes keys in the error text', function () {
try {
validate(
{ ...options, includeKeys: true },
@@ -108,7 +108,7 @@ describe('validate', function() {
})
})
it('allowAndStripUnknownKeys', function() {
it('allowAndStripUnknownKeys', function () {
try {
validate(
{ ...options, allowAndStripUnknownKeys: false, includeKeys: true },

View File

@@ -1,38 +0,0 @@
'use strict'
const deepmerge = require('deepmerge')
class RedundantCustomConfiguration extends Error {
constructor(message) {
super(message)
this.name = 'RedundantCustomConfiguration'
}
}
function merge(_default, custom) {
// Overwrites the existing array values completely rather than concatenating them
// recipe from https://github.com/TehShrike/deepmerge#arraymerge
const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray
return deepmerge(_default, custom, {
arrayMerge: overwriteMerge,
})
}
function checkCustomIntegrationConfiguration(config, serviceClasses) {
const serviceNames = new Set(
serviceClasses.map(serviceClass => serviceClass.name)
)
const redundantConfigurations = Object.keys(config.public.integrations)
.filter(configName => configName !== 'default')
.filter(configName => !serviceNames.has(configName))
if (redundantConfigurations.length) {
throw new RedundantCustomConfiguration(
`Custom configurations found without a corresponding service: ${redundantConfigurations}`
)
}
}
module.exports = {
RedundantCustomConfiguration,
merge,
checkCustomIntegrationConfiguration,
}

View File

@@ -1,61 +0,0 @@
'use strict'
const { test, given } = require('sazerac')
const { expect } = require('chai')
const {
RedundantCustomConfiguration,
merge,
checkCustomIntegrationConfiguration,
} = require('./config')
describe('configuration', function() {
test(merge, function() {
given({ a: 2 }, {})
.describe('copies the default value')
.expect({ a: 2 })
given({ a: 2 }, { a: 3 })
.describe('overrides a primitive value')
.expect({ a: 3 })
given({ a: { a1: 1, a2: 2 } }, { a: { a1: 2 } })
.describe('merges objects')
.expect({ a: { a1: 2, a2: 2 } })
given({ a: { a1: 1, a2: 2 } }, { a: 3 })
.describe('overrides an object with a primitive')
.expect({ a: 3 })
given({ a: { a1: 1, a2: 2 } }, { a: {} })
.describe('does not override an object with an empty object')
.expect({ a: { a1: 1, a2: 2 } })
given({ a: [2, 3, 4] }, { a: [5, 6] })
.describe('overrides array')
.expect({ a: [5, 6] })
})
describe('checkCustomIntegrationConfiguration function', function() {
it('accepts the default configuration', function() {
const config = { public: { integrations: { default: {} } } }
const serviceClasses = [{ name: 'SomeService' }]
expect(() =>
checkCustomIntegrationConfiguration(config, serviceClasses)
).not.throw()
})
it('accepts a configuration for an existing service', function() {
const config = { public: { integrations: { SomeService: {} } } }
const serviceClasses = [{ name: 'SomeService' }]
expect(() =>
checkCustomIntegrationConfiguration(config, serviceClasses)
).not.throw()
})
it('throws an error if a custom config does not have a corresponding service', function() {
const config = { public: { integrations: { UnknownService: {} } } }
const serviceClasses = [{ name: 'KnownService' }]
expect(() =>
checkCustomIntegrationConfiguration(config, serviceClasses)
).to.throw(RedundantCustomConfiguration)
})
})
})

View File

@@ -6,7 +6,7 @@ const { expect } = require('chai')
const log = require('./log')
const InfluxMetrics = require('./influx-metrics')
require('../register-chai-plugins.spec')
describe('Influx metrics', function() {
describe('Influx metrics', function () {
const metricInstance = {
metrics() {
return [
@@ -20,16 +20,16 @@ describe('Influx metrics', function() {
]
},
}
describe('"metrics" function', function() {
describe('"metrics" function', function () {
let osHostnameStub
afterEach(function() {
afterEach(function () {
nock.enableNetConnect()
delete process.env.INSTANCE_ID
if (osHostnameStub) {
osHostnameStub.restore()
}
})
it('should use an environment variable value as an instance label', async function() {
it('should use an environment variable value as an instance label', async function () {
process.env.INSTANCE_ID = 'instance3'
const influxMetrics = new InfluxMetrics(metricInstance, {
instanceIdFrom: 'env-var',
@@ -39,7 +39,7 @@ describe('Influx metrics', function() {
expect(influxMetrics.metrics()).to.contain('instance=instance3')
})
it('should use a hostname as an instance label', async function() {
it('should use a hostname as an instance label', async function () {
osHostnameStub = sinon.stub(os, 'hostname').returns('test-hostname')
const customConfig = {
instanceIdFrom: 'hostname',
@@ -49,7 +49,7 @@ describe('Influx metrics', function() {
expect(influxMetrics.metrics()).to.be.contain('instance=test-hostname')
})
it('should use a random string as an instance label', async function() {
it('should use a random string as an instance label', async function () {
const customConfig = {
instanceIdFrom: 'random',
}
@@ -58,7 +58,7 @@ describe('Influx metrics', function() {
expect(influxMetrics.metrics()).to.be.match(/instance=\w+ /)
})
it('should use a hostname alias as an instance label', async function() {
it('should use a hostname alias as an instance label', async function () {
osHostnameStub = sinon.stub(os, 'hostname').returns('test-hostname')
const customConfig = {
instanceIdFrom: 'hostname',
@@ -72,12 +72,12 @@ describe('Influx metrics', function() {
})
})
describe('startPushingMetrics', function() {
describe('startPushingMetrics', function () {
let influxMetrics, clock
beforeEach(function() {
beforeEach(function () {
clock = sinon.useFakeTimers()
})
afterEach(function() {
afterEach(function () {
influxMetrics.stopPushingMetrics()
nock.cleanAll()
nock.enableNetConnect()
@@ -85,7 +85,7 @@ describe('Influx metrics', function() {
clock.restore()
})
it('should send metrics', async function() {
it('should send metrics', async function () {
const scope = nock('http://shields-metrics.io/', {
reqheaders: {
'Content-Type': 'application/x-www-form-urlencoded',
@@ -120,11 +120,11 @@ describe('Influx metrics', function() {
})
})
describe('sendMetrics', function() {
beforeEach(function() {
sinon.spy(log, 'error')
describe('sendMetrics', function () {
beforeEach(function () {
sinon.stub(log, 'error')
})
afterEach(function() {
afterEach(function () {
log.error.restore()
nock.cleanAll()
nock.enableNetConnect()
@@ -137,7 +137,7 @@ describe('Influx metrics', function() {
username: 'metrics-username',
password: 'metrics-password',
})
it('should log errors', async function() {
it('should log errors', async function () {
nock.disableNetConnect()
await influxMetrics.sendMetrics()
@@ -154,11 +154,8 @@ describe('Influx metrics', function() {
)
})
it('should log error responses', async function() {
nock('http://shields-metrics.io/')
.persist()
.post('/metrics')
.reply(400)
it('should log error responses', async function () {
nock('http://shields-metrics.io/').persist().post('/metrics').reply(400)
await influxMetrics.sendMetrics()

View File

@@ -2,9 +2,7 @@
function generateInstanceId() {
// from https://gist.github.com/gordonbrander/2230317
return Math.random()
.toString(36)
.substr(2, 9)
return Math.random().toString(36).substr(2, 9)
}
module.exports = generateInstanceId

View File

@@ -4,9 +4,9 @@ const { expect } = require('chai')
const prometheus = require('prom-client')
const { promClientJsonToInfluxV2 } = require('./format-converters')
describe('Metric format converters', function() {
describe('prom-client JSON to InfluxDB line protocol (version 2)', function() {
it('converts a counter', function() {
describe('Metric format converters', function () {
describe('prom-client JSON to InfluxDB line protocol (version 2)', function () {
it('converts a counter', function () {
const json = [
{
help: 'counter 1 help',
@@ -22,7 +22,7 @@ describe('Metric format converters', function() {
expect(influx).to.be.equal('prometheus counter1=11')
})
it('converts a counter (from prometheus registry)', function() {
it('converts a counter (from prometheus registry)', function () {
const register = new prometheus.Registry()
const counter = new prometheus.Counter({
name: 'counter1',
@@ -36,7 +36,7 @@ describe('Metric format converters', function() {
expect(influx).to.be.equal('prometheus counter1=11')
})
it('converts a gauge', function() {
it('converts a gauge', function () {
const json = [
{
help: 'gause 1 help',
@@ -52,7 +52,7 @@ describe('Metric format converters', function() {
expect(influx).to.be.equal('prometheus gauge1=20')
})
it('converts a gauge (from prometheus registry)', function() {
it('converts a gauge (from prometheus registry)', function () {
const register = new prometheus.Registry()
const gauge = new prometheus.Gauge({
name: 'gauge1',
@@ -66,13 +66,9 @@ describe('Metric format converters', function() {
expect(influx).to.be.equal('prometheus gauge1=20')
})
const sortLines = text =>
text
.split('\n')
.sort()
.join('\n')
const sortLines = text => text.split('\n').sort().join('\n')
it('converts a histogram', function() {
it('converts a histogram', function () {
const json = [
{
name: 'histogram1',
@@ -105,7 +101,7 @@ prometheus histogram1_count=3,histogram1_sum=111`)
)
})
it('converts a histogram (from prometheus registry)', function() {
it('converts a histogram (from prometheus registry)', function () {
const register = new prometheus.Registry()
const histogram = new prometheus.Histogram({
name: 'histogram1',
@@ -128,7 +124,7 @@ prometheus histogram1_count=3,histogram1_sum=111`)
)
})
it('converts a summary', function() {
it('converts a summary', function () {
const json = [
{
name: 'summary1',
@@ -155,7 +151,7 @@ prometheus summary1_count=3,summary1_sum=111`)
)
})
it('converts a summary (from prometheus registry)', function() {
it('converts a summary (from prometheus registry)', function () {
const register = new prometheus.Registry()
const summary = new prometheus.Summary({
name: 'summary1',
@@ -177,7 +173,7 @@ prometheus summary1_count=3,summary1_sum=111`)
)
})
it('converts a counter and skip a timestamp', function() {
it('converts a counter and skip a timestamp', function () {
const json = [
{
help: 'counter 4 help',
@@ -193,7 +189,7 @@ prometheus summary1_count=3,summary1_sum=111`)
expect(influx).to.be.equal('prometheus counter4=11')
})
it('converts a counter and adds extra labels', function() {
it('converts a counter and adds extra labels', function () {
const json = [
{
help: 'counter 1 help',

View File

@@ -1,48 +1,25 @@
'use strict'
const config = require('config').util.toObject()
const secretIsValid = require('./secret-is-valid')
const RateLimit = require('./rate-limit')
const log = require('./log')
function secretInvalid(req, res) {
if (!secretIsValid(req.password)) {
// An unknown entity tries to connect. Let the connection linger for a minute.
setTimeout(() => {
res.json({ errors: [{ code: 'invalid_secrets' }] })
}, 10000)
return true
}
return false
}
function setRoutes({ rateLimit }, { server, metricInstance }) {
const ipRateLimit = new RateLimit({
// Exclude IPs for GitHub Camo, determined experimentally by running e.g.
// `curl --insecure -u ":shields-secret" https://s0.shields-server.com/sys/rate-limit`
whitelist: /^(?:192\.30\.252\.\d+)|(?:140\.82\.115\.\d+)$/,
safelist: /^(?:192\.30\.252\.\d+)|(?:140\.82\.115\.\d+)$/,
})
const badgeTypeRateLimit = new RateLimit({ maxHitsPerPeriod: 3000 })
const refererRateLimit = new RateLimit({
maxHitsPerPeriod: 300,
whitelist: /^https?:\/\/shields\.io\/$/,
safelist: /^https?:\/\/shields\.io\/$/,
})
server.handle((req, res, next) => {
if (req.url.startsWith('/sys/')) {
if (secretInvalid(req, res)) {
return
}
}
if (rateLimit) {
const ip =
(req.headers['x-forwarded-for'] || '').split(', ')[0] ||
req.socket.remoteAddress
const badgeType = req.url
.split(/[/-]/)
.slice(0, 3)
.join('')
const badgeType = req.url.split(/[/-]/).slice(0, 3).join('')
const referer = req.headers.referer
if (ipRateLimit.isBanned(ip, req, res)) {
@@ -62,27 +39,6 @@ function setRoutes({ rateLimit }, { server, metricInstance }) {
next()
})
server.get('/sys/network', (req, res) => {
res.json({ ips: config.public.shields_ips })
})
server.ws('/sys/logs', socket => {
const listener = (...msg) => socket.send(msg.join(' '))
socket.on('close', () => log.removeListener(listener))
socket.on('message', msg => {
let req
try {
req = JSON.parse(msg)
} catch (e) {
return
}
if (!secretIsValid(req.secret)) {
return socket.close()
}
log.addListener(listener)
})
})
server.get('/sys/rate-limit', (req, res) => {
res.json({
ip: ipRateLimit.toJSON(),
@@ -91,13 +47,11 @@ function setRoutes({ rateLimit }, { server, metricInstance }) {
})
})
return function() {
return function () {
ipRateLimit.stop()
badgeTypeRateLimit.stop()
refererRateLimit.stop()
}
}
module.exports = {
setRoutes,
}
module.exports = { setRoutes }

View File

@@ -95,6 +95,10 @@ module.exports = class PrometheusMetrics {
}
/**
* @param {object} attrs Refer to individual attrs
* @param {string} attrs.category e.g: 'build'
* @param {string} attrs.serviceFamily e.g: 'npm'
* @param {string} attrs.name e.g: 'NpmVersion'
* @returns {object} `{ inc() {} }`.
*/
createNumRequestCounter({ category, serviceFamily, name }) {

View File

@@ -1,20 +1,20 @@
'use strict'
const { expect } = require('chai')
const Camp = require('camp')
const Camp = require('@shields_io/camp')
const portfinder = require('portfinder')
const got = require('../got-test-client')
const Metrics = require('./prometheus-metrics')
describe('Prometheus metrics route', function() {
describe('Prometheus metrics route', function () {
let port, baseUrl, camp, metrics
beforeEach(async function() {
beforeEach(async function () {
port = await portfinder.getPortPromise()
baseUrl = `http://127.0.0.1:${port}`
camp = Camp.start({ port, hostname: '::' })
await new Promise(resolve => camp.on('listening', () => resolve()))
})
afterEach(async function() {
afterEach(async function () {
if (metrics) {
metrics.stop()
}
@@ -24,7 +24,7 @@ describe('Prometheus metrics route', function() {
}
})
it('returns default metrics', async function() {
it('returns default metrics', async function () {
metrics = new Metrics()
metrics.registerMetricsEndpoint(camp)

View File

@@ -10,7 +10,7 @@ module.exports = class RateLimit {
this.maxHitsPerPeriod = options.maxHitsPerPeriod || 500
this.banned = new Set()
this.bannedUrls = new Set()
this.whitelist = options.whitelist || /(?!)/ // Matches nothing by default.
this.safelist = options.safelist || /(?!)/ // Matches nothing by default.
this.interval = setInterval(this.resetHits.bind(this), this.period * 1000)
}
@@ -29,7 +29,7 @@ module.exports = class RateLimit {
const hitsInCurrentPeriod = this.hits.get(reqParam) || 0
if (
reqParam != null &&
!this.whitelist.test(reqParam) &&
!this.safelist.test(reqParam) &&
hitsInCurrentPeriod > this.maxHitsPerPeriod
) {
this.banned.add(reqParam)

View File

@@ -1,7 +1,5 @@
'use strict'
const serverSecrets = require('../../lib/server-secrets')
function constEq(a, b) {
if (a.length !== b.length) {
return false
@@ -13,9 +11,10 @@ function constEq(a, b) {
return zero === 0
}
module.exports = function secretIsValid(secret = '') {
return (
serverSecrets.shields_secret &&
constEq(secret, serverSecrets.shields_secret)
)
function makeSecretIsValid(shieldsSecret) {
return function secretIsValid(secret = '') {
return shieldsSecret && constEq(secret, shieldsSecret)
}
}
module.exports = { makeSecretIsValid }

View File

@@ -6,9 +6,11 @@
const path = require('path')
const url = require('url')
const { URL } = url
const Camp = require('camp')
const originalJoi = require('@hapi/joi')
const makeBadge = require('../../gh-badges/lib/make-badge')
const cloudflareMiddleware = require('cloudflare-middleware')
const bytes = require('bytes')
const Camp = require('@shields_io/camp')
const originalJoi = require('joi')
const makeBadge = require('../../badge-maker/lib/make-badge')
const GithubConstellation = require('../../services/github/github-constellation')
const suggest = require('../../services/suggest')
const { loadServiceClasses } = require('../base-service/loader')
@@ -19,7 +21,6 @@ const {
} = require('../base-service/legacy-request-handler')
const { clearRegularUpdateCache } = require('../legacy/regular-update')
const { rasterRedirectUrl } = require('../badge-urls/make-badge-url')
const { merge, checkCustomIntegrationConfiguration } = require('./config')
const log = require('./log')
const sysMonitor = require('./monitor')
const PrometheusMetrics = require('./prometheus-metrics')
@@ -59,13 +60,6 @@ const Joi = originalJoi
const optionalUrl = Joi.string().uri({ scheme: ['http', 'https'] })
const requiredUrl = optionalUrl.required()
const bytes = Joi.string().regex(/^[0-9]+(b|kb|mb|gb|tb)$/i)
const requireFields = {
required: schema => schema.required(),
}
const integrationSchema = Joi.object({
fetchLimit: bytes.alter(requireFields),
})
const origins = Joi.arrayFromString().items(Joi.string().origin())
const defaultService = Joi.object({ authorizedOrigins: origins }).default({
authorizedOrigins: [],
@@ -78,12 +72,8 @@ const publicConfigSchema = Joi.object({
Joi.string().pattern(/^\\\\\.\\pipe\\.+$/)
),
address: Joi.alternatives().try(
Joi.string()
.ip()
.required(),
Joi.string()
.hostname()
.required()
Joi.string().ip().required(),
Joi.string().hostname().required()
),
},
metrics: {
@@ -126,12 +116,7 @@ const publicConfigSchema = Joi.object({
redirectUrl: optionalUrl,
rasterUrl: optionalUrl,
cors: {
allowedOrigin: Joi.array()
.items(optionalUrl)
.required(),
},
persistence: {
dir: Joi.string().required(),
allowedOrigin: Joi.array().items(optionalUrl).required(),
},
services: Joi.object({
bitbucketServer: defaultService,
@@ -140,10 +125,7 @@ const publicConfigSchema = Joi.object({
baseUri: requiredUrl,
debug: {
enabled: Joi.boolean().required(),
intervalSeconds: Joi.number()
.integer()
.min(1)
.required(),
intervalSeconds: Joi.number().integer().min(1).required(),
},
},
jira: defaultService,
@@ -159,21 +141,19 @@ const publicConfigSchema = Joi.object({
trace: Joi.boolean().required(),
}).required(),
cacheHeaders: {
defaultCacheLengthSeconds: Joi.number()
.integer()
.required(),
defaultCacheLengthSeconds: Joi.number().integer().required(),
},
rateLimit: Joi.boolean().required(),
handleInternalErrors: Joi.boolean().required(),
integrations: Joi.object({
default: integrationSchema.tailor('required').required(),
}).pattern(Joi.string(), integrationSchema),
fetchLimit: Joi.string().regex(/^[0-9]+(b|kb|mb|gb|tb)$/i),
requireCloudflare: Joi.boolean().required(),
}).required()
const privateConfigSchema = Joi.object({
azure_devops_token: Joi.string(),
bintray_user: Joi.string(),
bintray_apikey: Joi.string(),
discord_bot_token: Joi.string(),
drone_token: Joi.string(),
gh_client_id: Joi.string(),
gh_client_secret: Joi.string(),
@@ -187,7 +167,6 @@ const privateConfigSchema = Joi.object({
npm_token: Joi.string(),
redis_url: Joi.string().uri({ scheme: ['redis', 'rediss'] }),
sentry_dsn: Joi.string(),
shields_ips: Joi.array().items(Joi.string().ip()),
shields_secret: Joi.string(),
sl_insight_userUuid: Joi.string(),
sl_insight_apiToken: Joi.string(),
@@ -199,11 +178,17 @@ const privateConfigSchema = Joi.object({
wheelmap_token: Joi.string(),
influx_username: Joi.string(),
influx_password: Joi.string(),
youtube_api_key: Joi.string(),
}).required()
const privateMetricsInfluxConfigSchema = privateConfigSchema.append({
influx_username: Joi.string().required(),
influx_password: Joi.string().required(),
})
function addHandlerAtIndex(camp, index, handlerFn) {
camp.stack.splice(index, 0, handlerFn)
}
/**
* The Server is based on the web framework Scoutcamp. It creates
* an http server, sets up helpers for token persistence and monitoring.
@@ -242,7 +227,6 @@ class Server {
}
this.githubConstellation = new GithubConstellation({
persistence: publicConfig.persistence,
service: publicConfig.services.github,
private: privateConfig,
})
@@ -296,6 +280,23 @@ class Server {
})
}
// See https://www.viget.com/articles/heroku-cloudflare-the-right-way/
requireCloudflare() {
// Set `req.ip`, which is expected by `cloudflareMiddleware()`. This is set
// by Express but not Scoutcamp.
addHandlerAtIndex(this.camp, 0, function (req, res, next) {
// On Heroku, `req.socket.remoteAddress` is the Heroku router. However,
// the router ensures that the last item in the `X-Forwarded-For` header
// is the real origin.
// https://stackoverflow.com/a/18517550/893113
req.ip = process.env.DYNO
? req.headers['x-forwarded-for'].split(', ').pop()
: req.socket.remoteAddress
next()
})
addHandlerAtIndex(this.camp, 1, cloudflareMiddleware())
}
/**
* Set up Scoutcamp routes for 404/not found responses
*/
@@ -313,7 +314,8 @@ class Server {
end
)(
makeBadge({
text: ['410', `${format} no longer available`],
label: '410',
message: `${format} no longer available`,
color: 'lightgray',
format: 'svg',
})
@@ -328,7 +330,8 @@ class Server {
end
)(
makeBadge({
text: ['404', 'raster badges not available'],
label: '404',
message: 'raster badges not available',
color: 'lightgray',
format: 'svg',
})
@@ -346,7 +349,8 @@ class Server {
end
)(
makeBadge({
text: ['404', 'badge not found'],
label: '404',
message: 'badge not found',
color: 'red',
format,
})
@@ -400,25 +404,19 @@ class Server {
const { config, camp, metricInstance } = this
const { apiProvider: githubApiProvider } = this.githubConstellation
const serviceClasses = loadServiceClasses()
checkCustomIntegrationConfiguration(config, serviceClasses)
serviceClasses.forEach(serviceClass => {
const serviceConfig = merge(
config.public.integrations.default,
config.public.integrations[serviceClass.name] || {}
)
loadServiceClasses().forEach(serviceClass =>
serviceClass.register(
{ camp, handleRequest, githubApiProvider, metricInstance },
{
handleInternalErrors: config.public.handleInternalErrors,
cacheHeaders: config.public.cacheHeaders,
fetchLimitBytes: bytes(config.public.fetchLimit),
rasterUrl: config.public.rasterUrl,
private: config.private,
public: config.public,
...serviceConfig,
}
)
})
)
}
/**
@@ -433,11 +431,12 @@ class Server {
ssl: { isSecure: secure, cert, key },
cors: { allowedOrigin },
rateLimit,
requireCloudflare,
} = this.config.public
log(`Server is starting up: ${this.baseUrl}`)
const camp = (this.camp = Camp.start({
const camp = (this.camp = Camp.create({
documentRoot: path.resolve(__dirname, '..', '..', 'public'),
port,
hostname,
@@ -446,6 +445,10 @@ class Server {
key,
}))
if (requireCloudflare) {
this.requireCloudflare()
}
const { metricInstance } = this
this.cleanupMonitor = sysMonitor.setRoutes(
{ rateLimit },
@@ -453,7 +456,7 @@ class Server {
)
const { githubConstellation } = this
githubConstellation.initialize(camp)
await githubConstellation.initialize(camp)
if (metricInstance) {
if (this.config.public.metrics.prometheus.endpointEnabled) {
metricInstance.registerMetricsEndpoint(camp)
@@ -470,6 +473,8 @@ class Server {
this.registerRedirects()
this.registerServices()
camp.listenAsConfigured()
await new Promise(resolve => camp.on('listening', () => resolve()))
}

View File

@@ -7,24 +7,24 @@ const got = require('../got-test-client')
const Server = require('./server')
const { createTestServer } = require('./in-process-server-test-helpers')
describe('The server', function() {
describe('running', function() {
describe('The server', function () {
describe('running', function () {
let server, baseUrl
before('Start the server', async function() {
before('Start the server', async function () {
// Fixes https://github.com/badges/shields/issues/2611
this.timeout(10000)
server = await createTestServer()
baseUrl = server.baseUrl
await server.start()
})
after('Shut down the server', async function() {
after('Shut down the server', async function () {
if (server) {
await server.stop()
}
server = undefined
})
it('should allow strings for port', async function() {
it('should allow strings for port', async function () {
// fixes #4391 - This allows the app to be run using iisnode, which uses a named pipe for the port.
const pipeServer = await createTestServer({
public: {
@@ -36,7 +36,7 @@ describe('The server', function() {
expect(pipeServer).to.not.be.undefined
})
it('should produce colorscheme badges', async function() {
it('should produce colorscheme badges', async function () {
const { statusCode, body } = await got(`${baseUrl}:fruit-apple-green.svg`)
expect(statusCode).to.equal(200)
expect(body)
@@ -45,7 +45,7 @@ describe('The server', function() {
.and.to.include('apple')
})
it('should redirect colorscheme PNG badges as configured', async function() {
it('should redirect colorscheme PNG badges as configured', async function () {
const { statusCode, headers } = await got(
`${baseUrl}:fruit-apple-green.png`,
{
@@ -58,7 +58,7 @@ describe('The server', function() {
)
})
it('should redirect modern PNG badges as configured', async function() {
it('should redirect modern PNG badges as configured', async function () {
const { statusCode, headers } = await got(`${baseUrl}npm/v/express.png`, {
followRedirect: false,
})
@@ -68,7 +68,7 @@ describe('The server', function() {
)
})
it('should produce json badges', async function() {
it('should produce json badges', async function () {
const { statusCode, body, headers } = await got(
`${baseUrl}twitter/follow/_Pyves.json`
)
@@ -77,16 +77,14 @@ describe('The server', function() {
expect(() => JSON.parse(body)).not.to.throw()
})
it('should preserve label case', async function() {
it('should preserve label case', async function () {
const { statusCode, body } = await got(`${baseUrl}:fRuiT-apple-green.svg`)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fRuiT')
expect(body).to.satisfy(isSvg).and.to.include('fRuiT')
})
// https://github.com/badges/shields/pull/1319
it('should not crash with a numeric logo', async function() {
it('should not crash with a numeric logo', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?logo=1`
)
@@ -97,7 +95,7 @@ describe('The server', function() {
.and.to.include('apple')
})
it('should not crash with a numeric link', async function() {
it('should not crash with a numeric link', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=1`
)
@@ -108,7 +106,7 @@ describe('The server', function() {
.and.to.include('apple')
})
it('should not crash with a boolean link', async function() {
it('should not crash with a boolean link', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=true`
)
@@ -119,7 +117,7 @@ describe('The server', function() {
.and.to.include('apple')
})
it('should return the 404 badge for unknown badges', async function() {
it('should return the 404 badge for unknown badges', async function () {
const { statusCode, body } = await got(
`${baseUrl}this/is/not/a/badge.svg`,
{
@@ -133,7 +131,7 @@ describe('The server', function() {
.and.to.include('badge not found')
})
it('should return the 404 badge page for rando links', async function() {
it('should return the 404 badge page for rando links', async function () {
const { statusCode, body } = await got(
`${baseUrl}this/is/most/definitely/not/a/badge.js`,
{
@@ -147,7 +145,7 @@ describe('The server', function() {
.and.to.include('badge not found')
})
it('should redirect the root as configured', async function() {
it('should redirect the root as configured', async function () {
const { statusCode, headers } = await got(baseUrl, {
followRedirect: false,
})
@@ -157,7 +155,7 @@ describe('The server', function() {
expect(headers.location).to.equal('http://frontend.example.test')
})
it('should return the 410 badge for obsolete formats', async function() {
it('should return the 410 badge for obsolete formats', async function () {
const { statusCode, body } = await got(`${baseUrl}npm/v/express.jpg`, {
throwHttpErrors: false,
})
@@ -170,15 +168,37 @@ describe('The server', function() {
})
})
describe('configuration', function() {
context('`requireCloudflare` is enabled', function () {
let server
afterEach(async function() {
afterEach(async function () {
if (server) {
server.stop()
}
})
it('should allow to enable prometheus metrics', async function() {
it('should reject requests from localhost with an empty 200 response', async function () {
this.timeout(10000)
server = await createTestServer({ public: { requireCloudflare: true } })
await server.start()
const { statusCode, body } = await got(
`${server.baseUrl}badge/foo-bar-blue.svg`
)
expect(statusCode).to.be.equal(200)
expect(body).to.equal('')
})
})
describe('configuration', function () {
let server
afterEach(async function () {
if (server) {
server.stop()
}
})
it('should allow to enable prometheus metrics', async function () {
// Fixes https://github.com/badges/shields/issues/2611
this.timeout(10000)
server = await createTestServer({
@@ -193,7 +213,7 @@ describe('The server', function() {
expect(statusCode).to.be.equal(200)
})
it('should allow to disable prometheus metrics', async function() {
it('should allow to disable prometheus metrics', async function () {
// Fixes https://github.com/badges/shields/issues/2611
this.timeout(10000)
server = await createTestServer({
@@ -211,10 +231,10 @@ describe('The server', function() {
})
})
describe('configuration validation', function() {
describe('influx', function() {
describe('configuration validation', function () {
describe('influx', function () {
let customConfig
beforeEach(function() {
beforeEach(function () {
customConfig = config.util.toObject()
customConfig.public.metrics.influx = {
enabled: true,
@@ -232,46 +252,46 @@ describe('The server', function() {
}
})
it('should not require influx configuration', function() {
it('should not require influx configuration', function () {
delete customConfig.public.metrics.influx
expect(() => new Server(config.util.toObject())).to.not.throw()
})
it('should require url when influx configuration is enabled', function() {
it('should require url when influx configuration is enabled', function () {
delete customConfig.public.metrics.influx.url
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.url" is required'
)
})
it('should not require url when influx configuration is disabled', function() {
it('should not require url when influx configuration is disabled', function () {
customConfig.public.metrics.influx.enabled = false
delete customConfig.public.metrics.influx.url
expect(() => new Server(customConfig)).to.not.throw()
})
it('should require timeoutMilliseconds when influx configuration is enabled', function() {
it('should require timeoutMilliseconds when influx configuration is enabled', function () {
delete customConfig.public.metrics.influx.timeoutMilliseconds
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.timeoutMilliseconds" is required'
)
})
it('should require intervalSeconds when influx configuration is enabled', function() {
it('should require intervalSeconds when influx configuration is enabled', function () {
delete customConfig.public.metrics.influx.intervalSeconds
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.intervalSeconds" is required'
)
})
it('should require instanceIdFrom when influx configuration is enabled', function() {
it('should require instanceIdFrom when influx configuration is enabled', function () {
delete customConfig.public.metrics.influx.instanceIdFrom
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.instanceIdFrom" is required'
)
})
it('should require instanceIdEnvVarName when instanceIdFrom is env-var', function() {
it('should require instanceIdEnvVarName when instanceIdFrom is env-var', function () {
customConfig.public.metrics.influx.instanceIdFrom = 'env-var'
delete customConfig.public.metrics.influx.instanceIdEnvVarName
expect(() => new Server(customConfig)).to.throw(
@@ -279,53 +299,53 @@ describe('The server', function() {
)
})
it('should allow instanceIdFrom = hostname', function() {
it('should allow instanceIdFrom = hostname', function () {
customConfig.public.metrics.influx.instanceIdFrom = 'hostname'
expect(() => new Server(customConfig)).to.not.throw()
})
it('should allow instanceIdFrom = env-var', function() {
it('should allow instanceIdFrom = env-var', function () {
customConfig.public.metrics.influx.instanceIdFrom = 'env-var'
expect(() => new Server(customConfig)).to.not.throw()
})
it('should allow instanceIdFrom = random', function() {
it('should allow instanceIdFrom = random', function () {
customConfig.public.metrics.influx.instanceIdFrom = 'random'
expect(() => new Server(customConfig)).to.not.throw()
})
it('should require envLabel when influx configuration is enabled', function() {
it('should require envLabel when influx configuration is enabled', function () {
delete customConfig.public.metrics.influx.envLabel
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.envLabel" is required'
)
})
it('should not require hostnameAliases', function() {
it('should not require hostnameAliases', function () {
delete customConfig.public.metrics.influx.hostnameAliases
expect(() => new Server(customConfig)).to.not.throw()
})
it('should allow empty hostnameAliases', function() {
it('should allow empty hostnameAliases', function () {
customConfig.public.metrics.influx.hostnameAliases = {}
expect(() => new Server(customConfig)).to.not.throw()
})
it('should require username when influx configuration is enabled', function() {
it('should require username when influx configuration is enabled', function () {
delete customConfig.private.influx_username
expect(() => new Server(customConfig)).to.throw(
'Private configuration is invalid. Check these paths: influx_username'
)
})
it('should require password when influx configuration is enabled', function() {
it('should require password when influx configuration is enabled', function () {
delete customConfig.private.influx_password
expect(() => new Server(customConfig)).to.throw(
'Private configuration is invalid. Check these paths: influx_password'
)
})
it('should allow other private keys', function() {
it('should allow other private keys', function () {
customConfig.private.gh_token = 'my-token'
expect(() => new Server(customConfig)).to.not.throw()
})

View File

@@ -43,11 +43,11 @@
// 1. Generating the list of services to test is necessarily asynchronous, and
// in Mocha, exclusive tests (`it.only` and `describe.only`) can only be
// applied synchronously. In other words, if you try to add exclusive tests
// in an asynchronous callback, all the tests will run. This is true even
// when using `_mocha --delay`, as we are. Undoubtedly this could be fixed,
// though it's not worth it. The problem is obscure and therefore low
// for Mocha, which is quite backlogged. There is an easy workaround, which
// is to generate the list of services to test in a separate process.
// in an asynchronous callback, all the tests will run. Undoubtedly this
// could be fixed, though it's not worth it. The problem is obscure and
// therefore low for Mocha, which is quite backlogged. There is an easy
// workaround, which is to generate the list of services to test in a
// separate process.
// 2. Executing these two steps of the test runner separately makes the process
// easier to reason about and much easier to debug on a dev machine.
// 3. Getting "pipefail" to work cross platform with an npm script seems tricky.
@@ -73,7 +73,7 @@ if (process.env.TESTED_SERVER_URL) {
} else {
const port = 1111
baseUrl = 'http://localhost:1111'
before('Start running the server', async function() {
before('Start running the server', async function () {
server = await createTestServer({
public: {
bind: {
@@ -83,7 +83,7 @@ if (process.env.TESTED_SERVER_URL) {
})
server.start()
})
after('Shut down the server', async function() {
after('Shut down the server', async function () {
if (server) {
await server.stop()
}
@@ -131,5 +131,3 @@ if (typeof onlyServices === 'undefined' || onlyServices.includes('*****')) {
}
runner.toss()
// Invoke run() asynchronously, because Mocha will not start otherwise.
process.nextTick(run)

View File

@@ -3,7 +3,7 @@
* @module
*/
const Joi = require('@hapi/joi')
const Joi = require('joi')
const { expect } = require('chai')
/**

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