Skip to content

Commit 528d3c1

Browse files
committed
chore: initail
1 parent d02b886 commit 528d3c1

File tree

4 files changed

+217
-62
lines changed

4 files changed

+217
-62
lines changed
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
name: Dependency Security Audit
2+
3+
on:
4+
pull_request:
5+
branches: [main, dev, staging]
6+
7+
push:
8+
branches: [main, dev, staging]
9+
10+
schedule:
11+
- cron: '0 9 * * 1' # 9 AM UTC every Monday
12+
13+
workflow_dispatch:
14+
15+
permissions:
16+
contents: read
17+
security-events: write
18+
pull-requests: write
19+
20+
concurrency:
21+
group: dependency-audit-${{ github.ref }}
22+
cancel-in-progress: true
23+
24+
jobs:
25+
audit:
26+
name: Dependency Vulnerability Audit
27+
runs-on: ubuntu-latest
28+
29+
steps:
30+
- name: Checkout repository
31+
uses: actions/checkout@v4
32+
33+
- name: Setup Node.js
34+
uses: actions/setup-node@v4
35+
with:
36+
node-version: 18.x
37+
cache: 'yarn'
38+
39+
- name: Install dependencies
40+
run: yarn --immutable
41+
42+
- name: Run Yarn Audit
43+
id: yarn-audit
44+
run: |
45+
echo "Running yarn npm audit..."
46+
yarn npm audit --all --recursive --json > audit-results.json || true
47+
48+
# Parse results
49+
CRITICAL=$(cat audit-results.json | jq -r '.metadata.vulnerabilities.critical // 0')
50+
HIGH=$(cat audit-results.json | jq -r '.metadata.vulnerabilities.high // 0')
51+
MODERATE=$(cat audit-results.json | jq -r '.metadata.vulnerabilities.moderate // 0')
52+
LOW=$(cat audit-results.json | jq -r '.metadata.vulnerabilities.low // 0')
53+
54+
echo "critical=$CRITICAL" >> $GITHUB_OUTPUT
55+
echo "high=$HIGH" >> $GITHUB_OUTPUT
56+
echo "moderate=$MODERATE" >> $GITHUB_OUTPUT
57+
echo "low=$LOW" >> $GITHUB_OUTPUT
58+
59+
# Create summary
60+
echo "## Dependency Audit Results" >> $GITHUB_STEP_SUMMARY
61+
echo "" >> $GITHUB_STEP_SUMMARY
62+
echo "| Severity | Count |" >> $GITHUB_STEP_SUMMARY
63+
echo "|----------|-------|" >> $GITHUB_STEP_SUMMARY
64+
echo "| 🔴 Critical | $CRITICAL |" >> $GITHUB_STEP_SUMMARY
65+
echo "| 🟠 High | $HIGH |" >> $GITHUB_STEP_SUMMARY
66+
echo "| 🟡 Moderate | $MODERATE |" >> $GITHUB_STEP_SUMMARY
67+
echo "| 🟢 Low | $LOW |" >> $GITHUB_STEP_SUMMARY
68+
69+
# Generate detailed report
70+
yarn npm audit --all --recursive > audit-report.txt || true
71+
72+
- name: Upload audit results
73+
uses: actions/upload-artifact@v4
74+
with:
75+
name: dependency-audit-results
76+
path: |
77+
audit-results.json
78+
audit-report.txt
79+
retention-days: 30
80+
81+
- name: Check for critical vulnerabilities
82+
if: steps.yarn-audit.outputs.critical != '0'
83+
run: |
84+
echo "::error::Found ${{ steps.yarn-audit.outputs.critical }} critical vulnerabilities!"
85+
echo "Please review the audit results and update vulnerable dependencies."
86+
cat audit-report.txt
87+
exit 1
88+
89+
- name: Check for high vulnerabilities
90+
if: steps.yarn-audit.outputs.high != '0'
91+
run: |
92+
echo "::warning::Found ${{ steps.yarn-audit.outputs.high }} high severity vulnerabilities!"
93+
echo "Please review the audit results and plan updates for vulnerable dependencies."
94+
cat audit-report.txt
95+
96+
- name: Comment on PR
97+
if: github.event_name == 'pull_request'
98+
uses: actions/github-script@v7
99+
with:
100+
script: |
101+
const fs = require('fs');
102+
const auditResults = JSON.parse(fs.readFileSync('audit-results.json', 'utf8'));
103+
const vulns = auditResults.metadata.vulnerabilities;
104+
105+
const critical = vulns.critical || 0;
106+
const high = vulns.high || 0;
107+
const moderate = vulns.moderate || 0;
108+
const low = vulns.low || 0;
109+
110+
let status = '✅ No vulnerabilities found';
111+
let emoji = '✅';
112+
113+
if (critical > 0) {
114+
status = `🔴 ${critical} critical vulnerabilities found`;
115+
emoji = '🔴';
116+
} else if (high > 0) {
117+
status = `🟠 ${high} high severity vulnerabilities found`;
118+
emoji = '🟠';
119+
} else if (moderate > 0) {
120+
status = `🟡 ${moderate} moderate vulnerabilities found`;
121+
emoji = '🟡';
122+
} else if (low > 0) {
123+
status = `🟢 ${low} low severity vulnerabilities found`;
124+
emoji = '🟢';
125+
}
126+
127+
const comment = `## ${emoji} Dependency Security Audit
128+
129+
${status}
130+
131+
| Severity | Count |
132+
|----------|-------|
133+
| 🔴 Critical | ${critical} |
134+
| 🟠 High | ${high} |
135+
| 🟡 Moderate | ${moderate} |
136+
| 🟢 Low | ${low} |
137+
138+
${critical > 0 ? '⚠️ **Action Required:** Critical vulnerabilities must be resolved before merging.' : ''}
139+
${high > 0 ? '⚠️ **Recommended:** High severity vulnerabilities should be addressed.' : ''}
140+
141+
<details>
142+
<summary>View full audit report</summary>
143+
144+
\`\`\`
145+
${fs.readFileSync('audit-report.txt', 'utf8').slice(0, 5000)}
146+
\`\`\`
147+
148+
</details>
149+
`;
150+
151+
github.rest.issues.createComment({
152+
issue_number: context.issue.number,
153+
owner: context.repo.owner,
154+
repo: context.repo.repo,
155+
body: comment
156+
});
157+
158+
dependency-review:
159+
name: Dependency Review
160+
runs-on: ubuntu-latest
161+
if: github.event_name == 'pull_request'
162+
163+
steps:
164+
- name: Checkout repository
165+
uses: actions/checkout@v4
166+
167+
- name: Dependency Review
168+
uses: actions/dependency-review-action@v4
169+
with:
170+
fail-on-severity: high
171+
comment-summary-in-pr: true

