{"id":13400538,"url":"https://github.com/moul/depviz","last_synced_at":"2025-04-04T12:08:11.955Z","repository":{"id":33537024,"uuid":"147477919","full_name":"moul/depviz","owner":"moul","description":"👓 dependency visualizer for GitHub \u0026 GitLab (a.k.a., \"auto-roadmap\")","archived":false,"fork":false,"pushed_at":"2024-10-29T00:46:48.000Z","size":6726,"stargazers_count":143,"open_issues_count":76,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-30T01:36:57.030Z","etag":null,"topics":["dependency","dependency-visualizer","depviz","github","gitlab","graph","issues","jira","pert","roadmap","trello"],"latest_commit_sha":null,"homepage":"https://manfred.life/depviz","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["moul"],"patreon":"moul","open_collective":"moul","custom":["https://manfred.life/donate"]}},"created_at":"2018-09-05T07:29:20.000Z","updated_at":"2024-10-08T20:37:35.000Z","dependencies_parsed_at":"2023-10-15T01:19:45.597Z","dependency_job_id":"92f7f8e2-c4e4-45b9-ae65-0a566b6f1f99","html_url":"https://github.com/moul/depviz","commit_stats":{"total_commits":405,"total_committers":16,"mean_commits":25.3125,"dds":0.5530864197530865,"last_synced_commit":"5de70a227266443b42d54956849c6f9f6b1ba2a3"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fdepviz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fdepviz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fdepviz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fdepviz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moul","download_url":"https://codeload.github.com/moul/depviz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174419,"owners_count":20896078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency","dependency-visualizer","depviz","github","gitlab","graph","issues","jira","pert","roadmap","trello"],"created_at":"2024-07-30T19:00:53.055Z","updated_at":"2025-04-04T12:08:11.932Z","avatar_url":"https://github.com/moul.png","language":"Go","funding_links":["https://github.com/sponsors/moul","https://patreon.com/moul","https://opencollective.com/moul","https://manfred.life/donate"],"categories":["Go","JavaScript","roadmap"],"sub_categories":[],"readme":"# Depviz\n\n\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/moul/depviz/master/assets/depviz.svg?sanitize=true\" alt=\"Depviz\" title=\"Depviz\" height=\"200px\"\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e👓 Issue dependency visualizer, a.k.a. \"auto-roadmap\".\u003c/h3\u003e\n\n[![GoDoc](https://img.shields.io/static/v1?label=godoc\u0026message=reference\u0026color=blue)](https://pkg.go.dev/moul.io/depviz/v3)\n[![License](https://img.shields.io/badge/license-Apache--2.0%20%2F%20MIT-%2397ca00.svg)](https://github.com/moul/depviz/blob/master/COPYRIGHT)\n[![GitHub release](https://img.shields.io/github/release/moul/depviz.svg)](https://github.com/moul/depviz/releases)\n[![Go Report Card](https://goreportcard.com/badge/moul.io/depviz)](https://goreportcard.com/report/moul.io/depviz)\n[![CodeFactor](https://www.codefactor.io/repository/github/moul/depviz/badge)](https://www.codefactor.io/repository/github/moul/depviz)\n[![Docker Metrics](https://images.microbadger.com/badges/image/moul/depviz.svg)](https://microbadger.com/images/moul/depviz)\n[![GolangCI](https://golangci.com/badges/github.com/moul/depviz.svg)](https://golangci.com/r/github.com/moul/depviz)\n[![Made by Manfred Touron](https://img.shields.io/badge/made%20by-Manfred%20Touron-blue.svg?style=flat)](https://manfred.life/)\n\n\u003c!-- [![codecov](https://codecov.io/gh/moul/depviz/branch/master/graph/badge.svg)](https://codecov.io/gh/moul/depviz) --\u003e\n\n## Introduction\n\ndependency visualizer (auto roadmap)\n\n`depviz` aggregates **tasks** from multiple projects and generates visual representations (graphs) of the dependencies.\n\n_inspired by this discussion: [jbenet/random-ideas#37](https://github.com/jbenet/random-ideas/issues/37)_\n\n## Philosophy\n\nThe ultimate goal of this tool is to allow the tech and the non-tech to collaborate seamlessly.\n\nOftentimes, there are “non-technical project managers” that love tools like Jira and try to define everything, including the delay required.\nDevelopers, 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.\n\nThe idea of depviz is to:\n\n* 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\n* 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)\n* in general, help everyone have the overall vision more clear\n\n## Target\n\n* 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.\n* Having options for multiple layouts/graphs.\n* Implementing the [PERT method](https://en.wikipedia.org/wiki/Program_evaluation_and_review_technique) and adding more fields in depviz: due date, difficulty, etc, in order to create graphs for “finding the shortest path”, for example.\n* Improving the UI to improve collaboration (sharing a URL, etc).\n\n## Demo\n\nhttps://depviz-demo.moul.io/\n\n_Limited to the following repos: [moul/depviz](https://github.com/moul/depviz), [moul/depviz-test](https://github.com/moul/depviz-test), [moul-bot/depviz-test](https://github.com/moul-bot/depviz-test)._\n\n## Supported providers\n\n_Depviz_ aggregates the entities of multiple providers into 3 generic ones.\n\n---\n\nSupported providers:\n\n* GitHub\n  * Task: Issue, Pull Request, Milestone\n  * Owner: TODO\n  * Topic: TODO\n* GitLab: _(planned)_\n* Jira _(planned)_\n* Trello _(planned)_\n\nTODO: detailed mapping table\n\n## Under the hood\n\n### Depviz entities\n\nThere are 3 entities:\n\n* A `Task` that have a real life cycle: opened-\u003eclosed\n* An `Owner` which only contains things\n* A `Topic` which allows categorizing/tagging other things\n\n**Examples**:\n\n* 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.\n* 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\n\nA `Task` can be considered as something directly actionable, or indirectly/automatically closable based on a business rule.\n\n**More info here: [./api/dvmodel.proto](./api/dvmodel.proto)**\n\n#### Task\n\nshould have:\n\n* a unique `ID`: canonical URL\n* a `LocalID`: human-readable identifier\n* a `Title`: _not necessarily unique_\n* a `Kind`: `Issue`, `Pull Request`, `Milestone`, `Epic`, `Story`, `Card`\n* a `State`: `opened`, `in progress`, or `closed`\n* an `Owner`: _see below_\n* a `Driver`: `GitHub`, `GitLab`, `Jira`, `Trello`\n\nmay have:\n\n* other relationships: `Author`, `Milestone`, `Assignees`, `Reviewers`, `Label`, `Dependencies`, `Dependents`, `Related`, `Parts`, `Parents`\n* other metadata: `Description`\n* other states: `Locked`\n* timestamps: `Created`, `Updated`, `Due`, `Completed`\n* metrics: `NumDownvotes`, `NumUpvotes`, `NumComments`\n\n#### Owner\n\nshould have:\n\n* a unique `ID`: canonical URL\n* a `LocalID`: human-readable identifier\n* a `Title`: _not necessarily unique_\n* a `Kind`: `User`, `Organization`, `Team`, `Repo`, `Provider`\n* a `Driver`: `GitHub`, `GitLab`, `Jira`, `Trello`\n\nmay have:\n\n* an `Owner`\n* other states: `Fork`\n* other metadata: `Homepage`, `Description`, `Avatar`, `Fullname`, `Shortname`\n* timestamps: `Created`, `Updated`\n\n#### Topic\n\nshould have:\n\n* a unique `ID`: canonical URL\n* a `LocalID`: human-readable identifier\n* a `Title`: _not necessarily unique_\n* a `Kind`: `Label`\n* a `Driver`: `GitHub`, `GitLab`, `Jira`, `Trello`\n\nmay have:\n\n* an `Owner`: _see above_\n* other metadata: `Color`, `Description`\n\n## Install\n\n### Download a release\n\nhttps://github.com/moul/depviz/releases\n\n### Install With Golang\n\n```bash\ngo get moul.io/depviz/cmd/depviz/v3\n```\n\n### Using brew\n\n```bash\nbrew install moul/moul/depviz\n```\n\n## Usage\n\nTODO\n\n## License\n\n© 2018-2021 [Manfred Touron](https://manfred.life)\n\nLicensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([`LICENSE-APACHE`](LICENSE-APACHE)) or the [MIT license](https://opensource.org/licenses/MIT) ([`LICENSE-MIT`](LICENSE-MIT)), at your option. See the [`COPYRIGHT`](COPYRIGHT) file for more details.\n\n`SPDX-License-Identifier: (Apache-2.0 OR MIT)`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fdepviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoul%2Fdepviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fdepviz/lists"}