From 3665d946c03726deee8da3193ae3182b7743a3dd Mon Sep 17 00:00:00 2001 From: Svilen Stefanov Date: Tue, 27 Oct 2026 00:12:25 +0100 Subject: [PATCH 1/2] fix: update CodeBoarding dependency to 0.15.3 Co-Authored-By: Claude Opus 5.5 --- README.md | 4 ++-- action.yml | 2 +- scripts/action/supported-providers.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 42e9a75..aa64e36 100644 --- a/README.md +++ b/README.md @@ -349,7 +349,7 @@ The first sync after the merge creates `codeboarding/baseline`, catching up from `target_branch` and `sync_strategy` are deprecated, and read as the `codeboarding_analysis_location` they stand for, with a warning: `sync_strategy: push` as `in_place`, `sync_strategy: pull_request` as `codeboarding_branch`. `target_branch` is accepted only when it names the branch the run is on: the push trigger picks the branch. `force_full: true` is ignored with a warning. Anything the new input cannot express fails, linking to [moving an existing setup](#moving-an-existing-setup). -The `/codeboarding` command, comment heading, Mermaid direction (`LR`), hosted webview URL, commit message, and CodeBoarding 0.15.1 version are intentionally fixed rather than exposed as configuration. +The `/codeboarding` command, comment heading, Mermaid direction (`LR`), hosted webview URL, commit message, and CodeBoarding 0.15.3 version are intentionally fixed rather than exposed as configuration. Review mode needs no sync job or committed `.codeboarding` directory. If no usable merge-base analysis exists, it runs full analysis there directly, then @@ -406,7 +406,7 @@ Run the local analysis pipeline: ```bash export OPENROUTER_API_KEY=sk-or-... -python -m pip install codeboarding==0.15.1 +python -m pip install codeboarding==0.15.3 tests/run_local.sh --repo /path/to/repo --base main --head feature ``` diff --git a/action.yml b/action.yml index ee958d8..499c212 100644 --- a/action.yml +++ b/action.yml @@ -404,7 +404,7 @@ runs: if: steps.guard.outputs.skip != 'true' shell: bash run: | - python -m pip install --disable-pip-version-check 'codeboarding==0.15.2' + python -m pip install --disable-pip-version-check 'codeboarding==0.15.3' # Fail here, with the reason, rather than mid-analysis with a traceback: # pinning a release does not pin what its dependencies resolve to. Run # the console script, not `python -c`, which would put the analyzed diff --git a/scripts/action/supported-providers.json b/scripts/action/supported-providers.json index 59bf34f..903a885 100644 --- a/scripts/action/supported-providers.json +++ b/scripts/action/supported-providers.json @@ -18,7 +18,7 @@ "a selection env (AWS_DEFAULT_REGION, OLLAMA_API_KEY) therefore cannot select a provider", "on its own, which is why ollama and litellm need their base URL and not just a key." ], - "engine": "0.15.2", + "engine": "0.15.3", "hosted_provider": "openrouter", "providers": { "openrouter": { From cd0109bb2ab01a4432e15b9d195d7244cf39f181 Mon Sep 17 00:00:00 2001 From: Svilen Stefanov Date: Tue, 27 Oct 2026 00:19:43 +0100 Subject: [PATCH 2/2] fix: accept the opper provider Core 0.15.3 added Core 0.15.3 adds an Opper provider selected by OPPER_API_KEY, so the provider-table drift check failed against the new pin. Expose it the way OrcaRouter is: llm: opper with an opper_api_key input. Co-Authored-By: Claude Opus 5.5 --- README.md | 1 + action.yml | 8 +++++++- scripts/action/supported-providers.json | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index aa64e36..1a00531 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ without knowing any precedence rules. | `ollama` | Ollama | `ollama_api_key`, `ollama_base_url` | `ollama_base_url` | | `openai` | OpenAI | `openai_api_key`, `openai_base_url` | `openai_api_key` or `openai_base_url` | | `openrouter` | OpenRouter | `openrouter_api_key` | `openrouter_api_key` | +| `opper` | Opper | `opper_api_key` | `opper_api_key` | | `orcarouter` | OrcaRouter | `orcarouter_api_key` | `orcarouter_api_key` | | `requesty` | Requesty | `requesty_api_key`, `requesty_base_url` | `requesty_api_key` | | `vercel` | Vercel AI Gateway | `vercel_api_key`, `vercel_base_url` | `vercel_api_key` or `vercel_base_url` | diff --git a/action.yml b/action.yml index 499c212..7547260 100644 --- a/action.yml +++ b/action.yml @@ -10,7 +10,7 @@ inputs: required: false default: 'review' llm: - description: 'Required. Where analysis credentials come from: hosted, license, or a provider name (anthropic, aws_bedrock, cerebras, deepseek, glm, google, kimi, litellm, ollama, openai, openrouter, orcarouter, requesty, vercel).' + description: 'Required. Where analysis credentials come from: hosted, license, or a provider name (anthropic, aws_bedrock, cerebras, deepseek, glm, google, kimi, litellm, ollama, openai, openrouter, opper, orcarouter, requesty, vercel).' required: true license_key: description: 'CodeBoarding license key. Required by llm: license; optional alongside a provider key.' @@ -99,6 +99,11 @@ inputs: description: 'OpenRouter API key, used when llm is openrouter. Sets OPENROUTER_API_KEY.' required: false default: '' + # Opper - selected by llm: opper + opper_api_key: + description: 'Opper API key, used when llm is opper. Sets OPPER_API_KEY.' + required: false + default: '' # OrcaRouter - selected by llm: orcarouter orcarouter_api_key: description: 'OrcaRouter API key, used when llm is orcarouter. Sets ORCAROUTER_API_KEY.' @@ -306,6 +311,7 @@ runs: CB_IN_OPENAI_API_KEY: ${{ inputs.openai_api_key }} CB_IN_OPENAI_BASE_URL: ${{ inputs.openai_base_url }} CB_IN_OPENROUTER_API_KEY: ${{ inputs.openrouter_api_key }} + CB_IN_OPPER_API_KEY: ${{ inputs.opper_api_key }} CB_IN_ORCAROUTER_API_KEY: ${{ inputs.orcarouter_api_key }} CB_IN_REQUESTY_API_KEY: ${{ inputs.requesty_api_key }} CB_IN_REQUESTY_BASE_URL: ${{ inputs.requesty_base_url }} diff --git a/scripts/action/supported-providers.json b/scripts/action/supported-providers.json index 903a885..3cfc163 100644 --- a/scripts/action/supported-providers.json +++ b/scripts/action/supported-providers.json @@ -30,6 +30,15 @@ "openrouter_api_key": "OPENROUTER_API_KEY" } }, + "opper": { + "label": "Opper", + "selection_envs": [ + "OPPER_API_KEY" + ], + "inputs": { + "opper_api_key": "OPPER_API_KEY" + } + }, "orcarouter": { "label": "OrcaRouter", "selection_envs": [