{"id":22749829,"url":"https://github.com/artarts36/depexplorer","last_synced_at":"2026-05-05T21:37:13.922Z","repository":{"id":266913626,"uuid":"899747082","full_name":"ArtARTs36/depexplorer","owner":"ArtARTs36","description":"Explore project dependencies","archived":false,"fork":false,"pushed_at":"2024-12-23T21:33:05.000Z","size":70,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T06:17:26.414Z","etag":null,"topics":["composer","dependency-manager","go","gomod","library-management","npm"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArtARTs36.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-06T23:28:09.000Z","updated_at":"2024-12-23T21:33:09.000Z","dependencies_parsed_at":"2024-12-14T01:21:14.751Z","dependency_job_id":null,"html_url":"https://github.com/ArtARTs36/depexplorer","commit_stats":null,"previous_names":["artarts36/depexplorer"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ArtARTs36/depexplorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtARTs36%2Fdepexplorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtARTs36%2Fdepexplorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtARTs36%2Fdepexplorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtARTs36%2Fdepexplorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArtARTs36","download_url":"https://codeload.github.com/ArtARTs36/depexplorer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtARTs36%2Fdepexplorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32669431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["composer","dependency-manager","go","gomod","library-management","npm"],"created_at":"2024-12-11T04:10:44.009Z","updated_at":"2026-05-05T21:37:13.890Z","avatar_url":"https://github.com/ArtARTs36.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# depexplorer\n\n[![Godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/artarts36/depexplorer) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/artarts36/depexplorer/master/LICENSE)\n\n```\ngo get github.com/artarts36/depexplorer\n```\n\ndepexplorer - Go library for explore project dependencies from:\n- go.mod\n- composer.json\n- composer.lock\n- package.json\n- package-lock.json\n\nResult struct contains:\n- Name of dependency manager\n- List of dependencies and that versions\n- List of used frameworks\n- Name of programming language\n\nRepository structure:\n- `./`                    - main module with explore functions\n- `./pkg/repository`      - module for explore in repositories\n- `./pkg/github`          - module implements repository Client for GitHub\n- `./pkg/gitlab`          - module implements repository Client for Gitlab\n- `./pkg/repository-slog` - module implements slog adapter for repository logger\n\n## Explore Go dependencies\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer\"\n\t\"os\"\n)\n\nfunc main() {\n\tfile, _ := os.ReadFile(\"/path/to/mod\")\n\tdepFile, _ := depexplorer.ExploreGoMod(file)\n\tfor _, dep := range depFile.Dependencies {\n\t\tfmt.Println(dep.Name, dep.Version.Full)\n\t}\n}\n```\n\n## Explore Go dependencies by path\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer\"\n)\n\nfunc main() {\n\tdepFile, _ := depexplorer.Explore(\"/path/to/mod\", depexplorer.ExploreGoMod)\n\tfor _, dep := range depFile.Dependencies {\n\t\tfmt.Println(dep.Name, dep.Version.Full)\n\t}\n}\n```\n\n## Guess dependency manager and explore dependencies by path\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer\"\n)\n\nfunc main() {\n\tfile, _ := depexplorer.Guess(\"/path/to/package.json\")\n\tfmt.Println(file.DependencyManager)\n\tfor _, dep := range file.Dependencies {\n\t\tfmt.Println(dep.Name, dep.Version.Full)\n\t}\n}\n```\n\n## Explore from GitHub Repository\n\nYou need to install another packages:\n```\ngo get github.com/artarts36/depexplorer/pkg/repository\ngo get github.com/artarts36/depexplorer/pkg/github\n```\n\nAnd use this snippet:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer/pkg/github\"\n\t\"github.com/artarts36/depexplorer/pkg/repository\"\n\tgithubClient \"github.com/google/go-github/github\"\n)\n\nfunc main() {\n\texplorer := repository.NewExplorer(github.NewClient(nil))\n\t\n\trepo, _ := repository.NewRepoFromURI(\"https://github.com/artarts36/depexplorer\")\n\t\n\tfiles, _ := explorer.ExploreRepository(context.Background(), repo, nil)\n\tfor _, file := range files {\n\t\tfmt.Println(file.Name)\n\t\t\n\t\tfor _, dep := range file.Dependencies {\n\t\t\tfmt.Println(dep.Name, dep.Version.Full)\n        }\n\t}\n}\n```\n\n## Explore from Gitlab Repository\n\nYou need to install another packages:\n```\ngo get github.com/artarts36/depexplorer/pkg/repository\ngo get github.com/artarts36/depexplorer/pkg/gitlab\n```\n\nAnd use this snippet:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer/pkg/repository\"\n\t\"github.com/artarts36/depexplorer/pkg/gitlab\"\n)\n\nfunc main() {\n\tclient, _ := gitlab.NewClientWithToken(\"token\", nil)\n\t\n\texplorer := repository.NewExplorer(client)\n\t\n\trepo, _ := repository.NewRepoFromURI(\"https://github.com/artarts36/depexplorer\")\n\t\n\tfiles, _ := explorer.ExploreRepository(context.Background(), repo, nil)\n\tfor _, file := range files {\n\t\tfmt.Println(file.Name)\n\t\t\n\t\tfor _, dep := range file.Dependencies {\n\t\t\tfmt.Println(dep.Name, dep.Version.Full)\n        }\n\t}\n}\n```\n\n## Explore from GitHub and Gitlab Repositories\n\nYou need to install another packages:\n```\ngo get github.com/artarts36/depexplorer/pkg/repository\ngo get github.com/artarts36/depexplorer/pkg/github\ngo get github.com/artarts36/depexplorer/pkg/gitlab\n```\n\nAnd use this snippet:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/artarts36/depexplorer/pkg/github\"\n\t\"github.com/artarts36/depexplorer/pkg/repository\"\n\t\"github.com/artarts36/depexplorer/pkg/gitlab\"\n)\n\nfunc main() {\n\tclientsMap := map[string]repository.Client{\n\t\t\"github.com\": github.NewClient(nil),\n\t}\n\n\tgitlabClient, _ := gitlab.NewClientWithToken(\"token\", nil)\n\tclientsMap[\"gitlab.com\"] = gitlabClient\n\n\texplorer := repository.NewExplorer(repository.NewClientComposite(clientsMap))\n\n\trepo, _ := repository.NewRepoFromURI(\"https://github.com/artarts36/depexplorer\")\n\n\tfiles, _ := explorer.ExploreRepository(context.Background(), repo, nil)\n\tfor _, file := range files {\n\t\tfmt.Println(file.Name)\n\n\t\tfor _, dep := range file.Dependencies {\n\t\t\tfmt.Println(dep.Name, dep.Version.Full)\n\t\t}\n\t}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartarts36%2Fdepexplorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartarts36%2Fdepexplorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartarts36%2Fdepexplorer/lists"}