Introduction

Welcome to MergeDeps! MergeDeps allows you to block accidental merges while waiting on other tasks by explicitly blocking the merge until the dependency is merged. MergeDeps does this without requiring, or even requesting, access to your source code.

This can be useful in the following situations:

  • You have created branches off a feature branch, and don't want to merge the feature branch until all other branches have been resolved

  • You have new features that are dependent on another teams work, and want to avoid merging until the other service is ready.

Usage:

MergeDeps watches for dependency lines in the description of a Pull Request.

It will respond to lines which begin with Depends on (case insensitive), followed by a list of Pull Request references. References can be in the following format:

Reference

Location

#<id>

A Pull Request within the same project

<project>#<id>

A Pull Request in a different project within the same organization

<organization>/<project>#id

A Pull Request in a projected within a different organization

Note that dependencies on private repositories in other organizations require MergeDeps installed in both organizations, with access to both repositories, and access confirmation by the owner of the depended-on repository.

For example,

# Create a dependency on #85 in your local project, 
# and #40000 in the rails/rails project

Depends on #85, rails/rails#40000

Time-based Blocks

MergeDeps supports blocking a Pull Request until a given time. For this, you can use Blocked until, followed by any recognized time format.

For example, Blocked until 12/25/2020.

Updating:

The dependencies of a Pull Request can be updated at any time by editting the description of the Pull Request. The current body of the Pull Request is the source of truth for specifying dependencies.

If you would like to remove a dependency, but still keep a record of it in the description, you can format the dependency with a strikethrough (strikethrough) and it will be ignored. This can work for entire lines (Depends on #3, #4), or specific dependencies (Depends on #3 #4).

Last updated