From 2453c32b76a7c33556f4a249cd2bab5e001885f9 Mon Sep 17 00:00:00 2001 From: will Date: Tue, 14 Apr 2026 16:42:06 +0900 Subject: [PATCH 1/2] fix --- src/app/services/docker.ts | 8 ++++---- src/lib/middleware/auth.ts | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/app/services/docker.ts b/src/app/services/docker.ts index 81c8906..12de92c 100644 --- a/src/app/services/docker.ts +++ b/src/app/services/docker.ts @@ -30,7 +30,7 @@ export class DockerService { try { output = JSON.parse(result.stdout) } catch (e) { - throw new Error(`Failed to parse script output: Invalid JSON response`) + throw new Error(`Failed to parse script output: Invalid JSON response`, { cause: e }) } return { @@ -76,7 +76,7 @@ export class DockerService { try { output = JSON.parse(result.stdout) } catch (e) { - throw new Error(`Failed to parse script output: Invalid JSON response`) + throw new Error(`Failed to parse script output: Invalid JSON response`, { cause: e }) } return { @@ -99,7 +99,7 @@ export class DockerService { try { inspect = JSON.parse(result.stdout) } catch (e) { - throw new Error(`Failed to parse container data: Invalid JSON response`) + throw new Error(`Failed to parse container data: Invalid JSON response`, { cause: e }) } const status = inspect.State.Status @@ -145,7 +145,7 @@ export class DockerService { try { container = JSON.parse(line) } catch (e) { - throw new Error(`Failed to parse container data: Invalid JSON response`) + throw new Error(`Failed to parse container data: Invalid JSON response`, { cause: e }) } return { id: container.ID.substring(0, 12), diff --git a/src/lib/middleware/auth.ts b/src/lib/middleware/auth.ts index d0f754d..5f6937b 100644 --- a/src/lib/middleware/auth.ts +++ b/src/lib/middleware/auth.ts @@ -1,4 +1,5 @@ import { Context, Next } from 'hono'; +import { timingSafeEqual as cryptoTimingSafeEqual } from 'crypto'; function timingSafeEqual(a: string, b: string): boolean { if (a.length !== b.length) { @@ -9,7 +10,7 @@ function timingSafeEqual(a: string, b: string): boolean { const bufferB = Buffer.from(b, 'utf8'); try { - return require('crypto').timingSafeEqual(bufferA, bufferB); + return cryptoTimingSafeEqual(bufferA, bufferB); } catch { return false; } From 9459209c8d4daaf000ad3bf3d9c762bb409a7da0 Mon Sep 17 00:00:00 2001 From: will Date: Tue, 14 Apr 2026 16:47:30 +0900 Subject: [PATCH 2/2] aaaa --- .github/workflows/lint-and-test.yaml | 39 ---------------------------- 1 file changed, 39 deletions(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 608ec02..2c713a3 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -10,25 +10,6 @@ on: jobs: lint_and_test: runs-on: ubuntu-latest - - services: - postgres: - image: postgres:latest - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: secret - POSTGRES_DB: project - options: >- - --health-cmd "pg_isready -U postgres" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 5432:5432 - - env: - DATABASE_URL: postgresql://postgres:secret@localhost:5432/project - steps: - name: Checkout repo uses: actions/checkout@v6 @@ -47,23 +28,3 @@ jobs: - name: Run lint ✅ run: pnpm lint - - name: Run unit tests ✅ - run: pnpm test - - # - name: Setup database - # run: | - # sudo apt-get update - # sudo apt-get install -y postgresql-client - - # until pg_isready -h localhost -p 5432 -U postgres; do - # echo "Waiting for Pg..." - # sleep 2 - # done - - # PGPASSWORD=secret psql -h localhost -U postgres -d project -c "CREATE EXTENSION fuzzystrmatch;" - - - name: Run db:migration 🆙 - run: pnpm db:migrate:up - - - name: Run integration tests ✅ - run: pnpm test:integration