Skip to content

Commit c003097

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/client-ts/axios-1.12.2
2 parents fe849e3 + f6ba85f commit c003097

18 files changed

Lines changed: 1470 additions & 56 deletions

.github/dependabot.yml

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,90 @@
11
version: 2
22
updates:
3-
# Enable version updates for npm
3+
# Frontend dependencies (npm) - SECURE CONFIG
44
- package-ecosystem: "npm"
55
directory: "/client-ts"
66
schedule:
77
interval: "weekly"
88
day: "monday"
99
time: "09:00"
10-
open-pull-requests-limit: 10
10+
# STRICT LIMITS
11+
open-pull-requests-limit: 3
12+
# ONLY security and patch updates
13+
ignore:
14+
# Ignore major (breaking) updates for all
15+
- dependency-name: "*"
16+
update-types: ["version-update:semver-major"]
17+
# Ignore minor/major updates for risky deps
18+
- dependency-name: "react"
19+
update-types: ["version-update:semver-minor", "version-update:semver-major"]
20+
- dependency-name: "react-dom"
21+
update-types: ["version-update:semver-minor", "version-update:semver-major"]
22+
- dependency-name: "typescript"
23+
update-types: ["version-update:semver-minor", "version-update:semver-major"]
24+
# REVIEW SETTINGS
1125
reviewers:
1226
- "devel"
1327
assignees:
1428
- "devel"
1529
commit-message:
16-
prefix: "chore"
30+
prefix: "security"
1731
include: "scope"
1832
labels:
1933
- "dependencies"
2034
- "frontend"
35+
- "security-review-required"
2136

22-
# Enable version updates for NuGet
37+
# Backend dependencies (NuGet) - SECURE CONFIG
2338
- package-ecosystem: "nuget"
2439
directory: "/"
2540
schedule:
2641
interval: "weekly"
2742
day: "monday"
2843
time: "09:00"
29-
open-pull-requests-limit: 10
44+
# STRICT LIMITS
45+
open-pull-requests-limit: 2
46+
# ONLY security and patch updates
47+
ignore:
48+
# Ignore major updates globally
49+
- dependency-name: "*"
50+
update-types: ["version-update:semver-major"]
51+
# Ignore minor/major for critical framework packages
52+
- dependency-name: "Microsoft.AspNetCore.*"
53+
update-types: ["version-update:semver-minor", "version-update:semver-major"]
54+
- dependency-name: "Microsoft.EntityFrameworkCore.*"
55+
update-types: ["version-update:semver-minor", "version-update:semver-major"]
56+
# REVIEW SETTINGS
3057
reviewers:
3158
- "devel"
3259
assignees:
3360
- "devel"
3461
commit-message:
35-
prefix: "chore"
62+
prefix: "security"
3663
include: "scope"
3764
labels:
3865
- "dependencies"
3966
- "backend"
67+
- "security-review-required"
4068

