From 00c363a24488e7f38071128babc9f7d8aa277343 Mon Sep 17 00:00:00 2001 From: Rodin Date: Sun, 10 May 2026 01:02:59 -0700 Subject: [PATCH] ci: switch to native AI Core provider - Remove HAI proxy dependency - Use aicore provider with secrets - Update model names to AI Core format (anthropic--claude-4.6-sonnet) --- .gitea/actions/review/action.yml | 39 +++++++++++++++++++++++++++----- .gitea/workflows/ci.yml | 35 ++++++++-------------------- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/.gitea/actions/review/action.yml b/.gitea/actions/review/action.yml index 78f1005..655515c 100644 --- a/.gitea/actions/review/action.yml +++ b/.gitea/actions/review/action.yml @@ -26,18 +26,40 @@ inputs: required: false default: '' llm-base-url: - description: 'OpenAI-compatible LLM API base URL' - required: true + description: 'OpenAI-compatible LLM API base URL (not required for aicore provider)' + required: false + default: '' llm-api-key: - description: 'LLM API key' - required: true + description: 'LLM API key (not required for aicore provider)' + required: false + default: '' llm-model: description: 'LLM model name' required: true llm-provider: - description: 'LLM API provider: openai or anthropic (default openai)' + description: 'LLM API provider: openai, anthropic, or aicore (default openai)' required: false - default: 'openai' + default: 'openai' + aicore-client-id: + description: 'SAP AI Core client ID (required for aicore provider)' + required: false + default: '' + aicore-client-secret: + description: 'SAP AI Core client secret (required for aicore provider)' + required: false + default: '' + aicore-auth-url: + description: 'SAP AI Core authentication URL (required for aicore provider)' + required: false + default: '' + aicore-api-url: + description: 'SAP AI Core API URL (required for aicore provider)' + required: false + default: '' + aicore-resource-group: + description: 'SAP AI Core resource group (default: default)' + required: false + default: 'default' conventions-file: description: 'Path to conventions file in the repo (e.g. CLAUDE.md)' required: false @@ -155,6 +177,11 @@ runs: LLM_PROVIDER: ${{ inputs.llm-provider }} UPDATE_EXISTING: ${{ inputs.update-existing }} SYSTEM_PROMPT_FILE: ${{ inputs.system-prompt-file }} + AICORE_CLIENT_ID: ${{ inputs.aicore-client-id }} + AICORE_CLIENT_SECRET: ${{ inputs.aicore-client-secret }} + AICORE_AUTH_URL: ${{ inputs.aicore-auth-url }} + AICORE_API_URL: ${{ inputs.aicore-api-url }} + AICORE_RESOURCE_GROUP: ${{ inputs.aicore-resource-group }} run: | ARGS="" if [ "${{ inputs.dry-run }}" = "true" ]; then diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 39e0065..38e91d4 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -18,7 +18,8 @@ jobs: - run: go vet ./... - run: go build -o review-bot ./cmd/review-bot - # Self-review: builds from source since we're pre-release + # Self-review using native SAP AI Core provider + # Models must match SAP AI Core deployments (use 'anthropic--' prefix for Claude) review: runs-on: ubuntu-24.04 if: github.event_name == 'pull_request' @@ -28,33 +29,12 @@ jobs: include: - name: sonnet token_secret: SONNET_REVIEW_TOKEN - provider: anthropic - llm_path: /anthropic/v1 - model: claude-sonnet-4-6 + model: anthropic--claude-4.6-sonnet - name: gpt token_secret: GPT_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 model: gpt-5 - - name: gpt41 - token_secret: GPT_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 - model: gpt-4.1 - - name: gpt5-mini - token_secret: GPT_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 - model: gpt-5-mini - - name: gpt41-mini - token_secret: GPT_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 - model: gpt-4.1-mini - name: security token_secret: SECURITY_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 model: gpt-5 system_prompt_file: SECURITY_REVIEW.md steps: @@ -70,10 +50,13 @@ jobs: PR_NUMBER: ${{ github.event.pull_request.number }} REVIEWER_TOKEN: ${{ secrets[matrix.token_secret] }} REVIEWER_NAME: ${{ matrix.name }} - LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}${{ matrix.llm_path }} - LLM_API_KEY: ${{ secrets.LLM_API_KEY }} + LLM_PROVIDER: aicore LLM_MODEL: ${{ matrix.model }} - LLM_PROVIDER: ${{ matrix.provider }} + AICORE_CLIENT_ID: ${{ secrets.AICORE_CLIENT_ID }} + AICORE_CLIENT_SECRET: ${{ secrets.AICORE_CLIENT_SECRET }} + AICORE_AUTH_URL: ${{ secrets.AICORE_AUTH_URL }} + AICORE_API_URL: ${{ secrets.AICORE_API_URL }} + AICORE_RESOURCE_GROUP: ${{ secrets.AICORE_RESOURCE_GROUP }} CONVENTIONS_FILE: "CONVENTIONS.md" PATTERNS_REPO: "rodin/go-patterns" PATTERNS_FILES: "README.md,patterns/"