Compare commits
89 Commits
server-202
...
ua-debug
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
046856c056 | ||
|
|
851a30be39 | ||
|
|
785ee090a9 | ||
|
|
0002d6749e | ||
|
|
fb379c0556 | ||
|
|
e3854098d6 | ||
|
|
83f4548b9d | ||
|
|
5930b59a66 | ||
|
|
4163856357 | ||
|
|
449b8ed28f | ||
|
|
9e8f503150 | ||
|
|
9a8be6d3e8 | ||
|
|
745d2e6e55 | ||
|
|
138365f09a | ||
|
|
b356f8a140 | ||
|
|
d39b2094cc | ||
|
|
804003a37d | ||
|
|
b0ffb6e212 | ||
|
|
fb93a2b4d3 | ||
|
|
f2a14a0aca | ||
|
|
cc3b49232a | ||
|
|
779440bdbf | ||
|
|
d64ab08375 | ||
|
|
680353b5f7 | ||
|
|
0281d13b94 | ||
|
|
d989222097 | ||
|
|
530e1b5fe4 | ||
|
|
f2d88e76fb | ||
|
|
0f288a42fc | ||
|
|
a682ff400a | ||
|
|
5b292903a9 | ||
|
|
bc5028fdcb | ||
|
|
74a0c417aa | ||
|
|
da7bacbab5 | ||
|
|
707c68ce2c | ||
|
|
e0c4a16331 | ||
|
|
185f5b8d1e | ||
|
|
edfb6afa9c | ||
|
|
c9f78ff9d6 | ||
|
|
299e30b7a2 | ||
|
|
bb2a536ce1 | ||
|
|
d164c7b3bb | ||
|
|
4fd840157e | ||
|
|
10bd884c02 | ||
|
|
1cb99a486a | ||
|
|
484cec715b | ||
|
|
c5baaae367 | ||
|
|
260d2202ff | ||
|
|
e10a9542d5 | ||
|
|
ddc7d173e1 | ||
|
|
b19d18dc33 | ||
|
|
3762bd80cd | ||
|
|
a8c58249e4 | ||
|
|
1c6e434b1d | ||
|
|
46b1cb0838 | ||
|
|
5f8e59fc23 | ||
|
|
d4460c4916 | ||
|
|
3fc1ef35bc | ||
|
|
d5c38c92be | ||
|
|
d418794cca | ||
|
|
e63234e01a | ||
|
|
510163ef2d | ||
|
|
8b19976eaf | ||
|
|
72d88d2ad7 | ||
|
|
ec26082f40 | ||
|
|
02cbb6a08a | ||
|
|
9593f46705 | ||
|
|
95e300241e | ||
|
|
220d65fe93 | ||
|
|
d832a5c068 | ||
|
|
f80df33b57 | ||
|
|
2b7d6e4b3e | ||
|
|
efd78be8bd | ||
|
|
94a8d945c3 | ||
|
|
0d96a0ea7c | ||
|
|
bea98b3f9f | ||
|
|
2215ec894b | ||
|
|
72d1322457 | ||
|
|
ebe8adfbc7 | ||
|
|
4cc47113d5 | ||
|
|
b63e5cb261 | ||
|
|
dfa88c6ed9 | ||
|
|
f8156cb108 | ||
|
|
10e2f55bfe | ||
|
|
eb2165fa66 | ||
|
|
7f2dce68b5 | ||
|
|
39da613eab | ||
|
|
f67c42021e | ||
|
|
3d9d53ba64 |
64
.github/actions/close-bot/package-lock.json
generated
vendored
64
.github/actions/close-bot/package-lock.json
generated
vendored
@@ -160,11 +160,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/once": {
|
||||
@@ -175,6 +186,11 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"node_modules/tunnel": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
@@ -188,6 +204,20 @@
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
@@ -333,9 +363,12 @@
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
@@ -345,6 +378,11 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"tunnel": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
@@ -355,6 +393,20 @@
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"requires": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
|
||||
12
.github/actions/tester/action.yml
vendored
Normal file
12
.github/actions/tester/action.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
name: 'Tester'
|
||||
description: 'Just for debugging purposes'
|
||||
branding:
|
||||
icon: 'check-circle'
|
||||
color: 'green'
|
||||
inputs:
|
||||
build-args:
|
||||
description: 'List of build-time variables'
|
||||
required: true
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
10
.github/actions/tester/index.js
vendored
Normal file
10
.github/actions/tester/index.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
'use strict'
|
||||
|
||||
const core = require('@actions/core')
|
||||
|
||||
async function run() {
|
||||
const buildArgs = await core.getInput('build-args', true)
|
||||
console.log(buildArgs)
|
||||
}
|
||||
|
||||
run()
|
||||
416
.github/actions/tester/package-lock.json
generated
vendored
Normal file
416
.github/actions/tester/package-lock.json
generated
vendored
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"name": "close-bot",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "close-bot",
|
||||
"version": "0.0.0",
|
||||
"license": "CC0",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.6.0",
|
||||
"@actions/github": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/core": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.6.0.tgz",
|
||||
"integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==",
|
||||
"dependencies": {
|
||||
"@actions/http-client": "^1.0.11"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/github": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-5.0.0.tgz",
|
||||
"integrity": "sha512-QvE9eAAfEsS+yOOk0cylLBIO/d6WyWIOvsxxzdrPFaud39G6BOkUwScXZn1iBzQzHyu9SBkkLSWlohDWdsasAQ==",
|
||||
"dependencies": {
|
||||
"@actions/http-client": "^1.0.11",
|
||||
"@octokit/core": "^3.4.0",
|
||||
"@octokit/plugin-paginate-rest": "^2.13.3",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/http-client": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
|
||||
"integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
|
||||
"dependencies": {
|
||||
"tunnel": "0.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/auth-token": {
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz",
|
||||
"integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/core": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.4.0.tgz",
|
||||
"integrity": "sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==",
|
||||
"dependencies": {
|
||||
"@octokit/auth-token": "^2.4.4",
|
||||
"@octokit/graphql": "^4.5.8",
|
||||
"@octokit/request": "^5.4.12",
|
||||
"@octokit/request-error": "^2.0.5",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"before-after-hook": "^2.2.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/endpoint": {
|
||||
"version": "6.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz",
|
||||
"integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/graphql": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.2.tgz",
|
||||
"integrity": "sha512-WmsIR1OzOr/3IqfG9JIczI8gMJUMzzyx5j0XXQ4YihHtKlQc+u35VpVoOXhlKAlaBntvry1WpAzPl/a+s3n89Q==",
|
||||
"dependencies": {
|
||||
"@octokit/request": "^5.3.0",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/openapi-types": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.0.0.tgz",
|
||||
"integrity": "sha512-gV/8DJhAL/04zjTI95a7FhQwS6jlEE0W/7xeYAzuArD0KVAVWDLP2f3vi98hs3HLTczxXdRK/mF0tRoQPpolEw=="
|
||||
},
|
||||
"node_modules/@octokit/plugin-paginate-rest": {
|
||||
"version": "2.13.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz",
|
||||
"integrity": "sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.11.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": ">=2"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.1.1.tgz",
|
||||
"integrity": "sha512-u4zy0rVA8darm/AYsIeWkRalhQR99qPL1D/EXHejV2yaECMdHfxXiTXtba8NMBSajOJe8+C9g+EqMKSvysx0dg==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.14.1",
|
||||
"deprecation": "^2.3.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@octokit/core": ">=3"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request": {
|
||||
"version": "5.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.15.tgz",
|
||||
"integrity": "sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==",
|
||||
"dependencies": {
|
||||
"@octokit/endpoint": "^6.0.1",
|
||||
"@octokit/request-error": "^2.0.0",
|
||||
"@octokit/types": "^6.7.1",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/request-error": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz",
|
||||
"integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==",
|
||||
"dependencies": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/types": {
|
||||
"version": "6.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.14.2.tgz",
|
||||
"integrity": "sha512-wiQtW9ZSy4OvgQ09iQOdyXYNN60GqjCL/UdMsepDr1Gr0QzpW6irIKbH3REuAHXAhxkEk9/F2a3Gcs1P6kW5jA==",
|
||||
"dependencies": {
|
||||
"@octokit/openapi-types": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/before-after-hook": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz",
|
||||
"integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw=="
|
||||
},
|
||||
"node_modules/deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
|
||||
},
|
||||
"node_modules/is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dependencies": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"node_modules/tunnel": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
|
||||
"engines": {
|
||||
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/universal-user-agent": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/core": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.6.0.tgz",
|
||||
"integrity": "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==",
|
||||
"requires": {
|
||||
"@actions/http-client": "^1.0.11"
|
||||
}
|
||||
},
|
||||
"@actions/github": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-5.0.0.tgz",
|
||||
"integrity": "sha512-QvE9eAAfEsS+yOOk0cylLBIO/d6WyWIOvsxxzdrPFaud39G6BOkUwScXZn1iBzQzHyu9SBkkLSWlohDWdsasAQ==",
|
||||
"requires": {
|
||||
"@actions/http-client": "^1.0.11",
|
||||
"@octokit/core": "^3.4.0",
|
||||
"@octokit/plugin-paginate-rest": "^2.13.3",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"@actions/http-client": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
|
||||
"integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
|
||||
"requires": {
|
||||
"tunnel": "0.0.6"
|
||||
}
|
||||
},
|
||||
"@octokit/auth-token": {
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz",
|
||||
"integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3"
|
||||
}
|
||||
},
|
||||
"@octokit/core": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.4.0.tgz",
|
||||
"integrity": "sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==",
|
||||
"requires": {
|
||||
"@octokit/auth-token": "^2.4.4",
|
||||
"@octokit/graphql": "^4.5.8",
|
||||
"@octokit/request": "^5.4.12",
|
||||
"@octokit/request-error": "^2.0.5",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"before-after-hook": "^2.2.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/endpoint": {
|
||||
"version": "6.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz",
|
||||
"integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.2.tgz",
|
||||
"integrity": "sha512-WmsIR1OzOr/3IqfG9JIczI8gMJUMzzyx5j0XXQ4YihHtKlQc+u35VpVoOXhlKAlaBntvry1WpAzPl/a+s3n89Q==",
|
||||
"requires": {
|
||||
"@octokit/request": "^5.3.0",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/openapi-types": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.0.0.tgz",
|
||||
"integrity": "sha512-gV/8DJhAL/04zjTI95a7FhQwS6jlEE0W/7xeYAzuArD0KVAVWDLP2f3vi98hs3HLTczxXdRK/mF0tRoQPpolEw=="
|
||||
},
|
||||
"@octokit/plugin-paginate-rest": {
|
||||
"version": "2.13.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz",
|
||||
"integrity": "sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.11.0"
|
||||
}
|
||||
},
|
||||
"@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.1.1.tgz",
|
||||
"integrity": "sha512-u4zy0rVA8darm/AYsIeWkRalhQR99qPL1D/EXHejV2yaECMdHfxXiTXtba8NMBSajOJe8+C9g+EqMKSvysx0dg==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.14.1",
|
||||
"deprecation": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@octokit/request": {
|
||||
"version": "5.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.15.tgz",
|
||||
"integrity": "sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==",
|
||||
"requires": {
|
||||
"@octokit/endpoint": "^6.0.1",
|
||||
"@octokit/request-error": "^2.0.0",
|
||||
"@octokit/types": "^6.7.1",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz",
|
||||
"integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "6.14.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.14.2.tgz",
|
||||
"integrity": "sha512-wiQtW9ZSy4OvgQ09iQOdyXYNN60GqjCL/UdMsepDr1Gr0QzpW6irIKbH3REuAHXAhxkEk9/F2a3Gcs1P6kW5jA==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"before-after-hook": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz",
|
||||
"integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw=="
|
||||
},
|
||||
"deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
|
||||
},
|
||||
"is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||
},
|
||||
"tunnel": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
|
||||
},
|
||||
"universal-user-agent": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||
"requires": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
}
|
||||
}
|
||||
}
|
||||
16
.github/actions/tester/package.json
vendored
Normal file
16
.github/actions/tester/package.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "close-bot",
|
||||
"version": "0.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "chris48s",
|
||||
"license": "CC0",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.6.0",
|
||||
"@actions/github": "^5.0.0"
|
||||
}
|
||||
}
|
||||
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -9,6 +9,13 @@ updates:
|
||||
time: '12:00'
|
||||
open-pull-requests-limit: 99
|
||||
ignore:
|
||||
# https://github.com/badges/shields/issues/7324
|
||||
# https://github.com/badges/shields/issues/7447
|
||||
# we're stuck with these versions until Safari is compatible with lookbehind regex syntax
|
||||
# https://caniuse.com/js-regexp-lookbehind
|
||||
- dependency-name: 'decamelize'
|
||||
- dependency-name: 'humanize-string'
|
||||
|
||||
# https://github.com/badges/shields/pull/7288#issuecomment-974699240
|
||||
- dependency-name: '@types/node'
|
||||
|
||||
|
||||
20
.github/workflows/test-build-args.yml
vendored
Normal file
20
.github/workflows/test-build-args.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: Tester
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install action dependencies
|
||||
run: cd .github/actions/tester && npm ci
|
||||
|
||||
- name: Set Git Short SHA
|
||||
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
|
||||
|
||||
- uses: ./.github/actions/tester
|
||||
with:
|
||||
build-args: |
|
||||
version=${{ env.SHORT_SHA }}
|
||||
@@ -4,6 +4,14 @@ Note: this changelog is for the shields.io server. The changelog for the badge-m
|
||||
|
||||
---
|
||||
|
||||
## server-2022-02-01
|
||||
|
||||
- [Depfu] Add support for Gitlab [#7475](https://github.com/badges/shields/issues/7475)
|
||||
- replace label in hn-user-karma with U/ [#7500](https://github.com/badges/shields/issues/7500)
|
||||
- Support [Feedz] response with multiple pages without items [#7476](https://github.com/badges/shields/issues/7476)
|
||||
- revert decamelize and humanize-string to old versions [#7449](https://github.com/badges/shields/issues/7449)
|
||||
- Dependency updates
|
||||
|
||||
## server-2022-01-01
|
||||
|
||||
- minor [reddit] improvements [#7436](https://github.com/badges/shields/issues/7436)
|
||||
|
||||
@@ -108,7 +108,9 @@ class AuthHelper {
|
||||
|
||||
get _basicAuth() {
|
||||
const { _user: username, _pass: password } = this
|
||||
return this.isConfigured ? { username, password } : undefined
|
||||
return this.isConfigured
|
||||
? { username: username || '', password: password || '' }
|
||||
: undefined
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -107,10 +107,10 @@ describe('AuthHelper', function () {
|
||||
]).expect({ username: 'admin', password: 'abc123' })
|
||||
given({ userKey: 'myci_user' }, { myci_user: 'admin' }).expect({
|
||||
username: 'admin',
|
||||
password: undefined,
|
||||
password: '',
|
||||
})
|
||||
given({ passKey: 'myci_pass' }, { myci_pass: 'abc123' }).expect({
|
||||
username: undefined,
|
||||
username: '',
|
||||
password: 'abc123',
|
||||
})
|
||||
given({ userKey: 'myci_user', passKey: 'myci_pass' }, {}).expect(
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// See available emoji at http://emoji.muan.co/
|
||||
import emojic from 'emojic'
|
||||
import fastXmlParser from 'fast-xml-parser'
|
||||
import { XMLParser, XMLValidator } from 'fast-xml-parser'
|
||||
import BaseService from './base.js'
|
||||
import trace from './trace.js'
|
||||
import { InvalidResponse } from './errors.js'
|
||||
@@ -51,14 +51,15 @@ class BaseXmlService extends BaseService {
|
||||
options: mergedOptions,
|
||||
errorMessages,
|
||||
})
|
||||
const validateResult = fastXmlParser.validate(buffer)
|
||||
const validateResult = XMLValidator.validate(buffer)
|
||||
if (validateResult !== true) {
|
||||
throw new InvalidResponse({
|
||||
prettyMessage: 'unparseable xml response',
|
||||
underlyingError: validateResult.err,
|
||||
})
|
||||
}
|
||||
const xml = fastXmlParser.parse(buffer, parserOptions)
|
||||
const parser = new XMLParser(parserOptions)
|
||||
const xml = parser.parse(buffer)
|
||||
logTrace(emojic.dart, 'Response XML (before validation)', xml, {
|
||||
deep: true,
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import got from 'got'
|
||||
import got, { CancelError } from 'got'
|
||||
import { Inaccessible, InvalidResponse } from './errors.js'
|
||||
import {
|
||||
fetchLimitBytes as fetchLimitBytesDefault,
|
||||
@@ -10,14 +10,14 @@ const userAgent = getUserAgent()
|
||||
async function sendRequest(gotWrapper, url, options) {
|
||||
const gotOptions = Object.assign({}, options)
|
||||
gotOptions.throwHttpErrors = false
|
||||
gotOptions.retry = 0
|
||||
gotOptions.retry = { limit: 0 }
|
||||
gotOptions.headers = gotOptions.headers || {}
|
||||
gotOptions.headers['User-Agent'] = userAgent
|
||||
try {
|
||||
const resp = await gotWrapper(url, gotOptions)
|
||||
return { res: resp, buffer: resp.body }
|
||||
} catch (err) {
|
||||
if (err instanceof got.CancelError) {
|
||||
if (err instanceof CancelError) {
|
||||
throw new InvalidResponse({
|
||||
underlyingError: new Error('Maximum response size exceeded'),
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import got from 'got'
|
||||
|
||||
// https://github.com/nock/nock/issues/1523
|
||||
export default got.extend({ retry: 0 })
|
||||
export default got.extend({ retry: { limit: 0 } })
|
||||
|
||||
@@ -16,7 +16,7 @@ export default class InfluxMetrics {
|
||||
url: this._config.url,
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||
body: await this.metrics(),
|
||||
timeout: this._config.timeoutMillseconds,
|
||||
timeout: { request: this._config.timeoutMillseconds },
|
||||
username: this._config.username,
|
||||
password: this._config.password,
|
||||
throwHttpErrors: false,
|
||||
|
||||
@@ -5,6 +5,7 @@ import { expect } from 'chai'
|
||||
import log from './log.js'
|
||||
import InfluxMetrics from './influx-metrics.js'
|
||||
import '../register-chai-plugins.spec.js'
|
||||
|
||||
describe('Influx metrics', function () {
|
||||
const metricInstance = {
|
||||
metrics() {
|
||||
|
||||
@@ -94,6 +94,8 @@ Here is a listing of all deleted badges that were once part of the Shields.io se
|
||||
- Cauditor
|
||||
- CocoaPods Apps
|
||||
- CocoaPods Downloads
|
||||
- Codetally
|
||||
- continuousphp
|
||||
- Coverity
|
||||
- Dockbit
|
||||
- Dotnet Status
|
||||
|
||||
@@ -5,7 +5,6 @@ import Meta from '../components/meta'
|
||||
import Header from '../components/header'
|
||||
import Footer from '../components/footer'
|
||||
import { BaseFont, GlobalStyle, H3 } from '../components/common'
|
||||
import Heroku from '../../static/images/heroku-logotype-horizontal-purple.svg'
|
||||
import NodePing from '../../static/images/nodeping.svg'
|
||||
import Sentry from '../../static/images/sentry-logo-black.svg'
|
||||
const MainContainer = styled(BaseFont)`
|
||||
@@ -43,11 +42,6 @@ export default function SponsorsPage(): JSX.Element {
|
||||
❤️ These companies help us by donating their services to shields:
|
||||
<ul style={{ listStyleType: 'none' }}>
|
||||
<SponsorItems>
|
||||
<li>
|
||||
<a href="https://www.heroku.com/">
|
||||
<Heroku alt="heroku_logo" height={120} />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://nodeping.com/">
|
||||
<NodePing alt="nodeping_logo" height={60} />
|
||||
|
||||
9606
package-lock.json
generated
9606
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
76
package.json
76
package.json
@@ -21,29 +21,29 @@
|
||||
"url": "https://github.com/badges/shields"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fontsource/lato": "^4.5.0",
|
||||
"@fontsource/lekton": "^4.5.0",
|
||||
"@sentry/node": "^6.16.1",
|
||||
"@fontsource/lato": "^4.5.1",
|
||||
"@fontsource/lekton": "^4.5.2",
|
||||
"@sentry/node": "^6.17.4",
|
||||
"@shields_io/camp": "^18.1.1",
|
||||
"badge-maker": "file:badge-maker",
|
||||
"bytes": "^3.1.1",
|
||||
"camelcase": "^6.2.1",
|
||||
"bytes": "^3.1.2",
|
||||
"camelcase": "^6.3.0",
|
||||
"chalk": "^5.0.0",
|
||||
"check-node-version": "^4.2.1",
|
||||
"cloudflare-middleware": "^1.0.4",
|
||||
"config": "^3.3.6",
|
||||
"config": "^3.3.7",
|
||||
"cross-env": "^7.0.3",
|
||||
"decamelize": "^6.0.0",
|
||||
"decamelize": "^3.2.0",
|
||||
"emojic": "^1.1.16",
|
||||
"escape-string-regexp": "^4.0.0",
|
||||
"fast-xml-parser": "^3.21.1",
|
||||
"fast-xml-parser": "^4.0.2",
|
||||
"glob": "^7.2.0",
|
||||
"global-agent": "^3.0.0",
|
||||
"got": "11.8.3",
|
||||
"got": "^12.0.1",
|
||||
"graphql": "^15.6.1",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"ioredis": "4.28.2",
|
||||
"joi": "17.5.0",
|
||||
"ioredis": "4.28.4",
|
||||
"joi": "17.6.0",
|
||||
"joi-extension-semver": "5.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"jsonpath": "~1.1.1",
|
||||
@@ -57,10 +57,10 @@
|
||||
"pretty-bytes": "^5.6.0",
|
||||
"priorityqueuejs": "^2.0.0",
|
||||
"prom-client": "^14.0.1",
|
||||
"qs": "^6.10.2",
|
||||
"query-string": "^7.0.1",
|
||||
"qs": "^6.10.3",
|
||||
"query-string": "^7.1.1",
|
||||
"semver": "~7.3.5",
|
||||
"simple-icons": "6.4.0",
|
||||
"simple-icons": "6.8.0",
|
||||
"webextension-store-meta": "^1.0.5",
|
||||
"xmldom": "~0.6.0",
|
||||
"xpath": "~0.0.32"
|
||||
@@ -140,34 +140,35 @@
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.16.7",
|
||||
"@babel/core": "^7.17.0",
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@babel/register": "7.16.7",
|
||||
"@babel/register": "7.17.0",
|
||||
"@istanbuljs/schema": "^0.1.3",
|
||||
"@mapbox/react-click-to-select": "^2.2.1",
|
||||
"@types/chai": "^4.3.0",
|
||||
"@types/lodash.debounce": "^4.0.6",
|
||||
"@types/lodash.groupby": "^4.6.6",
|
||||
"@types/mocha": "^9.0.0",
|
||||
"@types/mocha": "^9.1.0",
|
||||
"@types/node": "^16.7.10",
|
||||
"@types/react-helmet": "^6.1.5",
|
||||
"@types/react-modal": "^3.13.1",
|
||||
"@types/react-select": "^4.0.17",
|
||||
"@types/styled-components": "5.1.19",
|
||||
"@typescript-eslint/eslint-plugin": "^5.8.1",
|
||||
"@typescript-eslint/parser": "^5.3.0",
|
||||
"@types/styled-components": "5.1.22",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.2",
|
||||
"@typescript-eslint/parser": "^5.10.0",
|
||||
"babel-plugin-inline-react-svg": "^2.0.1",
|
||||
"babel-preset-gatsby": "^2.2.0",
|
||||
"babel-preset-gatsby": "^2.5.1",
|
||||
"c8": "^7.11.0",
|
||||
"caller": "^1.0.1",
|
||||
"chai": "^4.3.4",
|
||||
"chai": "^4.3.6",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"chai-datetime": "^1.8.0",
|
||||
"chai-string": "^1.4.0",
|
||||
"child-process-promise": "^2.2.1",
|
||||
"clipboard-copy": "^4.0.1",
|
||||
"concurrently": "^6.5.1",
|
||||
"cypress": "^9.2.0",
|
||||
"danger": "^10.7.1",
|
||||
"concurrently": "^7.0.0",
|
||||
"cypress": "^9.4.1",
|
||||
"danger": "^11.0.2",
|
||||
"danger-plugin-no-test-shortcuts": "^2.0.0",
|
||||
"deepmerge": "^4.2.2",
|
||||
"eslint": "^7.32.0",
|
||||
@@ -177,8 +178,8 @@
|
||||
"eslint-config-standard-react": "^11.0.1",
|
||||
"eslint-plugin-chai-friendly": "^0.7.2",
|
||||
"eslint-plugin-cypress": "^2.12.1",
|
||||
"eslint-plugin-import": "^2.25.3",
|
||||
"eslint-plugin-jsdoc": "^37.5.0",
|
||||
"eslint-plugin-import": "^2.25.4",
|
||||
"eslint-plugin-jsdoc": "^37.7.1",
|
||||
"eslint-plugin-mocha": "^10.0.3",
|
||||
"eslint-plugin-no-extension-in-require": "^0.2.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
@@ -188,28 +189,28 @@
|
||||
"eslint-plugin-sort-class-members": "^1.14.1",
|
||||
"fetch-ponyfill": "^7.1.0",
|
||||
"form-data": "^4.0.0",
|
||||
"gatsby": "4.4.0",
|
||||
"gatsby-plugin-catch-links": "^4.2.0",
|
||||
"gatsby": "4.6.2",
|
||||
"gatsby-plugin-catch-links": "^4.5.0",
|
||||
"gatsby-plugin-page-creator": "^4.3.0",
|
||||
"gatsby-plugin-react-helmet": "^5.2.0",
|
||||
"gatsby-plugin-remove-trailing-slashes": "^4.2.0",
|
||||
"gatsby-plugin-styled-components": "^5.2.0",
|
||||
"gatsby-plugin-typescript": "^4.2.0",
|
||||
"humanize-string": "^3.0.0",
|
||||
"humanize-string": "^2.1.0",
|
||||
"icedfrisby": "4.0.0",
|
||||
"icedfrisby-nock": "^2.1.0",
|
||||
"is-svg": "^4.3.2",
|
||||
"js-yaml-loader": "^1.2.2",
|
||||
"jsdoc": "^3.6.7",
|
||||
"lint-staged": "^12.1.4",
|
||||
"jsdoc": "^3.6.10",
|
||||
"lint-staged": "^12.3.3",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.difference": "^4.5.0",
|
||||
"minimist": "^1.2.5",
|
||||
"mocha": "^9.1.3",
|
||||
"mocha": "^9.2.0",
|
||||
"mocha-env-reporter": "^4.0.0",
|
||||
"mocha-junit-reporter": "^2.0.2",
|
||||
"mocha-yaml-loader": "^1.0.3",
|
||||
"nock": "13.2.1",
|
||||
"nock": "13.2.4",
|
||||
"node-mocks-http": "^1.11.0",
|
||||
"nodemon": "^2.0.15",
|
||||
"npm-run-all": "^4.1.5",
|
||||
@@ -228,14 +229,15 @@
|
||||
"rimraf": "^3.0.2",
|
||||
"sazerac": "^2.0.0",
|
||||
"simple-git-hooks": "^2.7.0",
|
||||
"sinon": "^12.0.1",
|
||||
"sinon": "^13.0.1",
|
||||
"sinon-chai": "^3.7.0",
|
||||
"snap-shot-it": "^7.9.6",
|
||||
"start-server-and-test": "1.14.0",
|
||||
"styled-components": "^5.3.3",
|
||||
"ts-mocha": "^8.0.0",
|
||||
"ts-mocha": "^9.0.2",
|
||||
"tsd": "^0.19.1",
|
||||
"typescript": "^4.5.4"
|
||||
"typescript": "^4.5.5",
|
||||
"url": "^0.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.13.0",
|
||||
|
||||
@@ -42,7 +42,7 @@ class BaseAurService extends BaseJsonService {
|
||||
// https://wiki.archlinux.org/index.php/Aurweb_RPC_interface
|
||||
return this._requestJson({
|
||||
schema: aurSchema,
|
||||
url: 'https://aur.archlinux.org/rpc.php',
|
||||
url: 'https://aur.archlinux.org/rpc',
|
||||
options: { searchParams: { v: 5, type: 'info', arg: packageName } },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ t.create('license (no license)')
|
||||
.get('/license/vscodium-bin.json')
|
||||
.intercept(nock =>
|
||||
nock('https://aur.archlinux.org')
|
||||
.get('/rpc.php')
|
||||
.get('/rpc')
|
||||
.query({
|
||||
v: 5,
|
||||
type: 'info',
|
||||
|
||||
@@ -16,14 +16,14 @@ export default class CodacyCoverage extends BaseSvgScrapingService {
|
||||
{
|
||||
title: 'Codacy coverage',
|
||||
pattern: ':projectId',
|
||||
namedParams: { projectId: 'e02de8d738bb4701b6345624ea2de66c' },
|
||||
namedParams: { projectId: 'd5402a91aa7b4234bd1c19b5e86a63be' },
|
||||
staticPreview: this.render({ percentage: 90 }),
|
||||
},
|
||||
{
|
||||
title: 'Codacy branch coverage',
|
||||
pattern: ':projectId/:branch',
|
||||
namedParams: {
|
||||
projectId: 'e02de8d738bb4701b6345624ea2de66c',
|
||||
projectId: 'd5402a91aa7b4234bd1c19b5e86a63be',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({ percentage: 90 }),
|
||||
|
||||
@@ -2,15 +2,15 @@ import { isIntegerPercentage } from '../test-validators.js'
|
||||
import { createServiceTester } from '../tester.js'
|
||||
export const t = await createServiceTester()
|
||||
|
||||
// https://app.codacy.com/gh/Seagate/cortx-s3server/dashboard?_ga=2.227678553.575705995.1626641804-993201653.1626641804
|
||||
// https://github.com/Seagate/cortx-s3server
|
||||
t.create('Coverage').get('/e02de8d738bb4701b6345624ea2de66c.json').expectBadge({
|
||||
// https://app.codacy.com/gh/kronenthaler/openstep-parser/dashboard
|
||||
// https://github.com/kronenthaler/openstep-parser
|
||||
t.create('Coverage').get('/d5402a91aa7b4234bd1c19b5e86a63be.json').expectBadge({
|
||||
label: 'coverage',
|
||||
message: isIntegerPercentage,
|
||||
})
|
||||
|
||||
t.create('Coverage on branch')
|
||||
.get('/e02de8d738bb4701b6345624ea2de66c/main.json')
|
||||
.get('/d5402a91aa7b4234bd1c19b5e86a63be/master.json')
|
||||
.expectBadge({
|
||||
label: 'coverage',
|
||||
message: isIntegerPercentage,
|
||||
|
||||
@@ -18,9 +18,9 @@ export default class CodeFactorGrade extends BaseSvgScrapingService {
|
||||
title: 'CodeFactor Grade',
|
||||
namedParams: {
|
||||
vcsType: 'github',
|
||||
user: 'pallets',
|
||||
repo: 'flask',
|
||||
branch: 'master',
|
||||
user: 'microsoft',
|
||||
repo: 'powertoys',
|
||||
branch: 'main',
|
||||
},
|
||||
staticPreview: this.render({ grade: 'B+' }),
|
||||
},
|
||||
|
||||
@@ -2,13 +2,13 @@ import { createServiceTester } from '../tester.js'
|
||||
import { isValidGrade } from './codefactor-helpers.js'
|
||||
export const t = await createServiceTester()
|
||||
|
||||
t.create('Grade').get('/github/google/guava.json').expectBadge({
|
||||
t.create('Grade').get('/github/microsoft/powertoys.json').expectBadge({
|
||||
label: 'code quality',
|
||||
message: isValidGrade,
|
||||
})
|
||||
|
||||
t.create('Grade (branch)')
|
||||
.get('/github/pallets/flask/master.json')
|
||||
.get('/github/spring-projects/spring-boot/main.json')
|
||||
.expectBadge({
|
||||
label: 'code quality',
|
||||
message: isValidGrade,
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
import { deprecatedService } from '../index.js'
|
||||
|
||||
export default [
|
||||
deprecatedService({
|
||||
category: 'funding',
|
||||
label: 'codetally',
|
||||
route: {
|
||||
base: 'codetally',
|
||||
pattern: ':owner/:repo',
|
||||
},
|
||||
dateAdded: new Date('2020-09-05'),
|
||||
}),
|
||||
]
|
||||
@@ -1,14 +0,0 @@
|
||||
import { ServiceTester } from '../tester.js'
|
||||
|
||||
export const t = new ServiceTester({
|
||||
id: 'Codetally',
|
||||
title: 'Codetally',
|
||||
pathPrefix: '/codetally',
|
||||
})
|
||||
|
||||
t.create('no longer available')
|
||||
.get('/triggerman722/colorstrap.json')
|
||||
.expectBadge({
|
||||
label: 'codetally',
|
||||
message: 'no longer available',
|
||||
})
|
||||
@@ -1,11 +0,0 @@
|
||||
import { deprecatedService } from '../index.js'
|
||||
|
||||
export default deprecatedService({
|
||||
category: 'build',
|
||||
route: {
|
||||
base: 'continuousphp',
|
||||
pattern: ':various+',
|
||||
},
|
||||
label: 'continuousphp',
|
||||
dateAdded: new Date('2020-12-12'),
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
import { ServiceTester } from '../tester.js'
|
||||
|
||||
export const t = new ServiceTester({
|
||||
id: 'continuousphp',
|
||||
title: 'Continuousphp',
|
||||
})
|
||||
|
||||
t.create('no longer available (previously build status on default branch)')
|
||||
.get('/git-hub/doctrine/dbal.json')
|
||||
.expectBadge({
|
||||
label: 'continuousphp',
|
||||
message: 'no longer available',
|
||||
})
|
||||
|
||||
t.create('no longer available (previously build status on named branch)')
|
||||
.get('/git-hub/doctrine/dbal/develop.json')
|
||||
.expectBadge({
|
||||
label: 'continuousphp',
|
||||
message: 'no longer available',
|
||||
})
|
||||
@@ -1,18 +1,22 @@
|
||||
import Joi from 'joi'
|
||||
import { BaseJsonService } from '../index.js'
|
||||
import { BaseJsonService, InvalidParameter, redirector } from '../index.js'
|
||||
|
||||
const depfuSchema = Joi.object({
|
||||
text: Joi.string().required(),
|
||||
colorscheme: Joi.string().required(),
|
||||
}).required()
|
||||
|
||||
export default class Depfu extends BaseJsonService {
|
||||
class Depfu extends BaseJsonService {
|
||||
static category = 'dependencies'
|
||||
static route = { base: 'depfu', pattern: ':user/:repo' }
|
||||
static route = {
|
||||
base: 'depfu/dependencies',
|
||||
pattern: ':vcsType(github|gitlab)/:project+',
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'Depfu',
|
||||
namedParams: { user: 'depfu', repo: 'example-ruby' },
|
||||
namedParams: { vcsType: 'github', project: 'depfu/example-ruby' },
|
||||
staticPreview: this.render({
|
||||
text: 'recent',
|
||||
colorscheme: 'brightgreen',
|
||||
@@ -29,13 +33,31 @@ export default class Depfu extends BaseJsonService {
|
||||
}
|
||||
}
|
||||
|
||||
async fetch({ user, repo }) {
|
||||
const url = `https://depfu.com/github/shields/${user}/${repo}`
|
||||
async fetch({ vcsType, project }) {
|
||||
const separatorPosition = project.lastIndexOf('/')
|
||||
if (separatorPosition < 0) {
|
||||
throw new InvalidParameter()
|
||||
}
|
||||
const user = encodeURIComponent(project.substr(0, separatorPosition))
|
||||
const repo = project.substr(separatorPosition)
|
||||
const url = `https://depfu.com/${vcsType}/shields/${user}/${repo}`
|
||||
return this._requestJson({ url, schema: depfuSchema })
|
||||
}
|
||||
|
||||
async handle({ user, repo }) {
|
||||
const { text, colorscheme } = await this.fetch({ user, repo })
|
||||
async handle({ vcsType, project }) {
|
||||
const { text, colorscheme } = await this.fetch({ vcsType, project })
|
||||
return this.constructor.render({ text, colorscheme })
|
||||
}
|
||||
}
|
||||
|
||||
const legacyRoutes = [
|
||||
redirector({
|
||||
category: 'dependencies',
|
||||
route: { base: 'depfu', pattern: ':user/:repo' },
|
||||
transformPath: ({ user, repo }) =>
|
||||
`/depfu/dependencies/github/${user}/${repo}`,
|
||||
dateAdded: new Date('2022-01-11'),
|
||||
}),
|
||||
]
|
||||
|
||||
export default { ...legacyRoutes, Depfu }
|
||||
|
||||
@@ -10,13 +10,51 @@ const isDependencyStatus = Joi.string().valid(
|
||||
|
||||
export const t = new ServiceTester({ id: 'depfu', title: 'Depfu' })
|
||||
|
||||
t.create('depfu dependencies (valid)')
|
||||
.get('/depfu/example-ruby.json')
|
||||
t.create('depfu Github dependencies (valid)')
|
||||
.get('/dependencies/github/depfu/example-ruby.json')
|
||||
.expectBadge({
|
||||
label: 'dependencies',
|
||||
message: isDependencyStatus,
|
||||
})
|
||||
|
||||
t.create('depfu dependencies (repo not found)')
|
||||
.get('/pyvesb/emptyrepo.json')
|
||||
t.create('depfu Github dependencies (repo not found)')
|
||||
.get('/dependencies/github/pyvesb/emptyrepo.json')
|
||||
.expectBadge({ label: 'dependencies', message: 'not found' })
|
||||
|
||||
t.create('depfu Gitlab dependencies (valid)')
|
||||
.get('/dependencies/gitlab/depfu/example-ruby.json')
|
||||
.expectBadge({
|
||||
label: 'dependencies',
|
||||
message: isDependencyStatus,
|
||||
})
|
||||
|
||||
t.create('depfu Github dependencies (no separator)')
|
||||
.get('/dependencies/github/example-ruby.json')
|
||||
.expectBadge({
|
||||
label: 'dependencies',
|
||||
message: 'invalid parameter',
|
||||
})
|
||||
|
||||
t.create('depfu Gitlab dependencies (valid with subgroup)')
|
||||
.get(
|
||||
'/dependencies/gitlab/shields-example-group/subgroup/example-nodejs.json'
|
||||
)
|
||||
.expectBadge({
|
||||
label: 'dependencies',
|
||||
message: isDependencyStatus,
|
||||
})
|
||||
|
||||
t.create('depfu Gitlab dependencies (repo not found)')
|
||||
.get('/dependencies/gitlab/fdroid/nonexistant.json')
|
||||
.expectBadge({ label: 'dependencies', message: 'not found' })
|
||||
|
||||
t.create('depfu Gitlab dependencies (no separator)')
|
||||
.get('/dependencies/gitlab/example-ruby.json')
|
||||
.expectBadge({
|
||||
label: 'dependencies',
|
||||
message: 'invalid parameter',
|
||||
})
|
||||
|
||||
t.create('legacy route (assume "github" as a default VCS)')
|
||||
.get('/depfu/example-ruby.svg')
|
||||
.expectRedirect('/depfu/dependencies/github/depfu/example-ruby.svg')
|
||||
|
||||
@@ -27,7 +27,7 @@ export default class DroneBuild extends BaseJsonService {
|
||||
title: 'Drone (cloud)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: {
|
||||
user: 'drone',
|
||||
user: 'harness',
|
||||
repo: 'drone',
|
||||
},
|
||||
staticPreview: renderBuildStatusBadge({ status: 'success' }),
|
||||
@@ -36,7 +36,7 @@ export default class DroneBuild extends BaseJsonService {
|
||||
title: 'Drone (cloud) with branch',
|
||||
pattern: ':user/:repo/:branch',
|
||||
namedParams: {
|
||||
user: 'drone',
|
||||
user: 'harness',
|
||||
repo: 'drone',
|
||||
branch: 'master',
|
||||
},
|
||||
|
||||
@@ -10,14 +10,14 @@ const isDroneBuildStatus = Joi.alternatives().try(
|
||||
)
|
||||
|
||||
t.create('cloud-hosted build status on default branch')
|
||||
.get('/drone/drone.json')
|
||||
.get('/harness/drone.json')
|
||||
.expectBadge({
|
||||
label: 'build',
|
||||
message: isDroneBuildStatus,
|
||||
})
|
||||
|
||||
t.create('cloud-hosted build status on named branch')
|
||||
.get('/drone/drone/master.json')
|
||||
.get('/harness/drone/master.json')
|
||||
.expectBadge({
|
||||
label: 'build',
|
||||
message: isDroneBuildStatus,
|
||||
|
||||
@@ -7,22 +7,23 @@ import {
|
||||
selectVersion,
|
||||
} from '../nuget/nuget-helpers.js'
|
||||
|
||||
const schema = Joi.object({
|
||||
const singlePageSchema = Joi.object({
|
||||
'@id': Joi.string().required(),
|
||||
items: Joi.array()
|
||||
.items(
|
||||
Joi.object({
|
||||
items: Joi.array().items(
|
||||
Joi.object({
|
||||
catalogEntry: Joi.object({
|
||||
version: Joi.string().required(),
|
||||
}).required(),
|
||||
})
|
||||
),
|
||||
}).required()
|
||||
catalogEntry: Joi.object({
|
||||
version: Joi.string().required(),
|
||||
}).required(),
|
||||
})
|
||||
)
|
||||
.default([]),
|
||||
}).required()
|
||||
|
||||
const packageSchema = Joi.object({
|
||||
items: Joi.array().items(singlePageSchema).default([]),
|
||||
}).required()
|
||||
|
||||
class FeedzVersionService extends BaseJsonService {
|
||||
static category = 'version'
|
||||
|
||||
@@ -72,7 +73,7 @@ class FeedzVersionService extends BaseJsonService {
|
||||
'RegistrationsBaseUrl'
|
||||
)
|
||||
return await this._requestJson({
|
||||
schema,
|
||||
schema: packageSchema,
|
||||
url: `${registrationsBaseUrl}${packageName}/index.json`,
|
||||
errorMessages: {
|
||||
404: 'repository or package not found',
|
||||
@@ -80,6 +81,25 @@ class FeedzVersionService extends BaseJsonService {
|
||||
})
|
||||
}
|
||||
|
||||
async fetchItems({ json }) {
|
||||
if (json.items.length === 0 || json.items.some(i => i.catalogEntry)) {
|
||||
return json
|
||||
} else {
|
||||
const items = await Promise.all(
|
||||
json.items.map(i =>
|
||||
this._requestJson({
|
||||
schema: singlePageSchema,
|
||||
url: i['@id'],
|
||||
errorMessages: {
|
||||
404: 'repository or package not found',
|
||||
},
|
||||
})
|
||||
)
|
||||
)
|
||||
return { items }
|
||||
}
|
||||
}
|
||||
|
||||
transform({ json, includePrereleases }) {
|
||||
const versions = json.items.flatMap(tl =>
|
||||
tl.items.map(i => stripBuildMetadata(i.catalogEntry.version))
|
||||
@@ -95,7 +115,8 @@ class FeedzVersionService extends BaseJsonService {
|
||||
const includePrereleases = which === 'vpre'
|
||||
const baseUrl = this.apiUrl({ organization, repository })
|
||||
const json = await this.fetch({ baseUrl, packageName })
|
||||
const version = this.transform({ json, includePrereleases })
|
||||
const fetchedJson = await this.fetchItems({ json })
|
||||
const version = this.transform({ json: fetchedJson, includePrereleases })
|
||||
return this.constructor.render({
|
||||
version,
|
||||
feed: FeedzVersionService.defaultBadgeData.label,
|
||||
|
||||
@@ -11,6 +11,8 @@ export const t = new ServiceTester({
|
||||
// - Shields.TestPackage: 0.0.1, 0.1.0-pre, 1.0.0
|
||||
// - Shields.TestPreOnly: 0.1.0-pre
|
||||
// - Shields.MultiPage: 0.1.0-0.1.100 plus 1.0.0 but the response has multiple top-level `items`
|
||||
// - Shields.MultiPageNoItems: 0.0.0-0.0.256 plus 1.0.0 but the response has multiple top-level
|
||||
// `items` without `catalogEntries`
|
||||
// The source code of these packages is here: https://github.com/jakubfijalkowski/shields-test-packages
|
||||
|
||||
// version
|
||||
@@ -46,6 +48,14 @@ t.create('multi-page')
|
||||
color: 'blue',
|
||||
})
|
||||
|
||||
t.create('multi-page-no-items')
|
||||
.get('/feedz/v/shieldstests/public/Shields.MultiPageNoItems.json')
|
||||
.expectBadge({
|
||||
label: 'feedz',
|
||||
message: 'v1.0.0',
|
||||
color: 'blue',
|
||||
})
|
||||
|
||||
t.create('repository (not found)')
|
||||
.get('/feedz/v/foo/bar/not-a-real-package.json')
|
||||
.expectBadge({ label: 'feedz', message: 'repository or package not found' })
|
||||
|
||||
@@ -69,7 +69,7 @@ export default class GitlabCoverage extends BaseSvgScrapingService {
|
||||
},
|
||||
{
|
||||
title: 'Gitlab code coverage (self-hosted)',
|
||||
namedParams: { user: 'GNOME', repo: 'libhandy', branch: 'master' },
|
||||
namedParams: { user: 'GNOME', repo: 'at-spi2-core', branch: 'master' },
|
||||
queryParams: { gitlab_url: 'https://gitlab.gnome.org' },
|
||||
staticPreview: this.render({ coverage: 93 }),
|
||||
documentation,
|
||||
|
||||
@@ -47,7 +47,7 @@ t.create('Coverage (custom invalid job)')
|
||||
})
|
||||
|
||||
t.create('Coverage (custom gitlab URL)')
|
||||
.get('/GNOME/libhandy/master.json?gitlab_url=https://gitlab.gnome.org')
|
||||
.get('/GNOME/at-spi2-core/master.json?gitlab_url=https://gitlab.gnome.org')
|
||||
.expectBadge({
|
||||
label: 'coverage',
|
||||
message: isIntegerPercentage,
|
||||
|
||||
@@ -33,7 +33,7 @@ export default class HackerNewsUserKarma extends BaseJsonService {
|
||||
static render({ karma, id }) {
|
||||
const color = karma > 0 ? 'brightgreen' : karma === 0 ? 'orange' : 'red'
|
||||
return {
|
||||
label: id,
|
||||
label: `U/${id} karma`,
|
||||
message: metric(karma),
|
||||
color,
|
||||
style: 'social',
|
||||
|
||||
@@ -4,7 +4,7 @@ import { isMetricAllowNegative } from '../test-validators.js'
|
||||
export const t = await createServiceTester()
|
||||
|
||||
t.create('valid repo').get('/pg.json').expectBadge({
|
||||
label: 'pg',
|
||||
label: 'U/pg karma',
|
||||
message: isMetricAllowNegative,
|
||||
})
|
||||
|
||||
@@ -16,7 +16,7 @@ t.create('valid repo -- negative karma')
|
||||
.reply(200, { karma: -1234 })
|
||||
)
|
||||
.expectBadge({
|
||||
label: 'negative',
|
||||
label: 'U/negative karma',
|
||||
message: isMetricAllowNegative,
|
||||
})
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ export default class JetbrainsBase extends BaseXmlService {
|
||||
|
||||
async fetchIntelliJPluginData({ pluginId, schema }) {
|
||||
const parserOptions = {
|
||||
parseNodeValue: false,
|
||||
parseTagValue: false,
|
||||
ignoreAttributes: false,
|
||||
}
|
||||
return this._requestXml({
|
||||
|
||||
@@ -52,7 +52,7 @@ export default class MavenMetadata extends BaseXmlService {
|
||||
return this._requestXml({
|
||||
schema,
|
||||
url: metadataUrl,
|
||||
parserOptions: { parseNodeValue: false },
|
||||
parserOptions: { parseTagValue: false },
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,9 @@ t.create('Nexus 2 - search snapshot version of an nonexistent artifact')
|
||||
})
|
||||
|
||||
t.create('Nexus 2 - repository version')
|
||||
.get('/public/asm/asm.json?server=http://repo.e-iceblue.com/nexus')
|
||||
.get(
|
||||
'/developer/ai.h2o/h2o-automl.json?server=https://repository.jboss.org/nexus'
|
||||
)
|
||||
.expectBadge({
|
||||
label: 'nexus',
|
||||
message: isVersion,
|
||||
@@ -310,11 +312,11 @@ t.create('Nexus 3 - repository version with query')
|
||||
t.create('Nexus 3 - search release version without snapshots')
|
||||
.get(
|
||||
// Limit the version from above, so that any later artifacts don't break this test.
|
||||
`/r/org.pentaho.adaptive/daemon.json?server=https://nexus.pentaho.org&nexusVersion=3&queryOpt=${encodeURIComponent(
|
||||
':maven.baseVersion=<8.1.0.1'
|
||||
`/r/org.pentaho.adaptive/pdi-engines.json?server=https://nexus.pentaho.org&nexusVersion=3&queryOpt=${encodeURIComponent(
|
||||
':maven.baseVersion=<8.0.0.1'
|
||||
)}`
|
||||
)
|
||||
.expectBadge({
|
||||
label: 'nexus',
|
||||
message: 'v8.1.0.0-365',
|
||||
message: 'v8.0.0.0-28',
|
||||
})
|
||||
|
||||
@@ -40,7 +40,7 @@ export default class OpmVersion extends BaseService {
|
||||
})
|
||||
|
||||
// TODO: set followRedirect to false and intercept 302 redirects
|
||||
const location = res.request.redirects[0]
|
||||
const location = res.redirectUrls[0].toString()
|
||||
if (!location) {
|
||||
throw new NotFound({ prettyMessage: 'module not found' })
|
||||
}
|
||||
|
||||
@@ -1,65 +1,11 @@
|
||||
import Joi from 'joi'
|
||||
import { BaseJsonService } from '../index.js'
|
||||
import { deprecatedService } from '../index.js'
|
||||
|
||||
const statusSchema = Joi.object({
|
||||
status: Joi.string().required(),
|
||||
}).required()
|
||||
|
||||
export default class RequiresIo extends BaseJsonService {
|
||||
static category = 'dependencies'
|
||||
|
||||
static route = {
|
||||
export default deprecatedService({
|
||||
category: 'dependencies',
|
||||
route: {
|
||||
base: 'requires',
|
||||
pattern: ':service/:user/:repo/:branch*',
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'Requires.io',
|
||||
pattern: ':service/:user/:repo',
|
||||
namedParams: { service: 'github', user: 'zulip', repo: 'zulip' },
|
||||
staticPreview: this.render({ status: 'up-to-date' }),
|
||||
},
|
||||
{
|
||||
title: 'Requires.io (branch)',
|
||||
pattern: ':service/:user/:repo/:branch',
|
||||
namedParams: {
|
||||
service: 'github',
|
||||
user: 'zulip',
|
||||
repo: 'zulip',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({ status: 'up-to-date' }),
|
||||
},
|
||||
]
|
||||
|
||||
static defaultBadgeData = { label: 'requirements' }
|
||||
|
||||
static render({ status }) {
|
||||
let message = status
|
||||
let color = 'lightgrey'
|
||||
if (status === 'up-to-date') {
|
||||
message = 'up to date'
|
||||
color = 'brightgreen'
|
||||
} else if (status === 'outdated') {
|
||||
color = 'yellow'
|
||||
} else if (status === 'insecure') {
|
||||
color = 'red'
|
||||
}
|
||||
return { message, color }
|
||||
}
|
||||
|
||||
async fetch({ service, user, repo, branch }) {
|
||||
const url = `https://requires.io/api/v1/status/${service}/${user}/${repo}`
|
||||
return this._requestJson({
|
||||
url,
|
||||
schema: statusSchema,
|
||||
options: { searchParams: { branch } },
|
||||
})
|
||||
}
|
||||
|
||||
async handle({ service, user, repo, branch }) {
|
||||
const { status } = await this.fetch({ service, user, repo, branch })
|
||||
return this.constructor.render({ status })
|
||||
}
|
||||
}
|
||||
format: '(?:.+?)',
|
||||
},
|
||||
label: 'requirements',
|
||||
dateAdded: new Date('2022-02-05'),
|
||||
})
|
||||
|
||||
@@ -1,44 +1,20 @@
|
||||
import Joi from 'joi'
|
||||
import { createServiceTester } from '../tester.js'
|
||||
export const t = await createServiceTester()
|
||||
import { ServiceTester } from '../tester.js'
|
||||
|
||||
const isRequireStatus = Joi.string().regex(
|
||||
/^(up to date|outdated|insecure|unknown)$/
|
||||
)
|
||||
export const t = new ServiceTester({
|
||||
id: 'requires',
|
||||
title: 'Requires.io',
|
||||
})
|
||||
|
||||
// Package targets can be found at https://requires.io/public
|
||||
// However, there does seem to be some retention issues where
|
||||
// results for projects are purged after some number of days.
|
||||
// https://github.com/badges/shields/issues/7015
|
||||
// https://github.com/requires/api/issues/5
|
||||
t.create('requirements (valid GitHub, without branch)')
|
||||
.get('/github/Hongbo-Miao/hongbomiao.com.json')
|
||||
.expectBadge({
|
||||
label: 'requirements',
|
||||
message: isRequireStatus,
|
||||
})
|
||||
|
||||
t.create('requirements (valid GitHub, with branch)')
|
||||
.get('/github/Hongbo-Miao/hongbomiao.com/main.json')
|
||||
.expectBadge({
|
||||
label: 'requirements',
|
||||
message: isRequireStatus,
|
||||
})
|
||||
|
||||
t.create('requirements (valid Bitbucket, without branch)')
|
||||
t.create('no longer available (previously Bitbucket without branch)')
|
||||
.get('/bitbucket/code-orange/django-ispstack.json')
|
||||
.expectBadge({
|
||||
label: 'requirements',
|
||||
message: isRequireStatus,
|
||||
message: 'no longer available',
|
||||
})
|
||||
|
||||
t.create('requirements (valid Bitbucket, with branch)')
|
||||
.get('/bitbucket/code-orange/django-ispstack/master.json')
|
||||
t.create('no longer available (previously GitHub with branch)')
|
||||
.get('/github/Hongbo-Miao/hongbomiao.com/main.json')
|
||||
.expectBadge({
|
||||
label: 'requirements',
|
||||
message: isRequireStatus,
|
||||
message: 'no longer available',
|
||||
})
|
||||
|
||||
t.create('requirements (not found)')
|
||||
.get('/github/PyvesB/EmptyRepo.json')
|
||||
.expectBadge({ label: 'requirements', message: 'not found' })
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="268" height="80" viewBox="0 0 268 80">
|
||||
<path fill="#430098" fill-rule="evenodd" d="M64.8,0 C68.776,0 72,3.224 72,7.2 L72,7.2 L72,72.8 C72,76.776 68.776,80 64.8,80 L64.8,80 L7.2,80 C3.224,80 0,76.776 0,72.8 L0,72.8 L0,7.2 C0,3.224 3.224,0 7.2,0 L7.2,0 Z M64.8,4 L7.2,4 C5.436,4 4,5.435 4,7.2 L4,7.2 L4,72.8 C4,74.564 5.436,76 7.2,76 L7.2,76 L64.8,76 C66.565,76 68,74.564 68,72.8 L68,72.8 L68,7.2 C68,5.435 66.565,4 64.8,4 L64.8,4 Z M19,52 L28,60 L19,68 L19,52 Z M27,12 L27,34.711 C30.994,33.411 36.577,32 42,32 C46.945,32 49.905,33.944 51.517,35.575 C54.814625,38.91 54.995191,43.1202378 55.0003112,43.9159307 L55.0002258,68 L47,68 L47,44.11 C46.961,42.243 46.062,40 42,40 C34.230209,40 25.5570898,43.7328438 24.7166549,44.1028638 L24.651,44.132 L19,46.692 L19,12 L27,12 Z M191.995,25 C198.5525,25 205.37,29.165 205.37,39.15 C205.37,49.135 198.5525,53.3 191.995,53.3 C185.3975,53.2975 178.5825,49.135 178.5825,39.15 C178.5825,29.1675 185.3975,25 191.995,25 Z M251.99,25.5175 L251.99,41.805 C251.99,45.5625 253.205,47.2575 256.155,47.2575 C259.1025,47.2575 260.28,45.5625 260.28,41.805 L260.28,25.5175 L267.5,25.5175 L267.5,41.84 C267.5,49.0625 264.0375,53.1875 256.0775,53.1875 C248.1175,53.1875 244.62,49.0625 244.62,41.84 L244.62,25.5175 L251.99,25.5175 Z M220.94,25.5175 L220.94,35.3925 L228.4575,25.5175 L237.005,25.5175 L227.83,36.2775 L237.815,52.785 L229.4875,52.785 L223.04,41.8775 L220.94,44.31 L220.94,52.785 L213.57,52.785 L213.57,25.5175 L220.94,25.5175 Z M140.25,25.5175 L140.25,31.635 L128.165,31.635 L128.165,36.0575 L136.7875,36.0575 L136.7875,41.805 L128.165,41.805 L128.165,46.8525 L140.8775,46.8525 L140.8775,52.785 L120.7975,52.785 L120.7975,25.5175 L140.25,25.5175 Z M159.6175,25.5175 C166.6175,25.5175 170.8925,27.84 170.8925,34.3975 C170.8925,38.67 169.0875,41.1425 165.5125,42.355 L171.2975,52.7825 L163.4875,52.7825 L158.2175,43.315 L156.19,43.315 L156.19,52.7825 L148.9675,52.7825 L148.9675,25.5175 L159.6175,25.5175 Z M94.87,25.5175 L94.87,35.65 L103.935,35.65 L103.935,25.5175 L111.305,25.5175 L111.305,52.7825 L103.935,52.7825 L103.935,41.765 L94.87,41.765 L94.87,52.7825 L87.5,52.7825 L87.5,25.5175 L94.87,25.5175 Z M191.9925,31.0825 C188.1225,31.0825 185.95,34.14 185.95,39.15 C185.95,44.1625 188.125,47.405 191.9925,47.405 C195.825,47.4025 197.9975,44.1625 197.9975,39.15 C197.9975,34.14 195.8225,31.0825 191.9925,31.0825 Z M159.36,31.485 L156.1925,31.485 L156.1925,37.7125 L159.36,37.7125 C162.3825,37.7125 163.7075,36.865 163.7075,34.58 C163.7075,32.295 162.38,31.485 159.36,31.485 Z M55,12 C54.46,16.544 52.618,20.9 49,25 L49,25 L41,25 C44.144,20.875 46.118,16.534 47,12 L47,12 Z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
Reference in New Issue
Block a user