Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Option to move a PR from "open" to "draft" #1130

Open
jakub-g opened this issue Jan 26, 2024 · 2 comments
Open

Feature request: Option to move a PR from "open" to "draft" #1130

jakub-g opened this issue Jan 26, 2024 · 2 comments
Labels
feature request New feature or request to improve the current logic

Comments

@jakub-g
Copy link

jakub-g commented Jan 26, 2024

Description:

Currently the stale action allows a 2-level workflow:

  • after X days: mark as stale (+add comment, add label)
  • after Y days: close the PR

It could be interesting to allow a 3-level workflow:

  • after X days: move PR from "open" to "draft" (+optionally add comment)
  • after Y days: mark as stale (+add comment, add label)
  • after Z days: close the PR

Alternatively, if this sounds too complicated, an easier first step would be to "move to draft" as an subaction of marking as stale:

  • after X days: mark as stale (optionally add comment, optionally add label, +optionally move to draft)
  • after Y days: close the PR

Justification:

Personally I find marking PRs as "stale" and closing them as "this should only happen on very old PRs" (many months old). Whereas moving back to draft is "less dramatic".

  • Draft PRs are a standard GH feature and have semantically different meaning and behavior.
    • For example, PR marked as draft can't be merged by accident.
  • Marking PR as draft is leagues better than adding a label:
    • drafts are visually distinct from other PRs:
      • in PR detail view /pull/<n> (status icon in top-left of the PR)
      • in PR list /pulls, drafts have a different icon as well
    • drafts are searchable and can be excluded via a standard -is:draft query in GitHub searchbox, the query will be the same across all repositories.
      • For example one can find all review requests assigned to them on non-draft PRs via this query is:pr is:open user-review-requested:@me -is:draft
      • (To be fair, one could argue that the same can be achieved by -label:stale, although the label can be different in each repo, depending on the config).
  • There are certain third-party integrations for the PRs which have an option to exclude draft PRs. For example GitHub-Slack integration which reminds about pending PR reviews.

Are you willing to submit a PR?

No

@jakub-g jakub-g added feature request New feature or request to improve the current logic needs triage labels Jan 26, 2024
@HarithaVattikuti
Copy link
Contributor

Hello @jakub-g
Thank you for creating this feature request. We will investigate it and get back to you as soon as we have some feedback.

@mofosyne
Copy link

mofosyne commented Jun 9, 2024

In addition it be good to combine this with some form of merge conflict detection to auto set to draft if older than X days with no activity and merge conflict has emerged or CI build is failing.

This is because just because a PR is old doesn't mean its outdated, but a merge conflict or failing CI is a pretty good indicator that more work is needed.

FYI you can lift code from here to get merge conflict detection https://github.com/eps1lon/actions-label-merge-conflict/blob/main/sources/main.ts

This is of interest so I can integrate these automation in a few community projects like llama.cpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request to improve the current logic
Projects
None yet
Development

No branches or pull requests

3 participants