diff --git a/.gitea/scripts/validate-pr.js b/.gitea/scripts/validate-pr.js index 0362d4b..de99ec4 100644 --- a/.gitea/scripts/validate-pr.js +++ b/.gitea/scripts/validate-pr.js @@ -160,12 +160,16 @@ for (const file of changedFiles) { continue; } + // Adjust file paths based on working directory + const prFilePath = process.env.PR_FILES_DIR ? `${process.env.PR_FILES_DIR}/${file.replace('plugins/', '')}` : file; + const baseFilePath = file; + // Check if file was added or removed let isAdded = false; let isRemoved = false; try { - await access(file); + await access(prFilePath); isAdded = true; } catch { isRemoved = true; @@ -174,7 +178,7 @@ for (const file of changedFiles) { if (isAdded) { // Validate added/modified plugin try { - const content = await readFile(file, 'utf-8'); + const content = await readFile(prFilePath, 'utf-8'); const plugin = JSON.parse(content); // Check if this plugin already exists on main @@ -182,7 +186,7 @@ for (const file of changedFiles) { let originalAuthor = null; try { - const originalContent = await readFile(`../base/${file}`, 'utf-8'); + const originalContent = await readFile(baseFilePath, 'utf-8'); const originalPlugin = JSON.parse(originalContent); isModification = true; originalAuthor = originalPlugin.author; @@ -243,7 +247,7 @@ for (const file of changedFiles) { } else if (isRemoved) { // For removed files, check the original author from main branch try { - const originalContent = await readFile(`../base/${file}`, 'utf-8'); + const originalContent = await readFile(baseFilePath, 'utf-8'); const originalPlugin = JSON.parse(originalContent); if (originalPlugin.author !== prAuthor) { diff --git a/.gitea/workflows/validate-pr.yml b/.gitea/workflows/validate-pr.yml index baaa95d..04c1821 100644 --- a/.gitea/workflows/validate-pr.yml +++ b/.gitea/workflows/validate-pr.yml @@ -67,12 +67,15 @@ jobs: - name: Validate PR (using trusted validation script from main) run: | - node base/.gitea/scripts/validate-pr.js "${{ github.event.pull_request.user.login }}" "${{ steps.changed-files.outputs.files }}" - working-directory: pr + cd base + node .gitea/scripts/validate-pr.js "${{ github.event.pull_request.user.login }}" "${{ steps.changed-files.outputs.files }}" + env: + PR_FILES_DIR: ../pr/plugins - name: Auto-merge PR if: success() run: | + cd pr echo "✅ Validation passed - Auto-merging PR" git config user.name "GitHub Actions" git config user.email "actions@github.com"