From cf0b67291d16280396c77e83edc57bfb15c81fce Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 13 May 2026 03:03:47 +0000 Subject: [PATCH 1/4] feat: update cache-nuget action version and add AI code review workflow --- .gitea/workflows/master.yaml | 5 +++-- .gitea/workflows/review.yaml | 19 +++++++++++++++++++ action.yml | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 .gitea/workflows/review.yaml diff --git a/.gitea/workflows/master.yaml b/.gitea/workflows/master.yaml index b54c903..1be7a87 100644 --- a/.gitea/workflows/master.yaml +++ b/.gitea/workflows/master.yaml @@ -1,10 +1,11 @@ +name: CD on: push: branches: - master jobs: version: - name: "CD > 計算版本號" + name: 計算版本號 runs-on: ubuntu outputs: version: ${{ steps.version.outputs.version }} @@ -13,7 +14,7 @@ jobs: id: version uses: https://gitea.jsc.idv.tw/actions/calculate-version@${{ vars.ACTION_CALCULATE_VERSION }} release: - name: "CD > 發布專案" + name: 發布專案 runs-on: ubuntu needs: version steps: diff --git a/.gitea/workflows/review.yaml b/.gitea/workflows/review.yaml new file mode 100644 index 0000000..a24c7be --- /dev/null +++ b/.gitea/workflows/review.yaml @@ -0,0 +1,19 @@ +name: AI +on: + pull_request: + types: [opened, synchronize] +jobs: + code-review: + name: Code Review + runs-on: ubuntu + steps: + - name: AI Code Review + uses: https://gitea.jsc.idv.tw/actions/code-review@${{ vars.ACTION_CODE_REVIEW_VERSION }} + with: + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }},${{ secrets.GEMINI_API_KEY_1 }},${{ secrets.GEMINI_API_KEY_2 }},${{ secrets.GEMINI_API_KEY_3 }},${{ secrets.GEMINI_API_KEY_4 }},${{ secrets.GEMINI_API_KEY_5 }},${{ secrets.GEMINI_API_KEY_6 }},${{ secrets.GEMINI_API_KEY_7 }},${{ secrets.GEMINI_API_KEY_8 }},${{ secrets.GEMINI_API_KEY_9 }},${{ secrets.GEMINI_API_KEY_10 }},${{ secrets.GEMINI_API_KEY_11 }},${{ secrets.GEMINI_API_KEY_12 }},${{ secrets.GEMINI_API_KEY_13 }},${{ secrets.GEMINI_API_KEY_14 }},${{ secrets.GEMINI_API_KEY_15 }},${{ secrets.GEMINI_API_KEY_16 }},${{ secrets.GEMINI_API_KEY_17 }},${{ secrets.GEMINI_API_KEY_18 }},${{ secrets.GEMINI_API_KEY_19 }} + GEMINI_BASE_URL: https://generativelanguage.googleapis.com/v1beta + GEMINI_MODEL: ${{ vars.GEMINI_MODEL }} + permissions: + contents: write + pull-requests: write + issues: write \ No newline at end of file diff --git a/action.yml b/action.yml index 6ea89cd..180110f 100644 --- a/action.yml +++ b/action.yml @@ -7,7 +7,7 @@ runs: - name: 取得專案 uses: actions/checkout@v6 - name: 快取 NUGET 套件 - uses: https://gitea.jsc.idv.tw/actions/cache-nuget@v0.0.2 + uses: https://gitea.jsc.idv.tw/actions/cache-nuget@v0.0.3 - name: 復原專案 run: dotnet restore if: ${{ hashFiles('nuget.config') == '' }} From 1f2e2d1b8084efc1fb0e9f40d36e412cda92d517 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 13 May 2026 03:36:30 +0000 Subject: [PATCH 2/4] fix: update checkout action version and refine restore conditions in action.yml --- action.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/action.yml b/action.yml index 180110f..c36354c 100644 --- a/action.yml +++ b/action.yml @@ -5,16 +5,19 @@ runs: using: 'composite' steps: - name: 取得專案 - uses: actions/checkout@v6 + uses: actions/checkout@v6.0.2 - name: 快取 NUGET 套件 + id: cache-nuget uses: https://gitea.jsc.idv.tw/actions/cache-nuget@v0.0.3 - name: 復原專案 run: dotnet restore - if: ${{ hashFiles('nuget.config') == '' }} + # 只有在快取未命中且無特定 nuget.config 時才執行 restore,避免重複操作 (Zara) + if: steps.cache-nuget.outputs.cache-hit != 'true' && hashFiles('nuget.config') == '' shell: bash - name: 復原專案 run: dotnet restore --configfile nuget.config - if: ${{ hashFiles('nuget.config') != '' }} + # 只有在快取未命中且存在 nuget.config 時才執行 restore,加強條件判斷 (Zara) + if: steps.cache-nuget.outputs.cache-hit != 'true' && hashFiles('nuget.config') != '' shell: bash - name: 建置專案 run: dotnet build --no-restore From 141aace81168ec6d625648b5a13fc33b01915365 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 13 May 2026 05:17:11 +0000 Subject: [PATCH 3/4] feat: simplify dotnet restore conditions and add exclusions.json for AI review --- .gitea/ai-review/exclusions.json | 20 ++++++++++++++++++++ action.yml | 17 ++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 .gitea/ai-review/exclusions.json diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json new file mode 100644 index 0000000..acd247d --- /dev/null +++ b/.gitea/ai-review/exclusions.json @@ -0,0 +1,20 @@ +{ + "version": "1.0", + "exclusions": [ + { + "id": 2, + "title": "使用來自內部 Gitea 伺服器的自訂 Action 的供應鏈風險", + "reason": "列入排除問題" + }, + { + "id": 3, + "title": "composite action 缺乏自動化整合測試", + "reason": "列入排除問題" + }, + { + "id": 4, + "title": "新的 dotnet restore 條件判斷需要整合測試覆蓋邊界條件", + "reason": "列入排除問題" + } + ] +} diff --git a/action.yml b/action.yml index c36354c..ff594d9 100644 --- a/action.yml +++ b/action.yml @@ -10,18 +10,17 @@ runs: id: cache-nuget uses: https://gitea.jsc.idv.tw/actions/cache-nuget@v0.0.3 - name: 復原專案 - run: dotnet restore - # 只有在快取未命中且無特定 nuget.config 時才執行 restore,避免重複操作 (Zara) - if: steps.cache-nuget.outputs.cache-hit != 'true' && hashFiles('nuget.config') == '' - shell: bash - - name: 復原專案 - run: dotnet restore --configfile nuget.config - # 只有在快取未命中且存在 nuget.config 時才執行 restore,加強條件判斷 (Zara) - if: steps.cache-nuget.outputs.cache-hit != 'true' && hashFiles('nuget.config') != '' + if: steps.cache-nuget.outputs.cache-hit != 'true' + run: | + if [[ -f "nuget.config" ]]; then + dotnet restore --configfile nuget.config + else + dotnet restore + fi shell: bash - name: 建置專案 run: dotnet build --no-restore shell: bash - name: 測試專案 run: dotnet test --no-restore --no-build - shell: bash \ No newline at end of file + shell: bash From 80664d0c609635a29d448ccab8072229c1b40c00 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 13 May 2026 05:59:51 +0000 Subject: [PATCH 4/4] fix: update exclusions.json entries and refine checkout action version in action.yml --- .gitea/ai-review/exclusions.json | 8 ++++---- action.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index acd247d..06f9d41 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -2,18 +2,18 @@ "version": "1.0", "exclusions": [ { - "id": 2, - "title": "使用來自內部 Gitea 伺服器的自訂 Action 的供應鏈風險", + "id": 1, + "title": "使用來自非官方來源的自訂 Action 的供應鏈風險", "reason": "列入排除問題" }, { "id": 3, - "title": "composite action 缺乏自動化整合測試", + "title": "cache-nuget@v0.0.3 釘選到修補版本", "reason": "列入排除問題" }, { "id": 4, - "title": "新的 dotnet restore 條件判斷需要整合測試覆蓋邊界條件", + "title": "action 需要 skip_checkout / skip_cache 兩個 inputs", "reason": "列入排除問題" } ] diff --git a/action.yml b/action.yml index ff594d9..e23e5a8 100644 --- a/action.yml +++ b/action.yml @@ -5,7 +5,7 @@ runs: using: 'composite' steps: - name: 取得專案 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6 - name: 快取 NUGET 套件 id: cache-nuget uses: https://gitea.jsc.idv.tw/actions/cache-nuget@v0.0.3