Skip to content

Commit 3e51088

Browse files
committed
✨ Add --model flag for per-operation LLM model override
Introduce a new --model CLI option in CommonParams that allows overriding the configured model for individual operations without changing the global config. Also update the GitHub Action and CI/CD workflows to explicitly pass the model parameter, using claude-opus-4-5-20251101 for release note and changelog generation.
1 parent b6ea4f5 commit 3e51088

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed

.github/workflows/cicd.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ jobs:
377377
to: ${{ github.ref_name }}
378378
version-name: ${{ github.ref_name }}
379379
provider: anthropic
380+
model: claude-opus-4-5-20251101
380381
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
381382
output-file: CHANGELOG_SECTION.md
382383
binary-path: ./artifacts/git-iris-linux-amd64/git-iris
@@ -390,6 +391,7 @@ jobs:
390391
from: ${{ steps.prev_tag.outputs.tag }}
391392
to: ${{ github.ref_name }}
392393
provider: anthropic
394+
model: claude-opus-4-5-20251101
393395
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
394396
output-file: RELEASE_NOTES.md
395397
binary-path: ./artifacts/git-iris-linux-amd64/git-iris

.github/workflows/release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ jobs:
120120
output-file: CHANGELOG.md
121121
update-file: "true"
122122
provider: anthropic
123+
model: claude-opus-4-5-20251101
123124
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
124125
binary-path: ./target/release/git-iris
125126

@@ -133,6 +134,7 @@ jobs:
133134
to: HEAD
134135
version-name: ${{ steps.version.outputs.version }}
135136
provider: anthropic
137+
model: claude-opus-4-5-20251101
136138
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
137139
binary-path: ./target/release/git-iris
138140

action.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,23 @@ runs:
171171
GIT_IRIS="${GIT_IRIS_BIN:-git-iris}"
172172
COMMAND="${{ inputs.command }}"
173173
174+
echo "Provider: $IRIS_PROVIDER"
175+
echo "Model: $IRIS_MODEL"
176+
174177
# Build base command (--raw ensures markdown output, --quiet suppresses spinners)
175-
CMD="$GIT_IRIS $COMMAND --from '${{ inputs.from }}' --to '${{ inputs.to }}' --raw --quiet"
178+
# Explicitly pass --provider to ensure it's used regardless of config
179+
CMD="$GIT_IRIS $COMMAND --from '${{ inputs.from }}' --to '${{ inputs.to }}' --provider '${{ inputs.provider }}' --raw --quiet"
176180
177181
# Add version name if specified
178182
if [ -n "${{ inputs.version-name }}" ]; then
179183
CMD="$CMD --version-name '${{ inputs.version-name }}'"
180184
fi
181185
186+
# Add model if specified
187+
if [ -n "${{ inputs.model }}" ]; then
188+
CMD="$CMD --model '${{ inputs.model }}'"
189+
fi
190+
182191
# Execute and capture output
183192
CONTENT=$(eval $CMD)
184193

src/common.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ pub struct CommonParams {
1010
#[arg(long, help = "Override default LLM provider", value_parser = available_providers_parser)]
1111
pub provider: Option<String>,
1212

13+
/// Override model for this operation
14+
#[arg(long, help = "Override model for this operation")]
15+
pub model: Option<String>,
16+
1317
/// Custom instructions for this operation
1418
#[arg(short, long, help = "Custom instructions for this operation")]
1519
pub instructions: Option<String>,
@@ -84,6 +88,15 @@ impl CommonParams {
8488
}
8589
}
8690

91+
// Apply model override if specified
92+
if let Some(model) = &self.model {
93+
let provider_name = config.default_provider.clone();
94+
if let Some(provider_config) = config.providers.get_mut(&provider_name) {
95+
provider_config.model = model.clone();
96+
changes_made = true;
97+
}
98+
}
99+
87100
if let Some(instructions) = &self.instructions {
88101
config.set_temp_instructions(Some(instructions.clone()));
89102
}

0 commit comments

Comments
 (0)