mirror of
https://github.com/actions/add-to-project.git
synced 2025-12-11 04:32:47 +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": {
|
||||
"build": "npm run fix:format && npm run check && npm run build:compile && npm run build:package",
|
||||
"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:build": "tsc --noEmit",
|
||||
"check:format": "prettier --check .",
|
||||
"check:lint": "eslint .",
|
||||
"fix:format": "prettier --write .",
|
||||
"test": "jest",
|
||||
"postinstall": "patch-package"
|
||||
"postinstall": "node fix-regex.js"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user