Does Bitbucket and GitHub have Work In Progress [WIP] pull requests feature?

Bitbucket does not provide WIP PR status yet, but the enhancement is WIP 😊. You can vote here for this feature: https://bitbucket.org/site/master/issues/12503/add-additional-pull-request-states


Since February 2019, GitHub has a "WIP" feature: see "Introducing draft pull requests "

https://github.blog/wp-content/uploads/2019/02/draft-pull-requests.png?w=1354

With draft pull requests, you can clearly tag when you’re coding a work in progress.

Now when you open a pull request, a dropdown arrow appears next to the “Create pull request” button.
Toggle the dropdown arrow whenever you want to create a draft instead.

That implies:

A draft pull request is styled differently to clearly indicate that it’s in a draft state.

  • Merging is blocked in draft pull requests.
  • Change the status to “Ready for review” near the bottom of your pull request to remove the draft state and allow merging according to your project’s settings.
  • Also, if you have a CODEOWNERS file in your repository, a draft pull request will suppress notifications to those reviewers until it is marked as ready for review.

Vanessa Gennarelli describes it in more details with "Ask students to iterate on their work with draft pull requests"

Unlike working privately on a local branch, working on a draft pull request offers Sarah the benefits of GitHub’s features and integrations:

  • She can use a task list to keep track of incomplete work.
  • She can mention a teaching assistant to get clarification on a requirement or get help on a particularly thorny bug.
  • She can even get test results from Travis CI with each new commit.

And yes, you can Re-request review on a pull request (since Feb. 2019)


Warning: GitLab 13.3 (August 2020) has renamed this feature:

WIP merge requests renamed Draft merge requests

WIP (work in progress) status for merge requests provide a clear signal to reviewers that the merge request in question is not yet ready to be merged.

In order to use a more inclusive and self-explanatory term, the WIP (work in progress) feature for Merge Requests has been renamed to “Draft”.

This term clearly communicates the MR in question is not ready for review as well as not making any assumptions about the progress being made towards it.
Additionally, it reduces the cognitive load for new users, non-English speakers, and anyone not familiar with the WIP acronym.

WIP merge requests are now deprecated in favor of draft merge requests, however both terms will be supported until the next major GitLab release (14.0), after which it will be removed.

See Documentation and Issue.


With GitLab 13.5 (October 2020), managing Draft is easier:

Mark merge request as 'draft' with a single click

Creating a merge request is a great way to share your contribution with others and get the conversation started, even if the code is not ready to be merged.

In order to signal to others that a contribution is not ready to be reviewed or merged, you can prefix the merge request title with draft (formerly known as wip).
This is useful, however it entails going into edit mode, navigating to the merge request title, and typing the required prefix.

To make it faster to use this feature, we have introduced Mark as draft and Mark as ready buttons directly to the top-right corner of merge request pages (without having to edit its description to change it).
With a single click, you can indicate that your work is in progress and not ready to be merged, and vice-versa.

https://about.gitlab.com/images/13_5/draft-button.png -- Mark merge request as 'draft' with a single click

See Documentation and Issue.