[] Add frontend job to .github/workflows/ci.yml with lint, typecheck, and vitest steps#44
Conversation
…eck, and vitest steps
There was a problem hiding this comment.
🍊 Orange Codens レビュー
全体的な変更内容はタスク要件を満たしており、frontend ジョブの追加と typecheck スクリプトの追加は正しく実装されている。
主な指摘は2点: ①npx tsc --noEmit を使いながら npm run typecheck スクリプトを別途追加しており二重管理になっている(npm run typecheck に統一すべき・confidence 0.9)、②npx vitest run も同様に npm test に統一することでバージョン一貫性が担保される。また cache: npm 使用時の cache-dependency-path 未指定はキャッシュが機能しないリスクがある。
🔒 セキュリティ: 今回の diff は GitHub Actions の CI ワークフローへのフロントエンドジョブ追加と package.json へのスクリプト追記のみです。追加されたコードには認証・認可ロジック、外部入力の処理、暗号処理、SQL/コマンド実行などのセキュリティ上の懸念箇所は存在しません。NEXT_PUBLIC_API_BASE_URL は http://localhost:8080 というローカルホストの固定値であり、ユーザー入力に基づく SSRF リスクもありません。セキュリティ観点での指摘事項はありません。
🟡 medium: 2 / 🔵 low: 2
その他の指摘 (4 件)
- 🟡 [medium]
.github/workflows/ci.yml:54—npx vitest runとpackage.jsonのtestスクリプトが二重管理になっている (confidence: 0.80,code.ci.npx_vitest_vs_npm_test) - 🟡 [medium]
.github/workflows/ci.yml:42—cache: npm使用時にcache-dependency-pathが未指定 (confidence: 0.65,code.ci.npm_cache_path_missing) - 🔵 [low]
.github/workflows/ci.yml:52—npx tsc --noEmitではなく追加したtypecheckスクリプトを使うべき (confidence: 0.90,code.ci.npx_tsc_vs_npm_typecheck) - 🔵 [low]
.github/workflows/ci.yml:36—frontendジョブのステップにnameが未設定でログの可読性が低い (confidence: 0.75,maintainability.ci.missing_step_names)
head: 482d384 | Orange Codens (P1)
There was a problem hiding this comment.
🍊 Orange Codens レビュー
.github/workflows/ci.yml に追加された frontend ジョブは、Task Goal の要件(ubuntu-latest、job レベルの NEXT_PUBLIC_API_BASE_URL、setup-node@v4 + Node 22 + npm cache、npm ci → lint → tsc --noEmit → vitest run の順)と整合しており、diff 上で確認できる範囲では blocker / critical 相当の問題は見当たりません。backend と needs なしで並列実行する構成も意図どおりです。
🔒 セキュリティ: 本 PR の diff は .github/workflows/ci.yml に frontend CI ジョブを追加するのみで、認可・認証・入力検証・SSRF・暗号処理などアプリケーションの論理脆弱性に該当する変更は含まれていません。NEXT_PUBLIC_API_BASE_URL は CI 用の http://localhost:8080 固定値、npm ci / lint / typecheck / vitest の各 step も静的コマンドのため、diff 上から exploit 可能な問題は確認できませんでした。
指摘事項はありません。✨
head: 15e88bf | Orange Codens (P1)
Summary
Type of Change
Testing
Checklist
Task Goal
Target Repository
Corevice/open-gitAll work for this task belongs in this repository. Do the implementation inside this repository's directory in the workspace; do not search or edit other repositories unless this task explicitly requires a cross-repo change.
Context
Currently only the Go backend has CI coverage. Adding a frontend job ensures TypeScript errors, ESLint violations, and failing unit tests are gated in pull requests.
Steps
open-git/.github/workflows/ci.ymlto understand the current job structurefrontendjob (parallel to the existing backend job) with:runs-on: ubuntu-latestenv: NEXT_PUBLIC_API_BASE_URL: http://localhost:8080(required by zod env validation)actions/checkout@v4,actions/setup-node@v4(node 22, cache: npm),npm ci,npm run lint,npx tsc --noEmit,npx vitest runopen-git/package.jsonscriptshas"lint"defined (it should, giveneslint.config.mjsexists); if not, add"lint": "eslint .""typecheck": "tsc --noEmit"toopen-git/package.jsonscripts if absentVerification Checklist
ci.ymlcontainsfrontend:job keyactions/setup-node@v4with node-version 22 and cache npmNEXT_PUBLIC_API_BASE_URLset in job envpackage.jsonhas lint scriptpackage.jsonhas typecheck scriptOriginal PRD Content
Next.js 15 + shadcn/ui プロジェクト初期化 実装PRD
Features
Next.js 15 + shadcn/ui プロジェクト初期化 — 残実装リスト
抽出済みコードベースには routes/forms/components がいずれも未検出のため、本機能はフロントエンド基盤の 新規初期化 が中核となる。縦切りで以下を実装する。
1. プロジェクト scaffold
apps/web(モノレポ配下)に Next.js 15 (App Router, TypeScript, Turbopack) を初期化package.json/tsconfig.json/next.config.ts整備(strict モード, path alias@/*)2. shadcn/u
Changes Made
CI の
現
状と
package.jsonのscripts
を確認します
。
ci .ymlに frontendジョブ
を追加し、
package.jsonにtypecheckスクリプ
トを足
します
。
CI
に
フロントエ
ンド用ジョ
ブを追加し
、
package.jsonに
typecheckスクリプトを追加
しました。
`.
github/workflows/ci.yml
`
存の
backendジョブと並列
で
frontendジョブ
を追加
NEXT _PUBLIC_API_BASE_URL : http://localhost: 8080をjob レ
ベルの
env に
設定
actions/setup -node@v4(Node 22
、
npm cache)
で依存
関
係をセット
アップ
npm ci→npm run lint→n px tsc -- noEmit→npx vit est runの順で実行
`package
.json`
lintスクリプト
は既存
のま
ま(
eslint . -- max-warnings =0)typecheck:"tsc -- noEmit"を追加
[P
URPLE-M
ODIFIED-FILES
]
.github/workflows/ci
.yml
package
.json
[/P
URPLE-M
ODIFIED-FILES
]
Task ID:
019f086e-1180-71f6-a273-02a845b886b0Generated by Purple Codens