Skip to content

feat: Add issue-labeler composite action#55

Open
yonib05 wants to merge 1 commit into
strands-agents:mainfrom
yonib05:feat/issue-labeler
Open

feat: Add issue-labeler composite action#55
yonib05 wants to merge 1 commit into
strands-agents:mainfrom
yonib05:feat/issue-labeler

Conversation

@yonib05
Copy link
Copy Markdown
Member

@yonib05 yonib05 commented May 28, 2026

Description

Adds a reusable composite action for automated issue labeling. Repos define a YAML config with their label allowlist and optional classification instructions, then call this action from a thin workflow.

Supports running multiple independent labelers per repo (e.g. one for area tags, one for issue type, one for language) as separate parallel jobs with different configs.

Security

The LLM has no tools, no shell access, and no GitHub API access. Its response is parsed as JSON and each label is validated against the config's hardcoded key set. Invalid labels are silently dropped. IAM is scoped to bedrock:InvokeModel only. The worst outcome from prompt injection is mislabeling.

Structure

issue-labeler/
├── action.yml      # Composite action definition
├── classify.py     # Classification + allowlist validation
└── README.md       # Usage docs and config format

Config format

Consuming repos add a YAML file like:

instructions: |
  CI dependency bumps should be labeled "chore".

labels:
  area-mcp:
    description: "Model Context Protocol, MCP servers/clients/transport"
  area-provider:
    description: "Model providers (Bedrock, OpenAI, Anthropic, Ollama)"

The action accepts either a config_path pointing to such a file, or inline YAML via the config input.

Testing

  • Validated config parsing and allowlist filtering logic locally
  • Tested Bedrock invoke-model integration against live endpoint
  • Verified that labels not in the config are rejected regardless of LLM output

Reusable action that classifies GitHub issues using Bedrock and applies
labels from a repo-defined allowlist. Supports multiple independent
labelers per repo (e.g. area, type, language) via separate config files
or inline YAML.

The LLM output is validated against the config's label keys so prompt
injection can only cause mislabeling, not arbitrary label creation.
@yonib05 yonib05 changed the title Add issue-labeler composite action feat: Add issue-labeler composite action May 29, 2026
@max-rattray-aws max-rattray-aws self-requested a review May 29, 2026 20:24
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.

2 participants