electron/src/lib/openGraph.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ import {config} from '../settings/config';
3131

3232
const logger = getLogger(path.basename(__filename));
3333

34-
axios.defaults.adapter = require('axios/lib/adapters/http'); // always use Node.js adapter
34+
// In axios 1.x, the http adapter is used by default in Node.js environment
35+
// No need to explicitly set it anymore
3536

3637
const arrayify = <T>(value: T[] | T = []): T[] => (Array.isArray(value) ? value : [value]);
3738

package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{
22
"author": "Wire Swiss <[email protected]>",
3+
"resolutions": {
4+
"form-data": ">=2.5.4"
5+
},
36
"dependencies": {
47
"@hapi/joi": "17.1.1",
58
"@wireapp/certificate-check": "0.7.20",
@@ -8,7 +11,7 @@
811
"@wireapp/react-ui-kit": "9.59.1",
912
"@wireapp/webapp-events": "0.28.1",
1013
"auto-launch": "5.0.6",
11-
"axios": "0.21.2",
14+
"axios": "1.12.2",
1215
"content-type": "1.0.5",
1316
"electron-dl": "^3.5.2",
1417
"electron-window-state": "5.0.3",
@@ -115,7 +118,7 @@
115118
"jest": "29.7.0",
116119
"jest-environment-jsdom": "29.7.0",
117120
"lint-staged": "15.5.2",
118-
"mocha": "10.8.2",
121+
"mocha": "^10.8.2",
119122
"nock": "13.5.6",
120123
"nyc": "15.1.0",
121124
"prettier": "2.8.8",
@@ -125,7 +128,7 @@
125128
"style-loader": "4.0.0",
126129
"ts-node": "10.9.2",
127130
"typescript": "5.9.3",
128-
"webpack": "5.102.0",
131+
"webpack": "^5.102.0",
129132
"webpack-cli": "5.1.4"
130133
},
131134
"homepage": "https://wire.com",

yarn.lock

Lines changed: 38 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5221,15 +5221,6 @@ __metadata:
52215221
languageName: node
52225222
linkType: hard
52235223

5224-
"axios@npm:0.21.2":
5225-
version: 0.21.2
5226-
resolution: "axios@npm:0.21.2"
5227-
dependencies:
5228-
follow-redirects: ^1.14.0
5229-
checksum: 41299c21f77323e7c56ea49d2d5ed25407d24bb145a4ce3441a8db17359ae56554f9495dca6e15d343a9530e106212a684c75a4db3bedfbe19f6414a8d94378e
5230-
languageName: node
5231-
linkType: hard
5232-
52335224
"axios@npm:1.12.2":
52345225
version: 1.12.2
52355226
resolution: "axios@npm:1.12.2"
@@ -6068,7 +6059,7 @@ __metadata:
60686059
languageName: node
60696060
linkType: hard
60706061

6071-
"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6":
6062+
"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6":
60726063
version: 1.0.8
60736064
resolution: "combined-stream@npm:1.0.8"
60746065
dependencies:
@@ -8611,7 +8602,7 @@ __metadata:
86118602
languageName: node
86128603
linkType: hard
86138604

8614-
"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.15.6":
8605+
"follow-redirects@npm:^1.15.6":
86158606
version: 1.15.11
86168607
resolution: "follow-redirects@npm:1.15.11"
86178608
peerDependenciesMeta:
@@ -8657,7 +8648,7 @@ __metadata:
86578648
languageName: node
86588649
linkType: hard
86598650

8660-
"form-data@npm:4.0.4, form-data@npm:^4.0.0, form-data@npm:^4.0.4":
8651+
"form-data@npm:>=2.5.4":
86618652
version: 4.0.4
86628653
resolution: "form-data@npm:4.0.4"
86638654
dependencies:
@@ -8670,17 +8661,6 @@ __metadata:
86708661
languageName: node
86718662
linkType: hard
86728663

8673-
"form-data@npm:~2.3.2":
8674-
version: 2.3.3
8675-
resolution: "form-data@npm:2.3.3"
8676-
dependencies:
8677-
asynckit: ^0.4.0
8678-
combined-stream: ^1.0.6
8679-
mime-types: ^2.1.12
8680-
checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3
8681-
languageName: node
8682-
linkType: hard
8683-
86848664
"fromentries@npm:^1.2.0":
86858665
version: 1.3.2
86868666
resolution: "fromentries@npm:1.3.2"
@@ -12016,37 +11996,6 @@ __metadata:
1201611996
languageName: node
1201711997
linkType: hard
1201811998

12019-
"mocha@npm:10.8.2":
12020-
version: 10.8.2
12021-
resolution: "mocha@npm:10.8.2"
12022-
dependencies:
12023-
ansi-colors: ^4.1.3
12024-
browser-stdout: ^1.3.1
12025-
chokidar: ^3.5.3
12026-
debug: ^4.3.5
12027-
diff: ^5.2.0
12028-
escape-string-regexp: ^4.0.0
12029-
find-up: ^5.0.0
12030-
glob: ^8.1.0
12031-
he: ^1.2.0
12032-
js-yaml: ^4.1.0
12033-
log-symbols: ^4.1.0
12034-
minimatch: ^5.1.6
12035-
ms: ^2.1.3
12036-
serialize-javascript: ^6.0.2
12037-
strip-json-comments: ^3.1.1
12038-
supports-color: ^8.1.1
12039-
workerpool: ^6.5.1
12040-
yargs: ^16.2.0
12041-
yargs-parser: ^20.2.9
12042-
yargs-unparser: ^2.0.0
12043-
bin:
12044-
_mocha: bin/_mocha
12045-
mocha: bin/mocha.js
12046-
checksum: 68cb519503f1e8ffd9b0651e1aef75dfe4754425186756b21e53169da44b5bcb1889e2b743711205082763d3f9a42eb8eb2c13bb1a718a08cb3a5f563bfcacdc
12047-
languageName: node
12048-
linkType: hard
12049-
1205011999
"mocha@npm:=10.4.0":
1205112000
version: 10.4.0
1205212001
resolution: "mocha@npm:10.4.0"
@@ -12078,6 +12027,37 @@ __metadata:
1207812027
languageName: node
1207912028
linkType: hard
1208012029

12030+
"mocha@npm:^10.8.2":
12031+
version: 10.8.2
12032+
resolution: "mocha@npm:10.8.2"
12033+
dependencies:
12034+
ansi-colors: ^4.1.3
12035+
browser-stdout: ^1.3.1
12036+
chokidar: ^3.5.3
12037+
debug: ^4.3.5
12038+
diff: ^5.2.0
12039+
escape-string-regexp: ^4.0.0
12040+
find-up: ^5.0.0
12041+
glob: ^8.1.0
12042+
he: ^1.2.0
12043+
js-yaml: ^4.1.0
12044+
log-symbols: ^4.1.0
12045+
minimatch: ^5.1.6
12046+
ms: ^2.1.3
12047+
serialize-javascript: ^6.0.2
12048+
strip-json-comments: ^3.1.1
12049+
supports-color: ^8.1.1
12050+
workerpool: ^6.5.1
12051+
yargs: ^16.2.0
12052+
yargs-parser: ^20.2.9
12053+
yargs-unparser: ^2.0.0
12054+
bin:
12055+
_mocha: bin/_mocha
12056+
mocha: bin/mocha.js
12057+
checksum: 68cb519503f1e8ffd9b0651e1aef75dfe4754425186756b21e53169da44b5bcb1889e2b743711205082763d3f9a42eb8eb2c13bb1a718a08cb3a5f563bfcacdc
12058+
languageName: node
12059+
linkType: hard
12060+
1208112061
"modify-filename@npm:^1.1.0":
1208212062
version: 1.1.0
1208312063
resolution: "modify-filename@npm:1.1.0"
@@ -16086,7 +16066,7 @@ __metadata:
1608616066
languageName: node
1608716067
linkType: hard
1608816068

16089-
"webpack@npm:5.102.0":
16069+
"webpack@npm:^5.102.0":
1609016070
version: 5.102.0
1609116071
resolution: "webpack@npm:5.102.0"
1609216072
dependencies:
@@ -16334,7 +16314,7 @@ __metadata:
1633416314
adm-zip: 0.5.16
1633516315
auto-launch: 5.0.6
1633616316
aws-sdk: 2.1692.0
16337-
axios: 0.21.2
16317+
axios: 1.12.2
1633816318
babel-core: 7.0.0-bridge.0
1633916319
babel-eslint: 10.1.0
1634016320
babel-jest: 29.7.0
@@ -16388,7 +16368,7 @@ __metadata:
1638816368
lodash: 4.17.21
1638916369
logdown: 3.3.1
1639016370
minimist: 1.2.8
16391-
mocha: 10.8.2
16371+
mocha: ^10.8.2
1639216372
nock: 13.5.6
1639316373
nyc: 15.1.0
1639416374
open-graph: 0.2.6
@@ -16407,7 +16387,7 @@ __metadata:
1640716387
typescript: 5.9.3
1640816388
uuid: 9.0.1
1640916389
validator: ^13.15.15
16410-
webpack: 5.102.0
16390+
webpack: ^5.102.0
1641116391
webpack-cli: 5.1.4
1641216392
xss: ^1.0.15
1641316393
languageName: unknown

0 commit comments

Comments
 (0)