Skip to content

Let issue triage and repository writers grant ready-for-dev #636

Description

@neubig

Desired Behavior

The GitHub issue triage automation and users with repository write access may grant ready-for-dev. The repository workflow acts only as a permission guard: when an actor without write access applies that label, it removes the label so the triage automation can reassess the issue through its existing unlabeled event trigger.

Acceptance Criteria

  • A newly applied ready-for-dev label is retained when GitHub reports the actor's permission as write, maintain, or admin.
  • This same permission rule retains labels from all-hands-bot; there is no bot-specific exception.
  • A newly applied ready-for-dev label from an actor with triage, read, or no repository permission is removed.
  • The repository workflow never adds ready-for-dev or independently evaluates issue content.
  • Existing linked-PR description checks are refreshed after an authorized label addition or any label removal.
  • Readiness evaluator and feedback-comment code with no remaining callers is removed.
  • The policy uses only issues: write for label policing, plus the existing minimum permissions needed to refresh linked PR checks.

OpenHands AI triage

The following comments and acceptance criteria were added by the OpenHands AI agent.

Triage

Transfer authority over ready-for-dev from the repository workflow to the GitHub issue triage automation. The issue-readiness-check.yml workflow is reduced to a provenance guard: it no longer adds ready-for-dev or evaluates issue content, and instead removes a ready-for-dev label whenever the applying identity is not all-hands-bot (the automation's GitHub identity), so the triage automation reassesses through its existing unlabeled trigger. The linked-PR description gate (pr-description-check.yml / check_pr_description.py) remains the sole consumer of the label and must keep working, including the existing label-change refresh (refresh_linked_pr_checks.py).

Scope is limited to the issue-readiness workflow and the evaluator/feedback-comment code it currently runs (check_issue_readiness.py, post-readiness-comment.mjs), their tests, and the AGENTS.md reference paragraph. The PR description check, the linked-PR refresh script, and the triage automation itself are unchanged.

Non-goals: do not change PR description validation rules or the ready-for-dev gate in check_pr_description.py; do not alter how the triage automation grants the label; do not remove the ready-for-dev label from the repository; do not modify pr-description-check.yml.

Acceptance Criteria

  • issue-readiness-check.yml no longer runs check_issue_readiness.py and no longer adds the ready-for-dev label or posts a readiness feedback comment for any issue.
  • When a ready-for-dev label is applied by any identity other than all-hands-bot, the workflow removes it.
  • When a ready-for-dev label is applied by all-hands-bot, the workflow leaves it in place.
  • On a ready-for-dev labeled or unlabeled event, the workflow still runs refresh_linked_pr_checks.py so linked open PR description checks are re-run.
  • check_issue_readiness.py and post-readiness-comment.mjs are removed, and no remaining reference to them exists in .github/workflows/, .github/scripts/, tests/, or AGENTS.md; check_pr_description.py and refresh_linked_pr_checks.py still import and run without those removed modules.
  • tests/test_check_issue_readiness.py is removed or repurposed so the suite passes; tests/test_check_pr_description.py and tests/test_refresh_linked_pr_checks.py still pass unmodified.
  • The workflow's permissions are issues: write for label policing plus the existing minimum for refreshing checks (contents: read, pull-requests: read, actions: write), with no additional elevated permissions.
  • AGENTS.md is updated so its ready-for-dev workflow description no longer claims the workflow grants the label or evaluates issue content, and instead describes the provenance-guard behavior.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:normalNormal priorityready-for-devScoped for contribution; managed by repository readiness checks.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions