From 71feaf01758c15911405bafa51e1bc8008244954 Mon Sep 17 00:00:00 2001 From: Gandalf Date: Mon, 18 May 2026 13:39:59 +0100 Subject: [PATCH] Update .gitea/workflows/licence-check.yml --- .gitea/workflows/licence-check.yml | 47 +++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/licence-check.yml b/.gitea/workflows/licence-check.yml index 267bda2..6f5235b 100644 --- a/.gitea/workflows/licence-check.yml +++ b/.gitea/workflows/licence-check.yml @@ -7,16 +7,24 @@ on: - "package.json" - "package-lock.json" - ".gitea/workflows/licence-check.yml" + - "**/*.js" + - "**/*.ts" + - "**/*.jsx" + - "**/*.tsx" pull_request: branches: ["**", "!main", "!release/**"] paths: - "package.json" - "package-lock.json" - ".gitea/workflows/licence-check.yml" + - "**/*.js" + - "**/*.ts" + - "**/*.jsx" + - "**/*.tsx" jobs: licence-check: - name: Dependency licence compatibility + name: Licence compatibility and copyright header verification runs-on: ubuntu-latest continue-on-error: true 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" \ --excludePrivatePackages \ && 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 -- 2.39.5