Compare commits

..

10 Commits

3 changed files with 11 additions and 11 deletions
+5 -5
View File
@@ -1,9 +1,9 @@
FROM node:20-slim FROM alpine
# force rebuild to ensure git is installed RUN apk add --no-cache bash nodejs npm git \
RUN apt-get update && apt-get install -y --no-install-recommends \ && node --version \
git \ && npm --version \
&& rm -rf /var/lib/apt/lists/* && git --version
WORKDIR /action WORKDIR /action
+1
View File
@@ -27,6 +27,7 @@
--- ---
每個階段都會加上明確的 log,並確保即使部分功能未完成也能降級執行、不會中斷 pipeline。 每個階段都會加上明確的 log,並確保即使部分功能未完成也能降級執行、不會中斷 pipeline。
每次執行後請貼 log,我會協助 debug。 每次執行後請貼 log,我會協助 debug。
+5 -6
View File
@@ -1,17 +1,16 @@
import { spawnSync } from 'child_process'; import { execSync } from 'child_process';
import path from 'path'; import path from 'path';
import { GITEA_SERVER_URL, GITEA_REPOSITORY, GITEA_TOKEN, PR_HEAD_BRANCH, FINDINGS_PATH } from './config.js'; import { GITEA_SERVER_URL, GITEA_REPOSITORY, GITEA_TOKEN, PR_HEAD_BRANCH, FINDINGS_PATH } from './config.js';
function git(args, cwd) { function git(args, cwd) {
const result = spawnSync('git', args, { cwd, encoding: 'utf8' }); return execSync(`git ${args.map(a => `'${a.replace(/'/g, "'\\''")}'`).join(' ')}`, { cwd, encoding: 'utf8' }).trim();
if (result.error) throw result.error;
if (result.status !== 0) throw new Error((result.stderr || result.stdout || '').trim());
return (result.stdout || '').trim();
} }
export async function commitAndPush(workspace) { export async function commitAndPush(workspace) {
const repoDir = path.join(workspace, GITEA_REPOSITORY); const repoDir = path.join(workspace, GITEA_REPOSITORY);
const remoteUrl = GITEA_SERVER_URL.replace(/\/$/, '').replace('https://', `https://${GITEA_TOKEN}@`).replace('http://', `http://${GITEA_TOKEN}@`) + `/${GITEA_REPOSITORY}.git`; const remoteUrl = GITEA_SERVER_URL.replace(/\/$/, '')
.replace('https://', `https://${GITEA_TOKEN}@`)
.replace('http://', `http://${GITEA_TOKEN}@`) + `/${GITEA_REPOSITORY}.git`;
try { try {
git(['config', 'user.email', 'ai-review[bot]@gitea'], repoDir); git(['config', 'user.email', 'ai-review[bot]@gitea'], repoDir);