Manage blocking relationships between issues and query the dependency graph.
/api/v1/deps
Creates a dependency: issueId depends on (is blocked by) dependsOnId.
{
"issueId": "blocked-issue-id",
"dependsOnId": "blocking-issue-id"
}
{
"issueId": "blocked-issue-id",
"issueTitle": "Implement feature X",
"dependsOnId": "blocking-issue-id",
"dependsOnTitle": "Set up database schema",
"createdAt": "2025-03-20T10:00:00Z"
}
| Code | Meaning |
|---|---|
INVALID_ARGUMENT | Self-dependency or invalid IDs |
404 | One or both issues not found |
CONFLICT | Dependency already exists or would create a cycle |
/api/v1/deps
{
"issueId": "blocked-issue-id",
"dependsOnId": "blocking-issue-id"
}
Returns 204 No Content on success, 404 if the dependency doesn't exist.
/api/v1/deps/{issueId}/blocked-by
Returns all issues that block the given issue.
/api/v1/deps/{issueId}/blocks
Returns all issues that the given issue blocks.
/api/v1/deps/graph
Returns the full dependency graph as nodes and edges, with cycle detection.
| Parameter | Type | Description |
|---|---|---|
status | string | Comma-separated status filter |
type | string | Comma-separated type filter |
rootIssueId | string | Root issue for subgraph view |
depth | int | Max traversal depth from root |
{
"nodes": [
{ "id": "abc", "title": "Task A", "status": "open", "type": "task", "projectId": "proj1" }
],
"edges": [
{ "from": "abc", "to": "def" }
],
"cycles": [
["abc", "def", "ghi", "abc"]
]
}
/api/v1/deps/graph/dot
Returns the dependency graph in Graphviz DOT format. Useful for rendering with external tools.
| Action | Scope |
|---|---|
| View dependencies, graph | deps:read |
| Add/remove dependencies | deps:write |