Merge branch 'main' into v7.3.3

This commit is contained in:
wanhose 2024-10-10 11:45:04 +02:00
commit c5a6563d0c
4 changed files with 79 additions and 41 deletions

View File

@ -443,6 +443,12 @@
"domain": "staylibere.com",
"selector": "[class*=\"LayoutCookieBanner_buttons\"] > button:last-child"
},
{
"action": "reset",
"domain": "thetvdb.com",
"property": "overflow",
"selector": "body"
},
{
"action": "click",
"domain": "twitch.tv",
@ -496,6 +502,7 @@
"||cmp.inmobi.com^",
"||cmp.prisa.com^",
"||cmp.uniconsent.com^",
"||cms.static-bahn.de/cms/consent-layer^",
"||consent.cookiebot.com^",
"||consent.cookiefirst.com^",
"||consent.pdf24.org^",
@ -507,10 +514,12 @@
"||cp.as.com^",
"||cp.inside-digital.de^",
"||download.amd.com/OneTrust^",
"||driftingchef.com/static/*/Sticky2,ConsentManager",
"||emp.bbci.co.uk^",
"||eu.fastcmp.com^",
"||forum.vorondesign.com/js/xf/notice.min.js^",
"||gdpr-tcfv2.sp-prod.net^",
"||get.optad360.io/sf/*/plugin.min.js",
"||ilims.de/typo3conf/ext/nb_cookie_banner^",
"||itkadmin.de/_javascripts/cookiesolution/es_cookie_solution_sources_v2.js^",
"||js.vxcdn.com/usercentrics-sdk^",
@ -13988,5 +13997,5 @@
"ytm-consent-bump-v2-renderer"
]
},
"version": "1728035398000"
"version": "1728300083309"
}

View File

@ -32,28 +32,33 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
const ua = new UAParser(userAgent ?? '').getResult();
const hostname = new URL(url).hostname.split('.').slice(-3).join('.').replace('www.', '');
const existingIssues = await octokit.request('GET /search/issues', {
per_page: 1,
per_page: 50,
q: `in:title+is:issue+repo:${environment.github.owner}/${environment.github.repo}+${hostname}`,
});
const existingIssue = existingIssues.data.items[0];
const existingIssue = existingIssues.data.items.find(
(issue) =>
hostname === issue.title &&
(issue.state === 'open' ||
(issue.state === 'closed' && issue.labels.some((label) => label.name === 'wontfix')))
);
try {
if (existingIssue) {
if (existingIssue.state === 'closed') {
await octokit.request('PATCH /repos/{owner}/{repo}/issues/{issue_number}', {
owner: environment.github.owner,
repo: environment.github.repo,
issue_number: existingIssue.number,
labels: ['bug'],
owner: environment.github.owner,
repo: environment.github.repo,
state: 'open',
});
}
await octokit.request('POST /repos/{owner}/{repo}/issues/{issue_number}/comments', {
body: generateText(request.body, ua),
issue_number: existingIssue.number,
owner: environment.github.owner,
repo: environment.github.repo,
issue_number: existingIssue.number,
body: generateText(request.body, ua),
});
reply.send({
@ -69,7 +74,7 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
labels: ['bug'],
owner: environment.github.owner,
repo: environment.github.repo,
title: url,
title: hostname,
});
reply.send({

View File

@ -23,17 +23,17 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
try {
const { hostname } = request.params;
const existingIssues = await octokit.request('GET /search/issues', {
per_page: 1,
per_page: 50,
q: `in:title+is:issue+repo:${environment.github.owner}/${environment.github.repo}+${hostname}`,
});
const existingIssue = existingIssues.data.items[0];
const existingIssue = existingIssues.data.items.find(
(issue) =>
hostname === issue.title &&
(issue.state === 'open' ||
(issue.state === 'closed' && issue.labels.some((label) => label.name === 'wontfix')))
);
if (
existingIssue &&
(existingIssue.state === 'open' ||
(existingIssue.state === 'closed' &&
existingIssue.labels.some((label) => label.name === 'wontfix')))
) {
if (existingIssue) {
reply.send({
data: {
flags: existingIssue.labels.map((label) => label.name),

View File

@ -28,31 +28,73 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
validatorCompiler,
},
async (request, reply) => {
const { url, userAgent } = request.body;
const { reason, url, userAgent, version } = request.body;
const ua = new UAParser(userAgent ?? '').getResult();
const hostname = new URL(url).hostname.split('.').slice(-3).join('.').replace('www.', '');
const existingIssues = await octokit.request('GET /search/issues', {
per_page: 1,
per_page: 50,
q: `in:title+is:issue+repo:${environment.github.owner}/${environment.github.repo}+${hostname}`,
});
const existingIssue = existingIssues.data.items[0];
const existingIssue = existingIssues.data.items.find((issue) => hostname === issue.title);
try {
if (existingIssue) {
if (existingIssue.labels.some((label) => label.name === 'wontfix')) {
reply.send({
data: existingIssue.html_url,
errors: ['This issue has been marked as "wontfix" and will not be addressed.'],
success: false,
});
return;
}
if (existingIssue.state === 'open') {
reply.send({
data: existingIssue.html_url,
errors: [
'This issue already exists. Please refer to the existing issue for updates.',
],
success: false,
});
return;
}
await octokit.request('PATCH /repos/{owner}/{repo}/issues/{issue_number}', {
issue_number: existingIssue.number,
labels: ['bug'],
owner: environment.github.owner,
repo: environment.github.repo,
state: 'open',
});
reply.send({
errors: [`Issue already exists, ${existingIssue.html_url}`],
success: false,
data: existingIssue.html_url,
success: true,
});
return;
}
const response = await octokit.request('POST /repos/{owner}/{repo}/issues', {
assignees: [environment.github.owner],
body: generateText(request.body, ua),
body: [
'## Issue information',
...(ua.browser.name && ua.browser.version
? ['#### 🖥️ Browser', `${ua.browser.name} (${ua.browser.version})`]
: []),
...(ua.device.type && ua.device.vendor
? ['#### 📱 Device', `${ua.device.vendor} (${ua.device.type})`]
: []),
'#### 📝 Reason',
reason,
'#### 🔗 URL',
url,
'#### 🏷️ Version',
version,
].join('\n'),
labels: ['bug'],
owner: environment.github.owner,
repo: environment.github.repo,
title: url,
title: hostname,
});
reply.send({
@ -70,21 +112,3 @@ export default (server: FastifyInstance, _options: RouteShorthandOptions, done:
done();
};
function generateText(body: PostReportBody, ua: UAParser.IResult): string {
return [
'## Issue information',
...(ua.browser.name && ua.browser.version
? ['#### 🖥️ Browser', `${ua.browser.name} (${ua.browser.version})`]
: []),
...(ua.device.type && ua.device.vendor
? ['#### 📱 Device', `${ua.device.vendor} (${ua.device.type})`]
: []),
'#### 📝 Reason',
body.reason,
'#### 🔗 URL',
body.url,
'#### 🏷️ Version',
body.version,
].join('\n');
}