Compare commits

...

730 Commits

Author SHA1 Message Date
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
Marcin Mielnicki
e66cfa3c21 📈 PaaS-friendly metrics (#4874)
* prom-client JSON to InfluxDB line protocol converter

* Converts a metric with separate names

* prom-client JSON to InfluxDB line protocol (version 2) converter

* Server has instance id

* Read the instance id from an environment variable

* More unit tests for instance-metadata

* Log instance id

* Push influx metrics

* INSTANCE_ID with dyno metadata

* Prepare influx metrics in one place

* Influx metrics endpoint should return metrics

* More readable tests

* Env added to instance metadata

* hostname as an instance label value

* HEROKU_DYNO_ID as an instance id for heroku

* Instance env can be set by env variable

* HEROKU_APP_NAME as an instance env

* Log instance metadata as a JSON

* Typo fix

* Code refactoring in tests

* wait-for-expect dev dependency added

* Test for pushing metrics

* Test for pushing metrics

* Use basic authentication for pushing metrics

* intervalSeconds=2 for development env

* Using existing methods

* TODOs removed

* Schema for influx credentials

* Influx config removed from config files

* Require username and password when influx metrics are enabled

* Unused args removed

* pushing component should log errors

* Speed up tests

* should log error responses

* InstanceMetadata class replaces by simple object

* Influx metrics can be configuredd by env variables

* Use application label name instead of service

* Unused code removed

* Integration test for prom-client and converter

* metrics.influx.enabled configuration option added

* Improved influx configuration schema

* instanceMetadata validation

* Typo fix

* Default value for env

* metrics.infux.hostnameAsAInstanceId added

* should add hostname as an instance label when hostnameAsAInstanceId is enabled

* Default values for influx configuration

* flatMap is not available in Node.js 9.4

* Env vars removed from Procfile

* Better instance metadata values in tests

* Typo fix

* lodash.groupby added to prod dependencies

* Allow other keys in private config

* Missing test - should allow other private keys when influx metrics are enabled

* Missing test - should require private metrics config when influx configuration is enabled

* log.error instead of console.log

* metrics.influx.uri -> metrics.influx.url

* Unused arguments removed

* async removed

* promisify sendMetrics

* Allow to disable prometheus metrics

* Create test server with custom config

* 'metrics-influx' resource removed

* 'metrics-influx' resource removed

* Private config schema flattened out

* Extra code removed in Prometheus tests

* promisify moved outside of the class

* Do not throw errors from got in a specific test

* hostnameAliases added

* instanceIdFrom added

* instanceIdEnvVarName added

* envLabel added to schema

* instanceMetadata is not used by InfluxMetrics

* Instance metadata removed

* hostnameAsAnInstanceId removed

* A comment added

* waitForExpect removed

* Unused code removed
2020-04-19 20:03:00 +02:00
dependabot-preview[bot]
1c48c2207f Build(deps-dev): bump @typescript-eslint/parser from 2.27.0 to 2.28.0 (#4918)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.27.0 to 2.28.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.28.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-19 16:02:29 +00:00
Pierre-Yves B
a2e0e11ead Fix [CodeclimateCoverage] tests (#4927) 2020-04-19 17:06:35 +02:00
chris48s
2c89a8c59f improve latest() fallback result if no stable versions available (#4901)
* ignore case if we fall back to string sorting versions

* if no latest MaybeSemVer, try latest pre-MaybeSemVer

* filter versions before we pass it to latestMaybeSemVer()
2020-04-18 18:40:39 +01:00
dependabot-preview[bot]
d11fa30f06 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4916)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.27.0 to 2.28.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.28.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-17 23:38:29 +00:00
dependabot-preview[bot]
05b324093a Build(deps-dev): bump danger from 10.1.0 to 10.1.1 (#4914)
Bumps [danger](https://github.com/danger/danger-js) from 10.1.0 to 10.1.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.1.0...10.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-04-17 23:29:42 +00:00
dependabot-preview[bot]
42ed874112 Build(deps): bump ioredis from 4.16.1 to 4.16.2 (#4913)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.1 to 4.16.2.
- [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.1...v4.16.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-04-17 23:15:24 +00:00
dependabot-preview[bot]
e2d8c94dab Build(deps): bump query-string from 6.12.0 to 6.12.1 (#4922)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.12.0 to 6.12.1.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.12.0...v6.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-04-17 20:30:50 +00:00
dependabot-preview[bot]
91577cb6e9 Build(deps): bump semver from 7.2.2 to 7.3.2 (#4915)
Bumps [semver](https://github.com/npm/node-semver) from 7.2.2 to 7.3.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.2.2...v7.3.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-04-17 20:22:01 +00:00
dependabot-preview[bot]
d578faab50 Build(deps): bump simple-icons from 2.8.0 to 2.9.0 (#4919)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.8.0...2.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-04-17 18:48:14 +00:00
dependabot-preview[bot]
b0f367cdfb Build(deps-dev): bump eslint-plugin-sort-class-members (#4921)
Bumps [eslint-plugin-sort-class-members](https://github.com/bryanrsmith/eslint-plugin-sort-class-members) from 1.6.0 to 1.7.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.6.0...v1.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-04-17 14:17:57 +00:00
dependabot-preview[bot]
430be7e7d1 Build(deps-dev): bump cypress from 4.3.0 to 4.4.0 (#4917)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.3.0...v4.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>
2020-04-17 14:00:16 +00:00
Pierre-Yves B
2df8289ec8 Fix failing Nexus tests (#4905)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-16 23:46:51 +00:00
dependabot-preview[bot]
478d14300c Build(deps-dev): bump eslint-plugin-import from 2.20.1 to 2.20.2 (#4859)
* Build(deps-dev): bump eslint-plugin-import from 2.20.1 to 2.20.2

Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.1 to 2.20.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.1...v2.20.2)

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

* Fixes

* refactor: combine imports

* refactor: combine imports

* refactor: combine imports

* refactor: update import ordering

Co-authored-by: dependabot-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: Paul Melnikow <email@paulmelnikow.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Caleb Cartwright <caleb.cartwright@outlook.com>
2020-04-16 18:39:13 -05:00
Caleb Cartwright
23ceea1d72 fix: TypeError in DockerVersion badge (#4907) 2020-04-15 13:35:05 -05:00
ChrisCarini
2bf6dfdeea Adding badges for JetBrains Plugin Ratings, run [JetBrainsRating]. #4897 (#4898)
* Adding badges for JetBrains Plugin Ratings. Addresses feature request #4897

* Removing unnecessary undefined label and improving variable name in tests.
2020-04-12 17:05:49 +00:00
dependabot-preview[bot]
e4b1fd23b1 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4894)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.26.0 to 2.27.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.27.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>
2020-04-11 00:07:53 -05:00
dependabot-preview[bot]
8df5eed088 Build(deps-dev): bump @typescript-eslint/parser from 2.26.0 to 2.27.0 (#4893)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.26.0 to 2.27.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.27.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-11 03:32:59 +00:00
dependabot-preview[bot]
4c1eee9218 Build(deps-dev): bump styled-components from 5.0.1 to 5.1.0 (#4891)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 5.0.1 to 5.1.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.0.1...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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-11 03:24:06 +00:00
dependabot-preview[bot]
1c2920ac31 Build(deps-dev): bump nyc from 15.0.0 to 15.0.1 (#4882)
Bumps [nyc](https://github.com/istanbuljs/nyc) from 15.0.0 to 15.0.1.
- [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.0...v15.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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-10 23:53:44 +00:00
dependabot-preview[bot]
9df6aade11 Build(deps-dev): bump @types/node from 13.11.0 to 13.11.1 (#4883)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.11.0 to 13.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-04-10 20:30:38 +00:00
mondeja
01950a7852 [Conda] license badge added. (#4875)
* Conda license badge added.

* Added schema for Conda license badge.

* Remove comment in conda license service

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-04-10 22:23:21 +02:00
chris48s
935dd25264 ignore camelcase 6, escape-string-regexp 3 updates (#4896)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-10 19:55:13 +00:00
dependabot-preview[bot]
c320a58a24 Build(deps): bump query-string from 6.11.1 to 6.12.0 (#4885)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.11.1 to 6.12.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.11.1...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-04-10 19:48:51 +00:00
dependabot-preview[bot]
10f06ff175 Build(deps): bump semver from 7.1.3 to 7.2.2 (#4895)
Bumps [semver](https://github.com/npm/node-semver) from 7.1.3 to 7.2.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.1.3...v7.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>
2020-04-10 19:38:35 +00:00
dependabot-preview[bot]
68b1a0cfe5 Build(deps-dev): bump nodemon from 2.0.2 to 2.0.3 (#4886)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.2...v2.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-04-10 19:18:05 +00:00
dependabot-preview[bot]
39b8ff0aa8 Build(deps): bump check-node-version from 4.0.2 to 4.0.3 (#4890)
Bumps [check-node-version](https://github.com/parshap/check-node-version) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/parshap/check-node-version/releases)
- [Changelog](https://github.com/parshap/check-node-version/blob/master/CHANGELOG.md)
- [Commits](https://github.com/parshap/check-node-version/compare/v4.0.2...v4.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-04-10 20:08:57 +01:00
dependabot-preview[bot]
6dc672a03d Build(deps-dev): bump jsdoc from 3.6.3 to 3.6.4 (#4892)
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.3 to 3.6.4.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/3.6.4/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.3...3.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>
2020-04-10 18:57:57 +00:00
Caleb Cartwright
642aac6408 fix: SymfonyInsight transform (#4877)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-08 19:59:42 +00:00
Joschua Becker
b2bb50234f updating node js version (#4879)
Node.js 8.x LTS Carbon is no longer actively supported!

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-08 19:30:26 +00:00
Owen Voke
d16c8404d6 Add [OffsetEarth] badges (#4815)
* Add [OffsetEarth] trees service

* Add mocked tests for [OffsetEarth] tree service

* Update [OffsetEarth] trees name to be more unique

* Add [OffsetEarth] carbon offset service

* Update [OffsetEarth] services to use floorCount()

* Clean up [OffsetEarth] loops and unnecessary code

* Update [OffsetEarth] services to use proper APIs

* Fix order of imports in [OffsetEarth] services

* Update [OffsetEarth] tests to be more robust

* Update [OffsetEarth] tests to check colour

* Update to use unmocked [OffsetEarth] tests

* Update to use nonNegativeInteger in [OffsetEarth]

* Apply additional [OffsetEarth] review comments

* Update [OffsetEarth] references to username

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-04-08 19:18:38 +00:00
dependabot-preview[bot]
b36de3dbf3 Build(deps-dev): bump danger from 10.0.0 to 10.1.0 (#4856)
Bumps [danger](https://github.com/danger/danger-js) from 10.0.0 to 10.1.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.0.0...10.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-04-08 01:28:16 +00:00
dependabot-preview[bot]
20d4143dfb Build(deps): bump ioredis from 4.16.0 to 4.16.1 (#4861)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.0 to 4.16.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.0...v4.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: Paul Melnikow <github@paulmelnikow.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-07 01:54:03 +00:00
Caleb Cartwright
fbe865e149 feat: deprecate JitPackDownloads (#4873)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-06 18:33:52 +00:00
dependabot-preview[bot]
da29c92910 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4857)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.25.0 to 2.26.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.26.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>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-04-06 17:19:30 +00:00
Regev Brody
4ee26bfcdb node badges are missing descriptions #4871 (#4872)
* fix: node badges are missing descriptions #4871

* fix: node badges are missing descriptions #4871

* fix: node badges are missing descriptions #4871

* Update services/node/node-lts.service.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Update services/node/node-current.service.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Update services/node/node-base.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-04-05 17:41:06 -05:00
Paul Melnikow
e57c1625d5 Document that logoColor does not apply to custom logos (#4870)
Closes #4749
2020-04-04 23:21:58 -04:00
Regev Brody
15cbbe828e fix: [node npm] service has bad colors #4809 (#4810)
* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* fix: node service has bad colors #4809

* chore: minor service test rename

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-04-04 21:21:08 -05:00
Caleb Cartwright
e92cb574a2 deps: update gatsby ignore version (#4866)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-05 01:10:08 +00:00
dependabot-preview[bot]
3ae94ee2d7 Build(deps-dev): bump @typescript-eslint/parser from 2.25.0 to 2.26.0 (#4852)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.25.0 to 2.26.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.26.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-04-05 00:42:06 +00:00
chris48s
3a19a2f4e5 fix badge CLI debug script (#4865)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-04 18:57:27 +00:00
dependabot-preview[bot]
00be36660e Build(deps-dev): bump @types/node from 13.9.8 to 13.11.0 (#4850)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.9.8 to 13.11.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-04-04 02:32:23 +00:00
chris48s
557878edb6 don't upgrade to chalk 4 (#4863)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-03 18:10:24 +00:00
dependabot-preview[bot]
72515d0b7f Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.45 to 2.1.46 (#4860)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.45 to 2.1.46.
- [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.1.46/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-04-03 17:15:46 +00:00
dependabot-preview[bot]
0da5edf4ab Build(deps): bump simple-icons from 2.7.0 to 2.8.0 (#4854)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.7.0...2.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-04-03 17:03:20 +00:00
dependabot-preview[bot]
81b0e0455a Build(deps-dev): bump cypress from 4.2.0 to 4.3.0 (#4858)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.2.0...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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-04-03 15:39:07 +00:00
dependabot-preview[bot]
a8aefc8b2c Build(deps-dev): bump eslint-plugin-node from 11.0.0 to 11.1.0 (#4855)
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v11.0.0...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-04-03 15:22:45 +00:00
dependabot-preview[bot]
12b76d2a99 Build(deps-dev): bump danger from 9.4.0 to 10.0.0 (#4830)
Bumps [danger](https://github.com/danger/danger-js) from 9.4.0 to 10.0.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/9.4.0...10.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-04-02 19:49:30 +00:00
dependabot-preview[bot]
822edc50a8 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4839)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.24.0 to 2.25.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.25.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-02 19:38:28 +00:00
Pierre-Yves B
8ef54f6f38 Refactor checkShouldSkip, affects [Twitch SymfonyInsight Wheelmap] (#4807) 2020-04-02 21:03:22 +02:00
dependabot-preview[bot]
52cea58f8a Build(deps-dev): bump @types/node from 13.9.2 to 13.9.8 (#4848)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.9.2 to 13.9.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>
2020-04-01 21:18:25 -05:00
dependabot-preview[bot]
d35e941f13 Build(deps): bump @sentry/node from 5.15.0 to 5.15.4 (#4820)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.15.0 to 5.15.4.
- [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.0...5.15.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-03-29 21:11:51 +00:00
dependabot-preview[bot]
f4e60807c1 Build(deps-dev): bump @babel/core from 7.8.7 to 7.9.0 (#4819)
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.7 to 7.9.0.
- [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.8.7...v7.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-03-29 21:02:05 +00:00
dependabot-preview[bot]
55e0a8ee75 Build(deps-dev): bump @babel/register from 7.8.6 to 7.9.0 (#4823)
Bumps [@babel/register](https://github.com/babel/babel) from 7.8.6 to 7.9.0.
- [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.8.6...v7.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-03-29 20:55:21 +00:00
Lukas Planz
036c0eb166 fix: [Spiget] invalid response for external downloads #4840 (#4841)
* fix: spiget invalid response for external downloads #4840

* Changed the background color if resource is external and use proper Spiget API for the test

* Fix invalid mocked response for spiget service tests

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-03-29 16:48:24 +02:00
chris48s
40bb861ef3 downgrade to mocha 6.2.3 (#4843) 2020-03-29 15:30:57 +01:00
dependabot-preview[bot]
eb38bb7562 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4837)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.23 to 2.1.24.
- [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.1.24/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>
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-03-28 11:54:03 +00:00
dependabot-preview[bot]
00c851f9ab Build(deps-dev): bump gatsby-plugin-typescript from 2.2.3 to 2.2.5 (#4834)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.2.3 to 2.2.5.
- [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.2.5/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-03-28 11:45:00 +00:00
dependabot-preview[bot]
5754685cb5 Build(deps-dev): bump gatsby-plugin-styled-components (#4827)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.20 to 3.1.21.
- [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.1.21/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-03-28 11:34:20 +00:00
dependabot-preview[bot]
9e3d770451 Build(deps-dev): bump @typescript-eslint/parser from 2.24.0 to 2.25.0 (#4818)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.24.0 to 2.25.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.25.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-03-27 19:42:44 -05:00
dependabot-preview[bot]
df77d512c0 Build(deps-dev): bump babel-preset-gatsby from 0.2.35 to 0.2.36 (#4831)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.35 to 0.2.36.
- [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.2.36/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-03-27 18:33:03 -05:00
dependabot-preview[bot]
0e2a27bc72 Build(deps): bump config from 3.3.0 to 3.3.1 (#4833)
Bumps [config](https://github.com/lorenwest/node-config) from 3.3.0 to 3.3.1.
- [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: chris48s <chris48s@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-27 22:18:37 +00:00
dependabot-preview[bot]
4332221f58 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.27 to 2.1.28 (#4825)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.27 to 2.1.28.
- [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.1.28/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-03-27 22:07:36 +00:00
dependabot-preview[bot]
6c233571b7 Build(deps-dev): bump eslint-plugin-react-hooks from 1.7.0 to 2.5.1 (#4832)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 1.7.0 to 2.5.1.
- [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/HEAD/packages/eslint-plugin-react-hooks)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-27 21:57:53 +00:00
Cimbali
78fd9502a9 [poeditor] Adding POEditor badge (#4812)
* Add POEditor badge for language translation progress

* Add example, tests, and documentation key for POEditor

* Remove redundant required() as indicated in PR review

* Throw errors instead of rendering red badge

* small wording tweak: mention read-only again

Co-authored-by: chris48s <chris.shaw480@gmail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-27 21:35:36 +00:00
dependabot-preview[bot]
831251cf16 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.23 to 3.1.24 (#4824)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.23 to 3.1.24.
- [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.1.24/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-03-27 21:23:41 +00:00
dependabot-preview[bot]
ac3aa36cd7 Build(deps-dev): bump react-select from 3.0.8 to 3.1.0 (#4828)
Bumps [react-select](https://github.com/JedWatson/react-select) from 3.0.8 to 3.1.0.
- [Release notes](https://github.com/JedWatson/react-select/releases)
- [Changelog](https://github.com/JedWatson/react-select/blob/master/.sweet-changelogs.js)
- [Commits](https://github.com/JedWatson/react-select/compare/react-select@3.0.8...react-select@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-03-27 21:12:13 +00:00
dependabot-preview[bot]
40b34ffd48 Build(deps-dev): bump mocha from 6.2.2 to 7.1.1 (#4822)
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.1.1.
- [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/v6.2.2...v7.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-03-27 21:01:42 +00:00
dependabot-preview[bot]
8166e0563d Build(deps-dev): bump react-dom from 16.13.0 to 16.13.1 (#4829)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.13.0 to 16.13.1.
- [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.13.1/packages/react-dom)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-27 20:53:37 +00:00
dependabot-preview[bot]
77a819cefe Build(deps-dev): bump eslint-config-standard from 14.1.0 to 14.1.1 (#4835)
Bumps [eslint-config-standard](https://github.com/standard/eslint-config-standard) from 14.1.0 to 14.1.1.
- [Release notes](https://github.com/standard/eslint-config-standard/releases)
- [Changelog](https://github.com/standard/eslint-config-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard/compare/v14.1.0...v14.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>
2020-03-27 15:12:41 +00:00
dependabot-preview[bot]
7098082b89 Build(deps-dev): bump eslint-config-prettier from 6.10.0 to 6.10.1 (#4826)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.10.0 to 6.10.1.
- [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.0...v6.10.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-03-27 14:27:06 +00:00
Owen Voke
671672590a Add [Treeware] badge (#4814)
* Add [Treeware] trees service

* Add tests for the [Treeware] tree service

* Update [Treeware] tree test to use package

* Update [Treeware] badge description

* Update [Treeware] test to remove timeout

* Update [Treeware] tree service to use queryParams

* Apply review comments to [Treeware] tests

* Update [Treeware] test to check colour
2020-03-26 20:19:44 +01:00
Pierre-Yves B
097bf87e41 Make it easier to benchmark and profile the code (#4780)
* Make it easier to benchmark and profile the code

* Remove unnecessary escape

* Clarify that the backend server is started without the frontend

* Add missing NODE_CONFIG_ENV environment variable

* Add error message when user has not included console.time statements

* Fix lint issue

* Handle multiple console.time statements

* Switch NODE_CONFIG_ENV to test

* Switch to const as variable never re-assigned
2020-03-22 20:45:53 +01:00
Caleb Cartwright
a2c35a69c0 deps: add babel-preset-gatsby to dependabot ignore (#4806)
Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-03-21 10:11:21 -05:00
dependabot-preview[bot]
190ee50505 Build(deps-dev): bump @typescript-eslint/parser from 2.23.0 to 2.24.0 (#4792)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.23.0 to 2.24.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.24.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-03-21 05:32:32 +00:00
dependabot-preview[bot]
fa2fa345b3 Build(deps-dev): bump danger from 9.2.10 to 9.4.0 (#4795)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.10 to 9.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/9.2.10...9.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-03-21 05:25:03 +00:00
dependabot-preview[bot]
b0aa44f6f3 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4796)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.23.0 to 2.24.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.24.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-03-21 05:15:40 +00:00
dependabot-preview[bot]
f0c8fc0bbc Build(deps-dev): bump @types/react-select from 3.0.10 to 3.0.11 (#4797)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.10 to 3.0.11.
- [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-03-21 00:05:10 -05:00
dependabot-preview[bot]
68f9dc5a5f Build(deps-dev): bump ts-mocha from 6.0.0 to 7.0.0 (#4800)
Bumps [ts-mocha](https://github.com/piotrwitek/ts-mocha) from 6.0.0 to 7.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>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-03-20 23:58:33 -05:00
dependabot-preview[bot]
c23452c9a5 Build(deps): bump @sentry/node from 5.14.1 to 5.15.0 (#4802)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.14.1 to 5.15.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.14.1...5.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-03-20 23:48:53 -05:00
chris48s
f579c373f8 don't upgrade any gatsby libs (#4804)
all the gatsby stuff needs node 10+ now

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-20 23:41:08 -05:00
dependabot-preview[bot]
75e00b12f5 Build(deps-dev): bump @types/chai from 4.2.10 to 4.2.11 (#4790)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.10 to 4.2.11.
- [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-03-20 22:02:12 +00:00
dependabot-preview[bot]
73ff4ea819 Build(deps-dev): bump @types/node from 13.9.1 to 13.9.2 (#4794)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.9.1 to 13.9.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-03-20 21:53:34 +00:00
dependabot-preview[bot]
9f662c5d7d Build(deps): bump simple-icons from 2.6.0 to 2.7.0 (#4787)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.6.0...2.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-03-20 20:16:19 +00:00
dependabot-preview[bot]
a8f5096b42 Build(deps-dev): bump react from 16.13.0 to 16.13.1 (#4789)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.13.0 to 16.13.1.
- [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.13.1/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-03-20 20:01:13 +00:00
dependabot-preview[bot]
84f7496915 Build(deps-dev): bump cypress from 4.1.0 to 4.2.0 (#4798)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.1.0...v4.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-03-20 14:44:27 +00:00
Benjamin E. Coe
34324215f2 feat: add badge for .nycrc config based coverage, run [nycrc] (#4759)
* feat: add badge for .nycrc coverage

* chore: address code review

* chore: address additional review

* chore: address a tiny bit more of review

* chore: address edge case

* chore: address LGTM review
2020-03-17 20:39:58 -05:00
Pierre-Yves B
2de4c55706 Fix Twitch authorization (#4781) 2020-03-16 21:37:46 +00:00
Paul Melnikow
1ea6ab57af Document which secrets are set in production (#4779) 2020-03-15 17:55:52 -04:00
dependabot-preview[bot]
ed61324368 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4777)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.21 to 2.1.23.
- [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.1.23/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-03-14 19:04:18 +00:00
dependabot-preview[bot]
f4f8754da6 Build(deps-dev): bump gatsby-plugin-typescript from 2.2.0 to 2.2.3 (#4776)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.2.0 to 2.2.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.2.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-03-14 13:51:53 -05:00
dependabot-preview[bot]
b551177a1e Build(deps-dev): bump babel-preset-gatsby from 0.2.29 to 0.2.35 (#4774)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.29 to 0.2.35.
- [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.2.35/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-03-14 13:37:57 -05:00
dependabot-preview[bot]
d4f43de1a6 Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4773)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.22.0 to 2.23.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.23.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>
2020-03-14 12:59:05 -05:00
dependabot-preview[bot]
800255e8af Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.40 to 2.1.45 (#4771)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.40 to 2.1.45.
- [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.1.45/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>
2020-03-14 12:28:45 -05:00
dependabot-preview[bot]
a1102db427 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.26 to 2.1.27 (#4770)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.26 to 2.1.27.
- [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.1.27/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-03-14 12:18:08 -05:00
dependabot-preview[bot]
a6cb14e035 Build(deps-dev): bump @types/node from 13.7.7 to 13.9.1 (#4768)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.7.7 to 13.9.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-03-13 19:44:23 -05:00
dependabot-preview[bot]
6dcfd8ec64 Build(deps-dev): bump gatsby-plugin-styled-components (#4766)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.19 to 3.1.20.
- [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.1.20/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-03-13 22:23:49 +00:00
dependabot-preview[bot]
d1df645992 Build(deps-dev): bump @typescript-eslint/parser from 2.22.0 to 2.23.0 (#4767)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.22.0 to 2.23.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.23.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-03-13 22:15:30 +00:00
dependabot-preview[bot]
3efd592d03 Build(deps): bump @sentry/node from 5.13.2 to 5.14.1 (#4764)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.13.2 to 5.14.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.13.2...5.14.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-03-13 21:51:20 +00:00
dependabot-preview[bot]
daa4742e46 Build(deps-dev): bump gatsby from 2.19.32 to 2.19.41 (#4761)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.32 to 2.19.41.
- [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.32...gatsby@2.19.41)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-13 21:39:53 +00:00
dependabot-preview[bot]
c0f6e31042 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.22 to 3.1.23 (#4760)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.22 to 3.1.23.
- [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.1.23/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-03-13 16:31:16 -05:00
dependabot-preview[bot]
4ff45b218c Build(deps-dev): bump eslint-plugin-react from 7.18.3 to 7.19.0 (#4763)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.18.3 to 7.19.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.18.3...v7.19.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>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-03-13 21:23:23 +00:00
dependabot-preview[bot]
9f178e5810 Build(deps-dev): bump minimist from 1.2.0 to 1.2.5 (#4765)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.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-03-13 16:10:09 -05:00
dependabot-preview[bot]
8e7bae5dc5 Build(deps-dev): bump snap-shot-it from 7.9.2 to 7.9.3 (#4762)
Bumps [snap-shot-it](https://github.com/bahmutov/snap-shot-it) from 7.9.2 to 7.9.3.
- [Release notes](https://github.com/bahmutov/snap-shot-it/releases)
- [Commits](https://github.com/bahmutov/snap-shot-it/compare/v7.9.2...v7.9.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-03-13 12:51:50 +00:00
Jacob Colvin
792ecb7c01 Add [github] Milestone service (#4747)
* Add isMetricOverMetric test validator

* Add Github Milestone and Milestone-Detail

Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com>
2020-03-09 21:10:12 +00:00
dependabot-preview[bot]
1d90e102ac Build(deps-dev): bump typescript from 3.7.5 to 3.8.3 (#4718)
* Build(deps-dev): bump typescript from 3.7.5 to 3.8.3

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.7.5 to 3.8.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.7.5...v3.8.3)

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

* Add generics to useState where necessary

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: PyvesB <PyvesDev@gmail.com>
2020-03-08 10:57:29 +00:00
Pierre-Yves B
3ecb7b2aa5 Trim user input when building path and query string (#4753) 2020-03-07 15:47:36 +00:00
Caleb Cartwright
6c2fba5310 deps: ignore xmldom >=0.3.0 (#4750) 2020-03-07 15:21:26 +00:00
dependabot-preview[bot]
b51b2c699d Build(deps): bump query-string from 6.11.0 to 6.11.1 (#4745)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.11.0 to 6.11.1.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.11.0...v6.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-03-07 01:59:30 +00:00
dependabot-preview[bot]
10b3d849fc Build(deps-dev): bump gatsby from 2.19.22 to 2.19.32 (#4751)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.22 to 2.19.32.
- [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.22...gatsby@2.19.32)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-06 19:51:26 -06:00
dependabot-preview[bot]
e1c865888b Build(deps-dev): bump gatsby-plugin-typescript from 2.1.27 to 2.2.0 (#4744)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.27 to 2.2.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.2.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-06 19:25:57 -06:00
dependabot-preview[bot]
b2c4989542 Build(deps): bump @sentry/node from 5.13.0 to 5.13.2 (#4743)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.13.0 to 5.13.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.13.0...5.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>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-07 01:17:36 +00:00
Peter Gribanov
a082feec0c Allow resolve PHP version from jobs in [Travis] CI config (#4731)
* allow resolve PHP version from jobs in Travis CI config

* get version from jobs

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-03-07 01:03:23 +00:00
dependabot-preview[bot]
6b16939ccd Build(deps-dev): bump @typescript-eslint/eslint-plugin (#4742)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.21.0 to 2.22.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.22.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-03-07 00:54:53 +00:00
dependabot-preview[bot]
de998fc136 Build(deps-dev): bump @babel/core from 7.8.4 to 7.8.7 (#4740)
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.4 to 7.8.7.
- [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.8.4...v7.8.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-03-07 00:43:41 +00:00
dependabot-preview[bot]
f8e69bdcf3 Build(deps-dev): bump @types/chai from 4.2.9 to 4.2.10 (#4739)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.9 to 4.2.10.
- [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-03-07 00:34:42 +00:00
dependabot-preview[bot]
6e0912a52c Build(deps-dev): bump @types/mocha from 7.0.1 to 7.0.2 (#4738)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 7.0.1 to 7.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-03-07 00:24:42 +00:00
dependabot-preview[bot]
b387d70b73 Build(deps-dev): bump @typescript-eslint/parser from 2.21.0 to 2.22.0 (#4737)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.21.0 to 2.22.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.22.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-03-06 23:25:55 +00:00
dependabot-preview[bot]
b091bb2fa5 Build(deps): bump simple-icons from 2.5.0 to 2.6.0 (#4736)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.5.0...2.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-03-06 23:15:32 +00:00
Pierre-Yves B
47692013f4 Delete deprecated package.json scripts (#4748) 2020-03-06 21:01:12 +00:00
dependabot-preview[bot]
fbf0a3dedf Build(deps-dev): bump cypress from 4.0.2 to 4.1.0 (#4741)
Bumps [cypress](https://github.com/cypress-io/cypress) from 4.0.2 to 4.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v4.0.2...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-03-06 14:01:54 +00:00
dependabot-preview[bot]
ea8f244a85 Build(deps-dev): bump @babel/polyfill from 7.8.3 to 7.8.7 (#4732)
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.8.3 to 7.8.7.
- [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.8.3...v7.8.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-03-06 13:53:41 +00:00
dependabot-preview[bot]
5fd186f63b Build(deps-dev): bump eslint-config-standard-react from 9.0.0 to 9.2.0 (#4735)
Bumps [eslint-config-standard-react](https://github.com/feross/eslint-config-standard-react) from 9.0.0 to 9.2.0.
- [Release notes](https://github.com/feross/eslint-config-standard-react/releases)
- [Commits](https://github.com/feross/eslint-config-standard-react/compare/v9.0.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-03-06 13:30:51 +00:00
dependabot-preview[bot]
4ccac9ebd2 Build(deps-dev): bump @types/node from 13.7.6 to 13.7.7 (#4733)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.7.6 to 13.7.7.
- [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-03-06 07:05:40 -06:00
chris48s
d8831729cb Check request origin before sending credentials (#4729)
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-03-04 20:42:27 +00:00
François Hodierne
c37cf7e1ee removed unused node_modules caching in CI (#4724)
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-03-04 05:55:55 +00:00
Pierre-Yves B
488c432a95 Fix failing [JenkinsPluginInstalls] test (#4727) 2020-03-03 18:21:11 -06:00
Caleb Cartwright
b13116870f docs: add inline wercker ci docs (#4723) 2020-03-02 17:27:18 +00:00
François Hodierne
b45f123521 Remove a couple of unused dependencies (#4720)
* chore: remove a couple of unused dependencies

Removed in https://github.com/badges/shields/pull/2906/files
- @babel/plugin-proposal-class-properties
- @babel/plugin-proposal-object-rest-spread
- @babel/preset-env

Built in:
- url

No usage detected:
- mkdirp
- react-error-overlay
- walkdir

* chore: add react-error-overlay in version 3.0.0
2020-03-01 14:17:54 +00:00
dependabot-preview[bot]
1dcf05a494 Build(deps-dev): bump react-dom from 16.12.0 to 16.13.0 (#4709)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.12.0 to 16.13.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.13.0/packages/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-29 12:51:42 -06:00
dependabot-preview[bot]
d5ed89729c Build(deps-dev): bump react-modal from 3.11.1 to 3.11.2 (#4708)
Bumps [react-modal](https://github.com/reactjs/react-modal) from 3.11.1 to 3.11.2.
- [Release notes](https://github.com/reactjs/react-modal/releases)
- [Changelog](https://github.com/reactjs/react-modal/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactjs/react-modal/compare/v3.11.1...v3.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-29 12:10:53 -06:00
François Hodierne
0d8a2d5ca0 Update to eslint 6.8.0 [appveyor githubissuedetail packagist] (#4489)
* update to eslint 6.8.0 and related packages

* Fixes for no-prototype-builtins

* Updates for explicit-function-return-type

* Add ignores for no-explicit-any

* update to eslint 6.8.0 and related packages

* Fixes for no-prototype-builtins

* Updates for explicit-function-return-type

* Add ignores for no-explicit-any

* package: activate eslint-config-standard

* apply updated eslint configuration

* lint: apply eslint feedback after rebase

* Update lockfile

* Update lockfile

* Restore missing deps

* Update lockfile

* Re-add eslint-plugin-node

* Add eslint-plugin-standard and eslint-plugin-react-hooks

* Clean lint

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-02-29 11:06:36 -06:00
dependabot-preview[bot]
fe70e75f3e Build(deps-dev): bump @babel/register from 7.8.3 to 7.8.6 (#4707)
Bumps [@babel/register](https://github.com/babel/babel) from 7.8.3 to 7.8.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.8.3...v7.8.6)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-29 01:48:30 +00:00
dependabot-preview[bot]
aded0f8a5b Build(deps): bump config from 3.2.6 to 3.3.0 (#4706)
Bumps [config](https://github.com/lorenwest/node-config) from 3.2.6 to 3.3.0.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-29 01:35:36 +00:00
dependabot-preview[bot]
1d4f197cd6 Build(deps-dev): bump @types/node from 13.7.4 to 13.7.6 (#4704)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.7.4 to 13.7.6.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-29 01:23:12 +00:00
dependabot-preview[bot]
d331ade4fe Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.25 to 2.1.26 (#4703)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.25 to 2.1.26.
- [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.1.26/packages/gatsby-plugin-catch-links)

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

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-02-29 01:13:41 +00:00
dependabot-preview[bot]
9a77436bb4 Build(deps): bump @sentry/node from 5.12.4 to 5.13.0 (#4699)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.12.4 to 5.13.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/5.12.4...5.13.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-28 19:04:55 -06:00
dependabot-preview[bot]
409ffe9a98 Build(deps-dev): bump react from 16.12.0 to 16.13.0 (#4698)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.12.0 to 16.13.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.13.0/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-28 18:44:22 -06:00
dependabot-preview[bot]
fe1cb55a9f Build(deps-dev): bump nock from 11.8.2 to 11.9.1 (#4705)
Bumps [nock](https://github.com/nock/nock) from 11.8.2 to 11.9.1.
- [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/v11.8.2...v11.9.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-28 22:01:50 +00:00
chris48s
d47215949a don't upgrade to sinon 9 (#4714)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-28 21:42:22 +00:00
dependabot-preview[bot]
0fccaf3b55 Build(deps-dev): bump gatsby from 2.19.19 to 2.19.22 (#4701)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.19 to 2.19.22.
- [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.19...gatsby@2.19.22)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-28 21:22:43 +00:00
dependabot-preview[bot]
bfaa808827 Build(deps-dev): bump eslint-plugin-react-hooks from 2.4.0 to 2.5.0 (#4702)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 2.4.0 to 2.5.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/HEAD/packages/eslint-plugin-react-hooks)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-28 13:46:15 +00:00
Caleb Cartwright
ba14c2fd9d tests: fix npm dep service test (#4697) 2020-02-27 17:49:04 -06:00
Caleb Cartwright
27f1f5b792 fix: private config schema (#4689) 2020-02-26 17:32:21 -06:00
Kumar Abhirup
ae4401ccb7 Add [pkgreview].dev service (#4660)
* Add pkgreview.dev services

* 🐛 FIX: Fix badges for pkgnames containing @ symbol

* 🐛 FIX: parseFloat the rating

* 🐛 FIX: Fix LGTM alerts

Alert: 2 for Incomplete string escaping or encoding

* Update services/pkgreview/package-rating.service.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* 🐛 FIX: Rollback to Joi.number() temporarily

* 👌 IMPROVE: Follow guidelines properly.

Not completely done, yet.

* 🐛 FIX: Handle response timed out error

* 👌 IMPROVE: Merge star and rating badge logic

* 🐛 FIX: Fix according to the maintainer's review

*  TEST: Write a test

*  TEST: Write one more dummy test

* 👌 IMPROVE: Improve message color scheme. Add logic to it. use color-formatters.

*  TEST: Complete Test Suitew

* 👌 IMPROVE: Make fixes according to the review

*  TEST: Write nice tests

*  TEST: Fix test regex

* 👌 IMPROVE: Do according to the review

*  TEST: Fix test regex and don't test Bad Requested Badge

*  TEST: Fix tests :)

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-02-22 11:11:20 -06:00
Caleb Cartwright
bb069b0492 deps: exclude nock >= 12x (#4680)
* deps: exclude nock >= 12x

* deps: exclude prom-client >= 12x
2020-02-22 01:02:45 +00:00
Pierre-Yves B
1d5adac4a9 Extend [Nexus] fallback logic to cover repository version badge (#4662)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-22 00:17:41 +00:00
dependabot-preview[bot]
024a2fda22 Build(deps): bump @sentry/node from 5.12.3 to 5.12.4 (#4675)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.12.3 to 5.12.4.
- [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.12.3...5.12.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-22 00:05:08 +00:00
dependabot-preview[bot]
b412429c42 Build(deps-dev): bump gatsby from 2.19.17 to 2.19.19 (#4672)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.17 to 2.19.19.
- [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.17...gatsby@2.19.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-21 23:50:06 +00:00
dependabot-preview[bot]
482cad117a Build(deps-dev): bump @types/react-modal from 3.10.4 to 3.10.5 (#4671)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.10.4 to 3.10.5.
- [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>
2020-02-21 23:37:19 +00:00
dependabot-preview[bot]
0d69bcbbe7 Build(deps): bump config from 3.2.5 to 3.2.6 (#4669)
Bumps [config](https://github.com/lorenwest/node-config) from 3.2.5 to 3.2.6.
- [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>
2020-02-21 17:25:21 -06:00
dependabot-preview[bot]
033b5c95d5 Build(deps): bump ioredis from 4.14.1 to 4.16.0 (#4668)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.14.1 to 4.16.0.
- [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.14.1...v4.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-21 22:54:40 +00:00
dependabot-preview[bot]
520d1519dc Build(deps-dev): bump react-error-overlay from 6.0.5 to 6.0.6 (#4667)
Bumps [react-error-overlay](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-error-overlay) from 6.0.5 to 6.0.6.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-error-overlay@6.0.6/packages/react-error-overlay)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-21 22:45:10 +00:00
dependabot-preview[bot]
1ab534572d Build(deps-dev): bump @types/node from 13.7.1 to 13.7.4 (#4664)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.7.1 to 13.7.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>
2020-02-21 22:29:37 +00:00
dependabot-preview[bot]
00754017b9 Build(deps-dev): bump eslint-plugin-mocha from 6.2.2 to 6.3.0 (#4676)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/6.2.2...6.3.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-21 14:30:13 +00:00
dependabot-preview[bot]
cc892b61c9 Build(deps): bump simple-icons from 2.4.0 to 2.5.0 (#4678)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.4.0...2.5.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-21 14:16:57 +00:00
dependabot-preview[bot]
d0b62b75d5 Build(deps-dev): bump eslint-plugin-react-hooks from 2.3.0 to 2.4.0 (#4679)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 2.3.0 to 2.4.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/HEAD/packages/eslint-plugin-react-hooks)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-21 13:55:25 +00:00
dependabot-preview[bot]
aaee83a49e Build(deps-dev): bump eslint-plugin-cypress from 2.9.0 to 2.10.3 (#4666)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.9.0 to 2.10.3.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.9.0...v2.10.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-21 13:12:25 +00:00
dependabot-preview[bot]
03bbfd24ef Build(deps-dev): bump sinon-chai from 3.4.0 to 3.5.0 (#4665)
Bumps [sinon-chai](https://github.com/domenic/sinon-chai) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/domenic/sinon-chai/releases)
- [Changelog](https://github.com/domenic/sinon-chai/blob/master/CHANGELOG.md)
- [Commits](https://github.com/domenic/sinon-chai/compare/3.4.0...3.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-21 12:45:34 +00:00
Wangchong Zhou
a7b7cc00b5 Added [OPM] version badge (#4615)
Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-02-17 12:08:04 -06:00
nigredo-tori
ddfcd80ddb [Nexus] 3: set prerelease=false for /r/* badges (#4659)
* Add a test for #4640

* Set prerelease=false for /r/* Nexus 3 badges

* Fix the test following PR discussion

Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-02-16 12:44:40 +00:00
chris48s
8f094a760b use header for service test runner auth (#4658) 2020-02-16 12:32:26 +00:00
dependabot-preview[bot]
52880baf1a Build(deps-dev): bump cypress from 3.8.3 to 4.0.2 (#4657)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.8.3 to 4.0.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.8.3...v4.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-15 11:48:46 -06:00
dependabot-preview[bot]
ff01761cda Build(deps-dev): bump @types/node from 13.7.0 to 13.7.1 (#4653)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.7.0 to 13.7.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>
2020-02-15 15:08:58 +00:00
dependabot-preview[bot]
d488f5881b Build(deps): bump semver from 7.1.2 to 7.1.3 (#4650)
Bumps [semver](https://github.com/npm/node-semver) from 7.1.2 to 7.1.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.1.2...v7.1.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 22:41:04 +00:00
dependabot-preview[bot]
67d23e6bc8 Build(deps-dev): bump nock from 11.7.2 to 11.8.2 (#4649)
Bumps [nock](https://github.com/nock/nock) from 11.7.2 to 11.8.2.
- [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/v11.7.2...v11.8.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 22:18:57 +00:00
dependabot-preview[bot]
8a5185826a Build(deps-dev): bump babel-preset-gatsby from 0.2.28 to 0.2.29 (#4651)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.28 to 0.2.29.
- [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.2.29/packages/babel-preset-gatsby)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 22:08:38 +00:00
dependabot-preview[bot]
f97d89c01f Build(deps): bump query-string from 6.10.1 to 6.11.0 (#4645)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.10.1 to 6.11.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.10.1...v6.11.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 20:04:21 +00:00
dependabot-preview[bot]
1bdca2a998 Build(deps-dev): bump rimraf from 3.0.1 to 3.0.2 (#4648)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v3.0.1...v3.0.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 19:54:56 +00:00
dependabot-preview[bot]
fc28786e64 Build(deps-dev): bump @types/enzyme from 3.10.4 to 3.10.5 (#4654)
Bumps [@types/enzyme](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/enzyme) from 3.10.4 to 3.10.5.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 19:37:34 +00:00
dependabot-preview[bot]
ede1441c00 Build(deps-dev): bump @types/chai from 4.2.8 to 4.2.9 (#4646)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.8 to 4.2.9.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 19:06:47 +00:00
dependabot-preview[bot]
a812e741cc Build(deps): bump request from 2.88.0 to 2.88.2 (#4644)
Bumps [request](https://github.com/request/request) from 2.88.0 to 2.88.2.
- [Release notes](https://github.com/request/request/releases)
- [Changelog](https://github.com/request/request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/request/request/commits)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-14 18:52:27 +00:00
dependabot-preview[bot]
122ef4f6f3 Build(deps-dev): bump gatsby from 2.19.12 to 2.19.17 (#4643)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.12 to 2.19.17.
- [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.12...gatsby@2.19.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-14 12:35:26 -06:00
Anton Gilgur
7f7ecfd111 add sort and prerelease query params to [GitHubCommitsSince] (also refactors [GitHubRelease], [GitHubTag]) (#4395)
* move getLatestRelease logic from [GitHubRelease] to common-fetch

- so that the sorting and prerelease logic can be used for other
  services too, like commits-since

* add sort and prerelease query params to [GitHubCommitsSince]

- they only work when using the 'latest' version of course

- uses same logic as release service

* reuse queryParamSchema from common-fetch for [GitHubTag]

- as they were the exact same schema

* refactor [GitHubCommitsSince] tests to use withRegex

- and the same variable everywhere

* split out release/tag logic from common-fetch to common-release (affects [GitHubCommitsSince], [GitHubRelease], [GitHubTag])

- this logic is only used for code related to releases & tags, so made
  sense as a split point

Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-02-13 22:18:29 -06:00
Amir Zarrinkafsh
0e3b521ac7 Add [Docker] image size and version badges (#4562)
* Add [Docker] image size badge

* Add [Docker] version/tag badge

* [Docker] allow version badge to retrieve results from multiple pages

* [Docker] allow size badge to retrieve results from multiple pages

* [Docker] clean up size and version badges before squash

* [Docker] Size badge change API call to explicit tag

* [Docker] Conditionally include tag route param for badges

* [Docker] Implement feedback for size and version badges

* [Docker] Implement feedback round 2 for size and version badges

* [Docker] Optimise API lookups and remove date sorting on tag badge

* [Docker] Implement feedback round 3 for version badge

* [Docker] Implement feedback round 4 for version badge

* [Docker] Adjust unit and service tests for version badge

* [Docker] Move unit test data into fixtures

* [Docker] Fix Docker version badge route prefix

* [Docker] Add date and semver lookup for size badge

* [Docker] Implement feedback round 5 for version badge

* [Docker] Implement feedback round 6

* [Docker] Tweak error messaging for consistent wording

* [Docker] Adjust badge titles

* [Docker] Guard and treat images with missing digest

* [Docker] Guard and treat images with missing digest
2020-02-13 15:17:55 -06:00
Caleb Cartwright
98a12c9717 deps: update dependabot ignore list (#4638) 2020-02-10 13:04:56 -05:00
dependabot-preview[bot]
96e5f8701c Build(deps-dev): bump gatsby-plugin-styled-components (#4634)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.18 to 3.1.19.
- [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.1.19/packages/gatsby-plugin-styled-components)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-08 07:25:30 +00:00
dependabot-preview[bot]
893ddfc3df Build(deps): bump @sentry/node from 5.11.2 to 5.12.3 (#4628)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.11.2 to 5.12.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.11.2...5.12.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-08 07:15:31 +00:00
dependabot-preview[bot]
bb99006f62 Build(deps-dev): bump gatsby-plugin-typescript from 2.1.26 to 2.1.27 (#4633)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.26 to 2.1.27.
- [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.1.27/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-08 01:05:59 -06:00
dependabot-preview[bot]
e32a504894 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.21 to 3.1.22 (#4635)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.21 to 3.1.22.
- [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.1.22/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-08 02:00:12 +00:00
dependabot-preview[bot]
09ea13e6d9 Build(deps-dev): bump styled-components from 5.0.0 to 5.0.1 (#4630)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 5.0.0 to 5.0.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.0.0...v5.0.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-08 01:46:43 +00:00
dependabot-preview[bot]
2c422ed744 Build(deps-dev): bump babel-preset-gatsby from 0.2.27 to 0.2.28 (#4631)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.27 to 0.2.28.
- [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.2.28/packages/babel-preset-gatsby)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-08 01:30:32 +00:00
dependabot-preview[bot]
153cc861b4 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.39 to 2.1.40 (#4624)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.39 to 2.1.40.
- [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.1.40/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-07 19:06:44 -06:00
dependabot-preview[bot]
49d197c437 Build(deps): bump graphql-tag from 2.10.1 to 2.10.3 (#4627)
Bumps [graphql-tag](https://github.com/apollographql/graphql-tag) from 2.10.1 to 2.10.3.
- [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/compare/v2.10.1...v2.10.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 22:25:23 +00:00
dependabot-preview[bot]
02a38e5f37 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.24 to 2.1.25 (#4622)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.24 to 2.1.25.
- [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.1.25/packages/gatsby-plugin-catch-links)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 21:57:04 +00:00
dependabot-preview[bot]
85d2354a38 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4625)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.20 to 2.1.21.
- [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.1.21/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 21:35:47 +00:00
dependabot-preview[bot]
50438bd7fa Build(deps-dev): bump snap-shot-it from 7.9.1 to 7.9.2 (#4629)
Bumps [snap-shot-it](https://github.com/bahmutov/snap-shot-it) from 7.9.1 to 7.9.2.
- [Release notes](https://github.com/bahmutov/snap-shot-it/releases)
- [Commits](https://github.com/bahmutov/snap-shot-it/compare/v7.9.1...v7.9.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 21:23:48 +00:00
dependabot-preview[bot]
6f75abe1e1 Build(deps): bump simple-icons from 2.3.0 to 2.4.0 (#4623)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.3.0...2.4.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 21:01:21 +00:00
dependabot-preview[bot]
aa3a9b4388 Build(deps-dev): bump eslint-plugin-cypress from 2.8.1 to 2.9.0 (#4626)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.8.1...v2.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-07 14:20:17 +00:00
dependabot-preview[bot]
30f3cf491e Build(deps-dev): bump eslint-plugin-react from 7.18.0 to 7.18.3 (#4621)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.18.0 to 7.18.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.18.0...v7.18.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-07 13:29:34 +00:00
dependabot-preview[bot]
97757b3ac1 Build(deps-dev): bump eslint-plugin-import from 2.20.0 to 2.20.1 (#4620)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.0 to 2.20.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.20.0...v2.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-07 13:03:11 +00:00
dependabot-preview[bot]
9d38c1be7d Build(deps-dev): bump @types/node from 13.5.0 to 13.7.0 (#4612)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.5.0 to 13.7.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>
2020-02-05 18:29:50 -06:00
dependabot-preview[bot]
1fec8d95b1 Build(deps-dev): bump @types/mocha from 5.2.7 to 7.0.1 (#4602)
Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 5.2.7 to 7.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>
2020-02-05 18:17:52 -06:00
Pierre-Yves B
0040e3665a Add mkdirp to Dependabot exclusion list (#4618) 2020-02-05 23:13:08 +00:00
dependabot-preview[bot]
c8204d6bd0 Build(deps-dev): bump @types/chai from 4.2.7 to 4.2.8 (#4606)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.7 to 4.2.8.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-05 22:04:20 +00:00
dependabot-preview[bot]
704399f4b3 Build(deps-dev): bump mkdirp from 0.5.1 to 1.0.3 (#4608)
Bumps [mkdirp](https://github.com/isaacs/node-mkdirp) from 0.5.1 to 1.0.3.
- [Release notes](https://github.com/isaacs/node-mkdirp/releases)
- [Changelog](https://github.com/isaacs/node-mkdirp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-mkdirp/commits/v1.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-05 21:41:20 +00:00
Pierre-Yves B
8e1ce633fa Add version 3 support for [Nexus] badges (#4557) 2020-02-05 07:55:03 +00:00
James Cahill
9868025154 Added [VisualStudioAppCenter] badges 🎉 (#4108)
* VisualStudioAppCenterBuilds

* [vsacb] Add schema, documentation and use buildStatus for rendering

* Add VSACReleasesVersion badge and test

* Make tests green again, add another nock test and fix category

* Add VSAC Releases Size badge and test

* Add VSAC Base class

* [vsacb] use base fetch function

* Add VSACR OSVersion service and tests

* Finishing touches

* Change slug from VSAC to Visual-Studio-App-Center

* Use prettyBytes for rendering

* CQ

* Use bytes response directly

* Remove superfluous required statement

* Improve os version badge format

* Switch to nock for build test

Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2020-02-04 19:43:15 +00:00
Pedro Fracassi
d80636b101 Add [GithubLerna] badge (#4265)
* Add GitHub Lerna badge

* Add tests, rename class, rework base path, support independent tag

* Switch label to be 'lerna' in all cases

* Run Prettier

Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-02-03 22:34:09 +00:00
chris48s
e9092bc93b tell dependabot not to offer incompatible upgrades (#4617)
* tell dependabot not to offer incompatible upgrades

* add start-server-and-test
2020-02-03 22:15:33 +00:00
dependabot-preview[bot]
93026326d9 Build(deps-dev): bump @babel/preset-env from 7.8.3 to 7.8.4 (#4609)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.3 to 7.8.4.
- [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.8.3...v7.8.4)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-03 21:54:50 +00:00
dependabot-preview[bot]
0ec29c75c0 Build(deps-dev): bump @babel/core from 7.8.3 to 7.8.4 (#4610)
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.3 to 7.8.4.
- [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.8.3...v7.8.4)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-03 21:29:17 +00:00
dependabot-preview[bot]
b0dddab4c8 Build(deps): bump semver from 7.1.1 to 7.1.2 (#4611)
Bumps [semver](https://github.com/npm/node-semver) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.1.1...v7.1.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-02-03 21:15:49 +00:00
chris48s
7d2089e315 skip flakey test (#4616) 2020-02-03 20:59:52 +00:00
dependabot-preview[bot]
d5af9f884b Build(deps-dev): bump gatsby from 2.19.5 to 2.19.12 (#4613)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.19.5 to 2.19.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.19.5...gatsby@2.19.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-02 15:50:09 -06:00
Caleb Cartwright
64cd25fa7f deps: pin start-server-and-test to 1.10.7 (#4614) 2020-02-02 15:21:33 -06:00
dependabot-preview[bot]
e4ca19e6e1 Build(deps-dev): bump start-server-and-test from 1.10.7 to 1.10.8 (#4600)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.10.7 to 1.10.8.
- [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.10.8)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-01 12:56:19 -06:00
dependabot-preview[bot]
ff7550b2a1 Build(deps): bump @sentry/node from 5.11.1 to 5.11.2 (#4597)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.11.1 to 5.11.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.11.1...5.11.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-01 12:43:55 -06:00
dependabot-preview[bot]
d67a3a2e45 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.38 to 2.1.39 (#4596)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.38 to 2.1.39.
- [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.1.39/packages/gatsby-plugin-page-creator)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-01 11:41:32 -06:00
dependabot-preview[bot]
4fe78edbd3 Build(deps): bump graphql from 14.5.8 to 14.6.0 (#4598)
Bumps [graphql](https://github.com/graphql/graphql-js) from 14.5.8 to 14.6.0.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v14.5.8...v14.6.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-02-01 01:35:02 +00:00
dependabot-preview[bot]
db63004275 Build(deps-dev): bump rimraf from 3.0.0 to 3.0.1 (#4599)
Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v3.0.0...v3.0.1)

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

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-02-01 01:17:57 +00:00
dependabot-preview[bot]
4fb7478571 Build(deps-dev): bump concurrently from 5.0.2 to 5.1.0 (#4595)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v5.0.2...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-31 19:06:03 -06:00
dependabot-preview[bot]
7428b5acd8 Build(deps-dev): bump react-error-overlay from 6.0.4 to 6.0.5 (#4591)
Bumps [react-error-overlay](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-error-overlay) from 6.0.4 to 6.0.5.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-error-overlay@6.0.5/packages/react-error-overlay)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-31 18:56:06 -06:00
dependabot-preview[bot]
febf162db3 Build(deps-dev): bump cypress from 3.8.2 to 3.8.3 (#4607)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.8.2 to 3.8.3.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.8.2...v3.8.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-31 13:57:44 +00:00
dependabot-preview[bot]
8fe4683cf9 Build(deps-dev): bump eslint-config-prettier from 6.9.0 to 6.10.0 (#4594)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.9.0 to 6.10.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.9.0...v6.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-31 13:14:11 +00:00
chris48s
010a1b2d0a auto-merge minor bumps to test/lint deps if build passes (#4584) 2020-01-30 18:01:03 +00:00
Caleb Cartwright
c6e5b744fa tests: fix MavenMetadata service tests (#4589) 2020-01-28 18:18:42 -06:00
chris48s
a8fbc5a179 always strip build metadata from nuget versions (#4582)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-26 20:17:06 +00:00
Thomas Démoulins
1edd15457a Support never deployed env in Azure DevOps Release (#4585)
Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-01-26 11:04:33 +00:00
Thomas Démoulins
201c282605 [AzureDevOpsBuild] Support badge on a specific stage or job (#4583)
* Support Azure DevOps badge on a specific stage or job

* Add samples

* Fix tests

* Restart CI

* Changes per @PyvesB review

Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-01-26 10:55:17 +00:00
dependabot-preview[bot]
62fa0d2177 Build(deps-dev): bump @babel/core from 7.7.7 to 7.8.3 (#4576)
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [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.7.7...v7.8.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-25 15:41:08 +00:00
dependabot-preview[bot]
52031c6372 Build(deps-dev): bump gatsby from 2.18.24 to 2.19.5 (#4580)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.24 to 2.19.5.
- [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.18.24...gatsby@2.19.5)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-25 15:28:35 +00:00
dependabot-preview[bot]
834555c08c Build(deps-dev): bump sinon from 8.1.0 to 8.1.1 (#4579)
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.1.0 to 8.1.1.
- [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.0...v8.1.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-25 15:19:36 +00:00
dependabot-preview[bot]
d538e85893 Build(deps-dev): bump is-svg from 4.2.0 to 4.2.1 (#4578)
Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/sindresorhus/is-svg/releases)
- [Commits](https://github.com/sindresorhus/is-svg/compare/v4.2.0...v4.2.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-25 14:55:04 +00:00
dependabot-preview[bot]
00e51600c3 Build(deps-dev): bump babel-plugin-inline-react-svg from 1.1.0 to 1.1.1 (#4573)
Bumps [babel-plugin-inline-react-svg](https://github.com/kesne/babel-plugin-inline-react-svg) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/kesne/babel-plugin-inline-react-svg/releases)
- [Commits](https://github.com/kesne/babel-plugin-inline-react-svg/compare/v1.1.0...v1.1.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-24 19:45:26 +00:00
dependabot-preview[bot]
e98e228b49 Build(deps-dev): bump gatsby-plugin-styled-components (#4570)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.17 to 3.1.18.
- [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.1.18/packages/gatsby-plugin-styled-components)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-24 19:24:59 +00:00
dependabot-preview[bot]
86ab3fd25d Build(deps-dev): bump start-server-and-test from 1.10.6 to 1.10.7 (#4571)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.10.6 to 1.10.7.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.10.6...v1.10.7)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-24 19:15:58 +00:00
dependabot-preview[bot]
05330f5f98 Build(deps-dev): bump eslint-plugin-jsdoc from 20.3.1 to 20.4.0 (#4569)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 20.3.1 to 20.4.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v20.3.1...v20.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 18:58:56 +00:00
dependabot-preview[bot]
cb858c8756 Build(deps-dev): bump @types/node from 13.1.7 to 13.5.0 (#4568)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.1.7 to 13.5.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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-24 18:48:09 +00:00
dependabot-preview[bot]
29c5edd1ab Build(deps-dev): bump mocha-junit-reporter from 1.23.1 to 1.23.3 (#4567)
Bumps [mocha-junit-reporter](https://github.com/michaelleeallen/mocha-junit-reporter) from 1.23.1 to 1.23.3.
- [Release notes](https://github.com/michaelleeallen/mocha-junit-reporter/releases)
- [Commits](https://github.com/michaelleeallen/mocha-junit-reporter/compare/v1.23.1...v1.23.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 12:39:03 -06:00
dependabot-preview[bot]
a775052adf Build(deps): bump simple-icons from 2.2.0 to 2.3.0 (#4566)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.2.0...2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 12:01:49 -06:00
Marcin Mielnicki
0dce98b022 Typo fix (#4563) 2020-01-20 22:27:43 +01:00
dependabot-preview[bot]
89982c737b Build(deps-dev): bump @types/react-modal from 3.10.2 to 3.10.4 (#4554)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.10.2 to 3.10.4.
- [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>
2020-01-19 11:26:45 -06:00
dependabot-preview[bot]
8b7f83a7b4 Build(deps): bump @sentry/node from 5.11.0 to 5.11.1 (#4550)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.11.0 to 5.11.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/5.11.0...5.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 10:52:43 -06:00
dependabot-preview[bot]
fc3408ca47 Build(deps-dev): bump cypress from 3.8.1 to 3.8.2 (#4549)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.8.1...v3.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 10:41:16 -06:00
dependabot-preview[bot]
a793d036f8 Build(deps-dev): bump @babel/plugin-proposal-object-rest-spread (#4548)
Bumps [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [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.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 10:30:57 -06:00
dependabot-preview[bot]
9b074e026f Build(deps-dev): bump @babel/register from 7.7.7 to 7.8.3 (#4545)
Bumps [@babel/register](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [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.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 10:11:56 -06:00
chris48s
ad834b0aba match upstream [codefactor] badge if no grade yet (#4558) 2020-01-19 15:43:56 +00:00
chris48s
814399d936 [sourceforge] support folder hierarchy (#4555)
closes #4499
2020-01-19 15:37:41 +00:00
dependabot-preview[bot]
cc5d75230a Build(deps): bump query-string from 6.9.0 to 6.10.1 (#4541)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.9.0 to 6.10.1.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.9.0...v6.10.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: chris48s <chris48s@users.noreply.github.com>
2020-01-19 15:24:49 +00:00
dependabot-preview[bot]
6bf851f0dc Build(deps-dev): bump gatsby from 2.18.21 to 2.18.24 (#4552)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.21 to 2.18.24.
- [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.18.21...gatsby@2.18.24)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-19 15:14:19 +00:00
dependabot-preview[bot]
586a7da5ce Build(deps-dev): bump styled-components from 4.4.1 to 5.0.0 (#4534)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 4.4.1 to 5.0.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/v4.4.1...v5.0.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-18 19:11:12 +00:00
dependabot-preview[bot]
e38b2b52c2 Build(deps-dev): bump @babel/preset-env from 7.7.7 to 7.8.3 (#4539)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.7 to 7.8.3.
- [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.7.7...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 18:56:35 +00:00
dependabot-preview[bot]
829c086c2f Build(deps-dev): bump @babel/polyfill from 7.7.0 to 7.8.3 (#4538)
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.7.0 to 7.8.3.
- [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.7.0...v7.8.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-18 10:47:40 -06:00
dependabot-preview[bot]
2996404bdf Build(deps-dev): bump @babel/plugin-proposal-class-properties (#4537)
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.7.4 to 7.8.3.
- [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.7.4...v7.8.3)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-18 10:37:08 -06:00
dependabot-preview[bot]
557978106d Build(deps): bump config from 3.2.4 to 3.2.5 (#4532)
Bumps [config](https://github.com/lorenwest/node-config) from 3.2.4 to 3.2.5.
- [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>
2020-01-17 20:06:29 -06:00
dependabot-preview[bot]
92fa0720e3 Build(deps): bump fast-xml-parser from 3.15.1 to 3.16.0 (#4540)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.15.1 to 3.16.0.
- [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/3.16.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-18 01:50:12 +00:00
dependabot-preview[bot]
9c78ceafae Build(deps-dev): bump eslint-plugin-react from 7.17.0 to 7.18.0 (#4531)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.17.0 to 7.18.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.17.0...v7.18.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-17 19:35:20 -06:00
dependabot-preview[bot]
25c77d8c9f Build(deps-dev): bump sinon from 8.0.4 to 8.1.0 (#4535)
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.4 to 8.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/v8.0.4...v8.1.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-01-18 01:09:34 +00:00
dependabot-preview[bot]
adab966dab Build(deps-dev): bump typescript from 3.7.4 to 3.7.5 (#4547)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.7.4 to 3.7.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.7.4...v3.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-18 00:03:44 +00:00
dependabot-preview[bot]
a4c92e93e6 Build(deps-dev): bump @types/react-select from 3.0.9 to 3.0.10 (#4543)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.9 to 3.0.10.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-17 22:47:06 +00:00
dependabot-preview[bot]
eb3d25122e Build(deps-dev): bump @types/node from 13.1.6 to 13.1.7 (#4542)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.1.6 to 13.1.7.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-17 21:51:01 +00:00
dependabot-preview[bot]
8bdcb63c23 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4536)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.17 to 2.1.20.
- [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.1.20/packages/gatsby-plugin-remove-trailing-slashes)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-17 21:28:50 +00:00
dependabot-preview[bot]
30c46194ac Build(deps-dev): bump eslint-plugin-import from 2.19.1 to 2.20.0 (#4551)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.19.1 to 2.20.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.19.1...v2.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-17 16:47:53 +00:00
dependabot-preview[bot]
d1c0947cf2 Build(deps-dev): bump eslint-plugin-jsdoc from 20.0.5 to 20.3.1 (#4546)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 20.0.5 to 20.3.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v20.0.5...v20.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-17 16:32:09 +00:00
Matan Kushner
95a54e8d35 Add [Repology] repositories badge (#4529)
* Add [Repology] repositories badge

Partly addresses #929

* Replace JSON API with SVG scrape

* Fix failing tests

* Replace Joi.number with nonNegativeInteger

* Replace integer with string in failing test

* Update title to specify that the badge is for num of repositories

* Remove repology-repositories.spec.js

* Remove keywords

* Use the metric text formatter

* Remove mocked svg test

* Remove the "in" preposition
2020-01-14 22:33:09 -06:00
Caleb Cartwright
b1c069c826 tests: fix failing puppet forge service test (#4526) 2020-01-14 16:16:03 -06:00
dependabot-preview[bot]
0e6d2c43f3 Build(deps-dev): bump @types/node from 13.1.2 to 13.1.6 (#4520)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.1.2 to 13.1.6.
- [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>
2020-01-12 17:27:50 +00:00
dependabot-preview[bot]
dcdf181319 Build(deps-dev): bump @types/react-modal from 3.10.1 to 3.10.2 (#4519)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.10.1 to 3.10.2.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-12 17:18:40 +00:00
dependabot-preview[bot]
2e4f771bcb Build(deps-dev): bump gatsby-plugin-styled-components (#4518)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.16 to 3.1.17.
- [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.1.17/packages/gatsby-plugin-styled-components)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-12 11:11:13 -06:00
dependabot-preview[bot]
7e265e40aa Build(deps-dev): bump sinon from 8.0.2 to 8.0.4 (#4517)
Bumps [sinon](https://github.com/sinonjs/sinon) from 8.0.2 to 8.0.4.
- [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.0.2...v8.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-12 10:59:38 -06:00
dependabot-preview[bot]
7bcfd4613a Build(deps-dev): bump danger from 9.2.9 to 9.2.10 (#4515)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.9 to 9.2.10.
- [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/9.2.9...9.2.10)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 20:26:08 +00:00
dependabot-preview[bot]
f804db62c8 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.37 to 2.1.38 (#4516)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.37 to 2.1.38.
- [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.1.38/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-11 14:13:16 -06:00
dependabot-preview[bot]
77bcbc52bc Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.21 to 2.1.24 (#4514)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.21 to 2.1.24.
- [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.1.24/packages/gatsby-plugin-catch-links)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-11 13:58:07 -06:00
dependabot-preview[bot]
7b7a033bb4 Build(deps-dev): bump gatsby from 2.18.17 to 2.18.21 (#4510)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.17 to 2.18.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.18.17...gatsby@2.18.21)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 19:04:36 +00:00
dependabot-preview[bot]
09dac6ca2b Build(deps-dev): bump nock from 11.7.1 to 11.7.2 (#4512)
Bumps [nock](https://github.com/nock/nock) from 11.7.1 to 11.7.2.
- [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/v11.7.1...v11.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-11 12:24:18 -06:00
dependabot-preview[bot]
3858b6ed1a Build(deps-dev): bump eslint-plugin-jsdoc from 20.0.0 to 20.0.5 (#4511)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 20.0.0 to 20.0.5.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v20.0.0...v20.0.5)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 01:38:48 +00:00
dependabot-preview[bot]
2e608e25b3 Build(deps): bump simple-icons from 2.1.0 to 2.2.0 (#4509)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.1.0...2.2.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 01:18:34 +00:00
dependabot-preview[bot]
59680d4f80 Build(deps-dev): bump @types/react-select from 3.0.8 to 3.0.9 (#4508)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.8 to 3.0.9.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 01:07:33 +00:00
dependabot-preview[bot]
ccbc7b3291 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.18 to 3.1.21 (#4504)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.18 to 3.1.21.
- [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.1.21/packages/gatsby-plugin-react-helmet)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-11 00:29:40 +00:00
dependabot-preview[bot]
2381d89e3e Build(deps-dev): bump babel-preset-gatsby from 0.2.26 to 0.2.27 (#4507)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.26 to 0.2.27.
- [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.2.27/packages/babel-preset-gatsby)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-10 17:42:09 +00:00
dependabot-preview[bot]
1641cf023d Build(deps): bump @sentry/node from 5.10.2 to 5.11.0 (#4506)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.10.2 to 5.11.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.10.2...5.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-10 11:02:26 -06:00
dependabot-preview[bot]
13d98a4729 Build(deps-dev): bump @types/react-helmet from 5.0.14 to 5.0.15 (#4505)
Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 5.0.14 to 5.0.15.
- [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>
2020-01-10 10:31:25 -06:00
dependabot-preview[bot]
2798b43262 Build(deps-dev): bump gatsby-plugin-typescript from 2.1.23 to 2.1.26 (#4503)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.23 to 2.1.26.
- [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.1.26/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-10 09:47:09 -06:00
Caleb Cartwright
fe02ac723f add [AppVeyorJobBuild] status badge (#4409)
* feat(service): add AppVeyor Job status badge

* refactor: sync file/class/route names for appveyor job

* tests: update # of build services in frontend test

Co-authored-by: Pierre-Yves B. <PyvesDev@gmail.com>
2020-01-08 22:22:04 +00:00
chris48s
347e0a81f3 set followRedirect: false by default in tests (#4491)
* set followRedirect: false by default in tests

* update tests implicitly relying on redirects

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-07 21:13:48 +00:00
Aleksandr Razumov
d8863805d0 Fix [TeamCity] build status text schema (#4495)
Build status is currently used as a pass through, so remove
regex, because it causes unnecessary failures.

Fix #4486
2020-01-07 12:49:22 -06:00
Marcin Mielnicki
88e2cac0f8 Exclude 'get' logo in load-simple-icons/fixes: logos: TypeError: Cannot read property '1' of null (#4488)
* Exclude 'get' key from simple icons

* Improved assertion readability

* A comment added in test
2020-01-05 21:30:57 +01:00
dependabot-preview[bot]
7806b71746 Build(deps-dev): bump eslint-plugin-jsdoc from 18.6.0 to 20.0.0 (#4483)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 18.6.0 to 20.0.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v18.6.0...v20.0.0)

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

Co-authored-by: Marcin Mielnicki <marcin.mielnicki@gmail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-05 15:32:26 +00:00
François Hodierne
477af22e60 package: remove lodash.throttle from dependencies (#4490)
it stopped being used in https://github.com/badges/shields/pull/3764

Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
2020-01-04 16:23:08 -07:00
Marcin Mielnicki
22a85bfbcd A response size metric of an upstream service for dynamic badges like [dynamicyaml], (but not [jetbrains]) (#4434)
* Response size metric for all services

* Unused code removed

* Test for service response size metric

* All buckes of the service_response_bytes in a comment

* Register parameter in PrometheusMetrics is optional

* service response size metric enabled for dynamic badges

* Better test name

* JSDoc removed

* One import from one file

* Gather metrics in the background

* Revert saving response time metrics in the background
2020-01-04 17:48:24 +01:00
dependabot-preview[bot]
3352e8e565 Build(deps-dev): bump sinon from 7.5.0 to 8.0.2 (#4482)
Bumps [sinon](https://github.com/sinonjs/sinon) from 7.5.0 to 8.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/v7.5.0...v8.0.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-03 22:37:12 +00:00
chris48s
9a6b96effc Use expectRedirect helper in redirect tests; affects [circleci codeclimate codecov discourse endpoint github jenkins jira jitpack lgtm maven nexus scrutinizer sonar swagger symfony teamcity travis twitter vso waffle website wordpress] (#4481)
* Convert remaining tests to use expectRedirect() helper

* convert last few redirect tests to use svg not json

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2020-01-03 21:39:58 +00:00
dependabot-preview[bot]
7a12dc2865 Build(deps-dev): bump nock from 11.7.0 to 11.7.1 (#4484)
Bumps [nock](https://github.com/nock/nock) from 11.7.0 to 11.7.1.
- [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/v11.7.0...v11.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-03 15:17:08 -06:00
Drew McMurry
02681cfe27 fixes small typo (#4487) 2020-01-03 11:58:01 -06:00
dependabot-preview[bot]
f072f815a7 Build(deps-dev): bump @types/node from 13.1.1 to 13.1.2 (#4485)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.1.1 to 13.1.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>
2020-01-03 08:38:41 -06:00
Patric Stout
453821c40e Add [GithubDeployments] badge (#4477) (#4478)
* Add GitHub Deployments badge (#4477)

* require a message

Co-authored-by: chris48s <chris48s@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-31 18:13:16 +00:00
Caleb Cartwright
e01712da76 feat: deprecate leanpub badges (#4479) 2019-12-30 10:07:36 -06:00
dependabot-preview[bot]
e908a31f5e Build(deps-dev): bump @types/node from 12.12.21 to 13.1.1 (#4469)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.21 to 13.1.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>
2019-12-28 22:36:31 -06:00
dependabot-preview[bot]
ac11757574 Build(deps-dev): bump nyc from 14.1.1 to 15.0.0 (#4467)
Bumps [nyc](https://github.com/istanbuljs/nyc) from 14.1.1 to 15.0.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/v14.1.1...v15.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-28 22:19:16 -06:00
Zack
f90e58e623 Updates [Discord] badge for API changes (#4475)
* Updates Discord badge for API changes

* Update discord.service.js

* Update discord.service.js

* cr fix
2019-12-28 11:29:53 -05:00
dependabot-preview[bot]
c0b18bdc2e Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.36 to 2.1.37 (#4470)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.36 to 2.1.37.
- [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.1.37/packages/gatsby-plugin-page-creator)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 20:34:02 +00:00
dependabot-preview[bot]
30c0a88978 Build(deps-dev): bump eslint-plugin-jsdoc from 18.4.3 to 18.6.0 (#4473)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 18.4.3 to 18.6.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v18.4.3...v18.6.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 20:25:05 +00:00
dependabot-preview[bot]
f81de8db4e Build(deps-dev): bump eslint-plugin-node from 10.0.0 to 11.0.0 (#4471)
Bumps [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/mysticatea/eslint-plugin-node/releases)
- [Commits](https://github.com/mysticatea/eslint-plugin-node/compare/v10.0.0...v11.0.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 15:16:40 -05:00
dependabot-preview[bot]
5057044d31 Build(deps-dev): bump eslint-config-prettier from 6.7.0 to 6.9.0 (#4472)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.7.0 to 6.9.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/commits/v6.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-27 15:07:08 -05:00
dependabot-preview[bot]
b617812ad0 Build(deps): bump simple-icons from 2.0.0 to 2.1.0 (#4466)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/2.0.0...2.1.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 16:14:08 +00:00
dependabot-preview[bot]
97551dd621 Build(deps-dev): bump sinon-chai from 3.3.0 to 3.4.0 (#4464)
Bumps [sinon-chai](https://github.com/domenic/sinon-chai) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/domenic/sinon-chai/releases)
- [Changelog](https://github.com/domenic/sinon-chai/blob/master/CHANGELOG.md)
- [Commits](https://github.com/domenic/sinon-chai/compare/3.3.0...3.4.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 13:39:10 +00:00
dependabot-preview[bot]
1051b49147 Build(deps-dev): bump babel-plugin-istanbul from 5.2.0 to 6.0.0 (#4463)
Bumps [babel-plugin-istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/istanbuljs/babel-plugin-istanbul/releases)
- [Changelog](https://github.com/istanbuljs/babel-plugin-istanbul/blob/master/CHANGELOG.md)
- [Commits](https://github.com/istanbuljs/babel-plugin-istanbul/compare/v5.2.0...v6.0.0)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 13:29:05 +00:00
dependabot-preview[bot]
d19812a85a Build(deps-dev): bump cypress from 3.8.0 to 3.8.1 (#4468)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.8.0...v3.8.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-27 08:17:12 -05:00
dependabot-preview[bot]
3bb2100c96 Build(deps-dev): bump typescript from 3.7.3 to 3.7.4 (#4465)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.7.3 to 3.7.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-27 08:10:12 -05:00
dependabot-preview[bot]
cd5e76f7b8 Build(deps): [security] bump handlebars from 4.1.2 to 4.5.3 (#4462)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.5.3. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-26 17:46:23 -05:00
chris48s
1a98b6bc31 Convert vpre routes to include_prereleases param in [bower chocolatey clojars packagist powershellgallery pub resharper] (#4436)
* Convert vpre routes to include_prereleases param
* add .expectRedirect() helper
* test redirects on SVG endpoint
2019-12-23 20:47:35 +00:00
dependabot-preview[bot]
8056706316 Build(deps-dev): bump gatsby-plugin-typescript from 2.1.20 to 2.1.23 (#4423)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.20 to 2.1.23.
- [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.1.23/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 20:39:27 +00:00
dependabot-preview[bot]
a53f9dfba4 Build(deps-dev): bump gatsby from 2.18.11 to 2.18.17 (#4458)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.11 to 2.18.17.
- [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.18.11...gatsby@2.18.17)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-23 20:23:26 +00:00
dependabot-preview[bot]
8f2da0b75e Build(deps-dev): bump @babel/register from 7.7.4 to 7.7.7 (#4453)
Bumps [@babel/register](https://github.com/babel/babel) from 7.7.4 to 7.7.7.
- [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.7.4...v7.7.7)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-23 18:23:46 +00:00
dependabot-preview[bot]
d85283e33f Build(deps-dev): bump @types/enzyme from 3.10.3 to 3.10.4 (#4449)
Bumps [@types/enzyme](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/enzyme) from 3.10.3 to 3.10.4.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-23 17:59:58 +00:00
dependabot-preview[bot]
6408ce92b0 Build(deps-dev): bump gatsby-plugin-styled-components (#4447)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.14 to 3.1.16.
- [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.1.16/packages/gatsby-plugin-styled-components)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-23 17:51:34 +00:00
dependabot-preview[bot]
8333fdaa0b Build(deps-dev): bump @babel/core from 7.7.5 to 7.7.7 (#4445)
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.5 to 7.7.7.
- [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.7.5...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 22:48:05 -05:00
dependabot-preview[bot]
1a67e882af Build(deps-dev): bump @babel/preset-env from 7.7.4 to 7.7.7 (#4443)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.4 to 7.7.7.
- [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.7.4...v7.7.7)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-23 02:01:30 +00:00
chris48s
e879682e29 Add documentation for designing badge URLs (#4435)
* Add documentation for designing badge URLs
Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
2019-12-22 17:05:00 +00:00
dependabot-preview[bot]
0dd5a8be9a Build(deps-dev): bump @babel/plugin-proposal-object-rest-spread (#4441)
Bumps [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel) from 7.7.4 to 7.7.7.
- [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.7.4...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 09:24:19 -05:00
dependabot-preview[bot]
219436854b Build(deps-dev): bump @types/react-modal from 3.10.0 to 3.10.1 (#4427)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.10.0 to 3.10.1.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-22 13:30:57 +00:00
dependabot-preview[bot]
54fcfc9c35 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4428)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.15 to 2.1.17.
- [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.1.17/packages/gatsby-plugin-remove-trailing-slashes)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-22 13:22:40 +00:00
dependabot-preview[bot]
284797dffe Build(deps): bump xmldom from 0.1.27 to 0.2.1 (#4444)
Bumps [xmldom](https://github.com/xmldom/xmldom) from 0.1.27 to 0.2.1.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/changelog)
- [Commits](https://github.com/xmldom/xmldom/compare/v0.1.27...0.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-21 22:23:10 -05:00
dependabot-preview[bot]
29d48d9b6d Build(deps-dev): bump @types/node from 12.12.14 to 12.12.21 (#4442)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.14 to 12.12.21.
- [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: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-22 00:59:13 +00:00
dependabot-preview[bot]
439ebd65a9 Build(deps): bump semver from 6.3.0 to 7.1.1 (#4450)
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 7.1.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v7.1.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-21 17:37:07 +00:00
dependabot-preview[bot]
5767d534c9 Build(deps-dev): bump enzyme-adapter-react-16 from 1.15.1 to 1.15.2 (#4440)
Bumps [enzyme-adapter-react-16](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme-adapter-react-16) from 1.15.1 to 1.15.2.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/commits/enzyme-adapter-react-16@1.15.2/packages/enzyme-adapter-react-16)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-21 17:17:56 +00:00
dependabot-preview[bot]
8b49436748 Build(deps-dev): bump concurrently from 5.0.1 to 5.0.2 (#4448)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v5.0.1...v5.0.2)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-21 17:03:07 +00:00
dependabot-preview[bot]
9161c6108f Build(deps-dev): bump eslint-plugin-cypress from 2.7.0 to 2.8.1 (#4451)
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 2.7.0 to 2.8.1.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v2.7.0...v2.8.1)

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

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2019-12-21 16:38:21 +00:00
dependabot-preview[bot]
c2f746bb17 Build(deps-dev): bump enzyme from 3.10.0 to 3.11.0 (#4452)
Bumps [enzyme](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/commits/enzyme@3.11.0/packages/enzyme)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-21 16:30:43 +00:00
dependabot-preview[bot]
5ecc489707 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.33 to 2.1.36 (#4416)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.33 to 2.1.36.
- [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.1.36/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-16 08:03:39 +00:00
dependabot-preview[bot]
947770608b Build(deps-dev): bump @types/chai from 4.2.6 to 4.2.7 (#4426)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.6 to 4.2.7.
- [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>
2019-12-15 20:09:44 +00:00
dependabot-preview[bot]
357bea3f3e Build(deps-dev): bump babel-preset-gatsby from 0.2.23 to 0.2.26 (#4418)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.23 to 0.2.26.
- [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.2.26/packages/babel-preset-gatsby)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 19:31:04 +00:00
dependabot-preview[bot]
ff161c0985 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.16 to 3.1.18 (#4425)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.16 to 3.1.18.
- [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.1.18/packages/gatsby-plugin-react-helmet)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 18:59:27 +00:00
dependabot-preview[bot]
4a98aa5324 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.19 to 2.1.21 (#4417)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.19 to 2.1.21.
- [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.1.21/packages/gatsby-plugin-catch-links)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-15 18:51:20 +00:00
dependabot-preview[bot]
3e2a1f14e6 Build(deps): bump @sentry/node from 5.10.1 to 5.10.2 (#4431)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.10.1 to 5.10.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.10.1...5.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-14 11:21:05 +00:00
dependabot-preview[bot]
ff202dce3d Build(deps-dev): bump node-mocks-http from 1.8.0 to 1.8.1 (#4419)
Bumps [node-mocks-http](https://github.com/howardabrams/node-mocks-http) from 1.8.0 to 1.8.1.
- [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.0...v1.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-14 11:11:29 +00:00
dependabot-preview[bot]
933a90936e Build(deps-dev): bump concurrently from 5.0.0 to 5.0.1 (#4413)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v5.0.0...v5.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-14 11:00:46 +00:00
dependabot-preview[bot]
23db26d0e5 Build(deps-dev): bump danger from 9.2.8 to 9.2.9 (#4430)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.8 to 9.2.9.
- [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/9.2.8...9.2.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-14 10:47:18 +00:00
dependabot-preview[bot]
785714c666 Build(deps-dev): bump nodemon from 2.0.1 to 2.0.2 (#4432)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.1...v2.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-14 10:32:57 +00:00
dependabot-preview[bot]
b9c34e1a8d Build(deps-dev): bump @babel/core from 7.7.4 to 7.7.5 (#4415)
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.4 to 7.7.5.
- [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.7.4...v7.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 12:44:19 -06:00
dependabot-preview[bot]
c37cb90511 Build(deps-dev): bump gatsby from 2.18.7 to 2.18.11 (#4411)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.7 to 2.18.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.18.7...gatsby@2.18.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 17:13:28 +00:00
dependabot-preview[bot]
230fcf7772 Build(deps): bump fast-xml-parser from 3.15.0 to 3.15.1 (#4420)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.15.0 to 3.15.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/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 16:19:03 +00:00
dependabot-preview[bot]
aaead7d527 Build(deps): bump simple-icons from 1.20.0 to 2.0.0 (#4429)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 1.20.0 to 2.0.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/1.20.0...2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 16:05:30 +00:00
dependabot-preview[bot]
b84900eec2 Build(deps-dev): bump eslint-plugin-import from 2.18.2 to 2.19.1 (#4421)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.2 to 2.19.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.18.2...v2.19.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 15:43:29 +00:00
dependabot-preview[bot]
8edf4d2e44 Build(deps-dev): bump cypress from 3.7.0 to 3.8.0 (#4412)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.7.0...v3.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-13 15:33:46 +00:00
Hannes Nel
a583fa86c3 Changed configuration validation to allow using a named pipe for port. (#4392)
* Changed configuration validation to allow using a named pipe for port.

* Update core/server/server.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Applied prettier.

* Update core/server/server.spec.js

Co-Authored-By: Caleb Cartwright <calebcartwright@users.noreply.github.com>

* Updated spec for port setting to allow only numbers or formatted named pipes.
2019-12-12 08:42:59 +00:00
Pierre-Yves B
38e80e39b4 Remove blank space for examples with no named parameters (#4398) 2019-12-11 19:26:44 +00:00
dependabot-preview[bot]
05a0881670 Build(deps-dev): bump @types/chai from 4.2.5 to 4.2.6 (#4406)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.5 to 4.2.6.
- [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>
2019-12-06 15:54:38 -06:00
dependabot-preview[bot]
447610b85d Build(deps-dev): bump typescript from 3.7.2 to 3.7.3 (#4404)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.7.2 to 3.7.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.7.2...v3.7.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 21:24:07 +00:00
dependabot-preview[bot]
f87c1697c3 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.32 to 2.1.33 (#4407)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.32 to 2.1.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.1.33/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 19:45:32 +00:00
dependabot-preview[bot]
bd47c0b7e7 Build(deps-dev): bump eslint-plugin-jsdoc from 18.1.5 to 18.4.3 (#4402)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 18.1.5 to 18.4.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v18.1.5...v18.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 17:46:33 +00:00
dependabot-preview[bot]
ee7218ef70 Build(deps): bump check-node-version from 4.0.1 to 4.0.2 (#4401)
Bumps [check-node-version](https://github.com/parshap/check-node-version) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/parshap/check-node-version/releases)
- [Changelog](https://github.com/parshap/check-node-version/blob/master/CHANGELOG.md)
- [Commits](https://github.com/parshap/check-node-version/compare/v4.0.1...v4.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 17:15:13 +00:00
dependabot-preview[bot]
e4e5d110ce Build(deps): bump @sentry/node from 5.9.0 to 5.10.1 (#4403)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.9.0 to 5.10.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.9.0...5.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 16:58:32 +00:00
dependabot-preview[bot]
5df56c1a18 Build(deps-dev): bump gatsby from 2.18.5 to 2.18.7 (#4400)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.5 to 2.18.7.
- [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.18.5...gatsby@2.18.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 16:38:16 +00:00
dependabot-preview[bot]
17d5f55506 Build(deps-dev): bump react-error-overlay from 6.0.3 to 6.0.4 (#4399)
Bumps [react-error-overlay](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-error-overlay) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-1.x.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-error-overlay@6.0.4/packages/react-error-overlay)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-06 08:29:32 -06:00
Marcin Mielnicki
dfcb6defc8 Refactor JSONPath based services, run [DynamicJson DynamicYaml] (#4272)
* Subclass factory for JSON path services

* Common methods moved to JSON path class

* should throw error if _getData is not overridden

* Test JSON path factory using chai-as-promised

* Using chai-as-promised in more tests

* JSDoc for json-path

* Error message adopted to JSON and YAML

* Dynamic YAML badge handles YAML with a string

* 'fetch' naming covention

* Strict string validation in error message
2019-12-05 01:03:05 +01:00
Caleb Cartwright
436d2ba3a0 fix [nuget] version build metadata handling (#4222)
* fix: nuget version build metadata handling

* chore: manual formatting update
2019-12-03 16:15:55 -06:00
Pierre-Yves B
92b1380db0 Move [Jenkins] job url to query parameter (#4390) 2019-11-30 18:33:35 +00:00
dependabot-preview[bot]
c2876e8d16 Build(deps-dev): bump @types/node from 12.12.11 to 12.12.14 (#4388)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.11 to 12.12.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>
2019-11-30 15:59:38 +00:00
dependabot-preview[bot]
ae4f77b2fb Build(deps-dev): bump @babel/plugin-proposal-object-rest-spread (#4387)
Bumps [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel) from 7.6.2 to 7.7.4.
- [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.6.2...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-30 15:49:27 +00:00
dependabot-preview[bot]
3c309db469 Build(deps-dev): bump babel-preset-gatsby from 0.2.22 to 0.2.23 (#4384)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.22 to 0.2.23.
- [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.2.23/packages/babel-preset-gatsby)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-30 15:40:10 +00:00
dependabot-preview[bot]
fd5279e40d Build(deps-dev): bump gatsby-plugin-typescript from 2.1.19 to 2.1.20 (#4385)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.19 to 2.1.20.
- [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.1.20/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-30 15:31:42 +00:00
Greg Bowler
578a1438bf [Packagist] user/repo must be lowercase (#4367)
* Packagist user/repo must be lowercase

An issue has developed recently where the package name and repo name of the packagist packages have an added requirement of being lowercase. This has broken the Shields.io badge for some of my projects where their repo name has capital letters, and the badges have been automatically added by a script.

* Prettier

* Lowercase user and repo in getPackageName function instead

* Lowercase user/repo in fetch function
2019-11-30 10:21:25 -05:00
dependabot-preview[bot]
3812b0f752 Build(deps-dev): bump @babel/plugin-proposal-class-properties (#4382)
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.7.0 to 7.7.4.
- [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.7.0...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-30 15:13:08 +00:00
dependabot-preview[bot]
db4401e1b8 Build(deps-dev): bump gatsby-plugin-styled-components (#4383)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.13 to 3.1.14.
- [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.1.14/packages/gatsby-plugin-styled-components)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 21:57:10 +00:00
dependabot-preview[bot]
27152a2205 Build(deps-dev): bump @babel/core from 7.7.2 to 7.7.4 (#4380)
Bumps [@babel/core](https://github.com/babel/babel) from 7.7.2 to 7.7.4.
- [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.7.2...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 21:48:02 +00:00
dependabot-preview[bot]
72088184e8 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.31 to 2.1.32 (#4379)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.31 to 2.1.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.1.32/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 21:38:34 +00:00
dependabot-preview[bot]
87d89fe62f Build(deps): bump simple-icons from 1.19.1 to 1.20.0 (#4378)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 1.19.1 to 1.20.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/1.19.1...1.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 21:28:54 +00:00
dependabot-preview[bot]
34341808e6 Build(deps): bump fast-xml-parser from 3.14.0 to 3.15.0 (#4389)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.14.0 to 3.15.0.
- [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.14.0...v3.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 21:09:26 +00:00
dependabot-preview[bot]
85e42fe833 Build(deps-dev): bump lint-staged from 9.4.3 to 9.5.0 (#4376)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 9.4.3 to 9.5.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v9.4.3...v9.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 20:52:55 +00:00
dependabot-preview[bot]
dc3da163d8 Build(deps-dev): bump @babel/preset-env from 7.7.1 to 7.7.4 (#4375)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.1 to 7.7.4.
- [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.7.1...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 20:33:25 +00:00
dependabot-preview[bot]
fbac19563d Build(deps-dev): bump gatsby from 2.18.2 to 2.18.5 (#4374)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.18.2 to 2.18.5.
- [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.18.2...gatsby@2.18.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 20:24:32 +00:00
dependabot-preview[bot]
5bb609edfa Build(deps): bump @hapi/joi from 16.1.7 to 16.1.8 (#4386)
Bumps [@hapi/joi](https://github.com/hapijs/joi) from 16.1.7 to 16.1.8.
- [Release notes](https://github.com/hapijs/joi/releases)
- [Changelog](https://github.com/hapijs/joi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hapijs/joi/compare/v16.1.7...v16.1.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 20:07:02 +00:00
dependabot-preview[bot]
147e2bca2e Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4372)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.14 to 2.1.15.
- [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.1.15/packages/gatsby-plugin-remove-trailing-slashes)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 14:40:41 -05:00
dependabot-preview[bot]
2892860a82 Build(deps-dev): bump eslint-plugin-jsdoc from 18.1.4 to 18.1.5 (#4373)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 18.1.4 to 18.1.5.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v18.1.4...v18.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 19:04:51 +00:00
dependabot-preview[bot]
603b9ada7a Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.17 to 2.1.19 (#4371)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.17 to 2.1.19.
- [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.1.19/packages/gatsby-plugin-catch-links)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 18:44:36 +00:00
dependabot-preview[bot]
bbbe838fee Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.15 to 3.1.16 (#4381)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.15 to 3.1.16.
- [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.1.16/packages/gatsby-plugin-react-helmet)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 18:28:01 +00:00
dependabot-preview[bot]
2b5875f95e Build(deps-dev): bump cypress from 3.6.1 to 3.7.0 (#4377)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.6.1 to 3.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.6.1...v3.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 18:08:16 +00:00
dependabot-preview[bot]
35f0ac33ec Build(deps-dev): bump @babel/register from 7.7.0 to 7.7.4 (#4370)
Bumps [@babel/register](https://github.com/babel/babel) from 7.7.0 to 7.7.4.
- [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.7.0...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 10:20:10 -05:00
dependabot-preview[bot]
fbf9b56c22 Build(deps-dev): bump eslint-plugin-react from 7.16.0 to 7.17.0 (#4369)
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.16.0 to 7.17.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.16.0...v7.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-29 09:55:40 -05:00
Caleb Cartwright
c455993a4d add support for [GitHubWorkflowStatus] (Actions) using BaseSvgScraping service implementation (#3898)
* feat: add BaseSvgScraping service impl for GH Actions

* chore: fix GH Actions service test name

* feat: add branch support to GH Actions/Workflows

* chore: fix schema for GH actions

* refactor: update route path per PR discussion
2019-11-27 07:36:37 -06:00
dependabot-preview[bot]
6c89276f7e Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.30 to 2.1.31 (#4359)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.30 to 2.1.31.
- [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.1.31/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-24 22:43:17 +00:00
James Cahill
d42492f419 Add [SourceForgeOpenTickets] badge (#4112) 2019-11-24 13:13:10 +00:00
dependabot-preview[bot]
fb414b9adf Build(deps-dev): bump gatsby from 2.17.15 to 2.18.2 (#4358)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.17.15 to 2.18.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.17.15...gatsby@2.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 10:10:48 -06:00
dependabot-preview[bot]
f58ba5a83a Build(deps-dev): bump eslint-config-prettier from 6.5.0 to 6.7.0 (#4361)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.5.0 to 6.7.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/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 09:43:06 +00:00
dependabot-preview[bot]
fc19fbd50d Build(deps-dev): bump eslint-plugin-react-hooks from 2.2.0 to 2.3.0 (#4362)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 2.2.0 to 2.3.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/HEAD/packages/eslint-plugin-react-hooks)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 09:28:32 +00:00
dependabot-preview[bot]
c7972ebd1d Build(deps-dev): bump @types/node from 12.12.8 to 12.12.11 (#4360)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.8 to 12.12.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>
2019-11-22 21:08:32 +00:00
dependabot-preview[bot]
7987666e28 Build(deps-dev): bump snap-shot-it from 7.9.0 to 7.9.1 (#4357)
Bumps [snap-shot-it](https://github.com/bahmutov/snap-shot-it) from 7.9.0 to 7.9.1.
- [Release notes](https://github.com/bahmutov/snap-shot-it/releases)
- [Commits](https://github.com/bahmutov/snap-shot-it/compare/v7.9.0...v7.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 15:00:27 -06:00
dependabot-preview[bot]
a5bfa4dea2 Build(deps-dev): bump eslint-plugin-jsdoc from 18.0.1 to 18.1.4 (#4356)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 18.0.1 to 18.1.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v18.0.1...v18.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 14:04:57 -06:00
dependabot-preview[bot]
9defbdf20c Build(deps-dev): bump gatsby-plugin-typescript from 2.1.18 to 2.1.19 (#4353)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.18 to 2.1.19.
- [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.1.19/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 13:47:06 -06:00
dependabot-preview[bot]
01a55a45e9 Build(deps-dev): bump nodemon from 1.19.4 to 2.0.1 (#4363)
Bumps [nodemon](https://github.com/remy/nodemon) from 1.19.4 to 2.0.1.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v1.19.4...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 12:40:53 -06:00
dependabot-preview[bot]
6b815037bc Build(deps-dev): bump @types/chai from 4.2.4 to 4.2.5 (#4351)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.4 to 4.2.5.
- [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>
2019-11-22 11:39:56 -06:00
dependabot-preview[bot]
028a0f7233 Build(deps-dev): bump husky from 3.0.9 to 3.1.0 (#4354)
Bumps [husky](https://github.com/typicode/husky) from 3.0.9 to 3.1.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/v3.0.9...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 10:24:37 -06:00
dependabot-preview[bot]
94c48c15c3 Build(deps-dev): bump eslint-plugin-mocha from 6.2.1 to 6.2.2 (#4352)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/6.2.1...6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 10:07:14 -06:00
dependabot-preview[bot]
340fbf18a2 Build(deps-dev): bump typescript from 3.6.4 to 3.7.2 (#4313)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.6.4 to 3.7.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.6.4...v3.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-17 10:37:03 -06:00
dependabot-preview[bot]
9213f36a7a Build(deps-dev): bump gatsby-plugin-styled-components (#4341)
Bumps [gatsby-plugin-styled-components](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-styled-components) from 3.1.11 to 3.1.13.
- [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.1.13/packages/gatsby-plugin-styled-components)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-17 07:34:10 +00:00
dependabot-preview[bot]
3a9b55a81e [chromewebstore] Build(deps): bump chrome-web-store-item-property from 1.1.2 to 1.2.0 (#4324)
* Build(deps): bump chrome-web-store-item-property from 1.1.2 to 1.2.0

Bumps [chrome-web-store-item-property](https://github.com/pandawing/node-chrome-web-store-item-property) from 1.1.2 to 1.2.0.
- [Release notes](https://github.com/pandawing/node-chrome-web-store-item-property/releases)
- [Changelog](https://github.com/pandawing/node-chrome-web-store-item-property/blob/master/changelog.md)
- [Commits](https://github.com/pandawing/node-chrome-web-store-item-property/compare/v1.1.2...v1.2.0)

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

* explicitly install peer dependencies
2019-11-16 23:09:02 +00:00
dependabot-preview[bot]
6d5a23b889 Build(deps): bump path-to-regexp from 3.1.0 to 5.0.0 (#4330)
* Build(deps): bump path-to-regexp from 3.1.0 to 5.0.0

Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 3.1.0 to 5.0.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v3.1.0...v5.0.0)

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

* chore: apply path-to-regexp v5.x changes
2019-11-16 16:27:58 -06:00
dependabot-preview[bot]
bd3a133d56 Build(deps-dev): bump gatsby from 2.17.10 to 2.17.15 (#4346)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.17.10 to 2.17.15.
- [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.17.10...gatsby@2.17.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 21:38:29 +00:00
Caleb Cartwright
5de4334ea7 tests: update npm type definition tests (#4322) 2019-11-16 20:40:55 +00:00
dependabot-preview[bot]
6e84010095 Build(deps-dev): bump gatsby-plugin-catch-links from 2.1.15 to 2.1.17 (#4345)
Bumps [gatsby-plugin-catch-links](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-catch-links) from 2.1.15 to 2.1.17.
- [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.1.17/packages/gatsby-plugin-catch-links)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 19:58:01 +00:00
dependabot-preview[bot]
088fd39684 Build(deps-dev): bump gatsby-plugin-remove-trailing-slashes (#4340)
Bumps [gatsby-plugin-remove-trailing-slashes](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-remove-trailing-slashes) from 2.1.12 to 2.1.14.
- [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.1.14/packages/gatsby-plugin-remove-trailing-slashes)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 13:44:01 -06:00
dependabot-preview[bot]
1bc2c3c886 Build(deps-dev): bump babel-preset-gatsby from 0.2.20 to 0.2.22 (#4338)
Bumps [babel-preset-gatsby](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/babel-preset-gatsby) from 0.2.20 to 0.2.22.
- [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.2.22/packages/babel-preset-gatsby)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 06:49:43 +00:00
dependabot-preview[bot]
94a9b56358 Build(deps-dev): bump react-pose from 4.0.9 to 4.0.10 (#4334)
Bumps [react-pose](https://github.com/Popmotion/popmotion) from 4.0.9 to 4.0.10.
- [Release notes](https://github.com/Popmotion/popmotion/releases)
- [Commits](https://github.com/Popmotion/popmotion/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 00:42:11 -06:00
dependabot-preview[bot]
1566904b3a Build(deps-dev): bump @types/node from 12.12.6 to 12.12.8 (#4347)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.6 to 12.12.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>
2019-11-16 00:32:11 -06:00
dependabot-preview[bot]
25b3305444 Build(deps-dev): bump react-dom from 16.11.0 to 16.12.0 (#4343)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.11.0 to 16.12.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.12.0/packages/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 00:15:04 -06:00
dependabot-preview[bot]
e229a3ebc8 Build(deps-dev): bump react from 16.11.0 to 16.12.0 (#4336)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.11.0 to 16.12.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.12.0/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 05:48:19 +00:00
dependabot-preview[bot]
ac0dc95714 Build(deps): bump @sentry/node from 5.7.1 to 5.9.0 (#4335)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 5.7.1 to 5.9.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.7.1...5.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-16 05:29:12 +00:00
dependabot-preview[bot]
139bab2030 Build(deps-dev): bump gatsby-plugin-typescript from 2.1.15 to 2.1.18 (#4329)
Bumps [gatsby-plugin-typescript](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-typescript) from 2.1.15 to 2.1.18.
- [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.1.18/packages/gatsby-plugin-typescript)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 20:51:36 -06:00
dependabot-preview[bot]
0f332413df Build(deps-dev): bump prettier from 1.18.2 to 1.19.1 (#4328)
* Build(deps-dev): bump prettier from 1.18.2 to 1.19.1

Bumps [prettier](https://github.com/prettier/prettier) from 1.18.2 to 1.19.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/1.18.2...1.19.1)

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

* Build(deps-dev): bump prettier from 1.18.2 to 1.19.1

Bumps [prettier](https://github.com/prettier/prettier) from 1.18.2 to 1.19.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/1.18.2...1.19.1)

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

* chore: apply new prettier formatting

* chore: try prettier, again
2019-11-15 19:33:40 -06:00
dependabot-preview[bot]
3028608f4c Build(deps): bump chalk from 2.4.2 to 3.0.0 (#4339)
Bumps [chalk](https://github.com/chalk/chalk) from 2.4.2 to 3.0.0.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v2.4.2...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 22:45:28 +00:00
dependabot-preview[bot]
3db17bcd20 Build(deps-dev): bump eslint-plugin-jsdoc from 17.1.1 to 18.0.1 (#4332)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 17.1.1 to 18.0.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v17.1.1...v18.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 22:10:31 +00:00
dependabot-preview[bot]
bc1c5b9045 Build(deps-dev): bump gatsby-plugin-react-helmet from 3.1.13 to 3.1.15 (#4333)
Bumps [gatsby-plugin-react-helmet](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-react-helmet) from 3.1.13 to 3.1.15.
- [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.1.15/packages/gatsby-plugin-react-helmet)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 21:55:41 +00:00
dependabot-preview[bot]
ef69881219 Build(deps-dev): bump cypress from 3.6.0 to 3.6.1 (#4344)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.6.0...v3.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 21:42:46 +00:00
dependabot-preview[bot]
cc0b1b674a Build(deps-dev): bump lint-staged from 9.4.2 to 9.4.3 (#4327)
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 9.4.2 to 9.4.3.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v9.4.2...v9.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 20:53:39 +00:00
dependabot-preview[bot]
5884186c97 Build(deps): bump query-string from 6.8.3 to 6.9.0 (#4326)
Bumps [query-string](https://github.com/sindresorhus/query-string) from 6.8.3 to 6.9.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v6.8.3...v6.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 20:44:34 +00:00
dependabot-preview[bot]
94cab7089c Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.28 to 2.1.30 (#4323)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.28 to 2.1.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.1.30/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 12:25:54 -06:00
dependabot-preview[bot]
dcb1476028 Build(deps-dev): bump danger from 9.2.4 to 9.2.8 (#4325)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.4 to 9.2.8.
- [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/9.2.4...9.2.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-15 11:24:20 -06:00
Caleb Cartwright
5c33c8121c tests: fix flaky mozilla service tests (#4321) 2019-11-12 19:18:09 -06:00
Federico Brigante
66f86bf1f7 Don't break the back button when redirecting legacy routes (#4305)
* Don't break the back button when redirecting legacy routes

* Prettier
2019-11-12 09:17:59 -06:00
dependabot-preview[bot]
a3989dd0bd Build(deps-dev): bump @babel/register from 7.6.2 to 7.7.0 (#4317)
Bumps [@babel/register](https://github.com/babel/babel) from 7.6.2 to 7.7.0.
- [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.6.2...v7.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-09 06:18:51 +00:00
dependabot-preview[bot]
82d5288b80 Build(deps-dev): bump gatsby from 2.17.7 to 2.17.10 (#4316)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.17.7 to 2.17.10.
- [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.17.7...gatsby@2.17.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 19:57:36 +00:00
dependabot-preview[bot]
49cb9ed8f3 Build(deps): bump glob from 7.1.5 to 7.1.6 (#4318)
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.5 to 7.1.6.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.5...v7.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 19:48:41 +00:00
dependabot-preview[bot]
271ceb1c07 Build(deps-dev): bump @babel/polyfill from 7.6.0 to 7.7.0 (#4315)
Bumps [@babel/polyfill](https://github.com/babel/babel) from 7.6.0 to 7.7.0.
- [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.6.0...v7.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 11:42:44 -06:00
dependabot-preview[bot]
41ce901912 Build(deps-dev): bump @babel/core from 7.6.4 to 7.7.2 (#4314)
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.4 to 7.7.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/compare/v7.6.4...v7.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 17:28:10 +00:00
dependabot-preview[bot]
1931bb221c Build(deps-dev): bump @babel/preset-env from 7.6.3 to 7.7.1 (#4310)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.3 to 7.7.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/compare/v7.6.3...v7.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 16:04:58 +00:00
dependabot-preview[bot]
85d9ee63a6 Build(deps-dev): bump danger from 9.2.2 to 9.2.4 (#4309)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.2 to 9.2.4.
- [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/9.2.2...9.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 15:27:49 +00:00
dependabot-preview[bot]
480ea68827 Build(deps-dev): bump @types/node from 12.12.3 to 12.12.6 (#4311)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.3 to 12.12.6.
- [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>
2019-11-08 15:16:23 +00:00
dependabot-preview[bot]
1abe5520d3 Build(deps-dev): bump eslint-plugin-jsdoc from 17.0.0 to 17.1.1 (#4307)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 17.0.0 to 17.1.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v17.0.0...v17.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 14:46:15 +00:00
dependabot-preview[bot]
d25df37fc9 Build(deps-dev): bump @babel/plugin-proposal-class-properties (#4306)
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.5.5 to 7.7.0.
- [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.5.5...v7.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-08 08:23:49 -06:00
Paul Melnikow
414a77f3a8 Fix [GithubRelease] not found case with include_prereleases (#4304)
With a couple minor stylistic changes for readability.

Closes #4303
2019-11-07 15:04:02 -07:00
Lj Miranda
8ea8ff829d Bump simple-icons from 1.19.0 to 1.19.1 (#4300)
* Bump simple-icons from 1.19.0 to 1.19.1

The latest release contains a handful of icons that are widely used in the industry, namely: C, arxiv, Notion, Zoom, etc.

* Bump package-lock.json
2019-11-06 12:47:25 -06:00
Caleb Cartwright
5a4f705e8f fix [GitHubHacktoberfest] service test (#4299)
* tests: fix hacktoberfest service test

* tests: update message for post-hacktoberfest, add couple unit tests

* chore: lgtm fix

* tests: fix unit test
2019-11-06 04:47:56 -06:00
Caleb Cartwright
18d63aec6e tests: fix gitlab pipeline status service test (#4301) 2019-11-05 20:59:59 -06:00
Michael Schmitz
74a5353b6d [Swagger] Specs are valid, when only warnings are shown (#4294)
* when the service responds with only warnings the spec is valid

* add transform method, move color selection to render

* replace forEach with every

* move file extension to query param

* add spec not found, moved url to query param, updated version of supported swagger, WIP redirector

* fix typo

* fix json redirect, add live tests, add redirecter tests

* fix naming, remove mocked test where live one exist
2019-11-05 20:19:09 -06:00
dependabot-preview[bot]
7f54e09fe5 Build(deps-dev): bump gatsby-plugin-page-creator from 2.1.27 to 2.1.28 (#4287)
Bumps [gatsby-plugin-page-creator](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-page-creator) from 2.1.27 to 2.1.28.
- [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.1.28/packages/gatsby-plugin-page-creator)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-03 19:59:54 +00:00
Caleb Cartwright
1427611e0c fix: packagist license type error (#4271) 2019-11-03 17:46:56 +00:00
dependabot-preview[bot]
99b092b655 Build(deps-dev): bump gatsby from 2.17.4 to 2.17.7 (#4284)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.17.4 to 2.17.7.
- [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.17.4...gatsby@2.17.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-03 00:43:10 +00:00
dependabot-preview[bot]
9aeb4fc1f1 Build(deps): bump config from 3.2.3 to 3.2.4 (#4285)
Bumps [config](https://github.com/lorenwest/node-config) from 3.2.3 to 3.2.4.
- [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>
2019-11-02 19:25:21 -05:00
dependabot-preview[bot]
a6cb07afbd Build(deps-dev): bump @types/react-select from 3.0.5 to 3.0.8 (#4292)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.5 to 3.0.8.
- [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>
2019-11-03 00:05:25 +00:00
dependabot-preview[bot]
963f7ecadb Build(deps-dev): bump eslint-plugin-jsdoc from 15.12.1 to 17.0.0 (#4276)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 15.12.1 to 17.0.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v15.12.1...v17.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 20:14:05 +00:00
dependabot-preview[bot]
99137df7b3 Build(deps-dev): bump styled-components from 4.4.0 to 4.4.1 (#4286)
Bumps [styled-components](https://github.com/styled-components/styled-components) from 4.4.0 to 4.4.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/v4.4.0...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 20:05:08 +00:00
dependabot-preview[bot]
f76e49f021 Build(deps-dev): bump eslint-plugin-chai-friendly from 0.4.1 to 0.5.0 (#4281)
Bumps [eslint-plugin-chai-friendly](https://github.com/ihordiachenko/eslint-plugin-chai-friendly) from 0.4.1 to 0.5.0.
- [Release notes](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/releases)
- [Commits](https://github.com/ihordiachenko/eslint-plugin-chai-friendly/compare/v0.4.1...v0.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 18:31:51 +00:00
dependabot-preview[bot]
2481122602 Build(deps-dev): bump cypress from 3.5.0 to 3.6.0 (#4282)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.5.0...v3.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 18:00:26 +00:00
dependabot-preview[bot]
04e04bfed0 Build(deps-dev): bump nock from 11.6.0 to 11.7.0 (#4280)
Bumps [nock](https://github.com/nock/nock) from 11.6.0 to 11.7.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/v11.6.0...v11.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 12:49:47 -05:00
dependabot-preview[bot]
094088d2f6 Build(deps-dev): bump @types/node from 12.11.7 to 12.12.3 (#4279)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.11.7 to 12.12.3.
- [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>
2019-11-01 11:32:16 -05:00
dependabot-preview[bot]
f8dc548e6c Build(deps-dev): bump @types/react-helmet from 5.0.13 to 5.0.14 (#4278)
Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 5.0.13 to 5.0.14.
- [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>
2019-11-01 16:11:01 +00:00
dependabot-preview[bot]
244bba674f Build(deps-dev): bump eslint-plugin-mocha from 6.2.0 to 6.2.1 (#4289)
Bumps [eslint-plugin-mocha](https://github.com/lo1tuma/eslint-plugin-mocha) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases)
- [Changelog](https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lo1tuma/eslint-plugin-mocha/compare/6.2.0...6.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 15:50:11 +00:00
dependabot-preview[bot]
ce64b1e72c Build(deps-dev): bump eslint-config-prettier from 6.4.0 to 6.5.0 (#4290)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.4.0 to 6.5.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.4.0...v6.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 15:12:32 +00:00
dependabot-preview[bot]
12302d490f Build(deps-dev): bump react-modal from 3.10.1 to 3.11.1 (#4277)
Bumps [react-modal](https://github.com/reactjs/react-modal) from 3.10.1 to 3.11.1.
- [Release notes](https://github.com/reactjs/react-modal/releases)
- [Changelog](https://github.com/reactjs/react-modal/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactjs/react-modal/compare/v3.10.1...v3.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-01 09:55:21 -05:00
Hubert Jagodziński
727a033a9b Added [GithubGoModGoVersion GitHub] badge (#4232)
* Added Go version badge

* Using destructuring assignment

* Allowing a client to specify a filename

* Turned a test to live one

* Added golang to keywords

* Renamed parseContent to transform

* Added an example with branch and filename
2019-10-31 12:58:23 -05:00
Caleb Cartwright
2c70700134 fix: codefactor grade schema (#4270) 2019-10-31 11:39:04 -05:00
Paul Melnikow
4d1bec20e2 Tutorial: Update the method order to be canonical (#4267) 2019-10-30 21:57:01 -04:00
piekar294
dcb2793399 #2435 [packagist] composer metadata api (#4231)
* #2435 | packagist-license uses 'Composer metadata' API

* #2435 | packagist-php-version uses 'Composer metadata' API

* #2435 | packagist-version uses 'Composer metadata' API

* #2435 | packagist-downloads uses JSON API

* #2435 | small refactor

* #2435 | extract package name creation to method

* #2435 | document base fetch method

* #2435 | added documentation about cached data

* #2435 | fix packagist license badge
2019-10-30 18:49:07 -05:00
Paul Melnikow
7e0976cd8c When serviceData fails validation, include the service class in the stack trace (#4266)
This should make it easier to debug #3784.
2019-10-28 10:33:47 -04:00
Pierre-Yves B
50a2660aa5 Align documentation to the left (#4256) 2019-10-27 17:40:52 +00:00
Caleb Cartwright
3e0defb246 refactor: revert #4173 (#4252) 2019-10-26 22:58:05 +00:00
Caleb Cartwright
5f3a893eb4 refactor: revert cors header injection #4171 (#4253) 2019-10-26 22:29:56 +00:00
Caleb Cartwright
b05fe5f62c fix [Sonar] legacy API tests (#4251)
* tests: fix sonar legacy API tests

* docs: add inline documentation on sonar mocked tests

* docs: add more inline sonar docs
2019-10-26 17:23:04 -05:00
dependabot-preview[bot]
14d9d99aab Build(deps): bump glob from 7.1.4 to 7.1.5 (#4245)
Bumps [glob](https://github.com/isaacs/node-glob) from 7.1.4 to 7.1.5.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/master/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.1.4...v7.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-26 14:35:16 +00:00
dependabot-preview[bot]
ff418ff72c Build(deps-dev): bump gatsby from 2.16.5 to 2.17.4 (#4248)
Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 2.16.5 to 2.17.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.16.5...gatsby@2.17.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-26 13:40:14 +00:00
dependabot-preview[bot]
b388cb2e42 Build(deps-dev): bump react-dom from 16.10.2 to 16.11.0 (#4241)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.10.2 to 16.11.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.11.0/packages/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-26 08:29:29 -05:00
dependabot-preview[bot]
16ab287f9f Build(deps-dev): bump react from 16.10.2 to 16.11.0 (#4239)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.10.2 to 16.11.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.11.0/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 21:01:13 +00:00
dependabot-preview[bot]
101c1f2dc7 Build(deps-dev): bump nock from 11.4.0 to 11.6.0 (#4246)
Bumps [nock](https://github.com/nock/nock) from 11.4.0 to 11.6.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/v11.4.0...v11.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 20:51:27 +00:00
dependabot-preview[bot]
37b4f2e1b8 Build(deps-dev): bump eslint-plugin-jsdoc from 15.12.0 to 15.12.1 (#4243)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 15.12.0 to 15.12.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v15.12.0...v15.12.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 20:43:58 +00:00
dependabot-preview[bot]
b3bf768adc Build(deps-dev): bump mocha from 6.2.1 to 6.2.2 (#4242)
Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.1 to 6.2.2.
- [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/v6.2.1...v6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 20:25:55 +00:00
dependabot-preview[bot]
50e34aa99c Build(deps-dev): bump @types/react-helmet from 5.0.12 to 5.0.13 (#4247)
Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 5.0.12 to 5.0.13.
- [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>
2019-10-25 20:08:28 +00:00
dependabot-preview[bot]
a80d250d02 Build(deps-dev): bump @types/chai from 4.2.3 to 4.2.4 (#4240)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.3 to 4.2.4.
- [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>
2019-10-25 19:58:09 +00:00
dependabot-preview[bot]
a471fcccd8 Build(deps-dev): bump @types/node from 12.11.1 to 12.11.7 (#4238)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.11.1 to 12.11.7.
- [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>
2019-10-25 17:09:35 +00:00
dependabot-preview[bot]
a1a956098c Build(deps-dev): bump @types/react-modal from 3.8.3 to 3.10.0 (#4249)
Bumps [@types/react-modal](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-modal) from 3.8.3 to 3.10.0.
- [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>
2019-10-25 16:54:35 +00:00
dependabot-preview[bot]
a796bccb7a Build(deps-dev): bump danger from 9.2.1 to 9.2.2 (#4244)
Bumps [danger](https://github.com/danger/danger-js) from 9.2.1 to 9.2.2.
- [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/9.2.1...9.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 15:37:20 +00:00
dependabot-preview[bot]
3abff90c56 Build(deps-dev): bump cypress from 3.4.1 to 3.5.0 (#4237)
Bumps [cypress](https://github.com/cypress-io/cypress) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Commits](https://github.com/cypress-io/cypress/compare/v3.4.1...v3.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 15:26:33 +00:00
dependabot-preview[bot]
e1bc8c9678 Build(deps-dev): bump eslint-plugin-react-hooks from 2.1.2 to 2.2.0 (#4236)
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 2.1.2 to 2.2.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/HEAD/packages/eslint-plugin-react-hooks)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 10:18:28 -05:00
dependabot-preview[bot]
6453771937 Build(deps): bump simple-icons from 1.18.0 to 1.19.0 (#4235)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 1.18.0 to 1.19.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/1.18.0...1.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 14:44:12 +00:00
dependabot-preview[bot]
e4e913a366 Build(deps): bump fast-xml-parser from 3.13.0 to 3.14.0 (#4234)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 3.13.0 to 3.14.0.
- [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.13.0...3.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 09:30:56 -05:00
netsgnut
a6b69004af [MavenMetadata] should use version as string (#4188), also run [MavenCentral] (#4224)
* fix: maven-metadata should use version as string (#4188)

* style: remove a regex from maven-central test for consistency
2019-10-25 09:14:12 -05:00
Paul Melnikow
8d088a2672 Add filename override to [GithubPackageJson] (#4233)
Refs https://github.com/badges/shields/issues/2259#issuecomment-545485159
2019-10-24 23:19:45 +00:00
Przemo Nowaczyk
3544ea03f8 add [homebrew] cask service (#4228)
* add homebrew cask service

* rename formula to cask
2019-10-24 22:39:25 +00:00
Hubert Jagodziński
b7f3f175a5 Tutorial fixes (#4229) 2019-10-24 13:22:29 +02:00
699 changed files with 36634 additions and 15555 deletions

View File

@@ -4,12 +4,6 @@ main_steps: &main_steps
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
@@ -18,11 +12,6 @@ main_steps: &main_steps
# We don't need to install the Cypress binary in jobs that aren't actually running Cypress.
CYPRESS_INSTALL_BINARY: 0
- save_cache:
paths:
- node_modules
key: v2-dependencies-{{ checksum "package-lock.json" }}
- run:
name: Linter
when: always
@@ -56,12 +45,6 @@ integration_steps: &integration_steps
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
@@ -83,12 +66,6 @@ services_steps: &services_steps
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
@@ -119,20 +96,29 @@ run_package_tests: &run_package_tests
nvm install $NODE_VERSION
nvm use $NODE_VERSION
node --version
# install the shields.io dependencies
npm ci
# run the package tests
npm run test:package
npm run check-types:package
# delete the sheilds.io dependencies
rm -rf node_modules/
# run a smoke test (render a badge with the CLI)
# with only the package dependencies installed
cd badge-maker
npm link
badge cactus grown :green @flat
package_steps: &package_steps
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
name: Install node and npm
command: |
set +e
export NVM_DIR="/opt/circleci/.nvm"
@@ -140,102 +126,85 @@ 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
- 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
- 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
- run:
<<: *run_package_tests
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
- store_test_results:
path: junit
jobs:
npm-install:
docker:
- image: circleci/node:8
- image: circleci/node:10
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
environment:
CYPRESS_INSTALL_BINARY: 0
- save_cache:
paths:
- node_modules
key: v2-dependencies-{{ checksum "package-lock.json" }}
main:
docker:
- image: circleci/node:8
- image: circleci/node:10
<<: *main_steps
main@node-latest:
main@node-12:
docker:
- image: circleci/node:latest
- image: circleci/node:12
<<: *main_steps
integration:
docker:
- image: circleci/node:8
- image: circleci/node:10
- image: redis
<<: *integration_steps
integration@node-latest:
integration@node-12:
docker:
- image: circleci/node:latest
- image: circleci/node:12
- image: redis
<<: *integration_steps
danger:
docker:
- image: circleci/node:8
- image: circleci/node:10
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
@@ -252,16 +221,10 @@ jobs:
frontend:
docker:
- image: circleci/node:8
- image: circleci/node:10
steps:
- checkout
- restore_cache:
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- run:
name: Install dependencies
command: npm ci
@@ -299,29 +262,22 @@ jobs:
services:
docker:
- image: circleci/node:8
- image: circleci/node:10
<<: *services_steps
services@node-latest:
services@node-12:
docker:
- image: circleci/node:latest
- image: circleci/node:12
<<: *services_steps
e2e:
docker:
- image: cypress/base:8
- image: cypress/base:12
steps:
- checkout
- restore_cache:
name: Restore node_modules
keys:
- v2-dependencies-{{ checksum "package-lock.json" }}
# https://github.com/badges/shields/issues/1937
- v2-dependencies-
- restore_cache:
name: Restore Cypress binary
keys:
@@ -367,11 +323,11 @@ workflows:
filters:
branches:
ignore: gh-pages
- main@node-latest:
- main@node-12:
filters:
branches:
ignore: gh-pages
- integration@node-latest:
- integration@node-12:
filters:
branches:
ignore: gh-pages
@@ -389,7 +345,7 @@ workflows:
ignore:
- master
- gh-pages
- services@node-latest:
- services@node-12:
filters:
branches:
ignore:

View File

@@ -4,8 +4,33 @@ update_configs:
- package_manager: 'javascript'
directory: '/'
update_schedule: 'weekly'
automerged_updates:
- match:
dependency_name: 'chai*'
update_type: 'semver:minor'
- match:
dependency_name: 'cypress'
update_type: 'semver:minor'
- match:
dependency_name: 'eslint*'
update_type: 'semver:minor'
- match:
dependency_name: 'enzyme*'
update_type: 'semver:minor'
- match:
dependency_name: 'mocha*'
update_type: 'semver:minor'
- match:
dependency_name: 'sazerac'
update_type: 'semver:minor'
- match:
dependency_name: 'sinon*'
update_type: 'semver:minor'
- match:
dependency_name: 'snap-shot-it'
update_type: 'semver:minor'
# 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

@@ -1,7 +1,8 @@
extends:
- standard-jsx
- standard
- standard-react
- plugin:@typescript-eslint/recommended
- prettier
- prettier/@typescript-eslint
- prettier/standard
- prettier/react
@@ -15,6 +16,8 @@ parserOptions:
settings:
react:
version: '16.8'
jsdoc:
mode: jsdoc
plugins:
- chai-friendly
@@ -39,7 +42,6 @@ overrides:
es6: true
rules:
no-console: 'off'
'@typescript-eslint/no-var-requires': off
- files:
- '**/*.@(ts|tsx)'
@@ -48,8 +50,13 @@ overrides:
parser: '@typescript-eslint/parser'
rules:
# Argh.
'@typescript-eslint/explicit-function-return-type': 'off'
'@typescript-eslint/explicit-function-return-type':
['error', { 'allowExpressions': true }]
'@typescript-eslint/no-empty-function': 'error'
'@typescript-eslint/no-var-requires': 'error'
'@typescript-eslint/no-object-literal-type-assertion': 'off'
'@typescript-eslint/no-explicit-any': 'error'
'@typescript-eslint/ban-ts-ignore': 'off'
- files:
- core/**/*.ts
@@ -113,9 +120,9 @@ rules:
# Allow unused parameters. In callbacks, removing them seems to obscure
# what the functions are doing.
'@typescript-eslint/no-unused-vars': ['error', { 'args': 'none' }]
no-unused-vars: off
no-unused-vars: 'off'
'@typescript-eslint/no-var-requires': error
'@typescript-eslint/no-var-requires': 'off'
# These should be disabled by eslint-config-prettier, but are not.
no-extra-semi: 'off'
@@ -144,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'
@@ -163,6 +170,8 @@ rules:
# Disable some from TypeScript.
'@typescript-eslint/camelcase': off
'@typescript-eslint/explicit-function-return-type': 'off'
'@typescript-eslint/no-empty-function': 'off'
react/jsx-sort-props: 'error'
react-hooks/rules-of-hooks: '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/workflows/auto-approve.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
name: Auto approve
on: pull_request
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: chris48s/approve-bot@1.0.0
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'

5
.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
@@ -113,3 +113,6 @@ service-definitions.yml
# Rendered API docs
/api-docs/
# Flamebearer
flamegraph.html

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

@@ -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
@@ -104,12 +106,8 @@ There are three places to get help:
## Badge URLs
- The format of new badges should be of the form
`/SERVICE/NOUN/PARAMETERS/QUALIFIERS`. For instance,
`/gitter/room/nwjs/nw.js`. The vendor is gitter, the
badge is for rooms, and the parameter is nwjs/nw.js.
- Services which require a url/hostname parameter should use a query parameter to accept that value. For instance,
`/discourse/topics?server=https://meta.discourse.org`.
- The format of new badges should be of the form `/SERVICE/NOUN/PARAMETERS`.
- There is further documentation on this in [badge-urls](https://github.com/badges/shields/blob/master/doc/badge-urls.md)
## Coding guidelines

View File

@@ -1,12 +1,12 @@
FROM node:8-alpine
FROM node:10-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
@@ -84,7 +84,6 @@ 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:
[![Hacktoberfest](https://img.shields.io/github/hacktoberfest/2019/badges/shields)](https://github.com/badges/shields/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest)
[![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)
You can read a [tutorial on how to add a badge][tutorial].
@@ -184,7 +183,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)
@@ -192,11 +190,14 @@ 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
@@ -215,28 +216,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.

View File

@@ -1,19 +1,127 @@
exports['The badge generator SVG should always produce the same SVG (unless we have changed something!) 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="90" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h45v20H0z"/><path fill="#4c1" d="M45 0h45v20H45z"/><path fill="url(#b)" d="M0 0h90v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="235" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="140" transform="scale(.1)" textLength="350">cactus</text><text x="665" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="140" transform="scale(.1)" textLength="350">grown</text></g> </svg>
exports['The badge generator SVG should match snapshot 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20" role="img" aria-label="cactus: grown"><title>cactus: grown</title><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="90" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="45" height="20" fill="#555"/><rect x="45" width="45" height="20" fill="#4c1"/><rect width="90" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="235" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text aria-hidden="true" x="665" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator badges with logos should always produce the same badge shields GitHub logo custom color (whitesmoke) 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="113" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="113" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h59v20H54z"/><path fill="url(#b)" d="M0 0h113v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="github"/> <text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">label</text><text x="365" y="140" transform="scale(.1)" textLength="270">label</text><text x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">message</text><text x="825" y="140" transform="scale(.1)" textLength="490">message</text></g> </svg>
exports['The badge generator "flat" template badge generation should match snapshots: message/label, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20" role="img" aria-label="cactus: grown"><title>cactus: grown</title><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="90" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="45" height="20" fill="#0f0"/><rect x="45" width="45" height="20" fill="#b3e"/><rect width="90" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="235" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text aria-hidden="true" x="665" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator badges with logos should always produce the same badge shields GitHub logo default color (#333333) 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="113" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="113" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h59v20H54z"/><path fill="url(#b)" d="M0 0h113v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="github"/> <text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">label</text><text x="365" y="140" transform="scale(.1)" textLength="270">label</text><text x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">message</text><text x="825" y="140" transform="scale(.1)" textLength="490">message</text></g> </svg>
exports['The badge generator "flat" template badge generation should match snapshots: message/label, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="107" height="20" role="img" aria-label="cactus: grown"><title>cactus: grown</title><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="107" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="62" height="20" fill="#0f0"/><rect x="62" width="45" height="20" fill="#b3e"/><rect width="107" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="405" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text aria-hidden="true" x="835" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator badges with logos should always produce the same badge simple-icons javascript logo custom color (rgba(46,204,113,0.8)) 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="113" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="113" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h59v20H54z"/><path fill="url(#b)" d="M0 0h113v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="javascript"/> <text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">label</text><text x="365" y="140" transform="scale(.1)" textLength="270">label</text><text x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">message</text><text x="825" y="140" transform="scale(.1)" textLength="490">message</text></g> </svg>
exports['The badge generator "flat" template badge generation should match snapshots: message only, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="20" role="img" aria-label="grown"><title>grown</title><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="45" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#b3e"/><rect x="0" width="45" height="20" fill="#b3e"/><rect width="45" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="225" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="225" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator badges with logos should always produce the same badge simple-icons javascript logo default color (#F7DF1E) 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="113" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="113" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h59v20H54z"/><path fill="url(#b)" d="M0 0h113v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="javascript"/> <text x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">label</text><text x="365" y="140" transform="scale(.1)" textLength="270">label</text><text x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">message</text><text x="825" y="140" transform="scale(.1)" textLength="490">message</text></g> </svg>
exports['The badge generator "flat" template badge generation should match snapshots: message only, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="63" height="20" role="img" aria-label="grown"><title>grown</title><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="63" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#555"/><rect x="0" width="63" height="20" fill="#b3e"/><rect width="63" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="405" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat" template badge generation should match snapshots: message only, with logo and labelColor 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="69" height="20" role="img" aria-label="grown"><title>grown</title><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="69" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="24" height="20" fill="#0f0"/><rect x="24" width="45" height="20" fill="#b3e"/><rect width="69" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="455" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="455" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat" template badge generation should match snapshots: message/label, with links 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20" ><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="90" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="45" height="20" fill="#0f0"/><rect x="45" width="45" height="20" fill="#b3e"/><rect width="90" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><a target="_blank" xlink:href="https://shields.io/"><rect width="45" x="0" height="20" fill="rgba(0,0,0,0)" /><text aria-hidden="true" x="235" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text></a><a target="_blank" xlink:href="https://www.google.co.uk/"><rect width="45" x="45" height="20" fill="rgba(0,0,0,0)" /><text aria-hidden="true" x="665" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></a></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message/label, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20" role="img" aria-label="cactus: grown"><title>cactus: grown</title><g shape-rendering="crispEdges"><rect width="45" height="20" fill="#0f0"/><rect x="45" width="45" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="235" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text x="665" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message/label, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="107" height="20" role="img" aria-label="cactus: grown"><title>cactus: grown</title><g shape-rendering="crispEdges"><rect width="62" height="20" fill="#0f0"/><rect x="62" width="45" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text x="835" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message only, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="20" role="img" aria-label="grown"><title>grown</title><g shape-rendering="crispEdges"><rect width="0" height="20" fill="#b3e"/><rect x="0" width="45" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="225" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message only, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="63" height="20" role="img" aria-label="grown"><title>grown</title><g shape-rendering="crispEdges"><rect width="0" height="20" fill="#555"/><rect x="0" width="63" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message only, with logo and labelColor 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="69" height="20" role="img" aria-label="grown"><title>grown</title><g shape-rendering="crispEdges"><rect width="24" height="20" fill="#0f0"/><rect x="24" width="45" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text x="455" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "flat-square" template badge generation should match snapshots: message/label, with links 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20" ><g shape-rendering="crispEdges"><rect width="45" height="20" fill="#0f0"/><rect x="45" width="45" height="20" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><a target="_blank" xlink:href="https://shields.io/"><rect width="45" x="0" height="20" fill="rgba(0,0,0,0)" /><text x="235" y="140" transform="scale(.1)" fill="#fff" textLength="350">cactus</text></a><a target="_blank" xlink:href="https://www.google.co.uk/"><rect width="45" x="45" height="20" fill="rgba(0,0,0,0)" /><text x="665" y="140" transform="scale(.1)" fill="#fff" textLength="350">grown</text></a></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message/label, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="18" role="img" aria-label="cactus: grown"><title>cactus: grown</title><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="90" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="45" height="18" fill="#0f0"/><rect x="45" width="45" height="18" fill="#b3e"/><rect width="90" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="235" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="130" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text aria-hidden="true" x="665" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message/label, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="107" height="18" role="img" aria-label="cactus: grown"><title>cactus: grown</title><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="107" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="62" height="18" fill="#0f0"/><rect x="62" width="45" height="18" fill="#b3e"/><rect width="107" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="2" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="405" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="405" y="130" transform="scale(.1)" fill="#fff" textLength="350">cactus</text><text aria-hidden="true" x="835" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="835" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message only, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="18" role="img" aria-label="grown"><title>grown</title><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="45" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="18" fill="#b3e"/><rect x="0" width="45" height="18" fill="#b3e"/><rect width="45" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="225" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="225" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message only, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="63" height="18" role="img" aria-label="grown"><title>grown</title><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="63" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="18" fill="#555"/><rect x="0" width="63" height="18" fill="#b3e"/><rect width="63" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="2" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="405" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="405" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message only, with logo and labelColor 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="69" height="18" role="img" aria-label="grown"><title>grown</title><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="69" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="24" height="18" fill="#0f0"/><rect x="24" width="45" height="18" fill="#b3e"/><rect width="69" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="2" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="455" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="455" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></g></svg>
`
exports['The badge generator "plastic" template badge generation should match snapshots: message/label, with links 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="18" ><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="90" height="18" rx="4" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="45" height="18" fill="#0f0"/><rect x="45" width="45" height="18" fill="#b3e"/><rect width="90" height="18" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><a target="_blank" xlink:href="https://shields.io/"><rect width="45" x="0" height="18" fill="rgba(0,0,0,0)" /><text aria-hidden="true" x="235" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">cactus</text><text x="235" y="130" transform="scale(.1)" fill="#fff" textLength="350">cactus</text></a><a target="_blank" xlink:href="https://www.google.co.uk/"><rect width="45" x="45" height="18" fill="rgba(0,0,0,0)" /><text aria-hidden="true" x="665" y="140" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">grown</text><text x="665" y="130" transform="scale(.1)" fill="#fff" textLength="350">grown</text></a></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message/label, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="147" height="28" role="img" aria-label="CACTUS: GROWN"><title>CACTUS: GROWN</title><g shape-rendering="crispEdges"><rect width="74" height="28" fill="#0f0"/><rect x="74" width="73" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><text fill="#fff" x="370" y="175" transform="scale(.1)" textLength="500">CACTUS</text><text fill="#fff" x="1105" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message/label, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="164" height="28" role="img" aria-label="CACTUS: GROWN"><title>CACTUS: GROWN</title><g shape-rendering="crispEdges"><rect width="91" height="28" fill="#0f0"/><rect x="91" width="73" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><image x="9" y="7" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text fill="#fff" x="540" y="175" transform="scale(.1)" textLength="500">CACTUS</text><text fill="#fff" x="1275" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message only, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="73" height="28" role="img" aria-label="GROWN"><title>GROWN</title><g shape-rendering="crispEdges"><rect width="0" height="28" fill="#b3e"/><rect x="0" width="73" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><text fill="#fff" x="365" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message only, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="91" height="28" role="img" aria-label="GROWN"><title>GROWN</title><g shape-rendering="crispEdges"><rect width="0" height="28" fill="#555"/><rect x="0" width="91" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><image x="9" y="7" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text fill="#fff" x="545" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message only, with logo and labelColor 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="105" height="28" role="img" aria-label="GROWN"><title>GROWN</title><g shape-rendering="crispEdges"><rect width="32" height="28" fill="#0f0"/><rect x="32" width="73" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><image x="9" y="7" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text fill="#fff" x="230" y="175" transform="scale(.1)" textLength="-60"></text><text fill="#fff" x="685" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></g></svg>
`
exports['The badge generator "for-the-badge" template badge generation should match snapshots: message/label, with links 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="147" height="28" ><g shape-rendering="crispEdges"><rect width="74" height="28" fill="#0f0"/><rect x="74" width="73" height="28" fill="#b3e"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="100"><a target="_blank" xlink:href="https://shields.io/"><rect width="74" height="28" fill="rgba(0,0,0,0)"/><text fill="#fff" x="370" y="175" transform="scale(.1)" textLength="500">CACTUS</text></a><a target="_blank" xlink:href="https://www.google.co.uk/"><rect width="73" height="28" x="74" fill="rgba(0,0,0,0)"/><text fill="#fff" x="1105" y="175" font-weight="bold" transform="scale(.1)" textLength="490">GROWN</text></a></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message/label, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="95" height="20" role="img" aria-label="Cactus: grown"><title>Cactus: grown</title><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="47" height="19" rx="2"/><rect x="53.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="53" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M53.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="47" height="19" rx="2" /><text aria-hidden="true" x="235" y="150" fill="#fff" transform="scale(.1)" textLength="370">Cactus</text><text x="235" y="140" transform="scale(.1)" textLength="370">Cactus</text><text aria-hidden="true" x="735" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="735" y="140" transform="scale(.1)" textLength="330">grown</text></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message/label, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="112" height="20" role="img" aria-label="Cactus: grown"><title>Cactus: grown</title><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="64" height="19" rx="2"/><rect x="70.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="70" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M70.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="64" height="19" rx="2" /><text aria-hidden="true" x="405" y="150" fill="#fff" transform="scale(.1)" textLength="370">Cactus</text><text x="405" y="140" transform="scale(.1)" textLength="370">Cactus</text><text aria-hidden="true" x="905" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="905" y="140" transform="scale(.1)" textLength="330">grown</text></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message only, no logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="59" height="20" role="img" aria-label="grown"><title>grown</title><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="11" height="19" rx="2"/><rect x="17.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="17" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M17.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="11" height="19" rx="2" /><text aria-hidden="true" x="55" y="150" fill="#fff" transform="scale(.1)" textLength="10"></text><text x="55" y="140" transform="scale(.1)" textLength="10"></text><text aria-hidden="true" x="375" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="375" y="140" transform="scale(.1)" textLength="330">grown</text></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message only, with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="73" height="20" role="img" aria-label="grown"><title>grown</title><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="25" height="19" rx="2"/><rect x="31.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="31" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M31.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="25" height="19" rx="2" /><text aria-hidden="true" x="195" y="150" fill="#fff" transform="scale(.1)" textLength="10"></text><text x="195" y="140" transform="scale(.1)" textLength="10"></text><text aria-hidden="true" x="515" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="515" y="140" transform="scale(.1)" textLength="330">grown</text></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message only, with logo and labelColor 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="73" height="20" role="img" aria-label="grown"><title>grown</title><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="25" height="19" rx="2"/><rect x="31.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="31" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M31.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><g aria-hidden="true" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="25" height="19" rx="2" /><text aria-hidden="true" x="195" y="150" fill="#fff" transform="scale(.1)" textLength="10"></text><text x="195" y="140" transform="scale(.1)" textLength="10"></text><text aria-hidden="true" x="515" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="515" y="140" transform="scale(.1)" textLength="330">grown</text></g></svg>
`
exports['The badge generator "social" template badge generation should match snapshots: message/label, with links 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="95" height="20" ><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="47" height="19" rx="2"/><rect x="53.5" y="0.5" width="41" height="19" rx="2" fill="#fafafa"/><rect x="53" y="7.5" width="0.5" height="5" stroke="#fafafa"/><path d="M53.5 6.5 l-3 3v1 l3 3" stroke="d5d5d5" fill="#fafafa"/></g><g aria-hidden="false" fill="#333" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" text-rendering="geometricPrecision" font-weight="700" font-size="110px" line-height="14px"><a target="_blank" xlink:href="https://shields.io/"><text aria-hidden="true" x="235" y="150" fill="#fff" transform="scale(.1)" textLength="370">Cactus</text><text x="235" y="140" transform="scale(.1)" textLength="370">Cactus</text><rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="47" height="19" rx="2" /></a><a target="_blank" xlink:href="https://www.google.co.uk/"><rect width="42" x="53" height="20" fill="rgba(0,0,0,0)" /><text aria-hidden="true" x="735" y="150" fill="#fff" transform="scale(.1)" textLength="330">grown</text><text id="rlink" x="735" y="140" transform="scale(.1)" textLength="330">grown</text></a></g></svg>
`
exports['The badge generator badges with logos should always produce the same badge badge with logo 1'] = `
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="113" height="20" role="img" aria-label="label: message"><title>label: message</title><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="113" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="54" height="20" fill="#555"/><rect x="54" width="59" height="20" fill="#4c1"/><rect width="113" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyB4bWxu"/><text aria-hidden="true" x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">label</text><text x="365" y="140" transform="scale(.1)" fill="#fff" textLength="270">label</text><text aria-hidden="true" x="825" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">message</text><text x="825" y="140" transform="scale(.1)" fill="#fff" textLength="490">message</text></g></svg>
`

View File

@@ -1,2 +1,3 @@
lib/make-badge-test-helpers.js
lib/**/*.spec.js
index.test-d.ts

View File

@@ -1,6 +1,80 @@
# Changelog
## 2.2.1
## 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,714 @@
'use strict'
const anafanafo = require('anafanafo')
const fontFamily = 'font-family="Verdana,Geneva,DejaVu Sans,sans-serif"'
const socialFontFamily =
'font-family="Helvetica Neue,Helvetica,Arial,sans-serif"'
function capitalize(s) {
return `${s.charAt(0).toUpperCase()}${s.slice(1)}`
}
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) {
// Increase chances of pixel grid alignment.
return val % 2 === 0 ? val + 1 : val
}
function preferredWidthOf(str) {
return roundUpToOdd((anafanafo(str) / 10) | 0)
}
function computeWidths({ label, message }) {
return {
labelWidth: preferredWidthOf(label),
messageWidth: preferredWidthOf(message),
}
}
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) {
return {
hasLogo: false,
totalLogoWidth: 0,
renderedLogo: '',
}
}
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="14" xlink:href="${escapeXml(
logo
)}"/>`,
}
}
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,
}) {
if (!content.length) {
return { renderedText: '', width: 0 }
}
const textLength = preferredWidthOf(content)
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 = ''
if (shadow) {
renderedText = `<text aria-hidden="true" x="${x}" y="${shadowMargin}" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="${outTextLength}">${escapedContent}</text>`
}
renderedText += `<text x="${x}" y="${textMargin}" transform="scale(.1)" fill="#fff" 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>`
}
function stripXmlWhitespace(xml) {
return xml.replace(/>\s+/g, '>').replace(/<\s+/g, '<').trim()
}
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,
})
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,
})
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
}
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 plastic(params) {
const badge = new Plastic(params)
if (params.minify) {
return stripXmlWhitespace(badge.render())
}
return badge.render()
}
function flat(params) {
const badge = new Flat(params)
if (params.minify) {
return stripXmlWhitespace(badge.render())
}
return badge.render()
}
function flatSquare(params) {
const badge = new FlatSquare(params)
if (params.minify) {
return stripXmlWhitespace(badge.render())
}
return badge.render()
}
function social({
label,
message,
links = [],
logo,
logoWidth,
logoPadding,
color = '#4c1',
labelColor = '#555',
minify,
}) {
// 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 horizPadding = 5
const { totalLogoWidth, renderedLogo } = renderLogo({
logo,
badgeHeight: externalHeight,
horizPadding,
logoWidth,
logoPadding,
})
const hasMessage = message.length
let { labelWidth, messageWidth } = computeWidths({ label, message })
labelWidth += 10 + totalLogoWidth
messageWidth += 10
messageWidth -= 4
const labelTextX = ((labelWidth + totalLogoWidth) / 2) * 10
const labelTextLength = (labelWidth - (10 + totalLogoWidth)) * 10
const escapedLabel = escapeXml(label)
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 = labelWidth + 6.5
const messageBubbleNotchX = labelWidth + 6
return `
<rect x="${messageBubbleMainX}" y="0.5" width="${messageWidth}" 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 rect = `<rect id="llink" stroke="#d5d5d5" fill="url(#a)" x=".5" y=".5" width="${labelWidth}" 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>`
if (hasLeftLink && !shouldWrapBodyWithLink({ links })) {
return `
<a target="_blank" xlink:href="${leftLink}">
${shadow}
${text}
${rect}
</a>
`
}
return `
${rect}
${shadow}
${text}
`
}
function renderMessageText() {
const messageTextX = (labelWidth + messageWidth / 2 + 6) * 10
const messageTextLength = (messageWidth - 8) * 10
const escapedMessage = escapeXml(message)
const rect = `<rect width="${messageWidth + 1}" x="${
labelWidth + 6
}" 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>`
if (hasRightLink) {
return `
<a target="_blank" xlink:href="${rightLink}">
${rect}
${shadow}
${text}
</a>
`
}
return `
${shadow}
${text}
`
}
const badge = renderBadge(
{
links,
leftWidth: labelWidth + 1,
rightWidth: hasMessage ? messageWidth + 6 : 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="${labelWidth}" 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>
`
)
if (minify) {
return stripXmlWhitespace(badge)
}
return badge
}
function forTheBadge({
label,
message,
links,
logo,
logoWidth,
logoPadding,
color = '#4c1',
labelColor,
minify,
}) {
// 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, messageWidth } = computeWidths({ label, message })
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) {
labelWidth += 10 + label.length * 1.5
} else if (hasLogo) {
if (hasLabel) {
labelWidth += 7
} else {
labelWidth -= 7
}
} else {
labelWidth -= 11
}
messageWidth += 10
messageWidth += 10 + message.length * 2
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 labelTextX = ((labelWidth + totalLogoWidth) / 2) * 10
const labelTextLength = (labelWidth - (24 + totalLogoWidth)) * 10
const escapedLabel = escapeXml(label)
const text = `<text fill="#fff" 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>
`
}
return text
}
function renderMessageText() {
const text = `<text fill="#fff" 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>
`
}
return text
}
const badge = 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>`
)
if (minify) {
return stripXmlWhitespace(badge)
}
return badge
}
module.exports = { plastic, flat, flatSquare, social, forTheBadge }

View File

@@ -2,7 +2,7 @@
const isCSSColor = require('is-css-color')
// 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',

87
badge-maker/lib/index.js Normal file
View File

@@ -0,0 +1,87 @@
'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()})`
)
}
})
// convert "public" format to "internal" format
cleaned.text = [cleaned.label || '', cleaned.message]
delete cleaned.label
delete cleaned.message
if ('style' in cleaned) {
cleaned.template = cleaned.style
delete cleaned.style
}
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,64 @@
'use strict'
const camelcase = require('camelcase')
const { normalizeColor, toSvgColor } = require('./color')
const badgeRenderers = require('./badge-renderers')
/*
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,
template = 'flat',
text,
color,
labelColor,
logo,
logoPosition,
logoWidth,
links = ['', ''],
}) {
// String coercion and whitespace removal.
text = text.map(value => `${value}`.trim())
const [label, message] = text
color = normalizeColor(color)
labelColor = normalizeColor(labelColor)
// This ought to be the responsibility of the server, not `makeBadge`.
if (format === 'json') {
return JSON.stringify({
label,
message,
logoWidth,
color,
labelColor,
link: links,
name: label,
value: message,
})
}
const methodName = camelcase(template)
if (!(methodName in badgeRenderers)) {
throw new Error(`Unknown template: '${template}'`)
}
const render = badgeRenderers[methodName]
logoWidth = +logoWidth || (logo ? 14 : 0)
return render({
label,
message,
links,
logo,
logoPosition,
logoWidth,
logoPadding: logo && label.length ? 3 : 0,
color: toSvgColor(color),
labelColor: toSvgColor(labelColor),
minify: true,
})
}

View File

@@ -0,0 +1,563 @@
'use strict'
const { test, given, forCases } = require('sazerac')
const { expect } = require('chai')
const snapshot = require('snap-shot-it')
const isSvg = require('is-svg')
const makeBadge = require('./make-badge')
function testColor(color = '', colorAttr = 'color') {
return JSON.parse(
makeBadge({
text: ['name', '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('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('hsla(25,20%,0%,0.1)').expect('hsla(25,20%,0%,0.1)')
// 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
// invalid rgb(a)
given('rgb(220,128,255,0.5)'), // has alpha
given('rgba(0,0,255)'), // no alpha
// invalid hsl(a)
given('hsl(360,50%,50%,0.5)'), // has alpha
given('hsla(0,50%,101%)'), // no alpha
// 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 () {
const svg = makeBadge({ text: ['cactus', 'grown'], format: 'svg' })
expect(svg)
.to.satisfy(isSvg)
.and.to.include('cactus')
.and.to.include('grown')
})
it('should match snapshot', function () {
const svg = makeBadge({ text: ['cactus', 'grown'], format: 'svg' })
snapshot(svg)
})
})
describe('JSON', function () {
it('should produce the expected JSON', function () {
const json = makeBadge({
text: ['cactus', '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 template with "flat"', function () {
const jsonBadgeWithUnknownStyle = makeBadge({
text: ['name', 'Bob'],
format: 'svg',
})
const jsonBadgeWithDefaultStyle = makeBadge({
text: ['name', 'Bob'],
format: 'svg',
template: 'flat',
})
expect(jsonBadgeWithUnknownStyle)
.to.equal(jsonBadgeWithDefaultStyle)
.and.to.satisfy(isSvg)
})
it('should fail with unknown svg template', function () {
expect(() =>
makeBadge({
text: ['name', 'Bob'],
format: 'svg',
template: 'unknown_style',
})
).to.throw(Error, "Unknown template: 'unknown_style'")
})
})
describe('"flat" template badge generation', function () {
it('should match snapshots: message/label, no logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'flat',
color: '#b3e',
labelColor: '#0f0',
})
)
})
it('should match snapshots: message/label, with logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'flat',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, no logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat',
color: '#b3e',
})
)
})
it('should match snapshots: message only, with logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, with logo and labelColor', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message/label, with links', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: '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 () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
})
)
})
it('should match snapshots: message/label, with logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, no logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat-square',
color: '#b3e',
})
)
})
it('should match snapshots: message only, with logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat-square',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, with logo and labelColor', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'flat-square',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message/label, with links', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: '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 () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'plastic',
color: '#b3e',
labelColor: '#0f0',
})
)
})
it('should match snapshots: message/label, with logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'plastic',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, no logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'plastic',
color: '#b3e',
})
)
})
it('should match snapshots: message only, with logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'plastic',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, with logo and labelColor', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'plastic',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message/label, with links', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: '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 () {
const svg = makeBadge({
text: [1998, 1999],
format: 'svg',
template: 'for-the-badge',
})
expect(svg).to.include('1998').and.to.include('1999')
})
it('lowercase/mixedcase string should produce uppercase string', function () {
const svg = makeBadge({
text: ['Label', '1 string'],
format: 'svg',
template: 'for-the-badge',
})
expect(svg).to.include('LABEL').and.to.include('1 STRING')
})
it('should match snapshots: message/label, no logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
})
)
})
it('should match snapshots: message/label, with logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, no logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'for-the-badge',
color: '#b3e',
})
)
})
it('should match snapshots: message only, with logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'for-the-badge',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, with logo and labelColor', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'for-the-badge',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message/label, with links', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: '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 () {
const svg = makeBadge({
text: ['some-key', 'some-value'],
format: 'svg',
template: 'social',
})
expect(svg).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 () {
const svg = makeBadge({
text: ['', 'some-value'],
format: 'json',
template: 'social',
})
expect(svg).to.include('""').and.to.include('some-value')
})
it('should match snapshots: message/label, no logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'social',
color: '#b3e',
labelColor: '#0f0',
})
)
})
it('should match snapshots: message/label, with logo', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: 'social',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, no logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'social',
color: '#b3e',
})
)
})
it('should match snapshots: message only, with logo', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'social',
color: '#b3e',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message only, with logo and labelColor', function () {
snapshot(
makeBadge({
text: ['', 'grown'],
format: 'svg',
template: 'social',
color: '#b3e',
labelColor: '#0f0',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
)
})
it('should match snapshots: message/label, with links', function () {
snapshot(
makeBadge({
text: ['cactus', 'grown'],
format: 'svg',
template: '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 () {
const svg = makeBadge({
text: ['label', 'message'],
format: 'svg',
logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxu',
})
snapshot(svg)
})
})
})

View File

@@ -1,6 +1,6 @@
{
"name": "gh-badges",
"version": "2.2.1",
"name": "badge-maker",
"version": "3.2.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": {
@@ -35,10 +36,8 @@
},
"dependencies": {
"anafanafo": "^1.0.0",
"dot": "^1.1.2",
"gm": "^1.23.0",
"is-css-color": "^1.0.0",
"svgo": "^1.1.1"
"camelcase": "^6.0.0",
"is-css-color": "^1.0.0"
},
"scripts": {
"test": "echo 'Run tests from parent dir'; false"

View File

@@ -6,6 +6,15 @@ public:
metrics:
prometheus:
enabled: 'METRICS_PROMETHEUS_ENABLED'
endpointEnabled: 'METRICS_PROMETHEUS_ENDPOINT_ENABLED'
influx:
enabled: 'METRICS_INFLUX_ENABLED'
url: 'METRICS_INFLUX_URL'
timeoutMilliseconds: 'METRICS_INFLUX_TIMEOUT_MILLISECONDS'
intervalSeconds: 'METRICS_INFLUX_INTERVAL_SECONDS'
instanceIdFrom: 'METRICS_INFLUX_INSTANCE_ID_FROM'
instanceIdEnvVarName: 'METRICS_INFLUX_INSTANCE_ID_ENV_VAR_NAME'
envLabel: 'METRICS_INFLUX_ENV_LABEL'
ssl:
isSecure: 'HTTPS'
@@ -25,16 +34,29 @@ public:
dir: 'PERSISTENCE_DIR'
services:
bitbucketServer:
authorizedOrigins: 'BITBUCKET_SERVER_ORIGINS'
drone:
authorizedOrigins: 'DRONE_ORIGINS'
github:
baseUri: 'GITHUB_URL'
debug:
enabled: 'GITHUB_DEBUG_ENABLED'
intervalSeconds: 'GITHUB_DEBUG_INTERVAL_SECONDS'
jenkins:
authorizedOrigins: 'JENKINS_ORIGINS'
jira:
authorizedOrigins: 'JIRA_ORIGINS'
nexus:
authorizedOrigins: 'NEXUS_ORIGINS'
npm:
authorizedOrigins: 'NPM_ORIGINS'
sonar:
authorizedOrigins: 'SONAR_ORIGINS'
teamcity:
authorizedOrigins: 'TEAMCITY_ORIGINS'
trace: 'TRACE_SERVICES'
profiling:
makeBadge: 'PROFILE_MAKE_BADGE'
cacheHeaders:
defaultCacheLengthSeconds: 'BADGE_MAX_AGE_SECONDS'
@@ -42,10 +64,16 @@ public:
fetchLimit: 'FETCH_LIMIT'
shieldsProductionHerokuHacks: 'SHIELDS_PRODUCTION_HEROKU_HACKS'
private:
azure_devops_token: 'AZURE_DEVOPS_TOKEN'
bintray_user: 'BINTRAY_USER'
bintray_apikey: 'BINTRAY_API_KEY'
bitbucket_username: 'BITBUCKET_USER'
bitbucket_password: 'BITBUCKET_PASS'
bitbucket_server_username: 'BITBUCKET_SERVER_USER'
bitbucket_server_password: 'BITBUCKET_SERVER_PASS'
drone_token: 'DRONE_TOKEN'
gh_client_id: 'GH_CLIENT_ID'
gh_client_secret: 'GH_CLIENT_SECRET'
@@ -63,6 +91,11 @@ private:
sl_insight_userUuid: 'SL_INSIGHT_USER_UUID'
sl_insight_apiToken: 'SL_INSIGHT_API_TOKEN'
sonarqube_token: 'SONARQUBE_TOKEN'
teamcity_user: 'TEAMCITY_USER'
teamcity_pass: 'TEAMCITY_PASS'
twitch_client_id: 'TWITCH_CLIENT_ID'
twitch_client_secret: 'TWITCH_CLIENT_SECRET'
wheelmap_token: 'WHEELMAP_TOKEN'
influx_username: 'INFLUX_USERNAME'
influx_password: 'INFLUX_PASSWORD'
youtube_api_key: 'YOUTUBE_API_KEY'

View File

@@ -5,7 +5,11 @@ public:
metrics:
prometheus:
enabled: false
endpointEnabled: false
influx:
enabled: false
timeoutMilliseconds: 1000
intervalSeconds: 15
ssl:
isSecure: false
@@ -23,9 +27,6 @@ public:
intervalSeconds: 200
trace: false
profiling:
makeBadge: false
cacheHeaders:
defaultCacheLengthSeconds: 120
@@ -35,4 +36,6 @@ public:
fetchLimit: '10MB'
shieldsProductionHerokuHacks: false
private: {}

View File

@@ -1,8 +1,8 @@
private:
bintray_user: ...
bintray_apikey: ...
# These are the keys which are set on the production servers.
gh_client_id: ...
gh_client_secret: ...
redis_url: ...
sentry_dsn: ...
shields_secret: ...
sl_insight_userUuid: ...
@@ -10,3 +10,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,6 +2,12 @@ public:
metrics:
prometheus:
enabled: true
influx:
enabled: true
url: https://metrics.shields.io/telegraf
instanceIdFrom: env-var
instanceIdEnvVarName: HEROKU_DYNO_ID
envLabel: shields-production
ssl:
isSecure: true

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

@@ -2,7 +2,7 @@
const { URL } = require('url')
const queryString = require('query-string')
const pathToRegexp = require('path-to-regexp')
const { compile } = require('path-to-regexp')
function badgeUrlFromPath({
baseUrl = '',
@@ -33,9 +33,10 @@ function badgeUrlFromPattern({
format = '',
longCache = false,
}) {
const toPath = pathToRegexp.compile(pattern, {
const toPath = compile(pattern, {
strict: true,
sensitive: true,
encode: encodeURIComponent,
})
const path = toPath(namedParams)
@@ -58,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

@@ -1,34 +1,68 @@
'use strict'
const { URL } = require('url')
const { InvalidParameter } = require('./errors')
class AuthHelper {
constructor(
{
userKey,
passKey,
authorizedOrigins,
serviceKey,
isRequired = false,
defaultToEmptyStringForUser = false,
},
privateConfig
config
) {
if (!userKey && !passKey) {
throw Error('Expected userKey or passKey to be set')
}
if (!authorizedOrigins && !serviceKey) {
throw Error('Expected authorizedOrigins or serviceKey to be set')
}
this._userKey = userKey
this._passKey = passKey
if (userKey) {
this.user = privateConfig[userKey]
this._user = config.private[userKey]
} else {
this.user = defaultToEmptyStringForUser ? '' : undefined
this._user = defaultToEmptyStringForUser ? '' : undefined
}
this.pass = passKey ? privateConfig[passKey] : undefined
this._pass = passKey ? config.private[passKey] : undefined
this.isRequired = isRequired
if (serviceKey !== undefined && !(serviceKey in config.public.services)) {
// Keep this as its own error, as it's useful to the programmer as they're
// getting auth set up.
throw Error(`Service key ${serviceKey} was missing from config schema`)
}
let requireStrictSsl, requireStrictSslToAuthenticate
if (serviceKey === undefined) {
requireStrictSsl = true
requireStrictSslToAuthenticate = true
} else {
;({
authorizedOrigins,
requireStrictSsl = true,
requireStrictSslToAuthenticate = true,
} = config.public.services[serviceKey])
}
if (!Array.isArray(authorizedOrigins)) {
throw Error('Expected authorizedOrigins to be an array of origins')
}
this._authorizedOrigins = authorizedOrigins
this._requireStrictSsl = requireStrictSsl
this._requireStrictSslToAuthenticate = requireStrictSslToAuthenticate
}
get isConfigured() {
return (
(this._userKey ? Boolean(this.user) : true) &&
(this._passKey ? Boolean(this.pass) : true)
this._authorizedOrigins.length > 0 &&
(this._userKey ? Boolean(this._user) : true) &&
(this._passKey ? Boolean(this._pass) : true)
)
}
@@ -36,20 +70,135 @@ class AuthHelper {
if (this.isRequired) {
return this.isConfigured
} else {
const configIsEmpty = !this.user && !this.pass
const configIsEmpty = !this._user && !this._pass
return this.isConfigured || configIsEmpty
}
}
get basicAuth() {
const { user, pass } = this
static _isInsecureSslRequest({ options = {} }) {
const { strictSSL = true } = options
return strictSSL !== true
}
enforceStrictSsl({ options = {} }) {
if (
this._requireStrictSsl &&
this.constructor._isInsecureSslRequest({ options })
) {
throw new InvalidParameter({ prettyMessage: 'strict ssl is required' })
}
}
shouldAuthenticateRequest({ url, options = {} }) {
let parsed
try {
parsed = new URL(url)
} catch (e) {
throw new InvalidParameter({ prettyMessage: 'invalid url parameter' })
}
const { protocol, host } = parsed
const origin = `${protocol}//${host}`
const originViolation = !this._authorizedOrigins.includes(origin)
const strictSslCheckViolation =
this._requireStrictSslToAuthenticate &&
this.constructor._isInsecureSslRequest({ options })
return this.isConfigured && !originViolation && !strictSslCheckViolation
}
get _basicAuth() {
const { _user: user, _pass: pass } = this
return this.isConfigured ? { user, pass } : undefined
}
get bearerAuthHeader() {
const { pass } = this
/*
* Helper function for `withBasicAuth()` and friends.
*/
_withAnyAuth(requestParams, mergeAuthFn) {
this.enforceStrictSsl(requestParams)
const shouldAuthenticate = this.shouldAuthenticateRequest(requestParams)
if (this.isRequired && !shouldAuthenticate) {
throw new InvalidParameter({
prettyMessage: 'requested origin not authorized',
})
}
return shouldAuthenticate ? mergeAuthFn(requestParams) : requestParams
}
static _mergeAuth(requestParams, auth) {
const { options, ...rest } = requestParams
return {
options: {
auth,
...options,
},
...rest,
}
}
withBasicAuth(requestParams) {
return this._withAnyAuth(requestParams, requestParams =>
this.constructor._mergeAuth(requestParams, this._basicAuth)
)
}
get _bearerAuthHeader() {
const { _pass: pass } = this
return this.isConfigured ? { Authorization: `Bearer ${pass}` } : undefined
}
static _mergeHeaders(requestParams, headers) {
const {
options: { headers: existingHeaders, ...restOptions } = {},
...rest
} = requestParams
return {
options: {
headers: {
...existingHeaders,
...headers,
},
...restOptions,
},
...rest,
}
}
withBearerAuthHeader(requestParams) {
return this._withAnyAuth(requestParams, requestParams =>
this.constructor._mergeHeaders(requestParams, this._bearerAuthHeader)
)
}
static _mergeQueryParams(requestParams, query) {
const {
options: { qs: existingQuery, ...restOptions } = {},
...rest
} = requestParams
return {
options: {
qs: {
...existingQuery,
...query,
},
...restOptions,
},
...rest,
}
}
withQueryStringAuth({ userKey, passKey }, requestParams) {
return this._withAnyAuth(requestParams, requestParams =>
this.constructor._mergeQueryParams(requestParams, {
...(userKey ? { [userKey]: this._user } : undefined),
...(passKey ? { [passKey]: this._pass } : undefined),
})
)
}
}
module.exports = { AuthHelper }

View File

@@ -3,18 +3,42 @@
const { expect } = require('chai')
const { test, given, forCases } = require('sazerac')
const { AuthHelper } = require('./auth-helper')
const { InvalidParameter } = require('./errors')
describe('AuthHelper', function() {
it('throws without userKey or passKey', function() {
expect(() => new AuthHelper({}, {})).to.throw(
Error,
'Expected userKey or passKey to be set'
)
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 () {
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 () {
expect(
() =>
new AuthHelper(
{
userKey: 'myci_user',
passKey: 'myci_pass',
authorizedOrigins: true,
},
{ private: {} }
)
).to.throw(Error, 'Expected authorizedOrigins to be an array of origins')
})
})
describe('isValid', function() {
describe('isValid', function () {
function validate(config, privateConfig) {
return new AuthHelper(config, privateConfig).isValid
return new AuthHelper(
{ authorizedOrigins: ['https://example.test'], ...config },
{ private: privateConfig }
).isValid
}
test(validate, () => {
forCases([
@@ -65,9 +89,12 @@ describe('AuthHelper', function() {
})
})
describe('basicAuth', function() {
describe('_basicAuth', function () {
function validate(config, privateConfig) {
return new AuthHelper(config, privateConfig).basicAuth
return new AuthHelper(
{ authorizedOrigins: ['https://example.test'], ...config },
{ private: privateConfig }
)._basicAuth
}
test(validate, () => {
forCases([
@@ -100,4 +127,250 @@ describe('AuthHelper', function() {
})
})
})
describe('_isInsecureSslRequest', function () {
test(AuthHelper._isInsecureSslRequest, () => {
forCases([
given({ url: 'http://example.test' }),
given({ url: 'http://example.test', options: {} }),
given({ url: 'http://example.test', options: { strictSSL: true } }),
given({
url: 'http://example.test',
options: { strictSSL: undefined },
}),
]).expect(false)
given({
url: 'http://example.test',
options: { strictSSL: false },
}).expect(true)
})
})
describe('enforceStrictSsl', function () {
const authConfig = {
userKey: 'myci_user',
passKey: 'myci_pass',
serviceKey: 'myci',
}
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 () {
expect(() => authHelper.enforceStrictSsl({})).not.to.throw()
})
it('throws for insecure requests', function () {
expect(() =>
authHelper.enforceStrictSsl({ options: { strictSSL: false } })
).to.throw(InvalidParameter)
})
})
context("when strict SSL isn't required", function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
myci: {
authorizedOrigins: ['http://myci.test'],
requireStrictSsl: false,
},
},
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
})
it('does not throw for secure requests', function () {
expect(() => authHelper.enforceStrictSsl({})).not.to.throw()
})
it('does not throw for insecure requests', function () {
expect(() =>
authHelper.enforceStrictSsl({ options: { strictSSL: false } })
).not.to.throw()
})
})
})
describe('shouldAuthenticateRequest', function () {
const authConfig = {
userKey: 'myci_user',
passKey: 'myci_pass',
serviceKey: 'myci',
}
context('by default', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
myci: {
authorizedOrigins: ['https://myci.test'],
},
},
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test/api' }).expect(true)
})
})
describe('an insecure request', function () {
test(shouldAuthenticateRequest, () => {
given({
url: 'https://myci.test/api',
options: { strictSSL: false },
}).expect(false)
})
})
describe('a request to an unauthorized origin', function () {
test(shouldAuthenticateRequest, () => {
forCases([
given({ url: 'http://myci.test/api' }),
given({ url: 'https://myci.test:12345/api' }),
given({ url: 'https://other.test/api' }),
]).expect(false)
})
})
})
context('when auth over insecure SSL is allowed', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
myci: {
authorizedOrigins: ['https://myci.test'],
requireStrictSslToAuthenticate: false,
},
},
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test' }).expect(true)
})
})
describe('an insecure request', function () {
test(shouldAuthenticateRequest, () => {
given({
url: 'https://myci.test',
options: { strictSSL: false },
}).expect(true)
})
})
describe('a request to an unauthorized origin', function () {
test(shouldAuthenticateRequest, () => {
forCases([
given({ url: 'http://myci.test' }),
given({ url: 'https://myci.test:12345/' }),
given({ url: 'https://other.test' }),
]).expect(false)
})
})
})
context('when the service is partly configured', function () {
const authHelper = new AuthHelper(authConfig, {
public: {
services: {
myci: {
authorizedOrigins: ['https://myci.test'],
requireStrictSslToAuthenticate: false,
},
},
},
private: { myci_user: 'admin' },
})
const shouldAuthenticateRequest = requestOptions =>
authHelper.shouldAuthenticateRequest(requestOptions)
describe('a secure request to an authorized origin', function () {
test(shouldAuthenticateRequest, () => {
given({ url: 'https://myci.test' }).expect(false)
})
})
})
})
describe('withBasicAuth', function () {
const authHelper = new AuthHelper(
{
userKey: 'myci_user',
passKey: 'myci_pass',
serviceKey: 'myci',
},
{
public: {
services: {
myci: {
authorizedOrigins: ['https://myci.test'],
},
},
},
private: { myci_user: 'admin', myci_pass: 'abc123' },
}
)
const withBasicAuth = requestOptions =>
authHelper.withBasicAuth(requestOptions)
describe('authenticates a secure request to an authorized origin', function () {
test(withBasicAuth, () => {
given({
url: 'https://myci.test/api',
}).expect({
url: 'https://myci.test/api',
options: {
auth: { user: 'admin', pass: 'abc123' },
},
})
given({
url: 'https://myci.test/api',
options: {
headers: { Accept: 'application/json' },
},
}).expect({
url: 'https://myci.test/api',
options: {
headers: { Accept: 'application/json' },
auth: { user: 'admin', pass: 'abc123' },
},
})
})
})
describe('does not authenticate a request to an unauthorized origin', function () {
test(withBasicAuth, () => {
given({
url: 'https://other.test/api',
}).expect({
url: 'https://other.test/api',
})
given({
url: 'https://other.test/api',
options: {
headers: { Accept: 'application/json' },
},
}).expect({
url: 'https://other.test/api',
options: {
headers: { Accept: 'application/json' },
},
})
})
})
describe('throws on an insecure SSL request', function () {
expect(() =>
withBasicAuth({
url: 'https://myci.test/api',
options: { strictSSL: false },
})
).to.throw(InvalidParameter)
})
})
})

View File

@@ -36,10 +36,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 +48,7 @@ describe('BaseGraphqlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyGraphqlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -64,7 +64,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 +98,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 +114,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 +131,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 +149,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 +167,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 +178,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

@@ -29,10 +29,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 +41,7 @@ describe('BaseJsonService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyJsonService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -49,11 +49,13 @@ describe('BaseJsonService', function() {
expect(sendAndCacheRequest).to.have.been.calledOnceWith(
'http://example.com/foo.json',
{ headers: { Accept: 'application/json' } }
{
headers: { Accept: 'application/json' },
}
)
})
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({
@@ -81,8 +83,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 },
@@ -97,7 +99,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 },
@@ -114,7 +116,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,
@@ -13,9 +13,6 @@ const { prepareRoute, namedParamsForMatch } = require('./route')
module.exports = class BaseStaticService extends BaseService {
static register({ camp, metricInstance }, serviceConfig) {
const {
profiling: { makeBadge: shouldProfileMakeBadge },
} = serviceConfig
const { regex, captureNames } = prepareRoute(this.route)
const metricHelper = MetricHelper.create({
@@ -52,16 +49,9 @@ module.exports = class BaseStaticService extends BaseService {
const format = (match.slice(-1)[0] || '.svg').replace(/^\./, '')
badgeData.format = format
if (shouldProfileMakeBadge) {
console.time('makeBadge total')
}
const svg = makeBadge(badgeData)
if (shouldProfileMakeBadge) {
console.timeEnd('makeBadge total')
}
setCacheHeadersForStaticResource(ask.res)
const svg = makeBadge(badgeData)
makeSend(format, ask.res, end)(svg)
metricHandle.noteResponseSent()

View File

@@ -3,7 +3,7 @@
const { expect } = require('chai')
const sinon = require('sinon')
const Joi = require('@hapi/joi')
const makeBadge = require('../../gh-badges/lib/make-badge')
const makeBadge = require('../../badge-maker/lib/make-badge')
const BaseSvgScrapingService = require('./base-svg-scraping')
function makeExampleSvg({ label, message }) {
@@ -33,7 +33,7 @@ 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({
@@ -41,17 +41,17 @@ describe('BaseSvgScrapingService', function() {
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 +60,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 }
@@ -68,11 +68,13 @@ describe('BaseSvgScrapingService', function() {
expect(sendAndCacheRequest).to.have.been.calledOnceWith(
'http://example.com/foo.svg',
{ headers: { Accept: 'image/svg+xml' } }
{
headers: { Accept: 'image/svg+xml' },
}
)
})
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({
@@ -103,8 +105,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 },
@@ -119,7 +121,7 @@ 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 {}
@@ -147,7 +149,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

@@ -29,10 +29,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 +41,7 @@ describe('BaseXmlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyXmlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -49,11 +49,13 @@ describe('BaseXmlService', function() {
expect(sendAndCacheRequest).to.have.been.calledOnceWith(
'http://example.com/foo.xml',
{ headers: { Accept: 'application/xml, text/xml' } }
{
headers: { Accept: 'application/xml, text/xml' },
}
)
})
it('forwards options to _sendAndCacheRequest', async function() {
it('forwards options to _sendAndCacheRequest', async function () {
class WithCustomOptions extends BaseXmlService {
static get route() {
return {}
@@ -85,8 +87,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 },
@@ -101,7 +103,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() {
@@ -128,7 +130,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 },
@@ -145,7 +147,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

@@ -45,10 +45,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 +57,7 @@ describe('BaseYamlService', function() {
)
})
it('invokes _sendAndCacheRequest', async function() {
it('invokes _sendAndCacheRequest', async function () {
await DummyYamlService.invoke(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
@@ -74,7 +74,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 +105,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 +121,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 +138,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

@@ -8,7 +8,7 @@ const emojic = require('emojic')
const Joi = require('@hapi/joi')
const log = require('../server/log')
const { AuthHelper } = require('./auth-helper')
const { MetricHelper } = require('./metric-helper')
const { MetricHelper, MetricNames } = require('./metric-helper')
const { assertValidCategory } = require('./categories')
const checkErrorResponse = require('./check-error-response')
const coalesceBadge = require('./coalesce-badge')
@@ -58,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(),
@@ -70,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')
@@ -119,7 +114,7 @@ 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}
@@ -214,20 +209,43 @@ class BaseService {
return result
}
constructor({ sendAndCacheRequest, authHelper }, { handleInternalErrors }) {
constructor(
{ sendAndCacheRequest, authHelper, metricHelper },
{ handleInternalErrors }
) {
this._requestFetcher = sendAndCacheRequest
this.authHelper = authHelper
this._handleInternalErrors = handleInternalErrors
this._metricHelper = metricHelper
}
async _request({ url, options = {}, errorMessages = {} }) {
const logTrace = (...args) => trace.logTrace('fetch', ...args)
logTrace(emojic.bowAndArrow, 'Request', url, '\n', options)
const { res, buffer } = await this._requestFetcher(url, options)
await this._meterResponse(res, buffer)
logTrace(emojic.dart, 'Response status code', res.statusCode)
return checkErrorResponse(errorMessages)({ buffer, res })
}
static get enabledMetrics() {
return []
}
static isMetricEnabled(metricName) {
return this.enabledMetrics.includes(metricName)
}
async _meterResponse(res, buffer) {
if (
this._metricHelper &&
this.constructor.isMetricEnabled(MetricNames.SERVICE_RESPONSE_SIZE) &&
res.statusCode === 200
) {
this._metricHelper.noteServiceResponseSize(buffer.length)
}
}
static _validate(
data,
schema,
@@ -267,6 +285,12 @@ class BaseService {
throw new Error(`Handler not implemented for ${this.constructor.name}`)
}
// Making this an instance method ensures debuggability.
// https://github.com/badges/shields/issues/3784
_validateServiceData(serviceData) {
Joi.assert(serviceData, serviceDataSchema)
}
_handleError(error) {
if (error instanceof NotFound || error instanceof InvalidParameter) {
trace.logTrace('outbound', emojic.noGoodWoman, 'Handled error', error)
@@ -330,9 +354,7 @@ class BaseService {
// Like the service instance, the auth helper could be reused for each request.
// However, moving its instantiation to `register()` makes `invoke()` harder
// to test.
const authHelper = this.auth
? new AuthHelper(this.auth, config.private)
: undefined
const authHelper = this.auth ? new AuthHelper(this.auth, config) : undefined
const serviceInstance = new this({ ...context, authHelper }, config)
@@ -379,7 +401,7 @@ class BaseService {
namedParams,
transformedQueryParams
)
Joi.assert(serviceData, serviceDataSchema)
serviceInstance._validateServiceData(serviceData)
} catch (error) {
serviceError = error
}
@@ -420,6 +442,7 @@ class BaseService {
sendAndCacheRequest: request.asPromise,
sendAndCacheRequestWithCallbacks: request,
githubApiProvider,
metricHelper,
},
serviceConfig,
namedParams,

View File

@@ -1,8 +1,11 @@
'use strict'
const Joi = require('@hapi/joi')
const { expect } = require('chai')
const chai = require('chai')
const { expect } = chai
const sinon = require('sinon')
const prometheus = require('prom-client')
const PrometheusMetrics = require('../server/prometheus-metrics')
const trace = require('./trace')
const {
NotFound,
@@ -12,8 +15,9 @@ const {
Deprecated,
} = require('./errors')
const BaseService = require('./base')
const { MetricHelper, MetricNames } = require('./metric-helper')
require('../register-chai-plugins.spec')
chai.use(require('chai-as-promised'))
const queryParamSchema = Joi.object({
queryParamA: Joi.string(),
@@ -63,10 +67,22 @@ class DummyService extends BaseService {
}
}
describe('BaseService', function() {
const defaultConfig = { handleInternalErrors: false, private: {} }
class DummyServiceWithServiceResponseSizeMetricEnabled extends DummyService {
static get enabledMetrics() {
return [MetricNames.SERVICE_RESPONSE_SIZE]
}
}
it('Invokes the handler as expected', async function() {
describe('BaseService', function () {
const defaultConfig = {
public: {
handleInternalErrors: false,
services: {},
},
private: {},
}
it('Invokes the handler as expected', async function () {
expect(
await DummyService.invoke(
{},
@@ -79,7 +95,7 @@ describe('BaseService', function() {
})
})
it('Validates query params', async function() {
it('Validates query params', async function () {
expect(
await DummyService.invoke(
{},
@@ -94,20 +110,17 @@ 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'
/^render\(\) function not implemented for BaseService$/
)
})
it('Should throw if route is not overridden', async function() {
try {
await BaseService.invoke({}, {}, {})
expect.fail('Expected to throw')
} catch (e) {
expect(e.message).to.equal('Route not defined for BaseService')
}
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 {
@@ -115,34 +128,31 @@ describe('BaseService', function() {
return {}
}
}
it('Should throw if handle() is not overridden', async function() {
try {
await WithRoute.invoke({}, {}, {})
expect.fail('Expected to throw')
} catch (e) {
expect(e.message).to.equal('Handler not implemented for WithRoute')
}
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'
/^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,
@@ -170,8 +180,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 {
@@ -192,7 +202,7 @@ describe('BaseService', function() {
})
})
it('Throws a validation error on invalid data', async function() {
context('On invalid data', function () {
class ThrowingService extends DummyService {
async handle() {
return {
@@ -200,24 +210,42 @@ describe('BaseService', function() {
}
}
}
try {
await ThrowingService.invoke(
{},
{ handleInternalErrors: false },
{ namedParamA: 'bar.bar.bar' }
)
expect.fail('Expected to throw')
} catch (e) {
expect(e.name).to.equal('ValidationError')
expect(e.details.map(({ message }) => message)).to.deep.equal([
'"message" is required',
])
}
it('Throws a validation error on invalid data', async function () {
try {
await ThrowingService.invoke(
{},
{ handleInternalErrors: false },
{ namedParamA: 'bar.bar.bar' }
)
expect.fail('Expected to throw')
} catch (e) {
expect(e.name).to.equal('ValidationError')
expect(e.details.map(({ message }) => message)).to.deep.equal([
'"message" is required',
])
}
})
// Ensure debuggabillity.
// https://github.com/badges/shields/issues/3784
it('Includes the service class in the stack trace', async function () {
try {
await ThrowingService.invoke(
{},
{ handleInternalErrors: false },
{ namedParamA: 'bar.bar.bar' }
)
expect.fail('Expected to throw')
} catch (e) {
expect(e.stack).to.include('ThrowingService._validateServiceData')
}
})
})
})
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")
@@ -237,8 +265,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()
@@ -253,7 +281,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()
@@ -268,7 +296,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()
@@ -283,7 +311,7 @@ describe('BaseService', function() {
})
})
it('handles Deprecated', async function() {
it('handles Deprecated', async function () {
class ThrowingService extends DummyService {
async handle() {
throw new Deprecated()
@@ -298,7 +326,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()
@@ -315,7 +343,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)$/
@@ -323,7 +351,7 @@ describe('BaseService', function() {
let mockCamp
let mockHandleRequest
beforeEach(function() {
beforeEach(function () {
mockCamp = {
route: sinon.spy(),
}
@@ -334,12 +362,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 {
@@ -364,7 +392,7 @@ describe('BaseService', function() {
expect(mockSendBadge).to.have.been.calledWith(expectedFormat, {
text: ['cat', 'Hello namedParamA: bar with queryParamA: ?'],
color: 'lightgrey',
template: undefined,
template: 'flat',
namedLogo: undefined,
logo: undefined,
logoWidth: undefined,
@@ -376,8 +404,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,
@@ -404,37 +432,36 @@ describe('BaseService', function() {
})
})
describe('validate', function() {
describe('validate', function () {
const dummySchema = Joi.object({
requiredString: Joi.string().required(),
}).required()
it('throws error for invalid responses', async function() {
try {
it('throws error for invalid responses', function () {
expect(() =>
DummyService._validate(
{ requiredString: ['this', "shouldn't", 'work'] },
dummySchema
)
expect.fail('Expected to throw')
} catch (e) {
expect(e).to.be.an.instanceof(InvalidResponse)
}
)
.to.throw()
.instanceof(InvalidResponse)
})
})
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 },
@@ -464,7 +491,7 @@ describe('BaseService', function() {
)
})
it('handles errors', async function() {
it('handles errors', async function () {
const sendAndCacheRequest = async () => ({
buffer: '',
res: { statusCode: 404 },
@@ -485,37 +512,107 @@ describe('BaseService', function() {
})
})
describe('auth', function() {
describe('Metrics', function () {
let register
beforeEach(function () {
register = new prometheus.Registry()
})
const url = 'some-url'
it('service response size metric is optional', async function () {
const metricHelper = MetricHelper.create({
metricInstance: new PrometheusMetrics({ register }),
ServiceClass: DummyServiceWithServiceResponseSizeMetricEnabled,
})
const sendAndCacheRequest = async () => ({
buffer: 'x'.repeat(65536 + 1),
res: { statusCode: 200 },
})
const serviceInstance = new DummyServiceWithServiceResponseSizeMetricEnabled(
{ sendAndCacheRequest, metricHelper },
defaultConfig
)
await serviceInstance._request({ url })
expect(register.getSingleMetricAsString('service_response_bytes'))
.to.contain(
'service_response_bytes_bucket{le="65536",category="other",family="undefined",service="dummy_service_with_service_response_size_metric_enabled"} 0\n'
)
.and.to.contain(
'service_response_bytes_bucket{le="131072",category="other",family="undefined",service="dummy_service_with_service_response_size_metric_enabled"} 1\n'
)
})
it('service response size metric is disabled by default', async function () {
const metricHelper = MetricHelper.create({
metricInstance: new PrometheusMetrics({ register }),
ServiceClass: DummyService,
})
const sendAndCacheRequest = async () => ({
buffer: 'x',
res: { statusCode: 200 },
})
const serviceInstance = new DummyService(
{ sendAndCacheRequest, metricHelper },
defaultConfig
)
await serviceInstance._request({ url })
expect(
register.getSingleMetricAsString('service_response_bytes')
).to.not.contain('service_response_bytes_bucket')
})
})
describe('auth', function () {
class AuthService extends DummyService {
static get auth() {
return {
passKey: 'myci_pass',
serviceKey: 'myci',
isRequired: true,
}
}
async handle() {
return {
message: `The CI password is ${this.authHelper.pass}`,
message: `The CI password is ${this.authHelper._pass}`,
}
}
}
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(
{},
{ defaultConfig, private: { myci_pass: 'abc123' } },
{
public: {
...defaultConfig.public,
services: { myci: { authorizedOrigins: ['https://myci.test'] } },
},
private: { myci_pass: 'abc123' },
},
{ namedParamA: 'bar.bar.bar' }
)
).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({}, defaultConfig, {
namedParamA: 'bar.bar.bar',
})
await AuthService.invoke(
{},
{
public: {
...defaultConfig.public,
services: { myci: { authorizedOrigins: ['https://myci.test'] } },
},
private: {},
},
{
namedParamA: 'bar.bar.bar',
}
)
).to.deep.equal({
color: 'lightgray',
isError: true,

View File

@@ -7,9 +7,7 @@ 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

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

View File

@@ -4,9 +4,9 @@ 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() {
describe('coalesceBadge', function () {
describe('Label', function () {
it('uses the default label', function () {
expect(coalesceBadge({}, {}, { label: 'heyo' }).text).to.deep.equal([
'heyo',
'n/a',
@@ -14,34 +14,34 @@ describe('coalesceBadge', function() {
})
// 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' }).text
).to.deep.equal(['cat', 'n/a'])
})
it('preserves an empty label', function() {
it('preserves an empty label', function () {
expect(
coalesceBadge({}, { label: '', message: '10k' }, {}).text
).to.deep.equal(['', '10k'])
})
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'])
})
})
describe('Message', function() {
it('applies the service message', function() {
describe('Message', function () {
it('applies the service message', function () {
expect(coalesceBadge({}, { message: '10k' }, {}).text).to.deep.equal([
undefined,
'10k',
])
})
it('applies a numeric service message', function() {
it('applies a numeric service message', 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([
@@ -51,12 +51,12 @@ describe('coalesceBadge', function() {
})
})
describe('Right color', function() {
it('uses the default color', function() {
describe('Right color', function () {
it('uses the default color', function () {
expect(coalesceBadge({}, {}, {}).color).to.equal('lightgrey')
})
it('overrides the color', function() {
it('overrides the color', function () {
expect(
coalesceBadge({ color: '10ADED' }, { color: 'red' }, {}).color
).to.equal('10ADED')
@@ -66,8 +66,8 @@ describe('coalesceBadge', function() {
).to.equal('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' },
@@ -86,23 +86,23 @@ describe('coalesceBadge', function() {
})
})
it('applies the service color', function() {
it('applies the service color', function () {
expect(coalesceBadge({}, { color: 'red' }, {}).color).to.equal('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() {
it('applies the service label color', function () {
expect(coalesceBadge({}, { labelColor: 'red' }, {}).labelColor).to.equal(
'red'
)
})
it('overrides the label color', function() {
it('overrides the label color', function () {
expect(
coalesceBadge({ labelColor: '42f483' }, { color: 'green' }, {})
.labelColor
@@ -113,7 +113,7 @@ describe('coalesceBadge', function() {
).to.equal('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.
@@ -134,20 +134,20 @@ describe('coalesceBadge', function() {
})
})
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() {
it('applies the named logo', function () {
expect(coalesceBadge({}, { namedLogo: 'npm' }, {}).namedLogo).to.equal(
'npm'
)
@@ -156,20 +156,20 @@ describe('coalesceBadge', function() {
).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 +180,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 +195,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 +207,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,15 +215,15 @@ 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)
})
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(
@@ -235,26 +235,26 @@ describe('coalesceBadge', function() {
})
})
describe('Logo width', function() {
it('overrides the logoWidth', function() {
describe('Logo width', function () {
it('overrides the logoWidth', function () {
expect(coalesceBadge({ logoWidth: 20 }, {}, {}).logoWidth).to.equal(20)
})
it('applies the logo width', function() {
it('applies the logo width', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoWidth: 275 }, {}).logoWidth
).to.equal(275)
})
})
describe('Logo position', function() {
it('overrides the logoPosition', function() {
describe('Logo position', function () {
it('overrides the logoPosition', function () {
expect(
coalesceBadge({ logoPosition: -10 }, {}, {}).logoPosition
).to.equal(-10)
})
it('applies the logo position', function() {
it('applies the logo position', function () {
expect(
coalesceBadge({}, { namedLogo: 'npm', logoPosition: -10 }, {})
.logoPosition
@@ -262,8 +262,8 @@ describe('coalesceBadge', function() {
})
})
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,14 +277,27 @@ 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' }, {}, {}).template).to.equal('flat')
expect(coalesceBadge({ style: 7 }, {}, {}).template).to.equal('flat')
expect(coalesceBadge({ style: undefined }, {}, {}).template).to.equal(
'flat'
)
})
it('replaces legacy popout styles', function () {
expect(coalesceBadge({ style: 'popout' }, {}, {}).template).to.equal(
'flat'
)
expect(
coalesceBadge({ style: 'popout-square' }, {}, {}).template
).to.equal('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

View File

@@ -7,16 +7,16 @@ 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([])
given(null, undefined, 0, {}).expect(0)
const a = null,
c = 0,
d = 1
const a = null
const c = 0
const d = 1
let b
given(a, b, c, d).expect(0)
})

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

@@ -56,6 +56,7 @@ class NotFound extends ShieldsRuntimeError {
get name() {
return 'NotFound'
}
get defaultPrettyMessage() {
return defaultNotFoundError
}
@@ -82,6 +83,7 @@ class InvalidResponse extends ShieldsRuntimeError {
get name() {
return 'InvalidResponse'
}
get defaultPrettyMessage() {
return 'invalid'
}
@@ -107,6 +109,7 @@ class Inaccessible extends ShieldsRuntimeError {
get name() {
return 'Inaccessible'
}
get defaultPrettyMessage() {
return 'inaccessible'
}
@@ -131,6 +134,7 @@ class ImproperlyConfigured extends ShieldsRuntimeError {
get name() {
return 'ImproperlyConfigured'
}
get defaultPrettyMessage() {
return 'improperly configured'
}
@@ -156,6 +160,7 @@ class InvalidParameter extends ShieldsRuntimeError {
get name() {
return 'InvalidParameter'
}
get defaultPrettyMessage() {
return 'invalid parameter'
}
@@ -180,6 +185,7 @@ class Deprecated extends ShieldsRuntimeError {
get name() {
return 'Deprecated'
}
get defaultPrettyMessage() {
return 'no longer available'
}

View File

@@ -1,7 +1,7 @@
'use strict'
const Joi = require('@hapi/joi')
const pathToRegexp = require('path-to-regexp')
const { pathToRegexp, compile } = require('path-to-regexp')
const categories = require('../../services/categories')
const coalesceBadge = require('./coalesce-badge')
const { makeFullUrl } = require('./route')
@@ -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()
@@ -59,7 +52,9 @@ function validateExample(example, index, ServiceClass) {
// Make sure we can build the full URL using these patterns.
try {
pathToRegexp.compile(pattern || ServiceClass.route.pattern)(namedParams)
compile(pattern || ServiceClass.route.pattern, {
encode: encodeURIComponent,
})(namedParams)
} catch (e) {
throw Error(
`In example for ${
@@ -69,7 +64,10 @@ function validateExample(example, index, ServiceClass) {
}
// Make sure there are no extra keys.
let keys = []
pathToRegexp(pattern || ServiceClass.route.pattern, keys)
pathToRegexp(pattern || ServiceClass.route.pattern, keys, {
strict: true,
sensitive: true,
})
keys = keys.map(({ name }) => name)
const extraKeys = Object.keys(namedParams).filter(k => !keys.includes(k))
if (extraKeys.length) {

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,
@@ -13,6 +13,8 @@ const { makeSend } = require('./legacy-result-sender')
const LruCache = require('./lru-cache')
const coalesceBadge = require('./coalesce-badge')
const userAgent = 'Shields.io/2003a'
// We avoid calling the vendor's server for computation of the information in a
// number of badges.
const minAccuracy = 0.75
@@ -204,8 +206,7 @@ function handleRequest(cacheHeaderConfig, handlerOptions) {
options = uri
}
options.headers = options.headers || {}
options.headers['User-Agent'] =
options.headers['User-Agent'] || 'Shields.io'
options.headers['User-Agent'] = userAgent
let bufferLength = 0
const r = request(options, (err, res, body) => {
@@ -294,4 +295,5 @@ module.exports = {
clearRequestCache,
// Expose for testing.
_requestCache: requestCache,
userAgent,
}

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

@@ -82,9 +82,12 @@ function assertNamesUnique(names, { message }) {
function checkNames() {
const services = loadServiceClasses()
assertNamesUnique(services.map(({ name }) => name), {
message: 'Duplicate service names found',
})
assertNamesUnique(
services.map(({ name }) => name),
{
message: 'Duplicate service names found',
}
)
}
function collectDefinitions() {

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

@@ -11,9 +11,17 @@ class MetricHelper {
serviceFamily,
name,
})
this.serviceResponseSizeHistogram = metricInstance.createServiceResponseSizeHistogram(
{
category,
serviceFamily,
name,
}
)
} else {
this.metricInstance = undefined
this.serviceRequestCounter = undefined
this.serviceResponseSizeHistogram = undefined
}
}
@@ -40,6 +48,16 @@ class MetricHelper {
},
}
}
noteServiceResponseSize(size) {
if (this.serviceResponseSizeHistogram) {
return this.serviceResponseSizeHistogram.observe(size)
}
}
}
module.exports = { MetricHelper }
const MetricNames = Object.freeze({
SERVICE_RESPONSE_SIZE: Symbol('service-response-size'),
})
module.exports = { MetricHelper, MetricNames }

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

@@ -2,16 +2,14 @@
const escapeStringRegexp = require('escape-string-regexp')
const Joi = require('@hapi/joi')
const pathToRegexp = require('path-to-regexp')
const { pathToRegexp } = require('path-to-regexp')
function makeFullUrl(base, partialUrl) {
return `/${[base, partialUrl].filter(Boolean).join('/')}`
}
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

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

@@ -5,10 +5,7 @@ const Joi = require('@hapi/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

@@ -21,8 +21,8 @@ function validate(
}
const options = { abortEarly: false }
if (allowAndStripUnknownKeys) {
options['allowUnknown'] = true
options['stripUnknown'] = true
options.allowUnknown = true
options.stripUnknown = true
}
const { error, value } = schema.validate(data, options)
if (error) {

View File

@@ -7,19 +7,19 @@ 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,21 +1,16 @@
'use strict'
const merge = require('deepmerge')
const config = require('config').util.toObject()
const portfinder = require('portfinder')
const Server = require('./server')
function createTestServer({ port }) {
const serverConfig = {
...config,
public: {
...config.public,
bind: {
...config.public.bind,
port,
},
},
async function createTestServer(customConfig = {}) {
const mergedConfig = merge(config, customConfig)
if (!mergedConfig.public.bind.port) {
mergedConfig.public.bind.port = await portfinder.getPortPromise()
}
return new Server(serverConfig)
return new Server(mergedConfig)
}
module.exports = {

View File

@@ -0,0 +1,86 @@
'use strict'
const os = require('os')
const { promisify } = require('util')
const { post } = require('request')
const postAsync = promisify(post)
const generateInstanceId = require('./instance-id-generator')
const { promClientJsonToInfluxV2 } = require('./metrics/format-converters')
const log = require('./log')
module.exports = class InfluxMetrics {
constructor(metricInstance, config) {
this._metricInstance = metricInstance
this._config = config
this._instanceId = this.getInstanceId()
}
async sendMetrics() {
const auth = {
user: this._config.username,
pass: this._config.password,
}
const request = {
uri: this._config.url,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: this.metrics(),
timeout: this._config.timeoutMillseconds,
auth,
}
let response
try {
response = await postAsync(request)
} catch (error) {
log.error(
new Error(`Cannot push metrics. Cause: ${error.name}: ${error.message}`)
)
}
if (response && response.statusCode >= 300) {
log.error(
new Error(
`Cannot push metrics. ${response.request.href} responded with status code ${response.statusCode}`
)
)
}
}
startPushingMetrics() {
this._intervalId = setInterval(
() => this.sendMetrics(),
this._config.intervalSeconds * 1000
)
}
metrics() {
return promClientJsonToInfluxV2(this._metricInstance.metrics(), {
env: this._config.envLabel,
application: 'shields',
instance: this._instanceId,
})
}
getInstanceId() {
const {
hostnameAliases = {},
instanceIdFrom,
instanceIdEnvVarName,
} = this._config
let instance
if (instanceIdFrom === 'env-var') {
instance = process.env[instanceIdEnvVarName]
} else if (instanceIdFrom === 'hostname') {
const hostname = os.hostname()
instance = hostnameAliases[hostname] || hostname
} else if (instanceIdFrom === 'random') {
instance = generateInstanceId()
}
return instance
}
stopPushingMetrics() {
if (this._intervalId) {
clearInterval(this._intervalId)
this._intervalId = undefined
}
}
}

View File

@@ -0,0 +1,174 @@
'use strict'
const os = require('os')
const nock = require('nock')
const sinon = require('sinon')
const { expect } = require('chai')
const log = require('./log')
const InfluxMetrics = require('./influx-metrics')
require('../register-chai-plugins.spec')
describe('Influx metrics', function () {
const metricInstance = {
metrics() {
return [
{
help: 'counter 1 help',
name: 'counter1',
type: 'counter',
values: [{ value: 11, labels: {} }],
aggregator: 'sum',
},
]
},
}
describe('"metrics" function', function () {
let osHostnameStub
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 () {
process.env.INSTANCE_ID = 'instance3'
const influxMetrics = new InfluxMetrics(metricInstance, {
instanceIdFrom: 'env-var',
instanceIdEnvVarName: 'INSTANCE_ID',
})
expect(influxMetrics.metrics()).to.contain('instance=instance3')
})
it('should use a hostname as an instance label', async function () {
osHostnameStub = sinon.stub(os, 'hostname').returns('test-hostname')
const customConfig = {
instanceIdFrom: 'hostname',
}
const influxMetrics = new InfluxMetrics(metricInstance, customConfig)
expect(influxMetrics.metrics()).to.be.contain('instance=test-hostname')
})
it('should use a random string as an instance label', async function () {
const customConfig = {
instanceIdFrom: 'random',
}
const influxMetrics = new InfluxMetrics(metricInstance, customConfig)
expect(influxMetrics.metrics()).to.be.match(/instance=\w+ /)
})
it('should use a hostname alias as an instance label', async function () {
osHostnameStub = sinon.stub(os, 'hostname').returns('test-hostname')
const customConfig = {
instanceIdFrom: 'hostname',
hostnameAliases: { 'test-hostname': 'test-hostname-alias' },
}
const influxMetrics = new InfluxMetrics(metricInstance, customConfig)
expect(influxMetrics.metrics()).to.be.contain(
'instance=test-hostname-alias'
)
})
})
describe('startPushingMetrics', function () {
let influxMetrics, clock
beforeEach(function () {
clock = sinon.useFakeTimers()
})
afterEach(function () {
influxMetrics.stopPushingMetrics()
nock.cleanAll()
nock.enableNetConnect()
delete process.env.INSTANCE_ID
clock.restore()
})
it('should send metrics', async function () {
const scope = nock('http://shields-metrics.io/', {
reqheaders: {
'Content-Type': 'application/x-www-form-urlencoded',
},
})
.persist()
.post(
'/metrics',
'prometheus,application=shields,env=test-env,instance=instance2 counter1=11'
)
.basicAuth({ user: 'metrics-username', pass: 'metrics-password' })
.reply(200)
process.env.INSTANCE_ID = 'instance2'
influxMetrics = new InfluxMetrics(metricInstance, {
url: 'http://shields-metrics.io/metrics',
timeoutMillseconds: 100,
intervalSeconds: 0.001,
username: 'metrics-username',
password: 'metrics-password',
instanceIdFrom: 'env-var',
instanceIdEnvVarName: 'INSTANCE_ID',
envLabel: 'test-env',
})
influxMetrics.startPushingMetrics()
await clock.tickAsync(10)
expect(scope.isDone()).to.be.equal(
true,
`pending mocks: ${scope.pendingMocks()}`
)
})
})
describe('sendMetrics', function () {
beforeEach(function () {
sinon.stub(log, 'error')
})
afterEach(function () {
log.error.restore()
nock.cleanAll()
nock.enableNetConnect()
})
const influxMetrics = new InfluxMetrics(metricInstance, {
url: 'http://shields-metrics.io/metrics',
timeoutMillseconds: 50,
intervalSeconds: 0,
username: 'metrics-username',
password: 'metrics-password',
})
it('should log errors', async function () {
nock.disableNetConnect()
await influxMetrics.sendMetrics()
expect(log.error).to.be.calledWith(
sinon.match
.instanceOf(Error)
.and(
sinon.match.has(
'message',
'Cannot push metrics. Cause: NetConnectNotAllowedError: Nock: Disallowed net connect for "shields-metrics.io:80/metrics"'
)
)
)
})
it('should log error responses', async function () {
nock('http://shields-metrics.io/').persist().post('/metrics').reply(400)
await influxMetrics.sendMetrics()
expect(log.error).to.be.calledWith(
sinon.match
.instanceOf(Error)
.and(
sinon.match.has(
'message',
'Cannot push metrics. http://shields-metrics.io/metrics responded with status code 400'
)
)
)
})
})
})

View File

@@ -0,0 +1,8 @@
'use strict'
function generateInstanceId() {
// from https://gist.github.com/gordonbrander/2230317
return Math.random().toString(36).substr(2, 9)
}
module.exports = generateInstanceId

View File

@@ -0,0 +1,27 @@
'use strict'
const groupBy = require('lodash.groupby')
function promClientJsonToInfluxV2(metrics, extraLabels = {}) {
// TODO Replace with Array.prototype.flatMap() after migrating to Node.js >= 11
const flatMap = (f, arr) => arr.reduce((acc, x) => acc.concat(f(x)), [])
return flatMap(metric => {
const valuesByLabels = groupBy(metric.values, value =>
JSON.stringify(Object.entries(value.labels).sort())
)
return Object.values(valuesByLabels).map(metricsWithSameLabel => {
const labels = Object.entries(metricsWithSameLabel[0].labels)
.concat(Object.entries(extraLabels))
.sort((a, b) => a[0].localeCompare(b[0]))
.map(labelEntry => `${labelEntry[0]}=${labelEntry[1]}`)
.join(',')
const labelsFormatted = labels ? `,${labels}` : ''
const values = metricsWithSameLabel
.sort((a, b) => a.metricName.localeCompare(b.metricName))
.map(value => `${value.metricName || metric.name}=${value.value}`)
.join(',')
return `prometheus${labelsFormatted} ${values}`
})
}, metrics).join('\n')
}
module.exports = { promClientJsonToInfluxV2 }

View File

@@ -0,0 +1,213 @@
'use strict'
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 () {
const json = [
{
help: 'counter 1 help',
name: 'counter1',
type: 'counter',
values: [{ value: 11, labels: {} }],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json)
expect(influx).to.be.equal('prometheus counter1=11')
})
it('converts a counter (from prometheus registry)', function () {
const register = new prometheus.Registry()
const counter = new prometheus.Counter({
name: 'counter1',
help: 'counter 1 help',
registers: [register],
})
counter.inc(11)
const influx = promClientJsonToInfluxV2(register.getMetricsAsJSON())
expect(influx).to.be.equal('prometheus counter1=11')
})
it('converts a gauge', function () {
const json = [
{
help: 'gause 1 help',
name: 'gauge1',
type: 'gauge',
values: [{ value: 20, labels: {} }],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json)
expect(influx).to.be.equal('prometheus gauge1=20')
})
it('converts a gauge (from prometheus registry)', function () {
const register = new prometheus.Registry()
const gauge = new prometheus.Gauge({
name: 'gauge1',
help: 'gauge 1 help',
registers: [register],
})
gauge.inc(20)
const influx = promClientJsonToInfluxV2(register.getMetricsAsJSON())
expect(influx).to.be.equal('prometheus gauge1=20')
})
const sortLines = text => text.split('\n').sort().join('\n')
it('converts a histogram', function () {
const json = [
{
name: 'histogram1',
help: 'histogram 1 help',
type: 'histogram',
values: [
{ labels: { le: 5 }, value: 1, metricName: 'histogram1_bucket' },
{ labels: { le: 15 }, value: 2, metricName: 'histogram1_bucket' },
{ labels: { le: 50 }, value: 2, metricName: 'histogram1_bucket' },
{
labels: { le: '+Inf' },
value: 3,
metricName: 'histogram1_bucket',
},
{ labels: {}, value: 111, metricName: 'histogram1_sum' },
{ labels: {}, value: 3, metricName: 'histogram1_count' },
],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json)
expect(sortLines(influx)).to.be.equal(
sortLines(`prometheus,le=+Inf histogram1_bucket=3
prometheus,le=50 histogram1_bucket=2
prometheus,le=15 histogram1_bucket=2
prometheus,le=5 histogram1_bucket=1
prometheus histogram1_count=3,histogram1_sum=111`)
)
})
it('converts a histogram (from prometheus registry)', function () {
const register = new prometheus.Registry()
const histogram = new prometheus.Histogram({
name: 'histogram1',
help: 'histogram 1 help',
buckets: [5, 15, 50],
registers: [register],
})
histogram.observe(100)
histogram.observe(10)
histogram.observe(1)
const influx = promClientJsonToInfluxV2(register.getMetricsAsJSON())
expect(sortLines(influx)).to.be.equal(
sortLines(`prometheus,le=+Inf histogram1_bucket=3
prometheus,le=50 histogram1_bucket=2
prometheus,le=15 histogram1_bucket=2
prometheus,le=5 histogram1_bucket=1
prometheus histogram1_count=3,histogram1_sum=111`)
)
})
it('converts a summary', function () {
const json = [
{
name: 'summary1',
help: 'summary 1 help',
type: 'summary',
values: [
{ labels: { quantile: 0.1 }, value: 1 },
{ labels: { quantile: 0.9 }, value: 100 },
{ labels: { quantile: 0.99 }, value: 100 },
{ metricName: 'summary1_sum', labels: {}, value: 111 },
{ metricName: 'summary1_count', labels: {}, value: 3 },
],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json)
expect(sortLines(influx)).to.be.equal(
sortLines(`prometheus,quantile=0.99 summary1=100
prometheus,quantile=0.9 summary1=100
prometheus,quantile=0.1 summary1=1
prometheus summary1_count=3,summary1_sum=111`)
)
})
it('converts a summary (from prometheus registry)', function () {
const register = new prometheus.Registry()
const summary = new prometheus.Summary({
name: 'summary1',
help: 'summary 1 help',
percentiles: [0.1, 0.9, 0.99],
registers: [register],
})
summary.observe(100)
summary.observe(10)
summary.observe(1)
const influx = promClientJsonToInfluxV2(register.getMetricsAsJSON())
expect(sortLines(influx)).to.be.equal(
sortLines(`prometheus,quantile=0.99 summary1=100
prometheus,quantile=0.9 summary1=100
prometheus,quantile=0.1 summary1=1
prometheus summary1_count=3,summary1_sum=111`)
)
})
it('converts a counter and skip a timestamp', function () {
const json = [
{
help: 'counter 4 help',
name: 'counter4',
type: 'counter',
values: [{ value: 11, labels: {}, timestamp: 1581850552292 }],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json)
expect(influx).to.be.equal('prometheus counter4=11')
})
it('converts a counter and adds extra labels', function () {
const json = [
{
help: 'counter 1 help',
name: 'counter1',
type: 'counter',
values: [{ value: 11, labels: {} }],
aggregator: 'sum',
},
]
const influx = promClientJsonToInfluxV2(json, {
instance: 'instance1',
env: 'production',
})
expect(influx).to.be.equal(
'prometheus,env=production,instance=instance1 counter1=11'
)
})
})
})

View File

@@ -20,12 +20,12 @@ 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) => {
@@ -39,11 +39,8 @@ function setRoutes({ rateLimit }, { server, metricInstance }) {
const ip =
(req.headers['x-forwarded-for'] || '').split(', ')[0] ||
req.socket.remoteAddress
const badgeType = req.url
.split(/[/-]/)
.slice(0, 3)
.join('')
const referer = req.headers['referer']
const badgeType = req.url.split(/[/-]/).slice(0, 3).join('')
const referer = req.headers.referer
if (ipRateLimit.isBanned(ip, req, res)) {
metricInstance.noteRateLimitExceeded('ip')
@@ -91,7 +88,7 @@ function setRoutes({ rateLimit }, { server, metricInstance }) {
})
})
return function() {
return function () {
ipRateLimit.stop()
badgeTypeRateLimit.stop()
refererRateLimit.stop()

View File

@@ -4,8 +4,8 @@ const decamelize = require('decamelize')
const prometheus = require('prom-client')
module.exports = class PrometheusMetrics {
constructor() {
this.register = new prometheus.Registry()
constructor({ register } = {}) {
this.register = register || new prometheus.Registry()
this.counters = {
numRequests: new prometheus.Counter({
name: 'service_requests_total',
@@ -59,12 +59,22 @@ module.exports = class PrometheusMetrics {
labelNames: ['rate_limit_type'],
registers: [this.register],
}),
serviceResponseSize: new prometheus.Histogram({
name: 'service_response_bytes',
help: 'Service response size in bytes',
labelNames: ['category', 'family', 'service'],
// buckets: 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB
buckets: prometheus.exponentialBuckets(64 * 1024, 2, 8),
registers: [this.register],
}),
}
this.interval = prometheus.collectDefaultMetrics({
register: this.register,
})
}
async initialize(server) {
async registerMetricsEndpoint(server) {
const { register } = this
this.interval = prometheus.collectDefaultMetrics({ register })
server.route(/^\/metrics$/, (data, match, end, ask) => {
ask.res.setHeader('Content-Type', register.contentType)
@@ -80,7 +90,15 @@ module.exports = class PrometheusMetrics {
}
}
metrics() {
return this.register.getMetricsAsJSON()
}
/**
* @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 }) {
@@ -95,4 +113,13 @@ module.exports = class PrometheusMetrics {
noteRateLimitExceeded(rateLimitType) {
return this.counters.rateLimitExceeded.labels(rateLimitType).inc()
}
createServiceResponseSizeHistogram({ category, serviceFamily, name }) {
const service = decamelize(name)
return this.counters.serviceResponseSize.labels(
category,
serviceFamily,
service
)
}
}

View File

@@ -1,32 +1,32 @@
'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() {
let port, baseUrl
beforeEach(async function() {
describe('Prometheus metrics route', function () {
let port, baseUrl, camp, metrics
beforeEach(async function () {
port = await portfinder.getPortPromise()
baseUrl = `http://127.0.0.1:${port}`
})
let camp
beforeEach(async function() {
camp = Camp.start({ port, hostname: '::' })
await new Promise(resolve => camp.on('listening', () => resolve()))
})
afterEach(async function() {
afterEach(async function () {
if (metrics) {
metrics.stop()
}
if (camp) {
await new Promise(resolve => camp.close(resolve))
camp = undefined
}
})
it('returns metrics', async function() {
new Metrics({ enabled: true }).initialize(camp)
it('returns default metrics', async function () {
metrics = new Metrics()
metrics.registerMetricsEndpoint(camp)
const { statusCode, body } = await got(`${baseUrl}/metrics`)

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

@@ -5,10 +5,11 @@
const path = require('path')
const url = require('url')
const { URL } = url
const bytes = require('bytes')
const Joi = require('@hapi/joi')
const Camp = require('camp')
const makeBadge = require('../../gh-badges/lib/make-badge')
const Camp = require('@shields_io/camp')
const originalJoi = require('@hapi/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')
@@ -22,25 +23,88 @@ const { rasterRedirectUrl } = require('../badge-urls/make-badge-url')
const log = require('./log')
const sysMonitor = require('./monitor')
const PrometheusMetrics = require('./prometheus-metrics')
const InfluxMetrics = require('./influx-metrics')
const Joi = originalJoi
.extend(base => ({
type: 'arrayFromString',
base: base.array(),
coerce: (value, state, options) => ({
value: typeof value === 'string' ? value.split(' ') : value,
}),
}))
.extend(base => ({
type: 'string',
base: base.string(),
messages: {
'string.origin':
'needs to be an origin string, e.g. https://host.domain with optional port and no trailing slash',
},
rules: {
origin: {
validate(value, helpers) {
let origin
try {
;({ origin } = new URL(value))
} catch (e) {}
if (origin !== undefined && origin === value) {
return value
} else {
return helpers.error('string.origin')
}
},
},
},
}))
const optionalUrl = Joi.string().uri({ scheme: ['http', 'https'] })
const requiredUrl = optionalUrl.required()
const origins = Joi.arrayFromString().items(Joi.string().origin())
const defaultService = Joi.object({ authorizedOrigins: origins }).default({
authorizedOrigins: [],
})
const publicConfigSchema = Joi.object({
bind: {
port: Joi.number().port(),
port: Joi.alternatives().try(
Joi.number().port(),
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: {
prometheus: {
enabled: Joi.boolean().required(),
endpointEnabled: Joi.boolean().required(),
},
influx: {
enabled: Joi.boolean().required(),
url: Joi.string()
.uri()
.when('enabled', { is: true, then: Joi.required() }),
timeoutMilliseconds: Joi.number()
.integer()
.min(1)
.when('enabled', { is: true, then: Joi.required() }),
intervalSeconds: Joi.number()
.integer()
.min(1)
.when('enabled', { is: true, then: Joi.required() }),
instanceIdFrom: Joi.string()
.equal('hostname', 'env-var', 'random')
.when('enabled', { is: true, then: Joi.required() }),
instanceIdEnvVarName: Joi.string().when('instanceIdFrom', {
is: 'env-var',
then: Joi.required(),
}),
envLabel: Joi.string().when('enabled', {
is: true,
then: Joi.required(),
}),
hostnameAliases: Joi.object(),
},
},
ssl: {
@@ -51,43 +115,47 @@ const publicConfigSchema = Joi.object({
redirectUrl: optionalUrl,
rasterUrl: optionalUrl,
cors: {
allowedOrigin: Joi.array()
.items(optionalUrl)
.required(),
allowedOrigin: Joi.array().items(optionalUrl).required(),
},
persistence: {
dir: Joi.string().required(),
},
services: {
services: Joi.object({
bitbucketServer: defaultService,
drone: defaultService,
github: {
baseUri: requiredUrl,
debug: {
enabled: Joi.boolean().required(),
intervalSeconds: Joi.number()
.integer()
.min(1)
.required(),
intervalSeconds: Joi.number().integer().min(1).required(),
},
},
jira: defaultService,
jenkins: Joi.object({
authorizedOrigins: origins,
requireStrictSsl: Joi.boolean(),
requireStrictSslToAuthenticate: Joi.boolean(),
}).default({ authorizedOrigins: [] }),
nexus: defaultService,
npm: defaultService,
sonar: defaultService,
teamcity: defaultService,
trace: Joi.boolean().required(),
},
profiling: {
makeBadge: Joi.boolean().required(),
},
}).required(),
cacheHeaders: {
defaultCacheLengthSeconds: Joi.number()
.integer()
.required(),
defaultCacheLengthSeconds: Joi.number().integer().required(),
},
rateLimit: Joi.boolean().required(),
handleInternalErrors: Joi.boolean().required(),
fetchLimit: Joi.string().regex(/^[0-9]+(b|kb|mb|gb|tb)$/i),
shieldsProductionHerokuHacks: Joi.boolean(),
}).required()
const privateConfigSchema = Joi.object({
azure_devops_token: Joi.string(),
bintray_user: Joi.string(),
bintray_apikey: Joi.string(),
drone_token: Joi.string(),
gh_client_id: Joi.string(),
gh_client_secret: Joi.string(),
gh_token: Joi.string(),
@@ -105,11 +173,19 @@ const privateConfigSchema = Joi.object({
sl_insight_userUuid: Joi.string(),
sl_insight_apiToken: Joi.string(),
sonarqube_token: Joi.string(),
teamcity_user: Joi.string(),
teamcity_pass: Joi.string(),
twitch_client_id: Joi.string(),
twitch_client_secret: Joi.string(),
wheelmap_token: Joi.string(),
influx_username: Joi.string(),
influx_password: Joi.string(),
youtube_api_key: Joi.string(),
}).required()
const privateMetricsInfluxConfigSchema = privateConfigSchema.append({
influx_username: Joi.string().required(),
influx_password: Joi.string().required(),
})
/**
* The Server is based on the web framework Scoutcamp. It creates
* an http server, sets up helpers for token persistence and monitoring.
@@ -121,22 +197,25 @@ class Server {
* Badge Server Constructor
*
* @param {object} config Configuration object read from config yaml files
* by https://www.npmjs.com/package/config and validated against
* publicConfigSchema and privateConfigSchema
* by https://www.npmjs.com/package/config and validated against
* publicConfigSchema and privateConfigSchema
* @see https://github.com/badges/shields/blob/master/doc/production-hosting.md#configuration
* @see https://github.com/badges/shields/blob/master/doc/server-secrets.md
*/
constructor(config) {
const publicConfig = Joi.attempt(config.public, publicConfigSchema)
let privateConfig
try {
privateConfig = Joi.attempt(config.private, privateConfigSchema)
} catch (e) {
const badPaths = e.details.map(({ path }) => path)
throw Error(
`Private configuration is invalid. Check these paths: ${badPaths.join(
','
)}`
const privateConfig = this.validatePrivateConfig(
config.private,
privateConfigSchema
)
// We want to require an username and a password for the influx metrics
// only if the influx metrics are enabled. The private config schema
// and the public config schema are two separate schemas so we have to run
// validation manually.
if (publicConfig.metrics.influx && publicConfig.metrics.influx.enabled) {
this.validatePrivateConfig(
config.private,
privateMetricsInfluxConfigSchema
)
}
this.config = {
@@ -149,8 +228,31 @@ class Server {
service: publicConfig.services.github,
private: privateConfig,
})
if (publicConfig.metrics.prometheus.enabled) {
this.metricInstance = new PrometheusMetrics()
if (publicConfig.metrics.influx.enabled) {
this.influxMetrics = new InfluxMetrics(
this.metricInstance,
Object.assign({}, publicConfig.metrics.influx, {
username: privateConfig.influx_username,
password: privateConfig.influx_password,
})
)
}
}
}
validatePrivateConfig(privateConfig, privateConfigSchema) {
try {
return Joi.attempt(privateConfig, privateConfigSchema)
} catch (e) {
const badPaths = e.details.map(({ path }) => path)
throw Error(
`Private configuration is invalid. Check these paths: ${badPaths.join(
','
)}`
)
}
}
@@ -187,7 +289,11 @@ class Server {
camp.route(/\.(gif|jpg)$/, (query, match, end, request) => {
const [, format] = match
makeSend('svg', request.res, end)(
makeSend(
'svg',
request.res,
end
)(
makeBadge({
text: ['410', `${format} no longer available`],
color: 'lightgray',
@@ -198,7 +304,11 @@ class Server {
if (!rasterUrl) {
camp.route(/\.png$/, (query, match, end, request) => {
makeSend('svg', request.res, end)(
makeSend(
'svg',
request.res,
end
)(
makeBadge({
text: ['404', 'raster badges not available'],
color: 'lightgray',
@@ -212,7 +322,11 @@ class Server {
const [, extension] = match
const format = (extension || '.svg').replace(/^\./, '')
makeSend(format, request.res, end)(
makeSend(
format,
request.res,
end
)(
makeBadge({
text: ['404', 'badge not found'],
color: 'red',
@@ -274,10 +388,12 @@ class Server {
{
handleInternalErrors: config.public.handleInternalErrors,
cacheHeaders: config.public.cacheHeaders,
profiling: config.public.profiling,
fetchLimitBytes: bytes(config.public.fetchLimit),
rasterUrl: config.public.rasterUrl,
private: config.private,
public: config.public,
shieldsProductionHerokuHacks:
config.public.shieldsProductionHerokuHacks,
}
)
)
@@ -299,7 +415,7 @@ class Server {
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,
@@ -315,24 +431,25 @@ class Server {
)
const { githubConstellation } = this
githubConstellation.initialize(camp)
await githubConstellation.initialize(camp)
if (metricInstance) {
metricInstance.initialize(camp)
if (this.config.public.metrics.prometheus.endpointEnabled) {
metricInstance.registerMetricsEndpoint(camp)
}
if (this.influxMetrics) {
this.influxMetrics.startPushingMetrics()
}
}
const { apiProvider: githubApiProvider } = this.githubConstellation
suggest.setRoutes(allowedOrigin, githubApiProvider, camp)
// https://github.com/badges/shields/issues/3273
camp.handle((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*')
next()
})
this.registerErrorHandlers()
this.registerRedirects()
this.registerServices()
camp.listenAsConfigured()
await new Promise(resolve => camp.on('listening', () => resolve()))
}
@@ -367,6 +484,9 @@ class Server {
}
if (this.metricInstance) {
if (this.influxMetrics) {
this.influxMetrics.stopPushingMetrics()
}
this.metricInstance.stop()
}
}

View File

@@ -2,159 +2,331 @@
const { expect } = require('chai')
const isSvg = require('is-svg')
const portfinder = require('portfinder')
const config = require('config')
const got = require('../got-test-client')
const Server = require('./server')
const { createTestServer } = require('./in-process-server-test-helpers')
describe('The server', function() {
let server, baseUrl
before('Start the server', async function() {
// Fixes https://github.com/badges/shields/issues/2611
this.timeout(10000)
const port = await portfinder.getPortPromise()
server = createTestServer({ port })
baseUrl = server.baseUrl
await server.start()
})
after('Shut down the server', async function() {
if (server) {
await server.stop()
}
server = undefined
})
it('should produce colorscheme badges', 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')
.and.to.include('apple')
})
it('should redirect colorscheme PNG badges as configured', async function() {
const { statusCode, headers } = await got(
`${baseUrl}:fruit-apple-green.png`,
{
followRedirect: false,
describe('The server', function () {
describe('running', function () {
let server, baseUrl
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 () {
if (server) {
await server.stop()
}
)
expect(statusCode).to.equal(301)
expect(headers.location).to.equal(
'http://raster.example.test/:fruit-apple-green.png'
)
})
it('should redirect modern PNG badges as configured', async function() {
const { statusCode, headers } = await got(`${baseUrl}npm/v/express.png`, {
followRedirect: false,
})
expect(statusCode).to.equal(301)
expect(headers.location).to.equal(
'http://raster.example.test/npm/v/express.png'
)
})
it('should produce json badges', async function() {
const { statusCode, body, headers } = await got(
`${baseUrl}npm/v/express.json`
)
expect(statusCode).to.equal(200)
expect(headers['content-type']).to.equal('application/json')
expect(() => JSON.parse(body)).not.to.throw()
})
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')
})
// https://github.com/badges/shields/pull/1319
it('should not crash with a numeric logo', async function() {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?logo=1`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should not crash with a numeric link', async function() {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=1`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should not crash with a boolean link', async function() {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=true`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should return the 404 badge for unknown badges', async function() {
const { statusCode, body } = await got(
`${baseUrl}this/is/not/a/badge.svg`,
{ throwHttpErrors: false }
)
expect(statusCode).to.equal(404)
expect(body)
.to.satisfy(isSvg)
.and.to.include('404')
.and.to.include('badge not found')
})
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`,
{ throwHttpErrors: false }
)
expect(statusCode).to.equal(404)
expect(body)
.to.satisfy(isSvg)
.and.to.include('404')
.and.to.include('badge not found')
})
it('should redirect the root as configured', async function() {
const { statusCode, headers } = await got(baseUrl, {
followRedirect: false,
server = undefined
})
expect(statusCode).to.equal(302)
// This value is set in `config/test.yml`
expect(headers.location).to.equal('http://frontend.example.test')
})
it('should return the 410 badge for obsolete formats', async function() {
const { statusCode, body } = await got(`${baseUrl}npm/v/express.jpg`, {
throwHttpErrors: false,
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: {
bind: {
port: '\\\\.\\pipe\\9c137306-7c4d-461e-b7cf-5213a3939ad6',
},
},
})
expect(pipeServer).to.not.be.undefined
})
it('should produce colorscheme badges', 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')
.and.to.include('apple')
})
it('should redirect colorscheme PNG badges as configured', async function () {
const { statusCode, headers } = await got(
`${baseUrl}:fruit-apple-green.png`,
{
followRedirect: false,
}
)
expect(statusCode).to.equal(301)
expect(headers.location).to.equal(
'http://raster.example.test/:fruit-apple-green.png'
)
})
it('should redirect modern PNG badges as configured', async function () {
const { statusCode, headers } = await got(`${baseUrl}npm/v/express.png`, {
followRedirect: false,
})
expect(statusCode).to.equal(301)
expect(headers.location).to.equal(
'http://raster.example.test/npm/v/express.png'
)
})
it('should produce json badges', async function () {
const { statusCode, body, headers } = await got(
`${baseUrl}twitter/follow/_Pyves.json`
)
expect(statusCode).to.equal(200)
expect(headers['content-type']).to.equal('application/json')
expect(() => JSON.parse(body)).not.to.throw()
})
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')
})
// https://github.com/badges/shields/pull/1319
it('should not crash with a numeric logo', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?logo=1`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should not crash with a numeric link', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=1`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should not crash with a boolean link', async function () {
const { statusCode, body } = await got(
`${baseUrl}:fruit-apple-green.svg?link=true`
)
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('fruit')
.and.to.include('apple')
})
it('should return the 404 badge for unknown badges', async function () {
const { statusCode, body } = await got(
`${baseUrl}this/is/not/a/badge.svg`,
{
throwHttpErrors: false,
}
)
expect(statusCode).to.equal(404)
expect(body)
.to.satisfy(isSvg)
.and.to.include('404')
.and.to.include('badge not found')
})
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`,
{
throwHttpErrors: false,
}
)
expect(statusCode).to.equal(404)
expect(body)
.to.satisfy(isSvg)
.and.to.include('404')
.and.to.include('badge not found')
})
it('should redirect the root as configured', async function () {
const { statusCode, headers } = await got(baseUrl, {
followRedirect: false,
})
expect(statusCode).to.equal(302)
// This value is set in `config/test.yml`
expect(headers.location).to.equal('http://frontend.example.test')
})
it('should return the 410 badge for obsolete formats', async function () {
const { statusCode, body } = await got(`${baseUrl}npm/v/express.jpg`, {
throwHttpErrors: false,
})
// TODO It would be nice if this were 404 or 410.
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('410')
.and.to.include('jpg no longer available')
})
// TODO It would be nice if this were 404 or 410.
expect(statusCode).to.equal(200)
expect(body)
.to.satisfy(isSvg)
.and.to.include('410')
.and.to.include('jpg no longer available')
})
it('should return cors header for the request', async function() {
const { statusCode, headers } = await got(`${baseUrl}npm/v/express.svg`)
expect(statusCode).to.equal(200)
expect(headers['access-control-allow-origin']).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({
public: {
metrics: { prometheus: { enabled: true, endpointEnabled: true } },
},
})
await server.start()
const { statusCode } = await got(`${server.baseUrl}metrics`)
expect(statusCode).to.be.equal(200)
})
it('should allow to disable prometheus metrics', async function () {
// Fixes https://github.com/badges/shields/issues/2611
this.timeout(10000)
server = await createTestServer({
public: {
metrics: { prometheus: { enabled: true, endpointEnabled: false } },
},
})
await server.start()
const { statusCode } = await got(`${server.baseUrl}metrics`, {
throwHttpErrors: false,
})
expect(statusCode).to.be.equal(404)
})
})
describe('configuration validation', function () {
describe('influx', function () {
let customConfig
beforeEach(function () {
customConfig = config.util.toObject()
customConfig.public.metrics.influx = {
enabled: true,
url: 'http://localhost:8081/telegraf',
timeoutMilliseconds: 1000,
intervalSeconds: 2,
instanceIdFrom: 'random',
instanceIdEnvVarName: 'INSTANCE_ID',
hostnameAliases: { 'metrics-hostname': 'metrics-hostname-alias' },
envLabel: 'test-env',
}
customConfig.private = {
influx_username: 'telegraf',
influx_password: 'telegrafpass',
}
})
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 () {
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 () {
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 () {
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 () {
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 () {
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 () {
customConfig.public.metrics.influx.instanceIdFrom = 'env-var'
delete customConfig.public.metrics.influx.instanceIdEnvVarName
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.instanceIdEnvVarName" is required'
)
})
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 () {
customConfig.public.metrics.influx.instanceIdFrom = 'env-var'
expect(() => new Server(customConfig)).to.not.throw()
})
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 () {
delete customConfig.public.metrics.influx.envLabel
expect(() => new Server(customConfig)).to.throw(
'"metrics.influx.envLabel" is required'
)
})
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 () {
customConfig.public.metrics.influx.hostnameAliases = {}
expect(() => new Server(customConfig)).to.not.throw()
})
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 () {
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 () {
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,11 +73,17 @@ if (process.env.TESTED_SERVER_URL) {
} else {
const port = 1111
baseUrl = 'http://localhost:1111'
before('Start running the server', function() {
server = createTestServer({ port })
before('Start running the server', async function () {
server = await createTestServer({
public: {
bind: {
port,
},
},
})
server.start()
})
after('Shut down the server', async function() {
after('Shut down the server', async function () {
if (server) {
await server.stop()
}
@@ -125,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

@@ -22,6 +22,14 @@ const factory = superclass =>
this.intercepted = false
}
get(uri, options = { followRedirect: false }) {
if (!options.followRedirect) {
options.followRedirect = false
}
super.get(uri, options)
return this
}
intercept(setup) {
super.intercept(setup)
this.intercepted = true
@@ -51,6 +59,10 @@ const factory = superclass =>
})
}
expectRedirect(location) {
return this.expectStatus(301).expectHeader('Location', location)
}
static _expectField(json, name, expected) {
if (typeof expected === 'undefined') return
if (typeof expected === 'string' || typeof expected === 'number') {

View File

@@ -6,7 +6,7 @@ const {
inferPullRequest,
} = require('./infer-pull-request')
describe('Pull request inference', function() {
describe('Pull request inference', function () {
test(parseGithubPullRequestUrl, () => {
forCases([
given('https://github.com/badges/shields/pull/1234'),

View File

@@ -25,9 +25,11 @@ async function getTitle(owner, repo, pullRequest) {
} = await got(
`https://api.github.com/repos/${owner}/${repo}/pulls/${pullRequest}`,
{
headers: { 'User-Agent': 'badges/shields' },
query: { access_token: process.env.GITHUB_TOKEN },
json: true,
headers: {
'User-Agent': 'badges/shields',
Authorization: `token ${process.env.GITHUB_TOKEN}`,
},
responseType: 'json',
}
)
return title

View File

@@ -25,7 +25,7 @@ class ServiceTester {
* Specifies which tests to run from the CLI or pull requests
* @param {string} attrs.title
* Prints in the Mocha output
* @param {string} attrs.path
* @param {string} attrs.pathPrefix
* Prefix which is automatically prepended to each tested URI.
* The default is `/${attrs.id}`.
*/
@@ -85,7 +85,7 @@ class ServiceTester {
this.beforeEach()
})
// eslint-disable-next-line mocha/prefer-arrow-callback
.finally(function() {
.finally(function () {
// `this` is the IcedFrisby instance.
let responseBody
try {
@@ -119,20 +119,20 @@ class ServiceTester {
* @param {number} attrs.retry.count number of times to retry test
* @param {number} attrs.retry.backoff number of milliseconds to add to the wait between each retry
*/
toss({ baseUrl, skipIntercepted, retry }) {
toss({ baseUrl, skipIntercepted, retry: { count, backoff } }) {
const { specs, pathPrefix } = this
const testerBaseUrl = `${baseUrl}${pathPrefix}`
const fn = this._only ? describe.only : describe
// eslint-disable-next-line mocha/prefer-arrow-callback
fn(this.title, function() {
fn(this.title, function () {
specs.forEach(spec => {
spec._message = `[${spec.hasIntercept ? 'mocked' : 'live'}] ${
spec._message
}`
if (!skipIntercepted || !spec.intercepted) {
spec.baseUri(testerBaseUrl)
spec.retry(retry.count, retry.backoff)
spec.retry(count, backoff)
spec.toss()
}
})

View File

@@ -3,7 +3,7 @@
const { test, given } = require('sazerac')
const servicesForTitle = require('./services-for-title')
describe('Services from PR title', function() {
describe('Services from PR title', function () {
test(servicesForTitle, () => {
given('[Travis] Fix timeout issues').expect(['travis'])
given('[Travis Sonar] Support user token authentication').expect([

View File

@@ -6,20 +6,20 @@ const readFile = require('fs-readfile-promise')
const { expect } = require('chai')
const FsTokenPersistence = require('./fs-token-persistence')
describe('File system token persistence', function() {
describe('File system token persistence', function () {
let path, persistence
beforeEach(function() {
beforeEach(function () {
path = tmp.tmpNameSync()
persistence = new FsTokenPersistence({ path })
})
context('when the file does not exist', function() {
it('does nothing', async function() {
context('when the file does not exist', function () {
it('does nothing', async function () {
const tokens = await persistence.initialize()
expect(tokens).to.deep.equal([])
})
it('saving creates an empty file', async function() {
it('saving creates an empty file', async function () {
await persistence.initialize()
await persistence.save()
@@ -29,20 +29,20 @@ describe('File system token persistence', function() {
})
})
context('when the file exists', function() {
context('when the file exists', function () {
const initialTokens = ['a', 'b', 'c'].map(char => char.repeat(40))
beforeEach(async function() {
beforeEach(async function () {
fs.writeFileSync(path, JSON.stringify(initialTokens))
})
it('loads the contents', async function() {
it('loads the contents', async function () {
const tokens = await persistence.initialize()
expect(tokens).to.deep.equal(initialTokens)
})
context('when tokens are added', function() {
it('saves the change', async function() {
context('when tokens are added', function () {
it('saves the change', async function () {
const newToken = 'e'.repeat(40)
const expected = Array.from(initialTokens)
expected.push(newToken)
@@ -55,8 +55,8 @@ describe('File system token persistence', function() {
})
})
context('when tokens are removed', function() {
it('saves the change', async function() {
context('when tokens are removed', function () {
it('saves the change', async function () {
const expected = Array.from(initialTokens)
const toRemove = expected.pop()

View File

@@ -5,11 +5,11 @@ const Redis = require('ioredis')
const { expect } = require('chai')
const RedisTokenPersistence = require('./redis-token-persistence')
describe('Redis token persistence', function() {
describe('Redis token persistence', function () {
let server
// In CI, expect redis already to be running.
if (!process.env.CI) {
beforeEach(async function() {
beforeEach(async function () {
server = new RedisServer({ config: { host: 'localhost' } })
await server.open()
})
@@ -18,11 +18,11 @@ describe('Redis token persistence', function() {
const key = 'tokenPersistenceIntegrationTest'
let redis
beforeEach(async function() {
beforeEach(async function () {
redis = new Redis()
await redis.del(key)
})
afterEach(async function() {
afterEach(async function () {
if (redis) {
await redis.quit()
redis = undefined
@@ -30,44 +30,44 @@ describe('Redis token persistence', function() {
})
if (!process.env.CI) {
afterEach(async function() {
afterEach(async function () {
await server.close()
server = undefined
})
}
let persistence
beforeEach(function() {
beforeEach(function () {
persistence = new RedisTokenPersistence({ key })
})
afterEach(async function() {
afterEach(async function () {
if (persistence) {
await persistence.stop()
persistence = undefined
}
})
context('when the key does not exist', function() {
it('does nothing', async function() {
context('when the key does not exist', function () {
it('does nothing', async function () {
const tokens = await persistence.initialize()
expect(tokens).to.deep.equal([])
})
})
context('when the key exists', function() {
context('when the key exists', function () {
const initialTokens = ['a', 'b', 'c'].map(char => char.repeat(40))
beforeEach(async function() {
beforeEach(async function () {
await redis.sadd(key, initialTokens)
})
it('loads the contents', async function() {
it('loads the contents', async function () {
const tokens = await persistence.initialize()
expect(tokens.sort()).to.deep.equal(initialTokens)
})
context('when tokens are added', function() {
it('saves the change', async function() {
context('when tokens are added', function () {
it('saves the change', async function () {
const newToken = 'e'.repeat(40)
const expected = initialTokens.slice()
expected.push(newToken)
@@ -80,8 +80,8 @@ describe('Redis token persistence', function() {
})
})
context('when tokens are removed', function() {
it('saves the change', async function() {
context('when tokens are removed', function () {
it('saves the change', async function () {
const expected = Array.from(initialTokens)
const toRemove = expected.pop()

View File

@@ -13,10 +13,7 @@ const PriorityQueue = require('priorityqueuejs')
* @returns {string} hash
*/
function sanitizeToken(id) {
return crypto
.createHash('sha256')
.update(id, 'utf-8')
.digest('hex')
return crypto.createHash('sha256').update(id, 'utf-8').digest('hex')
}
function getUtcEpochSeconds() {
@@ -55,18 +52,23 @@ class Token {
get id() {
return this._id
}
get data() {
return this._data
}
get usesRemaining() {
return this._usesRemaining
}
get nextReset() {
return this._nextReset
}
get isValid() {
return this._isValid
}
get isFrozen() {
return this._isFrozen
}

View File

@@ -11,27 +11,27 @@ function expectPoolToBeExhausted(pool) {
}).to.throw(Error, /^Token pool is exhausted$/)
}
describe('The token pool', function() {
describe('The token pool', function () {
const ids = ['1', '2', '3', '4', '5']
const batchSize = 3
let tokenPool
beforeEach(function() {
beforeEach(function () {
tokenPool = new TokenPool({ batchSize })
ids.forEach(id => tokenPool.add(id))
})
it('allValidTokenIds() should return the full list', function() {
it('allValidTokenIds() should return the full list', function () {
expect(tokenPool.allValidTokenIds()).to.deep.equal(ids)
})
it('should yield the expected tokens', function() {
it('should yield the expected tokens', function () {
ids.forEach(id =>
times(batchSize, () => expect(tokenPool.next().id).to.equal(id))
)
})
it('should repeat when reaching the end', function() {
it('should repeat when reaching the end', function () {
ids.forEach(id =>
times(batchSize, () => expect(tokenPool.next().id).to.equal(id))
)
@@ -40,17 +40,17 @@ describe('The token pool', function() {
)
})
describe('serializeDebugInfo should initially return the expected', function() {
beforeEach(function() {
describe('serializeDebugInfo should initially return the expected', function () {
beforeEach(function () {
sinon.useFakeTimers({ now: 1544307744484 })
})
afterEach(function() {
afterEach(function () {
sinon.restore()
})
context('sanitize is not specified', function() {
it('returns fully sanitized results', function() {
context('sanitize is not specified', function () {
it('returns fully sanitized results', function () {
// This is `sha()` of '1', '2', '3', '4', '5'. These are written
// literally for avoidance of doubt as to whether sanitization is
// happening.
@@ -79,8 +79,8 @@ describe('The token pool', function() {
})
})
context('with sanitize: false', function() {
it('returns unsanitized results', function() {
context('with sanitize: false', function () {
it('returns unsanitized results', function () {
expect(tokenPool.serializeDebugInfo({ sanitize: false })).to.deep.equal(
{
allValidTokenIds: ids,
@@ -101,8 +101,8 @@ describe('The token pool', function() {
})
})
context('tokens are marked exhausted immediately', function() {
it('should be exhausted', function() {
context('tokens are marked exhausted immediately', function () {
it('should be exhausted', function () {
ids.forEach(() => {
const token = tokenPool.next()
token.update(0, Token.nextResetNever)
@@ -112,8 +112,8 @@ describe('The token pool', function() {
})
})
context('tokens are marked after the last request', function() {
it('should be exhausted', function() {
context('tokens are marked after the last request', function () {
it('should be exhausted', function () {
ids.forEach(() => {
const token = times(batchSize, () => tokenPool.next()).pop()
token.update(0, Token.nextResetNever)
@@ -123,8 +123,8 @@ describe('The token pool', function() {
})
})
context('tokens are renewed', function() {
it('should keep using them', function() {
context('tokens are renewed', function () {
it('should keep using them', function () {
const tokensToRenew = ['2', '4']
const renewalCount = 3
@@ -149,16 +149,16 @@ describe('The token pool', function() {
})
})
context('tokens reset', function() {
context('tokens reset', function () {
let clock
beforeEach(function() {
beforeEach(function () {
clock = sinon.useFakeTimers()
})
afterEach(function() {
afterEach(function () {
clock.restore()
})
it('should start using them', function() {
it('should start using them', function () {
const tokensToReset = ['2', '4']
const futureTime = 1440
@@ -183,8 +183,8 @@ describe('The token pool', function() {
})
})
context('when empty', function() {
it('next() should return the expected error', function() {
context('when empty', function () {
it('next() should return the expected error', function () {
const tokenPool = new TokenPool()
expect(() => tokenPool.next()).to.throw('Token pool is exhausted')
})

View File

@@ -1,19 +1,17 @@
'use strict'
describe('Main page', function() {
describe('Main page', function () {
const backendUrl = Cypress.env('backend_url')
const SEARCH_INPUT = 'input[placeholder="search / project URL"]'
function expectBadgeExample(title, previewUrl, pattern) {
cy.contains('tr', `${title}:`)
.find('code')
.should('have.text', pattern)
cy.contains('tr', `${title}:`).find('code').should('have.text', pattern)
cy.contains('tr', `${title}:`)
.find('img')
.should('have.attr', 'src', previewUrl)
}
it('Search for badges', function() {
it('Search for badges', function () {
cy.visit('/')
cy.get(SEARCH_INPUT).type('pypi')
@@ -21,7 +19,7 @@ describe('Main page', function() {
cy.contains('PyPI - License')
})
it('Shows badge from category', function() {
it('Shows badge from category', function () {
cy.visit('/category/chat')
expectBadgeExample(
@@ -31,7 +29,7 @@ describe('Main page', function() {
)
})
it('Suggest badges', function() {
it('Suggest badges', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
@@ -41,7 +39,7 @@ describe('Main page', function() {
expectBadgeExample('GitHub issues', badgeUrl, badgeUrl)
})
it('Customization form is filled with suggested badge details', function() {
it('Customization form is filled with suggested badge details', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
cy.get(SEARCH_INPUT).type('https://github.com/badges/shields')
@@ -53,7 +51,7 @@ describe('Main page', function() {
cy.get('input[name="repo"]').should('have.value', 'shields')
})
it('Customizate suggested badge', function() {
it('Customizate suggested badge', function () {
const badgeUrl = `${backendUrl}/github/issues/badges/shields`
cy.visit('/')
cy.get(SEARCH_INPUT).type('https://github.com/badges/shields')

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