From f40584e1de8f187a790d1ab307fe8b24be73e082 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 | 19 +++++++--------- 2 files changed, 41 insertions(+), 17 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 8c796de..38e91d4 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -18,8 +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 - # Models configured to match SAP AI Core deployments + # 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' @@ -29,18 +29,12 @@ jobs: include: - name: sonnet token_secret: SONNET_REVIEW_TOKEN - provider: anthropic - llm_path: /anthropic/v1 model: anthropic--claude-4.6-sonnet - name: gpt token_secret: GPT_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 model: gpt-5 - name: security token_secret: SECURITY_REVIEW_TOKEN - provider: openai - llm_path: /openai/v1 model: gpt-5 system_prompt_file: SECURITY_REVIEW.md steps: @@ -56,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/"