mirror of
https://github.com/actions/add-to-project.git
synced 2025-12-14 05:57:15 +00:00
Automate regex fix for CI builds
- Updated build:package script to run fix-regex.js before bundling - Updated postinstall script to apply fix after npm install - Ensures CI builds will have the fix applied automatically - Fixes misleading operator precedence in /^text\/|charset=utf-8$/ regex
This commit is contained in:
48
fix-regex.js
Normal file
48
fix-regex.js
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fix for misleading operator precedence in @octokit/request regex
|
||||||
|
* Changes /^text\/|charset=utf-8$/ to /^text\/|charset=utf-8/
|
||||||
|
*/
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const filesToFix = [
|
||||||
|
'node_modules/@actions/github/node_modules/@octokit/request/dist-src/fetch-wrapper.js',
|
||||||
|
'node_modules/@actions/github/node_modules/@octokit/request/dist-node/index.js',
|
||||||
|
'node_modules/@actions/github/node_modules/@octokit/request/dist-web/index.js'
|
||||||
|
];
|
||||||
|
|
||||||
|
console.log('🔧 Applying regex fix for @octokit/request...');
|
||||||
|
|
||||||
|
let filesFixed = 0;
|
||||||
|
|
||||||
|
filesToFix.forEach(filePath => {
|
||||||
|
if (fs.existsSync(filePath)) {
|
||||||
|
try {
|
||||||
|
let content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
const originalContent = content;
|
||||||
|
|
||||||
|
// Fix the problematic regex pattern - replace the end anchor version with the fixed version
|
||||||
|
content = content.replace(/charset=utf-8\$\//g, 'charset=utf-8/');
|
||||||
|
|
||||||
|
if (content !== originalContent) {
|
||||||
|
fs.writeFileSync(filePath, content, 'utf8');
|
||||||
|
console.log(`✅ Fixed: ${filePath}`);
|
||||||
|
filesFixed++;
|
||||||
|
} else {
|
||||||
|
console.log(`ℹ️ No changes needed: ${filePath}`);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`❌ Error fixing ${filePath}:`, error.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(`⚠️ File not found: ${filePath}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`\n🎉 Fix complete! ${filesFixed} files updated.`);
|
||||||
|
if (filesFixed > 0) {
|
||||||
|
console.log('Run "npm run build:package" to rebuild with the fix.');
|
||||||
|
}
|
||||||
@@ -48,13 +48,13 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run fix:format && npm run check && npm run build:compile && npm run build:package",
|
"build": "npm run fix:format && npm run check && npm run build:compile && npm run build:package",
|
||||||
"build:compile": "tsc",
|
"build:compile": "tsc",
|
||||||
"build:package": "ncc build --source-map --no-source-map-register --license licenses.txt",
|
"build:package": "node fix-regex.js && ncc build --source-map --no-source-map-register --license licenses.txt",
|
||||||
"check": "concurrently -n check: -c red,green,blue -g npm:check:*",
|
"check": "concurrently -n check: -c red,green,blue -g npm:check:*",
|
||||||
"check:build": "tsc --noEmit",
|
"check:build": "tsc --noEmit",
|
||||||
"check:format": "prettier --check .",
|
"check:format": "prettier --check .",
|
||||||
"check:lint": "eslint .",
|
"check:lint": "eslint .",
|
||||||
"fix:format": "prettier --write .",
|
"fix:format": "prettier --write .",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"postinstall": "patch-package"
|
"postinstall": "node fix-regex.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user