Skip to content

Help Wanted: GitHub Action to automate the plugin archive process #8983

Description

@awanlin

Summary

We're looking for a community contribution to automate the plugin archive process as a manually triggered GitHub Action. Right now, archiving a plugin requires a maintainer to run scripts locally and open a PR by hand. A workflow_dispatch action would make this faster, more consistent, and lower the barrier for maintainers to action unmaintained plugins.

This is part of a broader effort to formalise how we handle unmaintained plugins — see the Unmaintained Plugin Process RFC for context.

What We're Looking For

A manually triggered GitHub Action (workflow_dispatch) that:

  1. Accepts a workspace name as input
  2. Follows the documented archive steps end-to-end
  3. Opens a PR on a branch named archived/<workspace-name>
  4. Creates a GitHub issue to notify the plugin owner and community that the archive process has been triggered

Action Inputs

Input Required Description
workspace The name of the workspace to archive (e.g. azure-sites)
reason Custom deprecation reason. Defaults to "No longer maintained"

Steps the Action Should Perform

  1. Run the archive script

    node scripts/archive.js <workspace> "<reason>"

    This records Git tag references, updates .github/archived-plugins.json, ARCHIVED_WORKSPACES.md, docs/README.md, .github/CODEOWNERS, .github/labeler.yml, and the issue template workspace dropdowns.

  2. Dry-run the deprecation script to verify the packages that would be deprecated on npm:

    ./scripts/ci/deprecate-archived-plugins.sh --dry-run
  3. Delete the workspace folder from the repository.

  4. Open a PR targeting main on a branch named archived/<workspace-name>, including all changes from the steps above. The PR description should:

    • Link to the unmaintained issue created in step 5
    • Note that the npm deprecation will be triggered automatically once the PR is merged via the existing GitHub Action
  5. Create a GitHub issue titled [Unmaintained] <workspace-name>, tagged with the unmaintained label, notifying the plugin's code owners and the community that the archive PR has been opened and stating when it will be merged if no action is taken. See the issue template for the expected content.

Notes

  • The action should only be triggerable by members of @backstage/community-plugins-maintainers
  • Step 2 (deprecation dry-run) output should be included in the PR description so reviewers can see what will be deprecated on npm at merge time
  • The existing post-merge GitHub Action that handles npm deprecation does not need to change — this action only handles the PR creation side
  • For reference, the manual process this is replacing is documented here: How to Archive

If you're interested in picking this up, please leave a comment and we'll assign it to you. Questions about the archive process or the broader unmaintained plugin initiative are welcome here too.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    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