Skip to content

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

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions