Skip to content

feat(ai-release-notes): add Bedrock provider path with OIDC-derived credentials - #191

Open
simon (susishopware) wants to merge 1 commit into
mainfrom
feat/ai-release-notes-bedrock
Open

feat(ai-release-notes): add Bedrock provider path with OIDC-derived credentials#191
simon (susishopware) wants to merge 1 commit into
mainfrom
feat/ai-release-notes-bedrock

Conversation

@susishopware

Copy link
Copy Markdown
Contributor

Why

Follow-up to #188. The static-API-key approach for the AI rewrite drew security pushback (shopware/pipe-fiction#1499): a credential that cannot expire on its own is the weaker option when a short-lived one is available. Amazon Bedrock is the consuming team's approved AI provider path, and GitHub's OIDC integration with AWS means the release workflow can authenticate without storing any secret at all.

What changes

New provider input (openai | bedrock, default openai — existing consumers are unaffected):

  • provider: bedrock calls Claude on Amazon Bedrock through the aws CLI preinstalled on GitHub-hosted runners (the CLI does the SigV4 signing, so the action stays dependency-free). Credentials are the ambient short-lived STS credentials from aws-actions/configure-aws-credentials; the consuming workflow additionally needs id-token: write.
  • Model default per providergpt-4o for openai, the eu.anthropic.claude-sonnet-5 cross-region inference profile for bedrock. Bare model ids are rejected for on-demand throughput in eu-central-1, and the eu. prefix keeps routing inside EU regions.
  • No temperature on the bedrock path — Claude Sonnet 5 and Opus 5 reject sampling parameters outright.
  • New max-output-tokens input (bedrock only, default 8192) — Claude's adaptive thinking draws from the same output budget.
  • Graceful degradation preserved — missing AWS credentials, a Bedrock error, a refusal, or a truncated response all fall back to the raw GitHub changelog with a warning; the release is still created. An unknown provider value fails the step, since that is a static misconfiguration rather than an AI outage.

The request/response pattern (InvokeModel with a native Anthropic body, body passed as a file to dodge argv limits, text block filtered by type because thinking blocks precede it) mirrors the pattern verified end-to-end against eu-central-1 in shopware/pipe-fiction#1487.

🤖 Generated with Claude Code

…redentials

Adds provider: bedrock as an alternative to the OpenAI-compatible path.
Claude is called on Amazon Bedrock through the aws CLI preinstalled on
GitHub-hosted runners, authenticated with the short-lived STS credentials
that aws-actions/configure-aws-credentials derives from the workflow's
OIDC token — no stored API key.

The bedrock path does not send temperature (Claude Sonnet 5 and Opus 5
reject sampling parameters) and defaults to the eu.anthropic.claude-sonnet-5
cross-region inference profile, since bare model ids are rejected for
on-demand throughput in eu-central-1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant