Compare commits

..

8 Commits

Author SHA1 Message Date
chris48s
f53e478b0b fix [aur] service tests (#9566) 2023-09-11 23:08:23 +00:00
chris48s
f545553945 fix [bower] version badge (#9567)
* fix [bower] version badge

* update tests
2023-09-11 23:08:01 +00:00
jNullj
e8b4467609 Add [PythonVersionFromToml] shield (#9516)
* Add PythonVersionFromToml

Added new shield per issue #9410
The shield display required python versions for packages based on pyproject.toml

* Add tests for PythonVersionFromToml

* Improve docs for tests regex

* Improve title and description

Rename and updated description to bring into focus that only PEP 621 complaint pyproject.toml files are supported.

Solves review https://github.com/badges/shields/pull/9516#discussion_r1310648023

* replace complex regex with @renovate/pep440

solves review https://github.com/badges/shields/pull/9516#discussion_r1310648881
2023-09-10 12:18:16 +00:00
Prashant Rawat
015b5b02d0 Add [dub] score badge service (#9549)
* add dub score badge service

* add examples for isWithinRange test validator

* use Joi to validate range instead of regex

* change labels to lowercase
2023-09-10 11:41:23 +00:00
dependabot[bot]
d2e299dc35 chore(deps): bump simple-icons from 9.12.0 to 9.13.0 (#9557)
Bumps [simple-icons](https://github.com/simple-icons/simple-icons) from 9.12.0 to 9.13.0.
- [Release notes](https://github.com/simple-icons/simple-icons/releases)
- [Commits](https://github.com/simple-icons/simple-icons/compare/9.12.0...9.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-10 11:08:37 +00:00
dependabot[bot]
bfd13ec45f chore(deps-dev): bump @typescript-eslint/parser from 6.5.0 to 6.6.0 (#9556)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/parser)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-10 10:57:10 +00:00
dependabot[bot]
d43d9e96e9 chore(deps): bump @sentry/node from 7.66.0 to 7.68.0 (#9555)
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.66.0 to 7.68.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.66.0...7.68.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>
2023-09-10 10:56:41 +00:00
dependabot[bot]
8ec6563f7b chore(deps): bump actions/checkout from 3 to 4 (#9550)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2023-09-10 10:56:15 +00:00
32 changed files with 254 additions and 129 deletions

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
environment: 'Review Apps'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: superfly/flyctl-actions/setup-flyctl@master
- name: install jq

View File

@@ -24,7 +24,7 @@ jobs:
run: echo "::set-output name=date::$(date --rfc-3339=date)"
- name: Checkout branch "master"
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: 'master'

View File

@@ -14,7 +14,7 @@ jobs:
if: github.actor != 'dependabot[bot]' && github.actor != 'repo-ranger[bot]'
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
environment: 'Review Apps'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: superfly/flyctl-actions/setup-flyctl@master

View File

@@ -12,7 +12,7 @@ jobs:
if: github.actor == 'dependabot[bot]'
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install action dependencies
run: cd .github/actions/docusaurus-swizzled-warning && npm ci

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Draft Release
uses: ./.github/actions/draft-release

View File

@@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Dependency Review'
uses: actions/dependency-review-action@v3

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

View File

@@ -35,7 +35,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Cache Cypress binary
id: cache-cypress

View File

@@ -30,7 +30,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -30,7 +30,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -17,7 +17,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -21,7 +21,7 @@ jobs:
- node: '20'
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install Node JS ${{ inputs.node-version }}
uses: actions/setup-node@v3

View File

@@ -21,7 +21,7 @@ jobs:
engine-strict: 'false'
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup

116
package-lock.json generated
View File

@@ -11,7 +11,7 @@
"dependencies": {
"@renovate/pep440": "^1.0.0",
"@renovatebot/ruby-semver": "^3.0.13",
"@sentry/node": "^7.66.0",
"@sentry/node": "^7.68.0",
"@shields_io/camp": "^18.1.2",
"@xmldom/xmldom": "0.8.10",
"badge-maker": "file:badge-maker",
@@ -51,7 +51,7 @@
"qs": "^6.11.2",
"query-string": "^8.1.0",
"semver": "~7.5.4",
"simple-icons": "9.12.0",
"simple-icons": "9.13.0",
"smol-toml": "1.1.2",
"webextension-store-meta": "^1.0.5",
"xpath": "~0.0.33"
@@ -60,7 +60,7 @@
"@docusaurus/core": "^2.0.0",
"@easyops-cn/docusaurus-search-local": "^0.35.0",
"@mdx-js/react": "^1.6.21",
"@typescript-eslint/parser": "^6.5.0",
"@typescript-eslint/parser": "^6.6.0",
"c8": "^8.0.1",
"caller": "^1.1.0",
"chai": "^4.3.8",
@@ -4648,13 +4648,13 @@
}
},
"node_modules/@sentry-internal/tracing": {
"version": "7.66.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.66.0.tgz",
"integrity": "sha512-3vCgC2hC3T45pn53yTDVcRpHoJTBxelDPPZVsipAbZnoOVPkj7n6dNfDhj3I3kwWCBPahPkXmE+R4xViR8VqJg==",
"version": "7.68.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.68.0.tgz",
"integrity": "sha512-nNKS/q21+Iqzxs2K7T/l3dZi8Z9s/uxsAazpk2AYhFzx9mFnPj1Xfe3dgbFoygNifE+IrpUuldr6D5HQamTDPQ==",
"dependencies": {
"@sentry/core": "7.66.0",
"@sentry/types": "7.66.0",
"@sentry/utils": "7.66.0",
"@sentry/core": "7.68.0",
"@sentry/types": "7.68.0",
"@sentry/utils": "7.68.0",
"tslib": "^2.4.1 || ^1.9.3"
},
"engines": {
@@ -4662,12 +4662,12 @@
}
},
"node_modules/@sentry/core": {
"version": "7.66.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.66.0.tgz",
"integrity": "sha512-WMAEPN86NeCJ1IT48Lqiz4MS5gdDjBwP4M63XP4msZn9aujSf2Qb6My5uT87AJr9zBtgk8MyJsuHr35F0P3q1w==",
"version": "7.68.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.68.0.tgz",
"integrity": "sha512-mT3ObBWgvAky/QF3dZy4KBoXbRXbNsD6evn+mYi9UEeIZQ5NpnQYDEp78mapiEjI/TAHZIhTIuaBhj1Jk0qUUA==",
"dependencies": {
"@sentry/types": "7.66.0",
"@sentry/utils": "7.66.0",
"@sentry/types": "7.68.0",
"@sentry/utils": "7.68.0",
"tslib": "^2.4.1 || ^1.9.3"
},
"engines": {
@@ -4675,14 +4675,14 @@
}
},
"node_modules/@sentry/node": {
"version": "7.66.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.66.0.tgz",
"integrity": "sha512-PxqIqLr4Sh5xcDfECiBQ4PuZ7v8yTgLhaRkruWrZPYxQrcJFPkwbFkw/IskzVnhT2VwXUmeWEIlRMQKBJ0t83A==",
"version": "7.68.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.68.0.tgz",
"integrity": "sha512-gtcHoi6Xu6Iu8MpPgKJA4E0nozqLvYF0fKtt+27T0QBzWioO6lkxSQkKGWMyJGL0AmpLCex0E28fck/rlbt0LA==",
"dependencies": {
"@sentry-internal/tracing": "7.66.0",
"@sentry/core": "7.66.0",
"@sentry/types": "7.66.0",
"@sentry/utils": "7.66.0",
"@sentry-internal/tracing": "7.68.0",
"@sentry/core": "7.68.0",
"@sentry/types": "7.68.0",
"@sentry/utils": "7.68.0",
"cookie": "^0.4.1",
"https-proxy-agent": "^5.0.0",
"lru_map": "^0.3.3",
@@ -4693,19 +4693,19 @@
}
},
"node_modules/@sentry/types": {
"version": "7.66.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.66.0.tgz",
"integrity": "sha512-uUMSoSiar6JhuD8p7ON/Ddp4JYvrVd2RpwXJRPH1A4H4Bd4DVt1mKJy1OLG6HdeQv39XyhB1lPZckKJg4tATPw==",
"version": "7.68.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.68.0.tgz",
"integrity": "sha512-5J2pH1Pjx/029zTm3CNY9MaE8Aui81nG7JCtlMp7uEfQ//9Ja4d4Sliz/kV4ARbkIKUZerSgaRAm3xCy5XOXLg==",
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/utils": {
"version": "7.66.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.66.0.tgz",
"integrity": "sha512-9GYUVgXjK66uXXcLXVMXVzlptqMtq1eJENCuDeezQiEFrNA71KkLDg00wESp+LL+bl3wpVTBApArpbF6UEG5hQ==",
"version": "7.68.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.68.0.tgz",
"integrity": "sha512-NecnQegvKARyeFmBx7mYmbI17mTvjARWs1nfzY5jhPyNc3Zk4M3bQsgIdnJ1t+jo93UYudlNND7hxhDzjcBAVg==",
"dependencies": {
"@sentry/types": "7.66.0",
"@sentry/types": "7.68.0",
"tslib": "^2.4.1 || ^1.9.3"
},
"engines": {
@@ -5602,15 +5602,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.5.0.tgz",
"integrity": "sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==",
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz",
"integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "6.5.0",
"@typescript-eslint/types": "6.5.0",
"@typescript-eslint/typescript-estree": "6.5.0",
"@typescript-eslint/visitor-keys": "6.5.0",
"@typescript-eslint/scope-manager": "6.6.0",
"@typescript-eslint/types": "6.6.0",
"@typescript-eslint/typescript-estree": "6.6.0",
"@typescript-eslint/visitor-keys": "6.6.0",
"debug": "^4.3.4"
},
"engines": {
@@ -5630,13 +5630,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz",
"integrity": "sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==",
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz",
"integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.5.0",
"@typescript-eslint/visitor-keys": "6.5.0"
"@typescript-eslint/types": "6.6.0",
"@typescript-eslint/visitor-keys": "6.6.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -5647,9 +5647,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.5.0.tgz",
"integrity": "sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==",
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz",
"integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -5660,13 +5660,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz",
"integrity": "sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==",
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz",
"integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.5.0",
"@typescript-eslint/visitor-keys": "6.5.0",
"@typescript-eslint/types": "6.6.0",
"@typescript-eslint/visitor-keys": "6.6.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -5687,12 +5687,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz",
"integrity": "sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==",
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz",
"integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.5.0",
"@typescript-eslint/types": "6.6.0",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -24326,9 +24326,9 @@
}
},
"node_modules/simple-icons": {
"version": "9.12.0",
"resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-9.12.0.tgz",
"integrity": "sha512-ATl97JnoUvjNRlQzqJAtMaH0P5aCf1fAF5vQddpWG/dxisrSwyIInQ88pdEL0a5m8llEJnDU5xo4TEj9fyx2fA==",
"version": "9.13.0",
"resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-9.13.0.tgz",
"integrity": "sha512-XpfRX8sX4kfizDW0SeD8ndy3twYndovdAmcIsJmJmwyLSOEP88emOVPBVj9zwb9apxRBqn+rHu4vMSPbbk8u5A==",
"engines": {
"node": ">=0.12.18"
},
@@ -26078,9 +26078,9 @@
}
},
"node_modules/ts-api-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz",
"integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
"integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
"dev": true,
"engines": {
"node": ">=16.13.0"

View File

@@ -23,7 +23,7 @@
"dependencies": {
"@renovate/pep440": "^1.0.0",
"@renovatebot/ruby-semver": "^3.0.13",
"@sentry/node": "^7.66.0",
"@sentry/node": "^7.68.0",
"@shields_io/camp": "^18.1.2",
"@xmldom/xmldom": "0.8.10",
"badge-maker": "file:badge-maker",
@@ -63,7 +63,7 @@
"qs": "^6.11.2",
"query-string": "^8.1.0",
"semver": "~7.5.4",
"simple-icons": "9.12.0",
"simple-icons": "9.13.0",
"smol-toml": "1.1.2",
"webextension-store-meta": "^1.0.5",
"xpath": "~0.0.33"
@@ -147,7 +147,7 @@
"@docusaurus/core": "^2.0.0",
"@easyops-cn/docusaurus-search-local": "^0.35.0",
"@mdx-js/react": "^1.6.21",
"@typescript-eslint/parser": "^6.5.0",
"@typescript-eslint/parser": "^6.6.0",
"c8": "^8.0.1",
"caller": "^1.1.0",
"chai": "^4.3.8",

View File

@@ -75,7 +75,7 @@ t.create('license (package not found)')
t.create('maintainer (valid)')
.get('/maintainer/google-chrome.json')
.expectBadge({ label: 'maintainer', message: 'luzifer' })
.expectBadge({ label: 'maintainer', message: 'gromit' })
t.create('maintainer (not found)')
.get('/maintainer/not-a-package.json')

View File

@@ -1,15 +1,10 @@
import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { InvalidResponse } from '../index.js'
import BaseBowerService from './bower-base.js'
const queryParamSchema = Joi.object({
include_prereleases: Joi.equal(''),
}).required()
export default class BowerVersion extends BaseBowerService {
static category = 'version'
static route = { base: 'bower/v', pattern: ':packageName', queryParamSchema }
static route = { base: 'bower/v', pattern: ':packageName' }
static examples = [
{
@@ -17,20 +12,12 @@ export default class BowerVersion extends BaseBowerService {
namedParams: { packageName: 'bootstrap' },
staticPreview: renderVersionBadge({ version: '4.2.1' }),
},
{
title: 'Bower Version (including pre-releases)',
namedParams: { packageName: 'bootstrap' },
queryParams: { include_prereleases: null },
staticPreview: renderVersionBadge({ version: '4.2.1' }),
},
]
static defaultBadgeData = { label: 'bower' }
static transform(data, includePrereleases) {
const version = includePrereleases
? data.latest_release_number
: data.latest_stable_release_number
static transform(data) {
const version = data.latest_release_number
if (!version) {
throw new InvalidResponse({ prettyMessage: 'no releases' })
@@ -39,10 +26,9 @@ export default class BowerVersion extends BaseBowerService {
return version
}
async handle({ packageName }, queryParams) {
async handle({ packageName }) {
const data = await this.fetch({ packageName })
const includePrereleases = queryParams.include_prereleases !== undefined
const version = this.constructor.transform(data, includePrereleases)
const version = this.constructor.transform(data)
return renderVersionBadge({ version })
}

View File

@@ -8,34 +8,14 @@ import BowerVersion from './bower-version.service.js'
describe('BowerVersion', function () {
test(BowerVersion.transform, () => {
given(
{
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
},
false,
).expect('1.8.3')
given(
{
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
},
true,
).expect('2.0.0-beta')
given({
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
}).expect('2.0.0-beta')
})
it('throws `no releases` InvalidResponse if no stable version', function () {
expect(() =>
BowerVersion.transform({ latest_release_number: 'panda' }, false),
)
.to.throw(InvalidResponse)
.with.property('prettyMessage', 'no releases')
})
it('throws `no releases` InvalidResponse if no prereleases', function () {
expect(() =>
BowerVersion.transform({ latest_stable_release_number: 'penguin' }, true),
)
expect(() => BowerVersion.transform({}))
.to.throw(InvalidResponse)
.with.property('prettyMessage', 'no releases')
})

View File

@@ -9,7 +9,7 @@ export const t = new ServiceTester({
pathPrefix: '/bower',
})
t.create('version').timeout(10000).get('/v/angular.json').expectBadge({
t.create('version').timeout(10000).get('/v/backbone.json').expectBadge({
label: 'bower',
message: isVPlusDottedVersionAtLeastOne,
})

View File

@@ -0,0 +1,42 @@
import Joi from 'joi'
import { BaseJsonService } from '../index.js'
import { colorScale } from '../color-formatters.js'
const schema = Joi.object({
score: Joi.number().required(),
})
export default class DubScore extends BaseJsonService {
static category = 'rating'
static route = { base: 'dub/score', pattern: ':packageName' }
static examples = [
{
title: 'DUB Score',
namedParams: { packageName: 'vibe-d' },
staticPreview: this.render({ score: 4.5 }),
},
]
static defaultBadgeData = { label: 'score' }
static render({ score }) {
return {
label: 'score',
color: colorScale([1, 2, 3, 4, 5])(score),
message: score,
}
}
async fetch({ packageName }) {
const url = `https://code.dlang.org/api/packages/${packageName}/stats`
return this._requestJson({ schema, url })
}
async handle({ packageName }) {
let { score } = await this.fetch({ packageName })
score = score.toFixed(1)
return this.constructor.render({ score })
}
}

View File

@@ -0,0 +1,25 @@
import Joi from 'joi'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
const isScoreColor = Joi.equal(
'red',
'orange',
'yellow',
'yellowgreen',
'green',
'brightgreen',
)
t.create('version (valid)')
.get('/vibe-d.json')
.expectBadge({
label: 'score',
message: Joi.number().min(0).max(5),
color: isScoreColor,
})
t.create('version (not found)')
.get('/not-a-package.json')
.expectBadge({ label: 'score', message: 'not found' })

View File

@@ -0,0 +1,65 @@
import Joi from 'joi'
import BaseTomlService from '../../core/base-service/base-toml.js'
import { optionalUrl } from '../validators.js'
const queryParamSchema = Joi.object({
tomlFilePath: optionalUrl.required(),
}).required()
const schema = Joi.object({
project: Joi.object({
'requires-python': Joi.string().required(),
}).required(),
}).required()
const documentation = `Shows the required python version for a package based on the values in the requires-python field in PEP 621 compliant pyproject.toml \n
a URL of the toml is required, please note that when linking to files in github or similar sites, provide URL to raw file, for example:
Use https://raw.githubusercontent.com/numpy/numpy/main/pyproject.toml \n
And not https://github.com/numpy/numpy/blob/main/pyproject.toml
`
class PythonVersionFromToml extends BaseTomlService {
static category = 'platform-support'
static route = {
base: '',
pattern: 'python/required-version-toml',
queryParamSchema,
}
static examples = [
{
title: 'Python Version from PEP 621 TOML',
namedParams: {},
queryParams: {
tomlFilePath:
'https://raw.githubusercontent.com/numpy/numpy/main/pyproject.toml',
},
staticPreview: this.render({ requiresPythonString: '>=3.9' }),
documentation,
},
]
static defaultBadgeData = { label: 'python' }
static render({ requiresPythonString }) {
// we only show requries-python as is
// for more info read the following issues:
// https://github.com/badges/shields/issues/9410
// https://github.com/badges/shields/issues/5551
return {
message: requiresPythonString,
color: 'blue',
}
}
async handle(namedParams, { tomlFilePath }) {
const tomlData = await this._requestToml({ url: tomlFilePath, schema })
const requiresPythonString = tomlData.project['requires-python']
return this.constructor.render({ requiresPythonString })
}
}
export { PythonVersionFromToml }

View File

@@ -0,0 +1,27 @@
import Joi from 'joi'
import pep440 from '@renovate/pep440'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
const validatePep440 = (value, helpers) => {
if (!pep440.validRange(value)) {
return helpers.error('any.invalid')
}
return value
}
const isCommaSeparatedPythonVersions = Joi.string().custom(validatePep440)
t.create('python versions (valid)')
.get(
'/python/required-version-toml.json?tomlFilePath=https://raw.githubusercontent.com/numpy/numpy/main/pyproject.toml',
)
.expectBadge({ label: 'python', message: isCommaSeparatedPythonVersions })
t.create(
'python versions - valid toml with missing python-requires field (invalid)',
)
.get(
'/python/required-version-toml.json?tomlFilePath=https://raw.githubusercontent.com/django/django/main/pyproject.toml',
)
.expectBadge({ label: 'python', message: 'invalid response data' })