{"id":302998,"name":"Open Tree of Life","description":"Constructs a comprehensive, dynamic and digitally-available tree of life by synthesizing published phylogenetic trees along with taxonomic data.","url":"https://github.com/opentreeoflife/opentree","last_synced_at":"2026-04-13T05:03:31.086Z","repository":{"id":7008527,"uuid":"8276387","full_name":"OpenTreeOfLife/opentree","owner":"OpenTreeOfLife","description":"Opentree browsing and curation web site.  For overarching or cross-repo concerns, please see the 'germinator' repo.","archived":false,"fork":false,"pushed_at":"2026-01-07T19:31:47.000Z","size":27699,"stargazers_count":124,"open_issues_count":304,"forks_count":28,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-01-12T16:39:06.881Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://tree.opentreeoflife.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenTreeOfLife.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-18T20:17:46.000Z","updated_at":"2025-12-25T14:00:40.000Z","dependencies_parsed_at":"2024-04-23T18:42:23.993Z","dependency_job_id":"70e704c5-ff37-48e8-8fca-6f833da73915","html_url":"https://github.com/OpenTreeOfLife/opentree","commit_stats":{"total_commits":2978,"total_committers":17,"mean_commits":175.1764705882353,"dds":"0.19979852249832097","last_synced_commit":"ca9f9e22f2e4928d765b87a71c4b44c25059e9e5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenTreeOfLife/opentree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife","download_url":"https://codeload.github.com/OpenTreeOfLife/opentree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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"}},"owner":{"login":"OpenTreeOfLife","name":"OpenTreeOfLife","uuid":"1752618","kind":"organization","description":"","email":null,"website":"http://opentreeoflife.github.io/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1752618?v=4","repositories_count":62,"last_synced_at":"2023-03-24T06:19:40.025Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/OpenTreeOfLife","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-03T20:25:31.069Z","updated_at":"2023-03-24T06:19:40.028Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife/repositories"},"packages":[{"id":11912957,"name":"github.com/OpenTreeOfLife/opentree","ecosystem":"go","description":"","homepage":"https://github.com/OpenTreeOfLife/opentree","licenses":"BSD-2-Clause","normalized_licenses":["BSD-2-Clause"],"repository_url":"https://github.com/OpenTreeOfLife/opentree","keywords_array":[],"namespace":"github.com/OpenTreeOfLife","versions_count":0,"first_release_published_at":null,"latest_release_published_at":"2026-01-08T16:30:13.888Z","latest_release_number":null,"last_synced_at":"2026-01-08T16:30:13.888Z","created_at":"2025-07-15T10:09:59.095Z","updated_at":"2026-01-08T16:30:16.670Z","registry_url":"https://pkg.go.dev/github.com/OpenTreeOfLife/opentree","install_command":"go get github.com/OpenTreeOfLife/opentree","documentation_url":"https://pkg.go.dev/github.com/OpenTreeOfLife/opentree#section-documentation","metadata":{},"repo_metadata":{"id":7008527,"uuid":"8276387","full_name":"OpenTreeOfLife/opentree","owner":"OpenTreeOfLife","description":"Opentree browsing and curation web site.  For overarching or cross-repo concerns, please see the 'germinator' repo.","archived":false,"fork":false,"pushed_at":"2025-08-11T15:36:25.000Z","size":27689,"stargazers_count":123,"open_issues_count":303,"forks_count":28,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-10-28T20:12:14.766Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://tree.opentreeoflife.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenTreeOfLife.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-18T20:17:46.000Z","updated_at":"2025-10-22T04:08:54.000Z","dependencies_parsed_at":"2024-04-23T18:42:23.993Z","dependency_job_id":"70e704c5-ff37-48e8-8fca-6f833da73915","html_url":"https://github.com/OpenTreeOfLife/opentree","commit_stats":{"total_commits":2978,"total_committers":17,"mean_commits":175.1764705882353,"dds":"0.19979852249832097","last_synced_commit":"ca9f9e22f2e4928d765b87a71c4b44c25059e9e5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenTreeOfLife/opentree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife","download_url":"https://codeload.github.com/OpenTreeOfLife/opentree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281552360,"owners_count":26520792,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"tags":[]},"repo_metadata_updated_at":"2025-10-29T03:23:09.540Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.641212938412651,"dependent_packages_count":5.286194882717435,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.463703910565043},"purl":"pkg:golang/github.com/%21open%21tree%21of%21life/opentree","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/OpenTreeOfLife/opentree","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/OpenTreeOfLife/opentree","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/OpenTreeOfLife/opentree/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T16:31:32.329Z","issues_count":91,"pull_requests_count":117,"avg_time_to_close_issue":23346825.85714286,"avg_time_to_close_pull_request":1694965.3577981652,"issues_closed_count":49,"pull_requests_closed_count":109,"pull_request_authors_count":7,"issue_authors_count":16,"avg_comments_per_issue":2.901098901098901,"avg_comments_per_pull_request":0.6410256410256411,"merged_pull_requests_count":104,"bot_issues_count":0,"bot_pull_requests_count":8,"past_year_issues_count":4,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":3482771.0,"past_year_avg_time_to_close_pull_request":186.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":2.25,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentreeoflife%2Fopentree/issues","maintainers":[{"login":"jimallman","count":109,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"},{"login":"jar398","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jar398"},{"login":"josephwb","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/josephwb"},{"login":"rhr","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rhr"},{"login":"chinchliff","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chinchliff"},{"login":"kcranston","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kcranston"}],"active_maintainers":[{"login":"jimallman","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FOpenTreeOfLife%2Fopentree/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FOpenTreeOfLife%2Fopentree/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FOpenTreeOfLife%2Fopentree/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FOpenTreeOfLife%2Fopentree/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FOpenTreeOfLife%2Fopentree/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2024936,"maintainers_count":0,"namespaces_count":760376,"keywords_count":112043,"github":"golang","metadata":{"funded_packages_count":52889},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-01-10T06:59:49.373Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":11912958,"name":"github.com/opentreeoflife/opentree","ecosystem":"go","description":"","homepage":"https://github.com/opentreeoflife/opentree","licenses":"BSD-2-Clause","normalized_licenses":["BSD-2-Clause"],"repository_url":"https://github.com/opentreeoflife/opentree","keywords_array":[],"namespace":"github.com/opentreeoflife","versions_count":0,"first_release_published_at":null,"latest_release_published_at":"2026-01-08T16:30:16.662Z","latest_release_number":null,"last_synced_at":"2026-01-08T16:30:16.662Z","created_at":"2025-07-15T10:09:59.198Z","updated_at":"2026-01-08T16:30:18.913Z","registry_url":"https://pkg.go.dev/github.com/opentreeoflife/opentree","install_command":"go get github.com/opentreeoflife/opentree","documentation_url":"https://pkg.go.dev/github.com/opentreeoflife/opentree#section-documentation","metadata":{},"repo_metadata":{"id":7008527,"uuid":"8276387","full_name":"OpenTreeOfLife/opentree","owner":"OpenTreeOfLife","description":"Opentree browsing and curation web site.  For overarching or cross-repo concerns, please see the 'germinator' repo.","archived":false,"fork":false,"pushed_at":"2025-08-11T15:36:25.000Z","size":27689,"stargazers_count":123,"open_issues_count":303,"forks_count":28,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-10-28T20:12:14.766Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://tree.opentreeoflife.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenTreeOfLife.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-18T20:17:46.000Z","updated_at":"2025-10-22T04:08:54.000Z","dependencies_parsed_at":"2024-04-23T18:42:23.993Z","dependency_job_id":"70e704c5-ff37-48e8-8fca-6f833da73915","html_url":"https://github.com/OpenTreeOfLife/opentree","commit_stats":{"total_commits":2978,"total_committers":17,"mean_commits":175.1764705882353,"dds":"0.19979852249832097","last_synced_commit":"ca9f9e22f2e4928d765b87a71c4b44c25059e9e5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenTreeOfLife/opentree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife","download_url":"https://codeload.github.com/OpenTreeOfLife/opentree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281552340,"owners_count":26520788,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"},"owner_record":{"login":"OpenTreeOfLife","name":"OpenTreeOfLife","uuid":"1752618","kind":"organization","description":"","email":null,"website":"http://opentreeoflife.github.io/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1752618?v=4","repositories_count":62,"last_synced_at":"2023-03-24T06:19:40.025Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/OpenTreeOfLife","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-03T20:25:31.069Z","updated_at":"2023-03-24T06:19:40.028Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenTreeOfLife/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-10-29T03:22:43.124Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.641212938412651,"dependent_packages_count":5.286194882717435,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.463703910565043},"purl":"pkg:golang/github.com/opentreeoflife/opentree","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/opentreeoflife/opentree","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/opentreeoflife/opentree","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/opentreeoflife/opentree/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T16:31:32.329Z","issues_count":91,"pull_requests_count":117,"avg_time_to_close_issue":23346825.85714286,"avg_time_to_close_pull_request":1694965.3577981652,"issues_closed_count":49,"pull_requests_closed_count":109,"pull_request_authors_count":7,"issue_authors_count":16,"avg_comments_per_issue":2.901098901098901,"avg_comments_per_pull_request":0.6410256410256411,"merged_pull_requests_count":104,"bot_issues_count":0,"bot_pull_requests_count":8,"past_year_issues_count":4,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":3482771.0,"past_year_avg_time_to_close_pull_request":186.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":2.25,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentreeoflife%2Fopentree/issues","maintainers":[{"login":"jimallman","count":109,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"},{"login":"jar398","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jar398"},{"login":"josephwb","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/josephwb"},{"login":"rhr","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rhr"},{"login":"chinchliff","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chinchliff"},{"login":"kcranston","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kcranston"}],"active_maintainers":[{"login":"jimallman","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fopentreeoflife%2Fopentree/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fopentreeoflife%2Fopentree/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fopentreeoflife%2Fopentree/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fopentreeoflife%2Fopentree/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fopentreeoflife%2Fopentree/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2024936,"maintainers_count":0,"namespaces_count":760376,"keywords_count":112043,"github":"golang","metadata":{"funded_packages_count":52889},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-01-10T06:59:49.373Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":314114,"full_name":"OpenTreeOfLife/opentree","default_branch":"master","total_commits":2985,"total_committers":16,"total_bot_commits":4,"total_bot_committers":1,"mean_commits":186.5625,"dds":0.2013400335008375,"past_year_total_commits":5,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":2.5,"past_year_dds":0.19999999999999996,"last_synced_at":"2026-01-14T07:13:40.353Z","last_synced_commit":"03f339ff1f8af77dcf0fc3113ba592c7aad533dd","created_at":"2023-03-08T16:55:26.753Z","updated_at":"2026-01-14T07:13:29.533Z","committers":[{"name":"Jim Allman","email":"jim@ibang.com","login":"jimallman","count":2384},{"name":"Jonathan A Rees","email":"jar398@mumble.net","login":"jar398","count":196},{"name":"Mark T. Holder","email":"mtholder@gmail.com","login":"mtholder","count":150},{"name":"Karen Cranston","email":"karen.cranston@gmail.com","login":"kcranston","count":101},{"name":"Joseph W. Brown","email":"phylo.jwb@gmail.com","login":"josephwb","count":30},{"name":"Cody Hinchliff","email":"cody.hinchliff@gmail.com","login":"chinchliff","count":23},{"name":"Stephen Smith","email":"stephen@blackrim.net","login":"blackrim","count":22},{"name":"Benjamin Redelings","email":"benjamin.redelings@gmail.com","login":"bredelings","count":22},{"name":"Emily Jane McTavish","email":"ejmctavish@gmail.com","login":"snacktavish","count":20},{"name":"Jonathan \"Duke\" Leto","email":"jonathan@leto.net","login":"leto","count":18},{"name":"zbolander","email":"bdrewfb@gmail.com","login":"zbolander","count":9},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":4},{"name":"Peter Midford","email":"peter.midford@gmail.com","login":"pmidford","count":3},{"name":"James J Balamuta","email":"coatless","login":"coatless","count":1},{"name":"Arlin Stoltzfus","email":"arlin@umd.edu","login":"arlin","count":1},{"name":"Ubuntu","email":"ubuntu@ip-10-244-180-215.us-west-2.compute.internal","login":null,"count":1}],"past_year_committers":[{"name":"Mark T. Holder","email":"mtholder@gmail.com","login":"mtholder","count":4},{"name":"Jim Allman","email":"jim@ibang.com","login":"jimallman","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenTreeOfLife%2Fopentree/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-01-14T01:12:55.458Z","repositories_count":6164534,"commits_count":932801829,"contributors_count":36256150,"owners_count":1137414,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"opentreeoflife/opentree","html_url":"https://github.com/opentreeoflife/opentree","last_synced_at":"2026-01-08T07:00:30.728Z","status":"active","issues_count":90,"pull_requests_count":121,"avg_time_to_close_issue":23714618.020833332,"avg_time_to_close_pull_request":1814599.6756756757,"issues_closed_count":48,"pull_requests_closed_count":111,"pull_request_authors_count":7,"issue_authors_count":17,"avg_comments_per_issue":2.8444444444444446,"avg_comments_per_pull_request":0.6198347107438017,"merged_pull_requests_count":106,"bot_issues_count":0,"bot_pull_requests_count":7,"past_year_issues_count":4,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":1272740.0,"past_year_avg_time_to_close_pull_request":353.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2024-11-01T00:07:20.596Z","updated_at":"2026-01-08T07:00:30.728Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentreeoflife%2Fopentree","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentreeoflife%2Fopentree/issues","issue_labels_count":{"taxonomy":19,"enhancement":8,"bug":2,"question":1,"duplicate":1,"Pyramid webapps":1,"phylesystem batch operation":1},"pull_request_labels_count":{"dependencies":7,"javascript":1,"python":1,"close this?":1},"issue_author_associations_count":{"MEMBER":76,"NONE":8,"CONTRIBUTOR":6},"pull_request_author_associations_count":{"MEMBER":113,"CONTRIBUTOR":8},"issue_authors":{"mtholder":20,"snacktavish":17,"jimallman":15,"jar398":10,"josephwb":5,"bredelings":5,"rhr":5,"chinchliff":3,"chrsowen":2,"davetank":1,"Katzlab":1,"laurenholdermanphylo":1,"kcranston":1,"cleopatra17":1,"pmidford":1,"sjl197":1,"Kartinaa":1},"pull_request_authors":{"jimallman":94,"mtholder":10,"dependabot[bot]":7,"snacktavish":5,"jar398":3,"bredelings":1,"kcranston":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-01-10T00:00:36.407Z","repositories_count":12710941,"issues_count":35967992,"pull_requests_count":118134001,"authors_count":11082382,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"MEMBER":2,"NONE":2},"past_year_pull_request_author_associations_count":{"MEMBER":5},"past_year_issue_authors":{"jimallman":1,"Kartinaa":1,"sjl197":1,"snacktavish":1},"past_year_pull_request_authors":{"jimallman":4,"mtholder":1},"maintainers":[{"login":"jimallman","count":109,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"},{"login":"jar398","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jar398"},{"login":"josephwb","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/josephwb"},{"login":"rhr","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rhr"},{"login":"chinchliff","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chinchliff"},{"login":"kcranston","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kcranston"}],"active_maintainers":[{"login":"jimallman","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jimallman"},{"login":"mtholder","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mtholder"},{"login":"snacktavish","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snacktavish"}]},"events":{"total":{"IssuesEvent":3,"WatchEvent":8,"IssueCommentEvent":9,"PushEvent":6,"PullRequestEvent":8,"ForkEvent":1,"CreateEvent":2},"last_year":{"IssuesEvent":3,"WatchEvent":6,"IssueCommentEvent":4,"PushEvent":3,"PullRequestEvent":4,"ForkEvent":1,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"bower","filepath":"curator/static/jQuery-File-Upload-9.5.2/bower.json","sha":null,"kind":"manifest","created_at":"2022-08-06T20:01:04.826Z","updated_at":"2022-08-06T20:01:04.826Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/jQuery-File-Upload-9.5.2/bower.json","dependencies":[{"id":586345675,"package_name":"jquery","ecosystem":"bower","requirements":"\u003e=1.6","direct":true,"kind":"runtime","optional":false},{"id":586345676,"package_name":"blueimp-tmpl","ecosystem":"bower","requirements":"\u003e=2.5.3","direct":true,"kind":"runtime","optional":false},{"id":586345677,"package_name":"blueimp-load-image","ecosystem":"bower","requirements":"\u003e=1.11.0","direct":true,"kind":"runtime","optional":false},{"id":586345678,"package_name":"blueimp-canvas-to-blob","ecosystem":"bower","requirements":"\u003e=2.1.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"curator/static/jQuery-File-Upload-9.5.2/package.json","sha":null,"kind":"manifest","created_at":"2022-08-06T20:01:04.848Z","updated_at":"2022-08-06T20:01:04.848Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/jQuery-File-Upload-9.5.2/package.json","dependencies":[{"id":586346135,"package_name":"grunt","ecosystem":"npm","requirements":"~0.4.1","direct":true,"kind":"development","optional":false},{"id":586346136,"package_name":"grunt-bump-build-git","ecosystem":"npm","requirements":"~1.1.0","direct":true,"kind":"development","optional":false},{"id":586346137,"package_name":"grunt-contrib-jshint","ecosystem":"npm","requirements":"~0.7.2","direct":true,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"curator/static/jQuery-File-Upload-9.5.2/server/node/package.json","sha":null,"kind":"manifest","created_at":"2022-08-06T20:01:04.931Z","updated_at":"2022-08-06T20:01:04.931Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/jQuery-File-Upload-9.5.2/server/node/package.json","dependencies":[{"id":586346841,"package_name":"formidable","ecosystem":"npm","requirements":"\u003e=1.0.11","direct":true,"kind":"runtime","optional":false},{"id":586346842,"package_name":"node-static","ecosystem":"npm","requirements":"\u003e=0.6.5","direct":true,"kind":"runtime","optional":false},{"id":586346843,"package_name":"imagemagick","ecosystem":"npm","requirements":"\u003e=0.1.3","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"curator/static/js/tnrs/package-lock.json","sha":null,"kind":"lockfile","created_at":"2022-08-06T20:01:05.099Z","updated_at":"2022-08-06T20:01:05.099Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/js/tnrs/package-lock.json","dependencies":[{"id":586347028,"package_name":"acorn","ecosystem":"npm","requirements":"6.4.2","direct":false,"kind":"runtime","optional":false},{"id":586347029,"package_name":"acorn-node","ecosystem":"npm","requirements":"1.8.2","direct":false,"kind":"development","optional":false},{"id":586347030,"package_name":"acorn","ecosystem":"npm","requirements":"7.4.1","direct":false,"kind":"development","optional":false},{"id":586347031,"package_name":"acorn-walk","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":586347032,"package_name":"anymatch","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"development","optional":false},{"id":586347033,"package_name":"asn1.js","ecosystem":"npm","requirements":"5.4.1","direct":false,"kind":"development","optional":false},{"id":586347034,"package_name":"bn.js","ecosystem":"npm","requirements":"4.12.0","direct":false,"kind":"development","optional":false},{"id":586347035,"package_name":"assert","ecosystem":"npm","requirements":"1.5.0","direct":false,"kind":"development","optional":false},{"id":586347036,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":586347037,"package_name":"util","ecosystem":"npm","requirements":"0.10.3","direct":false,"kind":"development","optional":false},{"id":586347038,"package_name":"available-typed-arrays","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":586347039,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347040,"package_name":"base64-js","ecosystem":"npm","requirements":"1.5.1","direct":false,"kind":"development","optional":false},{"id":586347041,"package_name":"binary-extensions","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":586347042,"package_name":"blob-polyfill","ecosystem":"npm","requirements":"1.0.20150320","direct":false,"kind":"runtime","optional":false},{"id":586347043,"package_name":"bn.js","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"development","optional":false},{"id":586347044,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":586347045,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":586347046,"package_name":"brorand","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":586347047,"package_name":"browser-pack","ecosystem":"npm","requirements":"6.1.0","direct":false,"kind":"development","optional":false},{"id":586347048,"package_name":"browser-resolve","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":586347049,"package_name":"browserify","ecosystem":"npm","requirements":"16.5.2","direct":false,"kind":"development","optional":false},{"id":586347050,"package_name":"browserify-aes","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":586347051,"package_name":"browserify-cipher","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347052,"package_name":"browserify-des","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347053,"package_name":"browserify-rsa","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":586347054,"package_name":"browserify-sign","ecosystem":"npm","requirements":"4.2.1","direct":false,"kind":"development","optional":false},{"id":586347055,"package_name":"readable-stream","ecosystem":"npm","requirements":"3.6.0","direct":false,"kind":"development","optional":false},{"id":586347056,"package_name":"browserify-versionify","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":586347057,"package_name":"isarray","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":586347058,"package_name":"readable-stream","ecosystem":"npm","requirements":"1.0.34","direct":false,"kind":"development","optional":false},{"id":586347059,"package_name":"string_decoder","ecosystem":"npm","requirements":"0.10.31","direct":false,"kind":"development","optional":false},{"id":586347060,"package_name":"through2","ecosystem":"npm","requirements":"0.6.3","direct":false,"kind":"development","optional":false},{"id":586347061,"package_name":"browserify-zlib","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"development","optional":false},{"id":586347062,"package_name":"buffer","ecosystem":"npm","requirements":"5.2.1","direct":false,"kind":"development","optional":false},{"id":586347063,"package_name":"buffer-from","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":586347064,"package_name":"buffer-xor","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":586347065,"package_name":"builtin-status-codes","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":586347066,"package_name":"cached-path-relative","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347067,"package_name":"call-bind","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347068,"package_name":"chokidar","ecosystem":"npm","requirements":"3.5.2","direct":false,"kind":"development","optional":false},{"id":586347069,"package_name":"cipher-base","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347070,"package_name":"combine-source-map","ecosystem":"npm","requirements":"0.8.0","direct":false,"kind":"development","optional":false},{"id":586347071,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":586347072,"package_name":"concat-stream","ecosystem":"npm","requirements":"1.6.2","direct":false,"kind":"development","optional":false},{"id":586347073,"package_name":"console-browserify","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":586347074,"package_name":"constants-browserify","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347075,"package_name":"convert-source-map","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":586347076,"package_name":"core-util-is","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":586347077,"package_name":"create-ecdh","ecosystem":"npm","requirements":"4.0.4","direct":false,"kind":"development","optional":false},{"id":586347078,"package_name":"create-hash","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":586347079,"package_name":"create-hmac","ecosystem":"npm","requirements":"1.1.7","direct":false,"kind":"development","optional":false},{"id":586347080,"package_name":"crypto-browserify","ecosystem":"npm","requirements":"3.12.0","direct":false,"kind":"development","optional":false},{"id":586347081,"package_name":"dash-ast","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347082,"package_name":"define-properties","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":586347083,"package_name":"defined","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347084,"package_name":"deps-sort","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":586347085,"package_name":"des.js","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347086,"package_name":"detective","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"development","optional":false},{"id":586347087,"package_name":"diffie-hellman","ecosystem":"npm","requirements":"5.0.3","direct":false,"kind":"development","optional":false},{"id":586347088,"package_name":"domain-browser","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":586347089,"package_name":"duplexer2","ecosystem":"npm","requirements":"0.1.4","direct":false,"kind":"development","optional":false},{"id":586347090,"package_name":"elliptic","ecosystem":"npm","requirements":"6.5.4","direct":false,"kind":"development","optional":false},{"id":586347091,"package_name":"es-abstract","ecosystem":"npm","requirements":"1.19.1","direct":false,"kind":"development","optional":false},{"id":586347092,"package_name":"es-to-primitive","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":586347093,"package_name":"events","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":586347094,"package_name":"evp_bytestokey","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":586347095,"package_name":"fast-safe-stringify","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":586347096,"package_name":"file-saver","ecosystem":"npm","requirements":"1.3.8","direct":false,"kind":"runtime","optional":false},{"id":586347097,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":586347098,"package_name":"find-root","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":586347099,"package_name":"foreach","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":586347100,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347101,"package_name":"fsevents","ecosystem":"npm","requirements":"2.3.2","direct":false,"kind":"development","optional":false},{"id":586347102,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347103,"package_name":"get-assigned-identifiers","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":586347104,"package_name":"get-intrinsic","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347105,"package_name":"get-symbol-description","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347106,"package_name":"glob","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":586347107,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":586347108,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":586347109,"package_name":"has-bigints","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347110,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347111,"package_name":"has-tostringtag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347112,"package_name":"hash-base","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":586347113,"package_name":"hash.js","ecosystem":"npm","requirements":"1.1.7","direct":false,"kind":"development","optional":false},{"id":586347114,"package_name":"hmac-drbg","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347115,"package_name":"htmlescape","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347116,"package_name":"https-browserify","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347117,"package_name":"ieee754","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":586347118,"package_name":"immediate","ecosystem":"npm","requirements":"3.0.6","direct":false,"kind":"runtime","optional":false},{"id":586347119,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":586347120,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"runtime","optional":false},{"id":586347121,"package_name":"inline-source-map","ecosystem":"npm","requirements":"0.6.2","direct":false,"kind":"development","optional":false},{"id":586347122,"package_name":"insert-module-globals","ecosystem":"npm","requirements":"7.2.1","direct":false,"kind":"development","optional":false},{"id":586347123,"package_name":"internal-slot","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":586347124,"package_name":"is-arguments","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347125,"package_name":"is-bigint","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347126,"package_name":"is-binary-path","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":586347127,"package_name":"is-boolean-object","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":586347128,"package_name":"is-buffer","ecosystem":"npm","requirements":"1.1.6","direct":false,"kind":"development","optional":false},{"id":586347129,"package_name":"is-callable","ecosystem":"npm","requirements":"1.2.4","direct":false,"kind":"development","optional":false},{"id":586347130,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.8.0","direct":false,"kind":"development","optional":false},{"id":586347131,"package_name":"is-date-object","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":586347132,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":586347133,"package_name":"is-generator-function","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":586347134,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":586347135,"package_name":"is-negative-zero","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":586347136,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":586347137,"package_name":"is-number-object","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":586347138,"package_name":"is-regex","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":586347139,"package_name":"is-shared-array-buffer","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347140,"package_name":"is-string","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":586347141,"package_name":"is-symbol","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347142,"package_name":"is-typed-array","ecosystem":"npm","requirements":"1.1.8","direct":false,"kind":"development","optional":false},{"id":586347143,"package_name":"is-weakref","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347144,"package_name":"isarray","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":586347145,"package_name":"json-stable-stringify","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":586347146,"package_name":"jsonify","ecosystem":"npm","requirements":"0.0.0","direct":false,"kind":"development","optional":false},{"id":586347147,"package_name":"jsonparse","ecosystem":"npm","requirements":"1.3.1","direct":false,"kind":"development","optional":false},{"id":586347148,"package_name":"JSONStream","ecosystem":"npm","requirements":"1.3.5","direct":false,"kind":"development","optional":false},{"id":586347149,"package_name":"jszip","ecosystem":"npm","requirements":"3.7.1","direct":false,"kind":"runtime","optional":false},{"id":586347150,"package_name":"labeled-stream-splicer","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":586347151,"package_name":"lie","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"runtime","optional":false},{"id":586347152,"package_name":"lodash.memoize","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":586347153,"package_name":"md5.js","ecosystem":"npm","requirements":"1.3.5","direct":false,"kind":"development","optional":false},{"id":586347154,"package_name":"miller-rabin","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":586347155,"package_name":"minimalistic-assert","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347156,"package_name":"minimalistic-crypto-utils","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347157,"package_name":"minimatch","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":586347158,"package_name":"minimist","ecosystem":"npm","requirements":"1.2.5","direct":false,"kind":"development","optional":false},{"id":586347159,"package_name":"mkdirp-classic","ecosystem":"npm","requirements":"0.5.3","direct":false,"kind":"development","optional":false},{"id":586347160,"package_name":"module-deps","ecosystem":"npm","requirements":"6.2.3","direct":false,"kind":"development","optional":false},{"id":586347161,"package_name":"normalize-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":586347162,"package_name":"object-assign","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":586347163,"package_name":"object-inspect","ecosystem":"npm","requirements":"1.11.0","direct":false,"kind":"development","optional":false},{"id":586347164,"package_name":"object-keys","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347165,"package_name":"object.assign","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":586347166,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":586347167,"package_name":"os-browserify","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"development","optional":false},{"id":586347168,"package_name":"outpipe","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347169,"package_name":"pako","ecosystem":"npm","requirements":"1.0.11","direct":false,"kind":"runtime","optional":false},{"id":586347170,"package_name":"parents","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347171,"package_name":"parse-asn1","ecosystem":"npm","requirements":"5.1.6","direct":false,"kind":"development","optional":false},{"id":586347172,"package_name":"path-browserify","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":586347173,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347174,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":586347175,"package_name":"path-platform","ecosystem":"npm","requirements":"0.11.15","direct":false,"kind":"development","optional":false},{"id":586347176,"package_name":"pbkdf2","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"development","optional":false},{"id":586347177,"package_name":"picomatch","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":586347178,"package_name":"process","ecosystem":"npm","requirements":"0.11.10","direct":false,"kind":"development","optional":false},{"id":586347179,"package_name":"process-nextick-args","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":586347180,"package_name":"public-encrypt","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":586347181,"package_name":"punycode","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"development","optional":false},{"id":586347182,"package_name":"querystring","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"development","optional":false},{"id":586347183,"package_name":"querystring-es3","ecosystem":"npm","requirements":"0.2.1","direct":false,"kind":"development","optional":false},{"id":586347184,"package_name":"randombytes","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":586347185,"package_name":"randomfill","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347186,"package_name":"read-only-stream","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":586347187,"package_name":"readable-stream","ecosystem":"npm","requirements":"2.3.7","direct":false,"kind":"runtime","optional":false},{"id":586347188,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":586347189,"package_name":"string_decoder","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":586347190,"package_name":"readdirp","ecosystem":"npm","requirements":"3.6.0","direct":false,"kind":"development","optional":false},{"id":586347191,"package_name":"resolve","ecosystem":"npm","requirements":"1.20.0","direct":false,"kind":"development","optional":false},{"id":586347192,"package_name":"ripemd160","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":586347193,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.2.1","direct":false,"kind":"development","optional":false},{"id":586347194,"package_name":"safer-buffer","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":586347195,"package_name":"set-immediate-shim","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":586347196,"package_name":"sha.js","ecosystem":"npm","requirements":"2.4.11","direct":false,"kind":"development","optional":false},{"id":586347197,"package_name":"shasum","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347198,"package_name":"shasum-object","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347199,"package_name":"shell-quote","ecosystem":"npm","requirements":"1.7.3","direct":false,"kind":"development","optional":false},{"id":586347200,"package_name":"side-channel","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347201,"package_name":"simple-concat","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347202,"package_name":"source-map","ecosystem":"npm","requirements":"0.5.7","direct":false,"kind":"development","optional":false},{"id":586347203,"package_name":"stream-browserify","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":586347204,"package_name":"stream-combiner2","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":586347205,"package_name":"stream-http","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":586347206,"package_name":"stream-splicer","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":586347207,"package_name":"string_decoder","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":586347208,"package_name":"string.prototype.trimend","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347209,"package_name":"string.prototype.trimstart","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":586347210,"package_name":"subarg","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":586347211,"package_name":"syntax-error","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":586347212,"package_name":"through","ecosystem":"npm","requirements":"2.3.8","direct":false,"kind":"development","optional":false},{"id":586347213,"package_name":"through2","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":586347214,"package_name":"timers-browserify","ecosystem":"npm","requirements":"1.4.2","direct":false,"kind":"development","optional":false},{"id":586347215,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":586347216,"package_name":"tty-browserify","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":586347217,"package_name":"typedarray","ecosystem":"npm","requirements":"0.0.6","direct":false,"kind":"development","optional":false},{"id":586347218,"package_name":"umd","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"development","optional":false},{"id":586347219,"package_name":"unbox-primitive","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347220,"package_name":"undeclared-identifiers","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":586347221,"package_name":"url","ecosystem":"npm","requirements":"0.11.0","direct":false,"kind":"development","optional":false},{"id":586347222,"package_name":"punycode","ecosystem":"npm","requirements":"1.3.2","direct":false,"kind":"development","optional":false},{"id":586347223,"package_name":"util","ecosystem":"npm","requirements":"0.10.4","direct":false,"kind":"development","optional":false},{"id":586347224,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"development","optional":false},{"id":586347225,"package_name":"util-deprecate","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":586347226,"package_name":"vm-browserify","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":586347227,"package_name":"watchify","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":586347228,"package_name":"browserify","ecosystem":"npm","requirements":"17.0.0","direct":false,"kind":"development","optional":false},{"id":586347229,"package_name":"events","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"development","optional":false},{"id":586347230,"package_name":"path-browserify","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":586347231,"package_name":"stream-browserify","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":586347232,"package_name":"through2","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":586347233,"package_name":"util","ecosystem":"npm","requirements":"0.12.4","direct":false,"kind":"development","optional":false},{"id":586347234,"package_name":"which-boxed-primitive","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347235,"package_name":"which-typed-array","ecosystem":"npm","requirements":"1.1.7","direct":false,"kind":"development","optional":false},{"id":586347236,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":586347237,"package_name":"xtend","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"curator/static/js/tnrs/package.json","sha":null,"kind":"manifest","created_at":"2022-08-06T20:01:05.213Z","updated_at":"2022-08-06T20:01:05.213Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/js/tnrs/package.json","dependencies":[{"id":586347266,"package_name":"acorn","ecosystem":"npm","requirements":"^6.4.1","direct":true,"kind":"runtime","optional":false},{"id":586347267,"package_name":"blob-polyfill","ecosystem":"npm","requirements":"1.x","direct":true,"kind":"runtime","optional":false},{"id":586347268,"package_name":"file-saver","ecosystem":"npm","requirements":"1.3.x","direct":true,"kind":"runtime","optional":false},{"id":586347269,"package_name":"jszip","ecosystem":"npm","requirements":"^3.7.1","direct":true,"kind":"runtime","optional":false},{"id":586347270,"package_name":"browserify","ecosystem":"npm","requirements":"^16.5.1","direct":true,"kind":"development","optional":false},{"id":586347271,"package_name":"browserify-versionify","ecosystem":"npm","requirements":"^1.0.4","direct":true,"kind":"development","optional":false},{"id":586347272,"package_name":"watchify","ecosystem":"npm","requirements":"^4.0.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-06T20:01:05.281Z","updated_at":"2022-08-06T20:01:05.281Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/requirements.txt","dependencies":[{"id":586347305,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":586347306,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.2","direct":true,"kind":"runtime","optional":false},{"id":586347307,"package_name":"locket","ecosystem":"pypi","requirements":"==0.1.1","direct":true,"kind":"runtime","optional":false},{"id":586347308,"package_name":"bleach","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":586347309,"package_name":"jwcrypto","ecosystem":"pypi","requirements":"==0.9.1","direct":true,"kind":"runtime","optional":false},{"id":586347310,"package_name":"python_jwt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"curator/static/jQuery-File-Upload-9.5.2/package-lock.json","sha":null,"kind":"lockfile","created_at":"2023-01-13T16:23:33.709Z","updated_at":"2023-01-13T16:23:33.709Z","repository_link":"https://github.com/OpenTreeOfLife/opentree/blob/master/curator/static/jQuery-File-Upload-9.5.2/package-lock.json","dependencies":[{"id":6890434433,"package_name":"liftup","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":6890434351,"package_name":"abbrev","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":6890434352,"package_name":"ansi-styles","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":6890434353,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":6890434354,"package_name":"array-each","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434355,"package_name":"array-slice","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":6890434356,"package_name":"async","ecosystem":"npm","requirements":"3.2.4","direct":false,"kind":"development","optional":false},{"id":6890434357,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434358,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":6890434359,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":6890434360,"package_name":"chalk","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":6890434361,"package_name":"cli","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434362,"package_name":"color-convert","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":6890434363,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":6890434364,"package_name":"colors","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":6890434365,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":6890434366,"package_name":"console-browserify","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":6890434367,"package_name":"core-util-is","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":6890434368,"package_name":"date-now","ecosystem":"npm","requirements":"0.1.4","direct":false,"kind":"development","optional":false},{"id":6890434369,"package_name":"dateformat","ecosystem":"npm","requirements":"3.0.3","direct":false,"kind":"development","optional":false},{"id":6890434370,"package_name":"detect-file","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434371,"package_name":"dom-serializer","ecosystem":"npm","requirements":"0.2.2","direct":false,"kind":"development","optional":false},{"id":6890434372,"package_name":"domelementtype","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":6890434373,"package_name":"entities","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":6890434374,"package_name":"domelementtype","ecosystem":"npm","requirements":"1.3.1","direct":false,"kind":"development","optional":false},{"id":6890434375,"package_name":"domhandler","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":6890434376,"package_name":"domutils","ecosystem":"npm","requirements":"1.5.1","direct":false,"kind":"development","optional":false},{"id":6890434377,"package_name":"entities","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434378,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":6890434379,"package_name":"eventemitter2","ecosystem":"npm","requirements":"0.4.14","direct":false,"kind":"development","optional":false},{"id":6890434380,"package_name":"exit","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":6890434381,"package_name":"expand-tilde","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":6890434382,"package_name":"extend","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":6890434383,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":6890434384,"package_name":"findup-sync","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"development","optional":false},{"id":6890434385,"package_name":"glob","ecosystem":"npm","requirements":"5.0.15","direct":false,"kind":"development","optional":false},{"id":6890434386,"package_name":"fined","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":6890434387,"package_name":"flagged-respawn","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434388,"package_name":"for-in","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434389,"package_name":"for-own","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434390,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434391,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":6890434392,"package_name":"getobject","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434393,"package_name":"glob","ecosystem":"npm","requirements":"7.1.7","direct":false,"kind":"development","optional":false},{"id":6890434394,"package_name":"global-modules","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434395,"package_name":"global-prefix","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434396,"package_name":"which","ecosystem":"npm","requirements":"1.3.1","direct":false,"kind":"development","optional":false},{"id":6890434397,"package_name":"grunt","ecosystem":"npm","requirements":"1.5.3","direct":false,"kind":"development","optional":false},{"id":6890434398,"package_name":"grunt-bump-build-git","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":6890434399,"package_name":"semver","ecosystem":"npm","requirements":"2.2.1","direct":false,"kind":"development","optional":false},{"id":6890434400,"package_name":"shelljs","ecosystem":"npm","requirements":"0.2.6","direct":false,"kind":"development","optional":false},{"id":6890434401,"package_name":"grunt-cli","ecosystem":"npm","requirements":"1.4.3","direct":false,"kind":"development","optional":false},{"id":6890434402,"package_name":"nopt","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":6890434403,"package_name":"grunt-contrib-jshint","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":6890434404,"package_name":"grunt-known-options","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":6890434405,"package_name":"grunt-legacy-log","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":6890434406,"package_name":"grunt-legacy-log-utils","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":6890434407,"package_name":"grunt-legacy-util","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":6890434408,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":6890434409,"package_name":"has-flag","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":6890434410,"package_name":"homedir-polyfill","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":6890434411,"package_name":"hooker","ecosystem":"npm","requirements":"0.2.3","direct":false,"kind":"development","optional":false},{"id":6890434412,"package_name":"htmlparser2","ecosystem":"npm","requirements":"3.8.3","direct":false,"kind":"development","optional":false},{"id":6890434413,"package_name":"iconv-lite","ecosystem":"npm","requirements":"0.4.24","direct":false,"kind":"development","optional":false},{"id":6890434414,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":6890434415,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":6890434416,"package_name":"ini","ecosystem":"npm","requirements":"1.3.8","direct":false,"kind":"development","optional":false},{"id":6890434417,"package_name":"interpret","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":6890434418,"package_name":"is-absolute","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434419,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.10.0","direct":false,"kind":"development","optional":false},{"id":6890434420,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":6890434421,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":6890434422,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":6890434423,"package_name":"is-plain-object","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":6890434424,"package_name":"is-relative","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434425,"package_name":"is-unc-path","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434426,"package_name":"is-windows","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434427,"package_name":"isarray","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":6890434428,"package_name":"isexe","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":6890434429,"package_name":"isobject","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":6890434430,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.14.1","direct":false,"kind":"development","optional":false},{"id":6890434431,"package_name":"jshint","ecosystem":"npm","requirements":"2.13.5","direct":false,"kind":"development","optional":false},{"id":6890434432,"package_name":"kind-of","ecosystem":"npm","requirements":"6.0.3","direct":false,"kind":"development","optional":false},{"id":6890434434,"package_name":"findup-sync","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":6890434435,"package_name":"lodash","ecosystem":"npm","requirements":"4.17.21","direct":false,"kind":"development","optional":false},{"id":6890434436,"package_name":"make-iterator","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434437,"package_name":"map-cache","ecosystem":"npm","requirements":"0.2.2","direct":false,"kind":"development","optional":false},{"id":6890434438,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.5","direct":false,"kind":"development","optional":false},{"id":6890434439,"package_name":"minimatch","ecosystem":"npm","requirements":"3.0.8","direct":false,"kind":"development","optional":false},{"id":6890434440,"package_name":"mkdirp","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":6890434441,"package_name":"nopt","ecosystem":"npm","requirements":"3.0.6","direct":false,"kind":"development","optional":false},{"id":6890434442,"package_name":"object.defaults","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":6890434443,"package_name":"object.map","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434444,"package_name":"object.pick","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":6890434445,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":6890434446,"package_name":"os-homedir","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434447,"package_name":"os-tmpdir","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434448,"package_name":"osenv","ecosystem":"npm","requirements":"0.1.5","direct":false,"kind":"development","optional":false},{"id":6890434449,"package_name":"parse-filepath","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434450,"package_name":"parse-passwd","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434451,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434452,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":6890434453,"package_name":"path-root","ecosystem":"npm","requirements":"0.1.1","direct":false,"kind":"development","optional":false},{"id":6890434454,"package_name":"path-root-regex","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":6890434455,"package_name":"picomatch","ecosystem":"npm","requirements":"2.3.1","direct":false,"kind":"development","optional":false},{"id":6890434456,"package_name":"readable-stream","ecosystem":"npm","requirements":"1.1.14","direct":false,"kind":"development","optional":false},{"id":6890434457,"package_name":"rechoir","ecosystem":"npm","requirements":"0.7.1","direct":false,"kind":"development","optional":false},{"id":6890434458,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.1","direct":false,"kind":"development","optional":false},{"id":6890434459,"package_name":"resolve-dir","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":6890434460,"package_name":"rimraf","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":6890434461,"package_name":"safer-buffer","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":6890434462,"package_name":"semver","ecosystem":"npm","requirements":"4.3.2","direct":false,"kind":"development","optional":false},{"id":6890434463,"package_name":"shelljs","ecosystem":"npm","requirements":"0.8.5","direct":false,"kind":"development","optional":false},{"id":6890434464,"package_name":"rechoir","ecosystem":"npm","requirements":"0.6.2","direct":false,"kind":"development","optional":false},{"id":6890434465,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":6890434466,"package_name":"string_decoder","ecosystem":"npm","requirements":"0.10.31","direct":false,"kind":"development","optional":false},{"id":6890434467,"package_name":"strip-json-comments","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":6890434468,"package_name":"supports-color","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":6890434469,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":6890434470,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":6890434471,"package_name":"unc-path-regex","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":6890434472,"package_name":"underscore.string","ecosystem":"npm","requirements":"3.3.6","direct":false,"kind":"development","optional":false},{"id":6890434473,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":6890434474,"package_name":"util-deprecate","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":6890434475,"package_name":"v8flags","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":6890434476,"package_name":"which","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":6890434477,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false}]}],"score":null,"created_at":"2024-11-01T00:07:15.644Z","updated_at":"2026-04-13T05:03:31.093Z","avatar_url":"https://github.com/OpenTreeOfLife.png","language":"JavaScript","category":"Biosphere","sub_category":"Biodiversity Data Access and Management","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"opentree\n========\n\nThis is the repository for the Open Tree of Life web applications, one of many subsystems making up the Open Tree of Life project code.\n\nFor Open Tree of Life documentation, see [the germinator repository's wiki](https://github.com/OpenTreeOfLife/germinator/wiki). The 'deployment system' and web API documentation sources that formerly resided in this repository now live in the [germinator repository](https://github.com/OpenTreeOfLife/germinator).\n\nThe following instructions have not been reviewed in a long time. For local installation a better place to start might be [this wiki page](https://github.com/OpenTreeOfLife/opentree/wiki/Installing-a-local-curator-and-tree-browser-test-server).\n\nInstallation\n============\nSee the phylografter instructions for\nmore details about using web2py.\n\nWe strongly recommend using a virtual environment to manage the version of\nPython and installed modules. We're currently running opentree with Python\nv2.7.3. Newer versions of python2.7 should work, but **NOTE that web2py is not\ncompatible with Python 3**.\n\nIf necessary, compile Python2.7 and use it when making your virtualenv.  You\nshould be able to safely install multiple versions of python using your\npreferred package manager, or by configuring Python2.7 with the --prefix\noption and 'make altinstall'.\n\nSo the final invocation to create your virtualenv should look something like:\n```\n$ virtualenv --python=/usr/bin/python2.7 --distribute \u003cpath/to/new/virtualenv/\u003e\n```\n\nOr, if you're using virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/en/latest/index.html):\n```\n$ mkvirtualenv --python=python2.7 --no-site-packages --distribute opentree\n```\n\nThe included **requirements.txt** file lists known-good versions of all the required\npython modules for opentree, plus a few convenience modules. To [install these modules \nusing pip](http://www.pip-installer.org/en/latest/cookbook.html#requirements-files), \n\n\u003cpre\u003e\npip install -r requirements.txt\n\u003c/pre\u003e\n\nThe contents of the webapp subdirectory are a web2py application.  Make a symbolic \nlink called \"opentree\" in a web2py/applications directory to the webapp directory.\nYou should be able to launch web2py and see the app running at http://127.0.0.1:8000/opentree/\n\nThere is now a second web2py app for the curation tool, which will also need a\nsymlink. This will be available at http://127.0.0.1:8000/curator/\n\nBriefly:\n\n1. Download and unpack the source code version of web2py from \nhttp://www.web2py.com/examples/default/download MTH used version 2.4.2 of web2py\n\n   NOTE: This version of web2py includes basic support for OAuth 2.0, but it needs\n   a minor patch to support for login via the GitHub API v3.  (The curation app\n   uses GitHub for its datastore and attribution. The tree browser also uses it\n   for its issue tracker, with optional authentication for convenience.) Replace\n   this web2py file with a modified version in the same folder as this README:\n   \u003cpre\u003e\n   {web2py-2.4.4}/gluon/contrib/login_methods/oauth20_account.py\n   \u003c/pre\u003e\n\n2. Create the sym links for the main web app and the study curation tool.\n\n   \u003cpre\u003e\n   cd web2py/applications\n   ln -s /full/path/to/opentree/webapp opentree\n   ln -s /full/path/to/opentree/curator curator\n   \u003c/pre\u003e\n\n3. Customize web2py's site-wide routing behavior using \"SITE.routes.py\"\n\n   \u003cpre\u003e\n   # return to main web2py directory\n   cd ..  \n   cp /full/path/to/opentree/SITE.routes.py routes.py\n   \u003c/pre\u003e\n   \n   This routing file works in tandem with the opentree app router and lets us have\n   proper URLs with hyphens instead of underscores.\n\n4. Launch web2py\n\n   \u003cpre\u003e\n   cd /full/path/to/web2py\n   python web2py.py --nogui -a '\u0026lt;recycle\u0026gt;'\n   \u003c/pre\u003e\n   \n   Where the -a flag is allowing you to reuse the previous admin password that you used\n   with this instance of web2py.\n\n   **To test with login and proper domain name**, modify your test system's\n   `/etc/hosts` file (or equivalent) to resolve the domain `devtree.opentreeoflife.org`\n   to localhost (127.0.0.1). Then run web2py on (privileged) port 80 like so:\n\n   \u003cpre\u003e\n   cd /full/path/to/web2py\n   sudo python web2py.py --nogui -p 80 -a '\u0026lt;recycle\u0026gt;'\n   \u003c/pre\u003e\n\n   **To test with local HTTPS**, modify your test system's\n   `/etc/hosts` file as described above, then use a [web2py options file]() to\n   support HTTP traffic on port 80 and HTTPS on port 443. This requires working\n   key and cert files.\n   to localhost (127.0.0.1). Then run web2py on (privileged) port 80 like so:\n\n   \u003cpre\u003e\n   cd /full/path/to/web2py\n   sudo python web2py.py --verbose -L multiport_options.py\n   \u003c/pre\u003e\n\n   This looks for the options file `multiport_options.py` in the same\n   directory as `web2py.py`, with contents something like this:\n   \u003cpre\u003e\n   import os \n   interfaces = [(\n                    '0.0.0.0',\n                    80\n                 ),\n                 (\n                    '0.0.0.0',\n                    443,\n                    '/Volumes/SecureFiles/.ssh/opentree/ssl-keys/opentreeoflife.org.key',\n                    '/Volumes/SecureFiles/.ssh/opentree/ssl-keys/STAR_opentreeoflife_org.crt'\n                 )]\n   password = '\u003crecycle\u003e' \n   pid_filename = 'httpserver.pid' \n   log_filename = 'httpserver.log' \n   folder = os.getcwd() \n   \u003c/pre\u003e\n\n   Now you should be able to use production domain names, secure connections,\n   and OAuth as in the production setup.\n\nSubdirectories\n--------------\n\nmockup\n: JAR's hand-written html that mock up the design of the site.\n\nsmasher\n: construction of synthetic taxonomy. See https://github.com/OpenTreeOfLife/opentree/wiki/Open-Tree-Taxonomy for details\n\nwebapp/controllers\n: python code executed by web2py when a URL is successfully mapped to a controller.\n\nwebapp/modules\n: python code that can be imported and used by the webpp, but is not exposed as controller\n\nwebapp/models\n: code that describes the database structure used by the web app\n\nwebapp/views\n: templates for the page content that is rendered in response to a query. The view is typically specific to a few controllers in the web app\n\nwebapp/static\n: static content to be returned by the web app. Contains css, images and js subdirectories for commonly used items.\n\nwebapp/private\n: the location to be used for storing installation-specific configuration information.\n\nwebapp/cron\n: directory that stores commands to be executed periodically by the web2py framework when the app is running.\n\nwebapp/databases\n: the location of the database files used by web2py.\n\nwebapp/languages\n: web2py code for internationalization\n\nwebapp/cache, webapp/databases, webapp/errors, webapp/sessions, webapp/uploads\n: directories used by web2py to store content associated with user's activities. Content here should not need to be committed to version control.\n\ncurator/*\n: similar subdirectories to those in webapp/* above\n\nAcknowledgements\n----------------\nArgus uses Raphaeljs and jQuery libraries.\n\nArrow icons are from http://raphaeljs.com/icons those icons are licensed under the followin MIT license:\n\nCopyright © 2008 Dmitry Baranovskiy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nThe software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["bioinformatics","ecology","biology"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/302998","html_url":"https://ost.ecosyste.ms/projects/302998"}