Skip to content

Commit 09f54a0

Browse files
authored
Merge pull request #168 from N-thnI/chore/cleanup-ci-security-hardening
chore: remove dead code/stray files, add CI typecheck+lint+build gates, CodeQL, and Dependabot
2 parents 837ed4d + d4d6aa2 commit 09f54a0

33 files changed

Lines changed: 199 additions & 716 deletions

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
open-pull-requests-limit: 10
8+
9+
- package-ecosystem: github-actions
10+
directory: /
11+
schedule:
12+
interval: weekly

.github/workflows/ci.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ on:
66
pull_request:
77
branches: [ '**' ]
88

9+
permissions:
10+
contents: read
11+
912
jobs:
10-
test:
11-
name: Run tests
13+
build:
14+
name: Typecheck, lint, test, build
1215
runs-on: ubuntu-latest
1316
steps:
1417
- name: Checkout
@@ -23,5 +26,14 @@ jobs:
2326
- name: Install dependencies
2427
run: npm ci
2528

29+
- name: Type check
30+
run: npx tsc --noEmit
31+
32+
- name: Lint
33+
run: npm run lint
34+
2635
- name: Run tests
27-
run: npm test --if-present
36+
run: npm test -- --ci
37+
38+
- name: Build
39+
run: npm run build

.github/workflows/codeql.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ '**' ]
8+
schedule:
9+
- cron: '17 3 * * 1'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
analyze:
16+
name: Analyze (javascript-typescript)
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
security-events: write
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Initialize CodeQL
27+
uses: github/codeql-action/init@v3
28+
with:
29+
languages: javascript-typescript
30+
31+
- name: Perform CodeQL Analysis
32+
uses: github/codeql-action/analyze@v3
33+
with:
34+
category: '/language:javascript-typescript'

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
node_modules/
22
.next/
33
.env.local
4-
./node_modules/
4+
./node_modules/
5+
*.tsbuildinfo

ci.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/app/layout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { I18nProvider } from '@/i18n';
1111
import { NetworkProvider } from '@/context/NetworkContext';
1212
import { SocketIOProvider } from '@/context/SocketIOContext';
1313
import DevWalletSwitcher from '@/components/DevWalletSwitcher';
14+
import { ErrorProvider } from '@/components/ErrorModal';
1415

1516
const inter = Inter({ subsets: ['latin'] });
1617

src/components/AuditSessionTimer/__tests__/AuditSessionTimer.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { act, fireEvent, render, screen } from '@testing-library/react';
2-
import { describe, expect, it, jest, afterEach, beforeEach } from '@jest/globals';
32
import AuditSessionTimer from '../AuditSessionTimer';
43
import {
54
formatDuration,

src/components/ContractTimeTraveler/__tests__/ContractTimeTraveler.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { fireEvent, render, screen } from '@testing-library/react';
2-
import { describe, expect, it } from '@jest/globals';
32
import ContractTimeTraveler from '../ContractTimeTraveler';
43
import {
54
appendSnapshot,

src/components/IPFSDocViewer/__tests__/IPFSDocViewer.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { fireEvent, render, screen } from '@testing-library/react';
2-
import { describe, expect, it } from '@jest/globals';
32
import IPFSDocViewer from '../IPFSDocViewer';
43
import { buildGatewayUrl, IPFS_GATEWAY, isValidIpfsHash } from '../ipfsDocViewer';
54

src/components/MultiSigPreviewer/__tests__/MultiSigPreviewer.test.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as StellarSdk from '@stellar/stellar-sdk';
22
import { fireEvent, render, screen, waitFor } from '@testing-library/react';
3-
import { describe, expect, it, jest } from '@jest/globals';
43
import { MultiSigPreviewer } from '../MultiSigPreviewer';
54
import {
65
computeThreshold,
@@ -31,11 +30,11 @@ function buildTestXdr(): string {
3130
const VALID_XDR = buildTestXdr();
3231

3332
function makeServer(result: Record<string, unknown>): (url: string) => SorobanServer {
34-
return () => ({ simulateTransaction: jest.fn<() => Promise<Record<string, unknown>>>().mockResolvedValue(result) });
33+
return () => ({ simulateTransaction: jest.fn().mockResolvedValue(result) });
3534
}
3635

3736
function makeErrorServer(error: Error): (url: string) => SorobanServer {
38-
return () => ({ simulateTransaction: jest.fn<() => Promise<never>>().mockRejectedValue(error) });
37+
return () => ({ simulateTransaction: jest.fn().mockRejectedValue(error) });
3938
}
4039

4140
// ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)