# 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,&#x20;

```
# 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`.

![](https://4245976741-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKv8rVJTVKOCZmrQo9L%2F-MOK3rT2w-1HD3rCM8pm%2F-MOK8EmNOyCSU4AvXetN%2Fimage.png?alt=media\&token=fdaf4fb6-5ac9-460e-80c1-f3d22526c88b)

#### 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**.&#x20;

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).
