Skip to content

Move composite action release-note collection out of action.yml into tested code #139

Description

@lbliii

Context

action.yml has grown into an 846-line composite action with embedded bash, inline Python, GitHub API calls, release-note collection, rendering, posting, and asset upload logic. This makes behavior hard to test outside Actions and makes review of release/report changes noisy.

Evidence

  • wc -l action.yml reports 846 lines.
  • The Collect GitHub PR data step embeds a large Python script inside YAML.
  • That script handles PR queries, release-note markers, linked issues, dependency parsing, direct commits, diff stats, benchmark placeholders, and output JSON.
  • Tests cover report templates and parsers, but this collector logic is not easy to unit test as a normal Python module.

Proposed Scope

  • Extract release-note/PR collection into a Python module or script under src/kida or scripts/ with focused tests.
  • Keep action.yml as wiring: setup, call collector, render, post.
  • Add fixtures for release-note markers, dependency PRs, direct commits, missing tags, and malformed GitHub responses.

Done When

  • action.yml is materially smaller and mostly declarative.
  • Collector behavior has local tests that do not require a live GitHub event.
  • Existing release-note action workflows continue to work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgithub_actionsPull requests that update GitHub Actions code

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions