Skip to content

Refactor close-release-issue from inline JS to shared Python #153

@hdamker

Description

@hdamker

Problem description

The Close Release Issue step in the post-result job of release-automation-reusable.yml uses ~100 lines of inline JavaScript that duplicates logic already implemented in issue_manager.py and issue_sync.py (STATE/ACTIONS section updates, label swap, close). Changes to section format or label names require updating two places.

Possible evolution

Replace the inline JavaScript with a composite action or Python script step that calls IssueSyncManager.close_release_issue(). This consolidates the issue mutation logic into the shared Python codebase, where it is already tested.

Alternative solution

Keep the inline JS and add comments cross-referencing the Python implementation to ensure they stay in sync. This avoids the refactoring effort but leaves the duplication in place.

Additional context

The inline JS works correctly. This is a maintenance burden reduction, not a bug fix. Priority is low — the issue close logic changes rarely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BacklogImplementation not considered short-term, long-term evolution issueenhancementNew feature or requestrelease automationRelated to the implementation or introduction of new release automation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions