Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time



👓 Issue dependency visualizer, a.k.a. "auto-roadmap".

GoDoc License GitHub release Go Report Card CodeFactor Docker Metrics GolangCI Made by Manfred Touron


dependency visualizer (auto roadmap)

depviz aggregates tasks from multiple projects and generates visual representations (graphs) of the dependencies.

inspired by this discussion: jbenet/random-ideas#37


The ultimate goal of this tool is to allow the tech and the non-tech to collaborate seamlessly.

Oftentimes, there are “non-technical project managers” that love tools like Jira and try to define everything, including the delay required. Developers, however, mostly hate Jira-like tools and prefer to focus on small tasks with an easy-to-use interface, like Trello, GitHub issues, GitLab issues.

The idea of depviz is to:

  • link those different tools (aggregate the different sources and find the relationships: find that this exact “Jira user story” belongs to those 5 technical issues on github
  • create various visual ways of displaying this information. Then, we can have a company that has some non-technical project manager only focusing on user stories and their priorities, and devs that focus on tasks and estimate the tasks by themselves (everyone doing what they are good at)
  • in general, help everyone have the overall vision more clear


  • Graphs are “fun” but not very useful yet, a good dependency tool would be like graphviz. The current depviz version makes the graph in something that is more “weight-based”, because nodes will be grouped to make the graph fit the screen. Graphviz is not focused on making things beautiful, but focused on being 100% clear on the dependency. We need a good graph driver that supports this kind of graph.
  • Having options for multiple layouts/graphs.
  • Implementing the PERT method and adding more fields in depviz: due date, difficulty, etc, in order to create graphs for “finding the shortest path”, for example.
  • Improving the UI to improve collaboration (sharing a URL, etc).


Limited to the following repos: moul/depviz, moul/depviz-test, moul-bot/depviz-test.

Supported providers

Depviz aggregates the entities of multiple providers into 3 generic ones.

Supported providers:

  • GitHub
    • Task: Issue, Pull Request, Milestone
    • Owner: TODO
    • Topic: TODO
  • GitLab: (planned)
  • Jira (planned)
  • Trello (planned)

TODO: detailed mapping table

Under the hood

Depviz entities

There are 3 entities:

  • A Task that have a real life cycle: opened->closed
  • An Owner which only contains things
  • A Topic which allows categorizing/tagging other things


  • a Milestone is a Depviz Task, because even if it contains other tasks, it also has a well defined lifecycle: to be closed when every children tasks are finished.
  • a Repository is a Depviz Owner because even if you can archive a repository, it's not the normal lifecycle, and will most of the time be unrelated with the amount of tasks done

A Task can be considered as something directly actionable, or indirectly/automatically closable based on a business rule.

More info here: ./api/dvmodel.proto


should have:

  • a unique ID: canonical URL
  • a LocalID: human-readable identifier
  • a Title: not necessarily unique
  • a Kind: Issue, Pull Request, Milestone, Epic, Story, Card
  • a State: opened, in progress, or closed
  • an Owner: see below
  • a Driver: GitHub, GitLab, Jira, Trello

may have:

  • other relationships: Author, Milestone, Assignees, Reviewers, Label, Dependencies, Dependents, Related, Parts, Parents
  • other metadata: Description
  • other states: Locked
  • timestamps: Created, Updated, Due, Completed
  • metrics: NumDownvotes, NumUpvotes, NumComments


should have:

  • a unique ID: canonical URL
  • a LocalID: human-readable identifier
  • a Title: not necessarily unique
  • a Kind: User, Organization, Team, Repo, Provider
  • a Driver: GitHub, GitLab, Jira, Trello

may have:

  • an Owner
  • other states: Fork
  • other metadata: Homepage, Description, Avatar, Fullname, Shortname
  • timestamps: Created, Updated


should have:

  • a unique ID: canonical URL
  • a LocalID: human-readable identifier
  • a Title: not necessarily unique
  • a Kind: Label
  • a Driver: GitHub, GitLab, Jira, Trello

may have:

  • an Owner: see above
  • other metadata: Color, Description


Download a release

Install With Golang

go get

Using brew

brew install moul/moul/depviz




© 2018-2021 Manfred Touron

Licensed under the Apache License, Version 2.0 (LICENSE-APACHE) or the MIT license (LICENSE-MIT), at your option. See the COPYRIGHT file for more details.

SPDX-License-Identifier: (Apache-2.0 OR MIT)