Update .gitea/workflows/licence-check.yml #17
@@ -7,16 +7,24 @@ on:
|
|||||||
- "package.json"
|
- "package.json"
|
||||||
- "package-lock.json"
|
- "package-lock.json"
|
||||||
- ".gitea/workflows/licence-check.yml"
|
- ".gitea/workflows/licence-check.yml"
|
||||||
|
- "**/*.js"
|
||||||
|
- "**/*.ts"
|
||||||
|
- "**/*.jsx"
|
||||||
|
- "**/*.tsx"
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: ["**", "!main", "!release/**"]
|
branches: ["**", "!main", "!release/**"]
|
||||||
paths:
|
paths:
|
||||||
- "package.json"
|
- "package.json"
|
||||||
- "package-lock.json"
|
- "package-lock.json"
|
||||||
- ".gitea/workflows/licence-check.yml"
|
- ".gitea/workflows/licence-check.yml"
|
||||||
|
- "**/*.js"
|
||||||
|
- "**/*.ts"
|
||||||
|
- "**/*.jsx"
|
||||||
|
- "**/*.tsx"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
licence-check:
|
licence-check:
|
||||||
name: Dependency licence compatibility
|
name: Licence compatibility and copyright header verification
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
steps:
|
steps:
|
||||||
@@ -36,3 +44,40 @@ jobs:
|
|||||||
--onlyAllow "MIT;ISC;MIT-0;BSD-2-Clause;BSD-3-Clause;Apache-2.0;CC0-1.0;BlueOak-1.0.0" \
|
--onlyAllow "MIT;ISC;MIT-0;BSD-2-Clause;BSD-3-Clause;Apache-2.0;CC0-1.0;BlueOak-1.0.0" \
|
||||||
--excludePrivatePackages \
|
--excludePrivatePackages \
|
||||||
&& echo "All production dependency licences are compatible with MIT."
|
&& echo "All production dependency licences are compatible with MIT."
|
||||||
|
|
||||||
|
- name: Check copyright headers in source files
|
||||||
|
run: |
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Find all source files, excluding build artifacts and node_modules
|
||||||
|
SOURCE_FILES=$(find . -type f \( -name "*.js" -o -name "*.ts" -o -name "*.jsx" -o -name "*.tsx" \) \
|
||||||
|
! -path "./node_modules/*" \
|
||||||
|
! -path "./.git/*" \
|
||||||
|
! -path "./dist/*" \
|
||||||
|
! -path "./build/*" \
|
||||||
|
! -path "./.gitea/*")
|
||||||
|
|
||||||
|
MISSING_HEADER=0
|
||||||
|
|
||||||
|
# Check each file for MIT-compliant copyright header
|
||||||
|
while IFS= read -r file; do
|
||||||
|
if [ -z "$file" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if file starts with a copyright header containing: Copyright, year (4 digits), name, and MIT License
|
||||||
|
if ! head -n 5 "$file" | grep -qiE "Copyright.*[0-9]{4}.*MIT"; then
|
||||||
|
echo "❌ Missing MIT-compliant copyright header in: $file"
|
||||||
|
echo " Required format: // Copyright (c) YYYY Name. MIT License."
|
||||||
|
MISSING_HEADER=$((MISSING_HEADER + 1))
|
||||||
|
fi
|
||||||
|
done <<< "$SOURCE_FILES"
|
||||||
|
|
||||||
|
if [ $MISSING_HEADER -gt 0 ]; then
|
||||||
|
echo ""
|
||||||
|
echo "⚠️ Found $MISSING_HEADER file(s) with missing or non-compliant copyright headers."
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "✅ All source files have MIT-compliant copyright headers."
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user