Gnoll Docs Back to Dashboard
Quick Start
Getting Started

Dependencies API

Manage blocking relationships between issues and query the dependency graph.

Add Dependency

POST /api/v1/deps

Creates a dependency: issueId depends on (is blocked by) dependsOnId.

{
  "issueId": "blocked-issue-id",
  "dependsOnId": "blocking-issue-id"
}

Response

{
  "issueId": "blocked-issue-id",
  "issueTitle": "Implement feature X",
  "dependsOnId": "blocking-issue-id",
  "dependsOnTitle": "Set up database schema",
  "createdAt": "2025-03-20T10:00:00Z"
}

Error Codes

CodeMeaning
INVALID_ARGUMENTSelf-dependency or invalid IDs
404One or both issues not found
CONFLICTDependency already exists or would create a cycle

Remove Dependency

DELETE /api/v1/deps
{
  "issueId": "blocked-issue-id",
  "dependsOnId": "blocking-issue-id"
}

Returns 204 No Content on success, 404 if the dependency doesn't exist.

Get Blocked By

GET /api/v1/deps/{issueId}/blocked-by

Returns all issues that block the given issue.

Get Blocks

GET /api/v1/deps/{issueId}/blocks

Returns all issues that the given issue blocks.

Dependency Graph

GET /api/v1/deps/graph

Returns the full dependency graph as nodes and edges, with cycle detection.

Query Parameters

ParameterTypeDescription
statusstringComma-separated status filter
typestringComma-separated type filter
rootIssueIdstringRoot issue for subgraph view
depthintMax traversal depth from root

Response

{
  "nodes": [
    { "id": "abc", "title": "Task A", "status": "open", "type": "task", "projectId": "proj1" }
  ],
  "edges": [
    { "from": "abc", "to": "def" }
  ],
  "cycles": [
    ["abc", "def", "ghi", "abc"]
  ]
}

Graph (DOT Format)

GET /api/v1/deps/graph/dot

Returns the dependency graph in Graphviz DOT format. Useful for rendering with external tools.

Scopes Required

ActionScope
View dependencies, graphdeps:read
Add/remove dependenciesdeps:write