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)
This commit is contained in:
@@ -26,18 +26,40 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
llm-base-url:
|
llm-base-url:
|
||||||
description: 'OpenAI-compatible LLM API base URL'
|
description: 'OpenAI-compatible LLM API base URL (not required for aicore provider)'
|
||||||
required: true
|
required: false
|
||||||
|
default: ''
|
||||||
llm-api-key:
|
llm-api-key:
|
||||||
description: 'LLM API key'
|
description: 'LLM API key (not required for aicore provider)'
|
||||||
required: true
|
required: false
|
||||||
|
default: ''
|
||||||
llm-model:
|
llm-model:
|
||||||
description: 'LLM model name'
|
description: 'LLM model name'
|
||||||
required: true
|
required: true
|
||||||
llm-provider:
|
llm-provider:
|
||||||
description: 'LLM API provider: openai or anthropic (default openai)'
|
description: 'LLM API provider: openai, anthropic, or aicore (default openai)'
|
||||||
required: false
|
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:
|
conventions-file:
|
||||||
description: 'Path to conventions file in the repo (e.g. CLAUDE.md)'
|
description: 'Path to conventions file in the repo (e.g. CLAUDE.md)'
|
||||||
required: false
|
required: false
|
||||||
@@ -155,6 +177,11 @@ runs:
|
|||||||
LLM_PROVIDER: ${{ inputs.llm-provider }}
|
LLM_PROVIDER: ${{ inputs.llm-provider }}
|
||||||
UPDATE_EXISTING: ${{ inputs.update-existing }}
|
UPDATE_EXISTING: ${{ inputs.update-existing }}
|
||||||
SYSTEM_PROMPT_FILE: ${{ inputs.system-prompt-file }}
|
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: |
|
run: |
|
||||||
ARGS=""
|
ARGS=""
|
||||||
if [ "${{ inputs.dry-run }}" = "true" ]; then
|
if [ "${{ inputs.dry-run }}" = "true" ]; then
|
||||||
|
|||||||
+8
-11
@@ -18,8 +18,8 @@ jobs:
|
|||||||
- run: go vet ./...
|
- run: go vet ./...
|
||||||
- run: go build -o review-bot ./cmd/review-bot
|
- 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 configured to match SAP AI Core deployments
|
# Models must match SAP AI Core deployments (use 'anthropic--' prefix for Claude)
|
||||||
review:
|
review:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
@@ -29,18 +29,12 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
- name: sonnet
|
- name: sonnet
|
||||||
token_secret: SONNET_REVIEW_TOKEN
|
token_secret: SONNET_REVIEW_TOKEN
|
||||||
provider: anthropic
|
|
||||||
llm_path: /anthropic/v1
|
|
||||||
model: anthropic--claude-4.6-sonnet
|
model: anthropic--claude-4.6-sonnet
|
||||||
- name: gpt
|
- name: gpt
|
||||||
token_secret: GPT_REVIEW_TOKEN
|
token_secret: GPT_REVIEW_TOKEN
|
||||||
provider: openai
|
|
||||||
llm_path: /openai/v1
|
|
||||||
model: gpt-5
|
model: gpt-5
|
||||||
- name: security
|
- name: security
|
||||||
token_secret: SECURITY_REVIEW_TOKEN
|
token_secret: SECURITY_REVIEW_TOKEN
|
||||||
provider: openai
|
|
||||||
llm_path: /openai/v1
|
|
||||||
model: gpt-5
|
model: gpt-5
|
||||||
system_prompt_file: SECURITY_REVIEW.md
|
system_prompt_file: SECURITY_REVIEW.md
|
||||||
steps:
|
steps:
|
||||||
@@ -56,10 +50,13 @@ jobs:
|
|||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||||
REVIEWER_TOKEN: ${{ secrets[matrix.token_secret] }}
|
REVIEWER_TOKEN: ${{ secrets[matrix.token_secret] }}
|
||||||
REVIEWER_NAME: ${{ matrix.name }}
|
REVIEWER_NAME: ${{ matrix.name }}
|
||||||
LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}${{ matrix.llm_path }}
|
LLM_PROVIDER: aicore
|
||||||
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
|
|
||||||
LLM_MODEL: ${{ matrix.model }}
|
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"
|
CONVENTIONS_FILE: "CONVENTIONS.md"
|
||||||
PATTERNS_REPO: "rodin/go-patterns"
|
PATTERNS_REPO: "rodin/go-patterns"
|
||||||
PATTERNS_FILES: "README.md,patterns/"
|
PATTERNS_FILES: "README.md,patterns/"
|
||||||
|
|||||||
Reference in New Issue
Block a user