diff --git a/apps/docs/docs/tutorials/dependencies.mdx b/apps/docs/docs/tutorials/dependencies.mdx index b5dd954b5..938aa06a2 100644 --- a/apps/docs/docs/tutorials/dependencies.mdx +++ b/apps/docs/docs/tutorials/dependencies.mdx @@ -1,5 +1,5 @@ --- -title: Map the Software Supply Chain +title: Map Dependencies sidebar_position: 3 --- @@ -138,6 +138,57 @@ df = client.query(query).to_dataframe() +### Package Usage Metrics + +The following query uses package ownership data to calculate the number of projects that depend on a given package maintainer: + + + + +```sql +select + package_owners.package_owner_artifact_namespace as maintainter, + sboms.to_package_artifact_source as package_source, + sboms.to_package_artifact_name as package_name, + count(distinct sboms.from_artifact_id) as count_dependent_repos, + count(distinct sboms.from_project_id) as count_dependent_projects +from `oso_production.sboms_v0` sboms +join `oso_production.package_owners_v0` package_owners + on + sboms.to_package_artifact_name = package_owners.package_artifact_name + and sboms.to_package_artifact_source = package_owners.package_artifact_source +where + package_owners.package_owner_artifact_namespace = 'wevm' +group by 1,2,3 +``` + + + + +```python +query = """ + select + package_owners.package_owner_artifact_namespace as maintainter, + sboms.to_package_artifact_source as package_source, + sboms.to_package_artifact_name as package_name, + count(distinct sboms.from_artifact_id) as count_dependent_repos, + count(distinct sboms.from_project_id) as count_dependent_projects + from `oso_production.sboms_v0` sboms + join `oso_production.package_owners_v0` package_owners + on + sboms.to_package_artifact_name = package_owners.package_artifact_name + and sboms.to_package_artifact_source = package_owners.package_artifact_source + where + package_owners.package_owner_artifact_namespace = 'wevm' + group by 1,2,3 +""" +df = client.query(query).to_dataframe() +``` + + + + + ### Build a Deep Funding Graph This example demonstrates how to create a dependency graph for a group of related repositories, such as the one used by [Deep Funding](https://deepfunding.org). The analysis maps relationships between key Ethereum repositories and their package dependencies: