Compare commits

..

27 Commits

Author SHA1 Message Date
LitoMore
f8cd1c9ac7 Adjust deploy-review-app script 2023-06-26 19:55:57 +01:00
dependabot[bot]
53efe52801 chore(deps): bump fast-xml-parser from 4.2.4 to 4.2.5 (#9311)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.2.4...v4.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-23 21:20:51 +01:00
dependabot[bot]
cdf6317f14 chore(deps): bump graphql from 15.8.0 to 16.7.1 (#9309)
Bumps [graphql](https://github.com/graphql/graphql-js) from 15.8.0 to 16.7.1.
- [Release notes](https://github.com/graphql/graphql-js/releases)
- [Commits](https://github.com/graphql/graphql-js/compare/v15.8.0...v16.7.1)

---
updated-dependencies:
- dependency-name: graphql
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 20:11:19 +00:00
dependabot[bot]
3d04209405 chore(deps): bump glob from 10.2.7 to 10.3.0 (#9307)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.2.7 to 10.3.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.2.7...v10.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 20:02:06 +00:00
dependabot[bot]
c2b379f1f5 chore(deps): bump simple-icons from 9.1.0 to 9.2.0 (#9312)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/9.1.0...9.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-23 20:53:32 +01:00
dependabot[bot]
75eb794945 chore(deps): bump semver from 7.5.2 to 7.5.3 (#9304)
Bumps [semver](https://github.com/npm/node-semver) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.2...v7.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 19:24:28 +00:00
dependabot[bot]
a5b816760b chore(deps-dev): bump cypress from 12.14.0 to 12.15.0 (#9310)
Bumps [cypress](https://github.com/cypress-io/cypress) from 12.14.0 to 12.15.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v12.14.0...v12.15.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 19:16:52 +00:00
dependabot[bot]
c0d6fa699d chore(deps-dev): bump sinon from 15.1.2 to 15.2.0 (#9305)
Bumps [sinon](https://github.com/sinonjs/sinon) from 15.1.2 to 15.2.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v15.1.2...v15.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 19:07:21 +00:00
dependabot[bot]
4a03b86300 chore(deps): bump @sentry/node from 7.55.2 to 7.56.0 (#9306)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.55.2 to 7.56.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.55.2...7.56.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-23 18:58:59 +00:00
chris48s
9137b46bc3 temp fix: wrap code examples tabs in narrow browser windows (#9302) 2023-06-23 19:48:17 +01:00
chris48s
1e85cf7926 upgrade to graphql 16 (#9290)
* upgrade to graphql 16

* update base graphql tests
2023-06-23 19:47:40 +01:00
LitoMore
5085ef0209 chore(frontend): open homepage feature links in new tab (#9300)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-19 14:15:14 +00:00
chris48s
86f0a86094 adapt opencollective images to theme background (#9298) 2023-06-19 14:58:00 +01:00
chris48s
6f78e6f81d run package tests on node 20 (#9293)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 20:06:55 +00:00
chris48s
a2ca06e033 try running tests on node 18 (#9292)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 19:57:38 +00:00
chris48s
08e6933f0e Upgrade to ESLint 8; affects [docker factorio] (#9289)
* upgrade to ESLint 8

* update services to fix camelcase rule errors

---------

Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 19:47:18 +00:00
chris48s
e7737ce050 remove obsolete travis .org examples (#9284)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 12:00:36 +00:00
chris48s
f24b00fecd increase max age on reddit badges (#9282)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 11:50:19 +00:00
dependabot[bot]
1c64ec6528 chore(deps): bump semver from 7.5.1 to 7.5.2 (#9260)
Bumps [semver](https://github.com/npm/node-semver) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.1...v7.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 09:55:22 +00:00
chris48s
30377f6f33 set a sensible meta description (#9283) 2023-06-18 10:44:26 +01:00
dependabot[bot]
4dc6f51650 chore(deps-dev): bump sinon from 15.1.0 to 15.1.2 (#9262)
Bumps [sinon](https://github.com/sinonjs/sinon) from 15.1.0 to 15.1.2.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v15.1.0...v15.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 09:24:16 +00:00
dependabot[bot]
2b881f330d chore(deps): bump simple-icons from 9.0.0 to 9.1.0 (#9271)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/9.0.0...9.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 08:47:06 +00:00
dependabot[bot]
c6f157b7ef chore(deps-dev): bump url from 0.11.0 to 0.11.1 (#9269)
Bumps [url](https://github.com/defunctzombie/node-url) from 0.11.0 to 0.11.1.
- [Commits](https://github.com/defunctzombie/node-url/compare/v0.11.0...v0.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 08:38:26 +00:00
dependabot[bot]
86de4190e4 chore(deps-dev): bump @easyops-cn/docusaurus-search-local (#9277)
Bumps [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local) from 0.33.6 to 0.35.0.
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Changelog](https://github.com/easyops-cn/docusaurus-search-local/blob/master/docusaurus-search-local/CHANGELOG.md)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/compare/v0.33.6...v0.35.0)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 08:30:26 +00:00
dependabot[bot]
dad1e43532 chore(deps-dev): bump c8 from 7.14.0 to 8.0.0 (#9272)
Bumps [c8](https://github.com/bcoe/c8) from 7.14.0 to 8.0.0.
- [Release notes](https://github.com/bcoe/c8/releases)
- [Changelog](https://github.com/bcoe/c8/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bcoe/c8/compare/v7.14.0...v8.0.0)

---
updated-dependencies:
- dependency-name: c8
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 08:23:07 +00:00
dependabot[bot]
3fe013eec3 chore(deps): bump @sentry/node from 7.54.0 to 7.55.2 (#9261)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.54.0 to 7.55.2.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.54.0...7.55.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-06-18 08:14:16 +00:00
chris48s
a5f91a40e5 fix a load of spacing issues in frontend content (#9281) 2023-06-18 09:05:42 +01:00
45 changed files with 799 additions and 1179 deletions

View File

@@ -10,12 +10,11 @@ org="shields-io"
# This will fail if $PR_NUMBER is not a valid PR
pr_json=$(curl --fail "https://api.github.com/repos/badges/shields/pulls/$PR_NUMBER")
# Attempt to apply the PR diff to the target branch
# This will fail if it does not merge cleanly
# Checkout the PR branch
git config user.name "actions[bot]"
git config user.email "actions@users.noreply.github.com"
git fetch origin "pull/$PR_NUMBER/head:pr-$PR_NUMBER"
git merge "pr-$PR_NUMBER"
git checkout "pr-$PR_NUMBER"
# If the app does not already exist, create it
if ! flyctl status --app "$app"; then

View File

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

View File

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

View File

@@ -17,11 +17,9 @@ jobs:
matrix:
include:
- node: '14'
engine-strict: 'false'
- node: '16'
engine-strict: 'false'
- node: '18'
engine-strict: 'true'
- node: '20'
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -32,9 +30,6 @@ jobs:
node-version: ${{ matrix.node }}
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
NPM_CONFIG_ENGINE_STRICT: ${{ matrix.engine-strict }}
run: |
cd badge-maker
npm install

View File

@@ -19,6 +19,8 @@ jobs:
engine-strict: 'true'
- node: '18'
engine-strict: 'false'
- node: '20'
engine-strict: 'false'
steps:
- name: Checkout
uses: actions/checkout@v3

View File

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

View File

@@ -48,7 +48,7 @@ describe('BaseGraphqlService', function () {
expect(requestFetcher).to.have.been.calledOnceWith(
'http://example.com/graphql',
{
body: '{"query":"{\\n requiredString\\n}\\n","variables":{}}',
body: '{"query":"{\\n requiredString\\n}","variables":{}}',
headers: { Accept: 'application/json' },
method: 'POST',
}
@@ -80,7 +80,7 @@ describe('BaseGraphqlService', function () {
expect(requestFetcher).to.have.been.calledOnceWith(
'http://example.com/graphql',
{
body: '{"query":"{\\n requiredString\\n}\\n","variables":{}}',
body: '{"query":"{\\n requiredString\\n}","variables":{}}',
headers: { Accept: 'application/json' },
method: 'POST',
searchParams: { queryParam: 123 },

View File

@@ -35,7 +35,13 @@ const FeatureList = [
description: (
<>
Render badges in your own application using our{' '}
<a href="https://www.npmjs.com/package/badge-maker">NPM library</a>
<a
href="https://www.npmjs.com/package/badge-maker"
rel="noreferrer"
target="_blank"
>
NPM library
</a>
<br />
<code>npm install badge-maker</code>
</>
@@ -46,7 +52,11 @@ const FeatureList = [
description: (
<>
Host a shields instance behind your firewall with our{' '}
<a href="https://registry.hub.docker.com/r/shieldsio/shields/">
<a
href="https://registry.hub.docker.com/r/shieldsio/shields/"
rel="noreferrer"
target="_blank"
>
docker image
</a>
<br />
@@ -59,8 +69,14 @@ const FeatureList = [
description: (
<>
Please consider{' '}
<a href="https://opencollective.com/shields">donating</a> to sustain our
activities
<a
href="https://opencollective.com/shields"
rel="noreferrer"
target="_blank"
>
donating
</a>{' '}
to sustain our activities
</>
),
},

View File

@@ -26,3 +26,21 @@
html[data-theme="dark"] .docusaurus-highlight-code-line {
background-color: rgba(0, 0, 0, 0.3);
}
.opencollective-image {
color-scheme: initial;
}
/*
TODO: remove these two styles when
we can upgrade to docusaurus-theme-openapi@0.6.5
*/
div.api-code-tab-group {
justify-content: center;
flex-wrap: wrap;
}
div.api-code-tab-group button.api-code-tab {
width: unset;
}

View File

@@ -22,7 +22,10 @@ Shields.io is possible thanks to the people and companies who donate money, serv
💵 These organisations help keep shields running by donating on OpenCollective. Your organisation can support this project by <a href="https://opencollective.com/shields#sponsor">becoming a sponsor </a>. Your logo will show up here with a link to your website.
<p>
<object data="https://opencollective.com/shields/sponsors.svg?avatarHeight=80&width=600" />
<object
data="https://opencollective.com/shields/sponsors.svg?avatarHeight=80&width=600"
class="opencollective-image"
></object>
</p>
## Backers
@@ -30,7 +33,10 @@ Shields.io is possible thanks to the people and companies who donate money, serv
💵 Thank you to all our backers who help keep shields running by donating on OpenCollective. You can support this project by <a href="https://opencollective.com/shields#backer">becoming a backer</a>.
<p>
<object data="https://opencollective.com/shields/backers.svg?width=600" />
<object
data="https://opencollective.com/shields/backers.svg?width=600"
class="opencollective-image">
</object>
</p>
## Contributors
@@ -38,7 +44,10 @@ Shields.io is possible thanks to the people and companies who donate money, serv
🙏 This project exists thanks to all the nice people who contribute their time to work on the project.
<p>
<object data="https://opencollective.com/shields/contributors.svg?width=600" />
<object
data="https://opencollective.com/shields/contributors.svg?width=600"
class="opencollective-image"
></object>
</p>
✨ Shields is helped by these companies which provide a free plan for their product or service:

View File

@@ -27,7 +27,7 @@ export default function Home() {
const { siteConfig } = useDocusaurusContext()
return (
<Layout
description="Description will go into a meta tag in <head />"
description="Concise, consistent, and legible badges"
title={`${siteConfig.title}`}
>
<HomepageHeader />

1362
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
"dependencies": {
"@renovate/pep440": "^1.0.0",
"@renovatebot/ruby-semver": "^2.1.11",
"@sentry/node": "^7.54.0",
"@sentry/node": "^7.56.0",
"@shields_io/camp": "^18.1.2",
"@xmldom/xmldom": "0.8.8",
"badge-maker": "file:badge-maker",
@@ -38,11 +38,11 @@
"decamelize": "^3.2.0",
"emojic": "^1.1.17",
"escape-string-regexp": "^4.0.0",
"fast-xml-parser": "^4.2.4",
"glob": "^10.2.7",
"fast-xml-parser": "^4.2.5",
"glob": "^10.3.0",
"global-agent": "^3.0.0",
"got": "^13.0.0",
"graphql": "^15.6.1",
"graphql": "16.7.1",
"graphql-tag": "^2.12.6",
"joi": "17.9.2",
"joi-extension-semver": "5.0.0",
@@ -61,8 +61,8 @@
"prom-client": "^14.2.0",
"qs": "^6.11.2",
"query-string": "^8.1.0",
"semver": "~7.5.0",
"simple-icons": "9.0.0",
"semver": "~7.5.3",
"simple-icons": "9.2.0",
"webextension-store-meta": "^1.0.5",
"xpath": "~0.0.32"
},
@@ -143,10 +143,10 @@
},
"devDependencies": {
"@docusaurus/core": "^2.0.0",
"@easyops-cn/docusaurus-search-local": "^0.33.6",
"@easyops-cn/docusaurus-search-local": "^0.35.0",
"@mdx-js/react": "^1.6.21",
"@typescript-eslint/parser": "^5.58.0",
"c8": "^7.13.0",
"c8": "^8.0.0",
"caller": "^1.1.0",
"chai": "^4.3.7",
"chai-as-promised": "^7.1.1",
@@ -155,16 +155,16 @@
"child-process-promise": "^2.2.1",
"clsx": "^1.1.1",
"concurrently": "^8.2.0",
"cypress": "^12.14.0",
"cypress": "^12.15.0",
"cypress-wait-for-stable-dom": "^0.1.0",
"danger": "^11.2.6",
"deepmerge": "^4.3.1",
"docusaurus-preset-openapi": "0.6.4",
"eslint": "^7.32.0",
"eslint": "8.43.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-standard": "^16.0.3",
"eslint-config-standard-jsx": "^10.0.0",
"eslint-config-standard-react": "^11.0.1",
"eslint-config-standard": "17.1.0",
"eslint-config-standard-jsx": "11.0.0",
"eslint-config-standard-react": "13.0.0",
"eslint-plugin-chai-friendly": "^0.7.2",
"eslint-plugin-cypress": "^2.13.3",
"eslint-plugin-icedfrisby": "^0.1.0",
@@ -173,7 +173,7 @@
"eslint-plugin-mocha": "^10.1.0",
"eslint-plugin-no-extension-in-require": "^0.2.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.2.0",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-sort-class-members": "^1.18.0",
@@ -203,12 +203,12 @@
"rimraf": "^5.0.1",
"sazerac": "^2.0.0",
"simple-git-hooks": "^2.8.1",
"sinon": "^15.1.0",
"sinon": "^15.2.0",
"sinon-chai": "^3.7.0",
"snap-shot-it": "^7.9.10",
"start-server-and-test": "2.0.0",
"tsd": "^0.28.1",
"url": "^0.11.0"
"url": "^0.11.1"
},
"engines": {
"node": "^16.13.0",

View File

@@ -3,11 +3,9 @@ import { redirector } from '../index.js'
import { BaseAmoService, keywords } from './amo-base.js'
const documentation = `
<p>
Previously <code>amo/d</code> provided a &ldquo;total downloads&rdquo; badge. However,&nbsp;
<a href="https://github.com/badges/shields/issues/3079">updates to the v3 API</a> only
give us weekly downloads. The route <code>amo/d</code> redirects to <code>amo/dw</code>.
</p>
Previously \`amo/d\` provided a &ldquo;total downloads&rdquo; badge. However,
[updates to the v3 API](https://github.com/badges/shields/issues/3079)
only give us weekly downloads. The route \`amo/d\` redirects to \`amo/dw\`.
`
class AmoWeeklyDownloads extends BaseAmoService {

View File

@@ -9,23 +9,20 @@ const queryParamSchema = Joi.object({
})
const documentation = `
<p>
A badge requires three pieces of information: <code>ORGANIZATION</code>,
<code>PROJECT_ID</code> and <code>DEFINITION_ID</code>.
</p>
<p>
To start, edit your build definition and look at the url:
</p>
A badge requires three pieces of information:
\`ORGANIZATION\`, \`PROJECT_ID\` and \`DEFINITION_ID\`.
To start, edit your build definition and look at the url:
<img
src="https://user-images.githubusercontent.com/3749820/47259976-e2d9ec80-d4b2-11e8-92cc-7c81089a7a2c.png"
alt="ORGANIZATION is after the dev.azure.com part, PROJECT_NAME is right after that, DEFINITION_ID is at the end after the id= part." />
<p>
Then use the Azure DevOps REST API to translate the
<code>PROJECT_NAME</code> to a <code>PROJECT_ID</code>.
</p>
<p>
Navigate to <code>https://dev.azure.com/ORGANIZATION/_apis/projects/PROJECT_NAME</code>
</p>
Then use the Azure DevOps REST API to translate the
\`PROJECT_NAME\` to a \`PROJECT_ID\`.
Navigate to \`https://dev.azure.com/ORGANIZATION/_apis/projects/PROJECT_NAME\`
<img
src="https://user-images.githubusercontent.com/3749820/47266325-1d846900-d535-11e8-9211-2ee72fb91877.png"
alt="PROJECT_ID is in the id property of the API response." />

View File

@@ -4,25 +4,22 @@ import AzureDevOpsBase from './azure-devops-base.js'
import { keywords } from './azure-devops-helpers.js'
const documentation = `
<p>
To obtain your own badge, you need to get 3 pieces of information:
<code>ORGANIZATION</code>, <code>PROJECT</code> and <code>DEFINITION_ID</code>.
</p>
<p>
First, you need to select your build definition and look at the url:
</p>
To obtain your own badge, you need to get 3 pieces of information:
\`ORGANIZATION\`, \`PROJECT_ID\` and \`DEFINITION_ID\`.
First, you need to select your build definition and look at the url:
<img
src="https://user-images.githubusercontent.com/3749820/47259976-e2d9ec80-d4b2-11e8-92cc-7c81089a7a2c.png"
alt="ORGANIZATION is after the dev.azure.com part, PROJECT is right after that, DEFINITION_ID is at the end after the id= part." />
<p>
Your badge will then have the form:
<code>https://img.shields.io/azure-devops/coverage/ORGANIZATION/PROJECT/DEFINITION_ID.svg</code>.
</p>
<p>
Optionally, you can specify a named branch:
<code>https://img.shields.io/azure-devops/coverage/ORGANIZATION/PROJECT/DEFINITION_ID/NAMED_BRANCH.svg</code>.
</p>
Your badge will then have the form:
\`https://img.shields.io/azure-devops/coverage/ORGANIZATION/PROJECT/DEFINITION_ID.svg\`.
Optionally, you can specify a named branch:
\`https://img.shields.io/azure-devops/coverage/ORGANIZATION/PROJECT/DEFINITION_ID/NAMED_BRANCH.svg\`.
`
const buildCodeCoverageSchema = Joi.object({
coverageData: Joi.array()
.items(

View File

@@ -3,21 +3,18 @@ import { BaseSvgScrapingService } from '../index.js'
import { keywords, fetch } from './azure-devops-helpers.js'
const documentation = `
<p>
To obtain your own badge, you need to get 4 pieces of information:
<code>ORGANIZATION</code>, <code>PROJECT_ID</code>, <code>DEFINITION_ID</code> and <code>ENVIRONMENT_ID</code>.
</p>
<p>
First, you need to enable badges for each required environments in the options of your release definition.
Once you have save the change, look at badge url:
</p>
To obtain your own badge, you need to get 4 pieces of information:
\`ORGANIZATION\`, \`PROJECT_ID\`, \`DEFINITION_ID\` and \`ENVIRONMENT_ID\`.
First, you need to enable badges for each required environments in the options of your release definition.
Once you have save the change, look at badge url:
<img
src="https://user-images.githubusercontent.com/3749820/47266694-7f939d00-d53a-11e8-9224-c2371dd2d0c9.png"
alt="ORGANIZATION is after the dev.azure.com part, PROJECT_ID is after the badge part, DEFINITION_ID and ENVIRONMENT_ID are right after that." />
<p>
Your badge will then have the form:
<code>https://img.shields.io/vso/release/ORGANIZATION/PROJECT_ID/DEFINITION_ID/ENVIRONMENT_ID.svg</code>.
</p>
Your badge will then have the form:
\`https://img.shields.io/vso/release/ORGANIZATION/PROJECT_ID/DEFINITION_ID/ENVIRONMENT_ID.svg\`.
`
export default class AzureDevOpsRelease extends BaseSvgScrapingService {

View File

@@ -21,24 +21,21 @@ const commonAttrs = {
compact_message: null,
},
documentation: `
<p>
To obtain your own badge, you need to get 3 pieces of information:
<code>ORGANIZATION</code>, <code>PROJECT</code> and <code>DEFINITION_ID</code>.
</p>
<p>
First, you need to select your build definition and look at the url:
</p>
To obtain your own badge, you need to get 3 pieces of information:
\`ORGANIZATION\`, \`PROJECT_ID\`, \`DEFINITION_ID\`.
First, you need to select your build definition and look at the url:
<img
src="https://user-images.githubusercontent.com/3749820/47259976-e2d9ec80-d4b2-11e8-92cc-7c81089a7a2c.png"
alt="ORGANIZATION is after the dev.azure.com part, PROJECT is right after that, DEFINITION_ID is at the end after the id= part." />
<p>
Your badge will then have the form:
<code>https://img.shields.io/azure-devops/tests/ORGANIZATION/PROJECT/DEFINITION_ID.svg</code>.
</p>
<p>
Optionally, you can specify a named branch:
<code>https://img.shields.io/azure-devops/tests/ORGANIZATION/PROJECT/DEFINITION_ID/NAMED_BRANCH.svg</code>.
</p>
Your badge will then have the form:
\`https://img.shields.io/azure-devops/tests/ORGANIZATION/PROJECT/DEFINITION_ID.svg\`.
Optionally, you can specify a named branch:
\`https://img.shields.io/azure-devops/tests/ORGANIZATION/PROJECT/DEFINITION_ID/NAMED_BRANCH.svg\`.
${commonDocumentation}
`,
}

View File

@@ -46,7 +46,7 @@ export default class DockerStars extends BaseJsonService {
}
async handle({ user, repo }) {
const { star_count } = await this.fetch({ user, repo })
return this.constructor.render({ stars: star_count })
const resp = await this.fetch({ user, repo })
return this.constructor.render({ stars: resp.star_count })
}
}

View File

@@ -78,9 +78,9 @@ const description = `<p>
<tr>
<td><code>namedLogo</code></td>
<td>
Default: none. One of the named logos supported by Shields or&nbsp;
<a href="https://simpleicons.org/">simple-icons</a>. Can be overridden
by the query string.
Default: none. One of the named logos supported by Shields
or <a href="https://simpleicons.org/">simple-icons</a>. Can be
overridden by the query string.
</td>
</tr>
<tr>

View File

@@ -65,8 +65,8 @@ class FactorioModPortalLatestVersion extends BaseFactorioModPortalService {
}
async handle({ modName }) {
const { latest_release } = await this.fetch({ modName })
return this.constructor.render({ version: latest_release.version })
const resp = await this.fetch({ modName })
return this.constructor.render({ version: resp.latest_release.version })
}
}
@@ -94,8 +94,8 @@ class FactorioModPortalFactorioVersion extends BaseFactorioModPortalService {
}
async handle({ modName }) {
const { latest_release } = await this.fetch({ modName })
const version = latest_release.info_json.factorio_version
const resp = await this.fetch({ modName })
const version = resp.latest_release.info_json.factorio_version
return this.constructor.render({ version })
}
}
@@ -114,23 +114,25 @@ class FactorioModPortalLastUpdated extends BaseFactorioModPortalService {
title: 'Factorio Mod Portal mod',
namedParams: { modName: 'rso-mod' },
staticPreview: this.render({
last_updated: new Date(),
lastUpdated: new Date(),
}),
},
]
static defaultBadgeData = { label: 'last updated' }
static render({ last_updated }) {
static render({ lastUpdated }) {
return {
message: formatDate(last_updated),
color: age(last_updated),
message: formatDate(lastUpdated),
color: age(lastUpdated),
}
}
async handle({ modName }) {
const { latest_release } = await this.fetch({ modName })
return this.constructor.render({ last_updated: latest_release.released_at })
const resp = await this.fetch({ modName })
return this.constructor.render({
lastUpdated: resp.latest_release.released_at,
})
}
}
@@ -148,20 +150,20 @@ class FactorioModPortalDownloads extends BaseFactorioModPortalService {
title: 'Factorio Mod Portal mod downloads',
namedParams: { modName: 'rso-mod' },
staticPreview: this.render({
downloads_count: 1694763,
downloads: 1694763,
}),
},
]
static defaultBadgeData = { label: 'downloads' }
static render({ downloads_count }) {
return renderDownloadsBadge({ downloads: downloads_count })
static render({ downloads }) {
return renderDownloadsBadge({ downloads })
}
async handle({ modName }) {
const { downloads_count } = await this.fetch({ modName })
return this.constructor.render({ downloads_count })
const resp = await this.fetch({ modName })
return this.constructor.render({ downloads: resp.downloads_count })
}
}

View File

@@ -5,12 +5,11 @@ import { fetchJsonFromRepo } from './github-common-fetch.js'
import { documentation as commonDocumentation } from './github-helpers.js'
const documentation = `
<p>
The All Contributors service allows you to recognize all your project
contributors, including those that don't push code. See
<a href="https://allcontributors.org">https://allcontributors.org</a>
for more information.
</p>
The All Contributors service allows you to recognize all your project
contributors, including those that don't push code. See
[https://allcontributors.org](https://allcontributors.org)
for more information.
${commonDocumentation}
`

View File

@@ -10,31 +10,24 @@ import {
} from './github-helpers.js'
const documentation = `
<p>
This badge is designed for projects hosted on GitHub which are
participating in
<a href="https://hacktoberfest.digitalocean.com">Hacktoberfest</a>,
an initiative to encourage participating in open-source projects. The
badge can be added to the project readme to encourage potential
contributors to review the suggested issues and to celebrate the
contributions that have already been made.
The badge displays three pieces of information:
<ul>
<li>
The number of suggested issues. By default this will count open
issues with the <strong>hacktoberfest</strong> label, however you
can pick a different label (e.g.
<code>?suggestion_label=good%20first%20issue</code>).
</li>
<li>
The number of pull requests opened in October. This excludes any
PR with the <strong>invalid</strong> label.
</li>
<li>The number of days left of October.</li>
</ul>
</p>
This badge is designed for projects hosted on GitHub which are
participating in
[Hacktoberfest](https://hacktoberfest.digitalocean.com),
an initiative to encourage participating in open-source projects. The
badge can be added to the project readme to encourage potential
contributors to review the suggested issues and to celebrate the
contributions that have already been made.
The badge displays three pieces of information:
${githubDocumentation}
- The number of suggested issues. By default this will count open
issues with the <strong>hacktoberfest</strong> label, however you
can pick a different label (e.g.
\`?suggestion_label=good%20first%20issue\`).
- The number of pull requests opened in October. This excludes any
PR with the <strong>invalid</strong> label.
- The number of days left of October.
${githubDocumentation}
`
const schema = Joi.object({

View File

@@ -2,12 +2,10 @@ import { colorScale } from '../color-formatters.js'
import { InvalidResponse, NotFound } from '../index.js'
const documentation = `
<p>
If your GitHub badge errors, it might be because you hit GitHub's rate limits.
You can increase Shields.io's rate limit by
<a href="https://img.shields.io/github-auth">adding the Shields GitHub
application</a> using your GitHub account.
</p>
If your GitHub badge errors, it might be because you hit GitHub's rate limits.
You can increase Shields.io's rate limit by
[adding the Shields GitHub application](https://img.shields.io/github-auth)
using your GitHub account.
`
function issueStateColor(s) {

View File

@@ -10,33 +10,25 @@ import { documentation as githubDocumentation } from './github-helpers.js'
const keywords = ['pipfile']
const documentation = `
<p>
<a href="https://github.com/pypa/pipenv">Pipenv</a> is a dependency
manager for Python which manages a
<a href="https://virtualenv.pypa.io/en/latest/">virtualenv</a> for
projects. It adds/removes packages from your <code>Pipfile</code> as
you install/uninstall packages and generates the ever-important
<code>Pipfile.lock</code>, which can be checked in to source control
in order to produce deterministic builds.
</p>
[Pipenv](https://github.com/pypa/pipenv) is a dependency
manager for Python which manages a
[virtualenv](https://virtualenv.pypa.io/en/latest/) for
projects. It adds/removes packages from your \`Pipfile\` as
you install/uninstall packages and generates the ever-important
\`Pipfile.lock\`, which can be checked in to source control
in order to produce deterministic builds.
<p>
The GitHub Pipenv badges are intended for applications using Pipenv
which are hosted on GitHub.
</p>
The GitHub Pipenv badges are intended for applications using Pipenv
which are hosted on GitHub.
<p>
When <code>Pipfile.lock</code> is checked in, the <strong>GitHub Pipenv
locked dependency version</strong> badge displays the locked version of
a dependency listed in <code>[packages]</code> or
<code>[dev-packages]</code> (or any of their transitive dependencies).
</p>
When \`Pipfile.lock\` is checked in, the <strong>GitHub Pipenv
locked dependency version</strong> badge displays the locked version of
a dependency listed in \`[packages]\` or
\`[dev-packages]\` (or any of their transitive dependencies).
<p>
Usually a Python version is specified in the <code>Pipfile</code>, which
<code>pipenv lock</code> then places in <code>Pipfile.lock</code>. The
<strong>GitHub Pipenv Python version</strong> badge displays that version.
</p>
Usually a Python version is specified in the \`Pipfile\`, which
\`pipenv lock\` then places in \`Pipfile.lock\`.
The <strong>GitHub Pipenv Python version</strong> badge displays that version.
${githubDocumentation}
`

View File

@@ -2,6 +2,7 @@ import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import GitLabBase from './gitlab-base.js'
import { documentation } from './gitlab-helper.js'
const schema = Joi.object({
forks_count: nonNegativeInteger,
@@ -11,13 +12,6 @@ const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab ).
Note that only internet-accessible GitLab instances are supported, for example https://jihulab.com, https://gitlab.gnome.org, or https://gitlab.com/.
</p>
`
export default class GitlabForks extends GitLabBase {
static category = 'social'

View File

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

View File

@@ -2,6 +2,7 @@ import Joi from 'joi'
import { optionalUrl, nonNegativeInteger } from '../validators.js'
import { metric } from '../text-formatters.js'
import GitLabBase from './gitlab-base.js'
import { documentation } from './gitlab-helper.js'
const schema = Joi.object({
star_count: nonNegativeInteger,
@@ -11,13 +12,6 @@ const queryParamSchema = Joi.object({
gitlab_url: optionalUrl,
}).required()
const documentation = `
<p>
You may use your GitLab Project Id (e.g. 278964) or your Project Path (e.g. gitlab-org/gitlab ).
Note that only internet-accessible GitLab instances are supported, for example https://jihulab.com, https://gitlab.gnome.org, or https://gitlab.com/.
</p>
`
export default class GitlabStars extends GitLabBase {
static category = 'social'

View File

@@ -6,17 +6,14 @@ const schema = Joi.object({
}).required()
const documentation = `
<p>
<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security">
<code>Strict-Transport-Security</code> is an HTTP response header</a> that signals that browsers should
only access the site using HTTPS.
</p>
<p>
For a higher level of security, it's possible for a domain owner to
<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security#Preloading_Strict_Transport_Security">preload
this behavior into participating web browsers</a>. Chromium maintains the <a href="https://www.chromium.org/hsts">HSTS preload list</a>, which
is the de facto standard that has been adopted by several browsers. This service checks a domain's status in that list.
</p>
[\`Strict-Transport-Security\` is an HTTP response header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)
that signals that browsers should only access the site using HTTPS.
For a higher level of security, it's possible for a domain owner to
[preload this behavior into participating web browsers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security#Preloading_Strict_Transport_Security).
Chromium maintains the [HSTS preload list](https://www.chromium.org/hsts), which
is the de facto standard that has been adopted by several browsers.
This service checks a domain's status in that list.
`
export default class HSTS extends BaseJsonService {

View File

@@ -23,11 +23,9 @@ const schema = Joi.object({
}).required()
const documentation = `
<p>
To get the <code>Sprint ID</code>, go to your Backlog view in your project,
right click on your sprint name and get the value of
<code>data-sprint-id</code>.
</p>
To get the \`Sprint ID\`, go to your Backlog view in your project,
right click on your sprint name and get the value of
\`data-sprint-id\`.
`
export default class JiraSprint extends BaseJsonService {

View File

@@ -13,9 +13,11 @@ const queryParamSchema = Joi.object({
}).required()
const documentation = `
<p>To find your user id, you can use <a link target="_blank" href="https://prouser123.me/misc/mastodon-userid-lookup.html">this tool</a>.</p><br>
<p>Alternatively you can make a request to <code>https://your.mastodon.server/.well-known/webfinger?resource=acct:{user}@{domain}</code></p>
<p>Failing that, you can also visit your profile page, where your user ID will be in the header in a tag like this: <code>&lt;link href='https://your.mastodon.server/api/salmon/{your-user-id}' rel='salmon'></code></p>
To find your user id, you can use [this tool](https://prouser123.me/misc/mastodon-userid-lookup.html).
Alternatively you can make a request to \`https://your.mastodon.server/.well-known/webfinger?resource=acct:<user>@<domain>\`
Failing that, you can also visit your profile page, where your user ID will be in the header in a tag like this: \`<link href='https://your.mastodon.server/api/salmon/<your-user-id>' rel='salmon'>\`
`
export default class MastodonFollow extends BaseJsonService {

View File

@@ -26,21 +26,17 @@ const queryParamSchema = Joi.object({
}).required()
const documentation = `
<p>
The <a href="https://observatory.mozilla.org">Mozilla HTTP Observatory</a>
is a set of tools to analyze your website
and inform you if you are utilizing the many available methods to secure it.
</p>
<p>
By default the scan result is hidden from the public result list.
You can activate the publication of the scan result
by setting the <code>publish</code> parameter.
</p>
<p>
The badge returns a cached site result if the site has been scanned anytime in the previous 24 hours.
If you need to force invalidating the cache,
you can to do it manually through the <a href="https://observatory.mozilla.org">Mozilla Observatory Website</a>
</p>
The [Mozilla HTTP Observatory](https://observatory.mozilla.org)
is a set of tools to analyze your website
and inform you if you are utilizing the many available methods to secure it.
By default the scan result is hidden from the public result list.
You can activate the publication of the scan result
by setting the \`publish\` parameter.
The badge returns a cached site result if the site has been scanned anytime in the previous 24 hours.
If you need to force invalidating the cache,
you can to do it manually through the [Mozilla Observatory Website](https://observatory.mozilla.org)
`
export default class MozillaObservatory extends BaseJsonService {

View File

@@ -23,11 +23,11 @@ const pkgJSONSchema = Joi.object({
}).optional(),
}).required()
const documentation = `<p>
Create a code coverage badge, based on thresholds stored in a
<a href="https://github.com/istanbuljs/nyc#common-configuration-options">.nycrc config file</a>
on GitHub.
</p>`
const documentation = `
Create a code coverage badge, based on thresholds stored in a
[.nycrc config file](https://github.com/istanbuljs/nyc#common-configuration-options)
on GitHub.
`
const validThresholds = ['branches', 'lines', 'functions']

View File

@@ -1,14 +1,12 @@
import { BaseService, InvalidResponse } from '../index.js'
const documentation = `
<p>
OSS Lifecycle is an initiative started by Netflix to classify open-source projects into lifecycles
and clearly identify which projects are active and which ones are retired. To enable this badge,
simply create an OSSMETADATA tagging file at the root of your GitHub repository containing a
single line similar to the following: <code>osslifecycle=active</code>. Other suggested values are
<code>osslifecycle=maintenance</code> and <code>osslifecycle=archived</code>. A working example
can be viewed on the <a href="https://github.com/Netflix/osstracker">OSS Tracker repository</a>.
</p>
OSS Lifecycle is an initiative started by Netflix to classify open-source projects into lifecycles
and clearly identify which projects are active and which ones are retired. To enable this badge,
simply create an OSSMETADATA tagging file at the root of your GitHub repository containing a
single line similar to the following: \`osslifecycle=active\`. Other suggested values are
\`osslifecycle=maintenance\` and \`osslifecycle=archived\`. A working example
can be viewed on the [OSS Tracker repository](https://github.com/Netflix/osstracker).
`
export default class OssTracker extends BaseService {

View File

@@ -6,10 +6,8 @@ const schema = Joi.object({
}).required()
const pingpongDocumentation = `
<p>
To see more details about this badge and obtain your api key, visit
<a href="https://my.pingpong.one/integrations/badge-status/" target="_blank">https://my.pingpong.one/integrations/badge-status/</a>
</p>
To see more details about this badge and obtain your api key, visit
[https://my.pingpong.one/integrations/badge-status/](https://my.pingpong.one/integrations/badge-status/)
`
export default class PingPongStatus extends BaseJsonService {

View File

@@ -7,10 +7,8 @@ const schema = Joi.object({
}).required()
const pingpongDocumentation = `
<p>
To see more details about this badge and obtain your api key, visit
<a href="https://my.pingpong.one/integrations/badge-uptime/" target="_blank">https://my.pingpong.one/integrations/badge-uptime/</a>
</p>
To see more details about this badge and obtain your api key, visit
[https://my.pingpong.one/integrations/badge-status/](https://my.pingpong.one/integrations/badge-status/)
`
export default class PingPongUptime extends BaseJsonService {

View File

@@ -4,14 +4,13 @@ import { coveragePercentage } from '../color-formatters.js'
import { BaseJsonService, InvalidResponse } from '../index.js'
const documentation = `
<p>
You must specify the read-only API token from the POEditor account to which the project belongs.
</p>
<p>
As per <a href="https://poeditor.com/docs/api">the POEditor API documentation</a>,
<q>all requests to the API must contain the parameter api_token. You can get a read-only key from your POEditor account.
You'll find it in <a href="https://poeditor.com/account/api">My Account > API Access</a>.</q>
</p>
You must specify the read-only API token from the POEditor account to which the project belongs.
As per [the POEditor API documentation](https://poeditor.com/docs/api)
> All requests to the API must contain the parameter api_token.
> You can get a read-only key from your POEditor account.
> You'll find it in [My Account > API Access](https://poeditor.com/account/api).
`
const schema = Joi.object({

View File

@@ -40,7 +40,7 @@ const frameworkNameMap = {
const documentation = `
<p>
This service currently support the following Frameworks: <br/>
${Object.values(frameworkNameMap).map(obj => `<strong>${obj.name}</strong>`)}
${Object.values(frameworkNameMap).map(obj => ` <strong>${obj.name}</strong>`)}
</p>
`
export default class PypiFrameworkVersion extends PypiBase {

View File

@@ -30,6 +30,8 @@ export default class RedditSubredditSubscribers extends BaseJsonService {
},
]
static _cacheLength = 7200
static defaultBadgeData = {
label: 'reddit',
namedLogo: 'reddit',

View File

@@ -31,6 +31,8 @@ export default class RedditUserKarma extends BaseJsonService {
},
]
static _cacheLength = 7200
static defaultBadgeData = {
label: 'reddit karma',
namedLogo: 'reddit',

View File

@@ -8,14 +8,11 @@ const queryParamSchema = Joi.object({
}).required()
const documentation = `
<p>
The <a href="https://securityheaders.com/">Security Headers</a>
provide an easy mechanism to analyze HTTP response headers and
give information on how to deploy missing headers.
</p>
<p>
The scan result will be hidden from the public result list and follow redirects will be on too.
</p>
The [Security Headers](https://securityheaders.com/)
provide an easy mechanism to analyze HTTP response headers and
give information on how to deploy missing headers.
The scan result will be hidden from the public result list and follow redirects will be on too.
`
export default class SecurityHeaders extends BaseService {

View File

@@ -8,20 +8,17 @@ const schema = Joi.object({
}).required()
const documentation = `
<p>
The <code>provider</code> is the domain name of git host.
If no TLD is provided, <code>.com</code> will be added.
For example, setting <code>gitlab</code> or <code>bitbucket.org</code> as the
provider also works.
<br><br>
Tokei will automatically count all files with a recognized extension. It will
automatically ignore files and folders in <code>.ignore</code> files. If you
want to ignore files or folders specifically for tokei, add them to the
<code>.tokeignore</code> in the root of your repository.
See
<a href="https://github.com/XAMPPRocky/tokei#excluding-folders">https://github.com/XAMPPRocky/tokei#excluding-folders</a>
for more info.
</p>
The \`provider\` is the domain name of git host.
If no TLD is provided, \`.com\` will be added.
For example, setting \`gitlab\` or \`bitbucket.org\` as the
provider also works.
Tokei will automatically count all files with a recognized extension. It will
automatically ignore files and folders in \`.ignore\` files. If you
want to ignore files or folders specifically for tokei, add them to the
\`.tokeignore\` in the root of your repository. See
[https://github.com/XAMPPRocky/tokei#excluding-folders](https://github.com/XAMPPRocky/tokei#excluding-folders)
for more info.
`
export default class Tokei extends BaseJsonService {

View File

@@ -18,24 +18,6 @@ export class TravisComBuild extends BaseSvgScrapingService {
}
static examples = [
{
title: 'Travis (.org)',
pattern: ':user/:repo',
namedParams: { user: 'rust-lang', repo: 'rust' },
staticPreview: {
message: 'passing',
color: 'brightgreen',
},
},
{
title: 'Travis (.org) branch',
pattern: ':user/:repo/:branch',
namedParams: { user: 'rust-lang', repo: 'rust', branch: 'master' },
staticPreview: {
message: 'passing',
color: 'brightgreen',
},
},
{
title: 'Travis (.com)',
pattern: 'com/:user/:repo',

View File

@@ -10,23 +10,18 @@ import { BaseService } from '../index.js'
import trace from '../../core/base-service/trace.js'
const documentation = `
<p>
The badge is of the form
<code>https://img.shields.io/website/PROTOCOL/URLREST.svg</code>.
</p>
<p>
The whole URL is obtained by concatenating the <code>PROTOCOL</code>
(<code>http</code> or <code>https</code>, for example) with the
<code>URLREST</code> (separating them with <code>://</code>).
</p>
<p>
The existence of a specific path on the server can be checked by appending
a path after the domain name, e.g.
<code>https://img.shields.io/website/http/www.website.com/path/to/page.html.svg</code>.
</p>
<p>
The messages and colors for the up and down states can also be customized.
</p>
The badge is of the form
\`https://img.shields.io/website/PROTOCOL/URLREST.svg\`.
The whole URL is obtained by concatenating the \`PROTOCOL\`
(\`http\` or \`https\`, for example) with the
\`URLREST\` (separating them with \`://\`).
The existence of a specific path on the server can be checked by appending
a path after the domain name, e.g.
\`https://img.shields.io/website/http/www.website.com/path/to/page.html.svg\`.
The messages and colors for the up and down states can also be customized.
`
const urlQueryParamSchema = Joi.object({

View File

@@ -4,8 +4,8 @@ import { metric } from '../text-formatters.js'
import { nonNegativeInteger } from '../validators.js'
const documentation = `
<p>By using the YouTube badges provided by Shields.io, you are agreeing to be bound by the YouTube Terms of Service. These can be found here:
<a target="_blank" href="https://www.youtube.com/t/terms">https://www.youtube.com/t/terms</a></p>`
By using the YouTube badges provided by Shields.io, you are agreeing to be bound by the YouTube Terms of Service.
These can be found here: [https://www.youtube.com/t/terms](https://www.youtube.com/t/terms)`
const schema = Joi.object({
pageInfo: Joi.object({