41-
# Enable version updates for GitHub Actions
69+
# GitHub Actions - SECURE CONFIG
4270
- package-ecosystem: "github-actions"
4371
directory: "/"
4472
schedule:
45-
interval: "weekly"
73+
interval: "monthly"
4674
day: "monday"
4775
time: "09:00"
48-
open-pull-requests-limit: 5
76+
# VERY STRICT LIMITS
77+
open-pull-requests-limit: 1
78+
# REVIEW SETTINGS
4979
reviewers:
5080
- "devel"
5181
assignees:
5282
- "devel"
5383
commit-message:
54-
prefix: "chore"
84+
prefix: "security"
5585
include: "scope"
5686
labels:
5787
- "dependencies"
5888
- "github-actions"
89+
- "security-review-required"
90+
- "manual-review-required"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## 🔒 Security Review Checklist
2+
3+
### ⚠️ CRITICAL: This PR contains dependency updates
4+
5+
**Before merging, please verify:**
6+
7+
#### 📦 Package Verification
8+
- [ ] **Package source is trusted** (npmjs.com, nuget.org, etc.)
9+
- [ ] **No new packages added** (only version updates)
10+
- [ ] **Package maintainer is verified** (check package page)
11+
- [ ] **Version jump is reasonable** (no suspicious major version jumps)
12+
13+
#### 🔍 Security Checks
14+
- [ ] **No high/critical vulnerabilities** in updated packages
15+
- [ ] **Package integrity verified** (checksums match)
16+
- [ ] **No suspicious package names** or typosquatting
17+
- [ ] **Dependencies are from official sources**
18+
19+
#### 🧪 Testing Required
20+
- [ ] **Application builds successfully**
21+
- [ ] **All tests pass**
22+
- [ ] **No runtime errors**
23+
- [ ] **Functionality works as expected**
24+
25+
#### 📋 Manual Review
26+
- [ ] **Changelog reviewed** for breaking changes
27+
- [ ] **Migration guide checked** if applicable
28+
- [ ] **Performance impact assessed**
29+
- [ ] **Compatibility verified**
30+
31+
### 🚨 Red Flags to Watch For
32+
- ❌ Packages from unknown sources
33+
- ❌ Suspicious package names (typosquatting)
34+
- ❌ Unusually large version jumps
35+
- ❌ Packages with very few downloads
36+
- ❌ Packages with no recent updates
37+
- ❌ Packages with poor documentation
38+
39+
### 📚 Resources
40+
- [npm Security Best Practices](https://docs.npmjs.com/cli/v8/configuring-npm/security)
41+
- [NuGet Security](https://docs.microsoft.com/en-us/nuget/concepts/security-best-practices)
42+
- [OWASP Dependency Check](https://owasp.org/www-project-dependency-check/)
43+
44+
---
45+
**⚠️ DO NOT MERGE without completing this checklist!**

.github/workflows/ci.yml

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@ jobs:
2424
node-version: ${{ env.NODE_VERSION }}
2525
cache: 'npm'
2626
cache-dependency-path: client-ts/package-lock.json
27-
27+
2828
- name: Install dependencies
2929
working-directory: ./client-ts
3030
run: npm ci
31-
31+
3232
- name: Check version consistency
33-
run: |
34-
cd client-ts
35-
npm run version:check
33+
working-directory: ./client-ts
34+
run: npm run version:check
3635
continue-on-error: false
3736

3837
frontend-tests:
@@ -42,26 +41,26 @@ jobs:
4241
steps:
4342
- name: Checkout code
4443
uses: actions/checkout@v5
45-
44+
4645
- name: Setup Node.js
4746
uses: actions/setup-node@v5
4847
with:
4948
node-version: ${{ env.NODE_VERSION }}
5049
cache: 'npm'
5150
cache-dependency-path: client-ts/package-lock.json
52-
51+
5352
- name: Install dependencies
5453
working-directory: ./client-ts
5554
run: npm ci
56-
55+
5756
- name: Run linting
5857
working-directory: ./client-ts
5958
run: npm run lint
60-
59+
6160
- name: Run type checking
6261
working-directory: ./client-ts
6362
run: npm run type-check
64-
63+
6564
- name: Run tests
6665
working-directory: ./client-ts
6766
run: npm run test:ci
@@ -79,24 +78,24 @@ jobs:
7978
ports:
8079
- 3306:3306
8180
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
82-
81+
8382
steps:
8483
- name: Checkout code
8584
uses: actions/checkout@v5
86-
85+
8786
- name: Setup .NET
8887
uses: actions/setup-dotnet@v5
8988
with:
9089
dotnet-version: ${{ env.DOTNET_VERSION }}
91-
90+
9291
- name: Restore dependencies
9392
run: dotnet restore
94-
93+
9594
- name: Build project
9695
run: dotnet build --configuration Release --no-restore
97-
96+
9897
- name: Run tests
99-
run: dotnet test --configuration Release --no-build
98+
run: dotnet test --configuration Release --no-build --verbosity normal
10099
env:
101100
ConnectionStrings__DefaultConnection: "Server=localhost;Database=TaskManagerDbTest;Uid=root;Pwd=testpassword;"
102101

@@ -111,25 +110,25 @@ jobs:
111110
steps:
112111
- name: Checkout code
113112
uses: actions/checkout@v5
114-
113+
115114
- name: Run Trivy vulnerability scanner
116115
uses: aquasecurity/trivy-action@master
117116
with:
118117
scan-type: 'fs'
119118
scan-ref: '.'
120119
format: 'sarif'
121120
output: 'trivy-results.sarif'
122-
121+
123122
- name: Upload Trivy scan results to GitHub Security tab
124123
uses: github/codeql-action/upload-sarif@v3
125124
if: always()
126125
with:
127126
sarif_file: 'trivy-results.sarif'
128-
127+
129128
- name: Run npm audit for frontend
130129
working-directory: ./client-ts
131130
run: npm audit --audit-level moderate || true
132-
131+
133132
- name: Run dotnet list package vulnerabilities
134133
run: dotnet list package --vulnerable || true
135134

@@ -140,36 +139,36 @@ jobs:
140139
steps:
141140
- name: Checkout code
142141
uses: actions/checkout@v5
143-
142+
144143
- name: Setup Node.js
145144
uses: actions/setup-node@v5
146145
with:
147146
node-version: ${{ env.NODE_VERSION }}
148147
cache: 'npm'
149148
cache-dependency-path: client-ts/package-lock.json
150-
149+
151150
- name: Setup .NET
152151
uses: actions/setup-dotnet@v5
153152
with:
154153
dotnet-version: ${{ env.DOTNET_VERSION }}
155-
154+
156155
- name: Install frontend dependencies
157156
working-directory: ./client-ts
158157
run: npm ci
159-
158+
160159
- name: Build frontend
161160
working-directory: ./client-ts
162161
run: npm run build
163-
162+
164163
- name: Restore backend dependencies
165164
run: dotnet restore
166-
165+
167166
- name: Build backend
168167
run: dotnet build --configuration Release --no-restore
169-
168+
170169
- name: Publish backend
171170
run: dotnet publish --configuration Release --no-build
172-
171+
173172
- name: Upload build artifacts
174173
uses: actions/upload-artifact@v5
175174
with:
@@ -192,20 +191,20 @@ jobs:
192191
uses: actions/checkout@v5
193192
with:
194193
fetch-depth: 0
195-
194+
196195
- name: Download build artifacts
197196
uses: actions/download-artifact@v5
198197
with:
199198
name: build-artifacts
200-
199+
201200
- name: Get version from package.json
202201
id: version
203202
working-directory: ./client-ts
204203
run: |
205204
VERSION=$(node -p "require('./package.json').version")
206205
echo "version=$VERSION" >> $GITHUB_OUTPUT
207206
echo "tag=v$VERSION" >> $GITHUB_OUTPUT
208-
207+
209208
- name: Check if tag exists
210209
id: check-tag
211210
run: |
@@ -214,7 +213,7 @@ jobs:
214213
else
215214
echo "exists=false" >> $GITHUB_OUTPUT
216215
fi
217-
216+
218217
- name: Create Release
219218
if: steps.check-tag.outputs.exists == 'false'
220219
uses: actions/create-release@v1
@@ -227,19 +226,19 @@ jobs:
227226
prerelease: false
228227
body: |
229228
## 🚀 Release ${{ steps.version.outputs.version }}
230-
229+
231230
### Changes
232231
- Automated release from CI/CD pipeline
233232
- All tests passed ✅
234233
- Security scan completed ✅
235234
- Application built successfully ✅
236-
235+
237236
### Build Artifacts
238237
- Frontend build ready for deployment
239238
- Backend publish ready for deployment
240-
239+
241240
### Installation
242241
Download the artifacts from the Actions tab or use the built application directly.
243242
files: |
244243
build-artifacts/client-ts/build/*
245-
build-artifacts/publish/*
244+
build-artifacts/publish/*

0 commit comments

Comments
 (0)