-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Linter checks: dom manipulation, network traffic, and direct storage …
…access && bugfixes: unauthorized storage access (#11884) * relevatehealthBidAdapter.js: bugfix for storage used without consent * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * Update relevatehealthBidAdapter.js * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js * Update .eslintrc.js * Update index.js * Update relevatehealthBidAdapter.js * Update 33acrossAnalyticsAdapter.js * Update index.js * Update index.js * Update 33acrossAnalyticsAdapter.js * Update index.js * Update ampliffyBidAdapter.js * Update index.js * Update invibesBidAdapter.js * Update growthCodeAnalyticsAdapter.js * Update fintezaAnalyticsAdapter.js * Update growthCodeAnalyticsAdapter.js * Update etargetBidAdapter.js * Update dspxBidAdapter.js * Update cwireBidAdapter.js * Update cwireBidAdapter.js * Update ampliffyBidAdapter.js * Update etargetBidAdapter.js * Update dspxBidAdapter.js * Update fintezaAnalyticsAdapter.js * Update ampliffyBidAdapter.js * Update adlooxAnalyticsAdapter.js * Update invibesBidAdapter.js * Update fintezaAnalyticsAdapter.js * Update dspxBidAdapter.js * Update connectIdSystem.js * Update automatadAnalyticsAdapter.js * Update sonobiBidAdapter.js * Update contxtfulRtdProvider.js * Update sonobiBidAdapter.js * Update contxtfulRtdProvider.js * Update index.js * Update cleanioRtdProvider.js * Update connectIdSystem.js * Update geoedgeRtdProvider.js * Update growthCodeRtdProvider.js * Update sirdataRtdProvider.js * Update sirdataRtdProvider.js * Update contxtfulRtdProvider_spec.js * Update contxtfulRtdProvider_spec.js * Update index.js Fix duplication * Update index.js * refactor custom linter rules * use TODO and comments instead of quietly removing rule-breaking code * Add linter GH action * Fix linter workflow name * Run npm ci on linter check * Filter out missing (new) files * Do not fail on linter failure * swap continue-on-error * remove spurious condition * Improve comment * Fix links for duplication checker comments * Filter out negative deltas * Update linter warning comment * Update .eslintrc.js --------- Co-authored-by: Demetrio Girardi <[email protected]>
- Loading branch information
1 parent
0110b3c
commit a4cc27c
Showing
24 changed files
with
266 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
name: Check for linter warnings / exceptions | ||
|
||
on: | ||
pull_request_target: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
check-linter: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Set up Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20' | ||
|
||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ github.event.pull_request.base.sha }} | ||
|
||
- name: Fetch base and target branches | ||
run: | | ||
git fetch origin +refs/heads/${{ github.event.pull_request.base.ref }}:refs/remotes/origin/${{ github.event.pull_request.base.ref }} | ||
git fetch origin +refs/pull/${{ github.event.pull_request.number }}/merge:refs/remotes/pull/${{ github.event.pull_request.number }}/merge | ||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Get the diff | ||
run: git diff --name-only origin/${{ github.event.pull_request.base.ref }}...refs/remotes/pull/${{ github.event.pull_request.number }}/merge > __changed_files.txt | ||
|
||
- name: Run linter on base branch | ||
run: npx eslint --no-inline-config --format json $(cat __changed_files.txt | xargs stat --printf '%n\n' 2> /dev/null) > __base.json || true | ||
|
||
- name: Check out PR | ||
run: git checkout ${{ github.event.pull_request.head.sha }} | ||
|
||
- name: Run linter on PR | ||
run: npx eslint --no-inline-config --format json $(cat __changed_files.txt | xargs stat --printf '%n\n' 2> /dev/null) > __pr.json || true | ||
|
||
- name: Compare them and post comment if necessary | ||
uses: actions/github-script@v7 | ||
with: | ||
script: | | ||
const fs = require('fs'); | ||
const path = require('path'); | ||
const process = require('process'); | ||
function parse(fn) { | ||
return JSON.parse(fs.readFileSync(fn)).reduce((memo, data) => { | ||
const file = path.relative(process.cwd(), data.filePath); | ||
if (!memo.hasOwnProperty(file)) { memo[file] = { errors: 0, warnings: 0} } | ||
data.messages.forEach(({severity}) => { | ||
memo[file][severity > 1 ? 'errors' : 'warnings']++; | ||
}); | ||
return memo; | ||
}, {}) | ||
} | ||
function mkDiff(old, new_) { | ||
const files = Object.fromEntries( | ||
Object.entries(new_) | ||
.map(([file, {errors, warnings}]) => { | ||
const {errors: oldErrors, warnings: oldWarnings} = old[file] || {}; | ||
return [file, {errors: Math.max(0, errors - (oldErrors ?? 0)), warnings: Math.max(0, warnings - (oldWarnings ?? 0))}] | ||
}) | ||
.filter(([_, {errors, warnings}]) => errors > 0 || warnings > 0) | ||
) | ||
return Object.values(files).reduce((memo, {warnings, errors}) => { | ||
memo.errors += errors; | ||
memo.warnings += warnings; | ||
return memo; | ||
}, {errors: 0, warnings: 0, files}) | ||
} | ||
function mkComment({errors, warnings, files}) { | ||
function pl(noun, number) { | ||
return noun + (number === 1 ? '' : 's') | ||
} | ||
if (errors === 0 && warnings === 0) return; | ||
const summary = []; | ||
if (errors) summary.push(`**${errors}** linter ${pl('error', errors)}`) | ||
if (warnings) summary.push(`**${warnings}** linter ${pl('warning', warnings)}`) | ||
let cm = `Tread carefully! This PR adds ${summary.join(' and ')} (possibly disabled through directives):\n\n`; | ||
Object.entries(files).forEach(([file, {errors, warnings}]) => { | ||
const summary = []; | ||
if (errors) summary.push(`+${errors} ${pl('error', errors)}`); | ||
if (warnings) summary.push(`+${warnings} ${pl('warning', warnings)}`) | ||
cm += ` * \`${file}\` (${summary.join(', ')})\n` | ||
}) | ||
return cm; | ||
} | ||
const [base, pr] = ['__base.json', '__pr.json'].map(parse); | ||
const comment = mkComment(mkDiff(base, pr)); | ||
if (comment) { | ||
github.rest.issues.createComment({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
issue_number: context.issue.number, | ||
body: comment | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.