Skip to content

Instantly share code, notes, and snippets.

@tthyer
Created February 28, 2022 19:21
Show Gist options
  • Select an option

  • Save tthyer/37521ff3823e747ae6ced6d860ab487e to your computer and use it in GitHub Desktop.

Select an option

Save tthyer/37521ff3823e747ae6ced6d860ab487e to your computer and use it in GitHub Desktop.
Find which software licenses are used by Sage Bionetworks
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "c7bb62ea-71f3-49a0-a7fa-4d72cd7ae237",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import requests"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "70ad89bb-0cc5-4cbd-9456-c71368fb113c",
"metadata": {},
"outputs": [],
"source": [
"github_api_prefix = 'https://api.github.com'\n",
"org = 'Sage-Bionetworks'\n",
"repositories_path = f'{github_api_prefix}/orgs/{org}/repos'"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "db508694-0e88-4289-b5ac-da420d7ed0e6",
"metadata": {},
"outputs": [],
"source": [
"url = f'{repositories_path}?simple=yes&per_page=100&page=1'\n",
"response = requests.get(url)\n",
"\n",
"repositories = response.json()\n",
"while 'next' in response.links.keys():\n",
" response = requests.get(response.links['next']['url'])\n",
" repositories.extend(response.json())"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "eddbaedd-31a6-4776-9ea7-c0134141e381",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"558"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(repositories)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "38040ba8-8c48-4a44-99d5-68a76cdc3b6b",
"metadata": {},
"outputs": [],
"source": [
"repo_licenses = []\n",
"for repo in repositories:\n",
" repo_licenses.append({\n",
" 'name': repo['name'],\n",
" 'license': None if repo['license'] is None else repo['license']['key']\n",
"# 'stars': repo['stargazers_count']\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "142d985a-682c-447c-b7d4-86a2eb6849da",
"metadata": {},
"outputs": [],
"source": [
"licenses = pd.Series([ 'none' if repo['license'] is None else repo['license']['key'] for repo in repositories])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "320f25f4-598e-465a-973e-c084991e4b92",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"none 250\n",
"apache-2.0 161\n",
"mit 72\n",
"other 38\n",
"bsd-3-clause 23\n",
"gpl-3.0 5\n",
"gpl-2.0 4\n",
"cc0-1.0 3\n",
"lgpl-3.0 1\n",
"bsd-2-clause 1\n",
"dtype: int64"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"licenses.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "2a7344a1-3a31-4080-be64-d829a61b8ccc",
"metadata": {},
"outputs": [],
"source": [
"others = [repo for repo in repositories if repo['license'] and repo['license']['key'] == 'other']"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "956bec6b-fb2f-458a-a732-2b4715ff19e1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'id': 24738748,\n",
" 'node_id': 'MDEwOlJlcG9zaXRvcnkyNDczODc0OA==',\n",
" 'name': 'Bridge-iOS-SDK',\n",
" 'full_name': 'Sage-Bionetworks/Bridge-iOS-SDK',\n",
" 'private': False,\n",
" 'owner': {'login': 'Sage-Bionetworks',\n",
" 'id': 1250897,\n",
" 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjEyNTA4OTc=',\n",
" 'avatar_url': 'https://avatars.githubusercontent.com/u/1250897?v=4',\n",
" 'gravatar_id': '',\n",
" 'url': 'https://api.github.com/users/Sage-Bionetworks',\n",
" 'html_url': 'https://github.com/Sage-Bionetworks',\n",
" 'followers_url': 'https://api.github.com/users/Sage-Bionetworks/followers',\n",
" 'following_url': 'https://api.github.com/users/Sage-Bionetworks/following{/other_user}',\n",
" 'gists_url': 'https://api.github.com/users/Sage-Bionetworks/gists{/gist_id}',\n",
" 'starred_url': 'https://api.github.com/users/Sage-Bionetworks/starred{/owner}{/repo}',\n",
" 'subscriptions_url': 'https://api.github.com/users/Sage-Bionetworks/subscriptions',\n",
" 'organizations_url': 'https://api.github.com/users/Sage-Bionetworks/orgs',\n",
" 'repos_url': 'https://api.github.com/users/Sage-Bionetworks/repos',\n",
" 'events_url': 'https://api.github.com/users/Sage-Bionetworks/events{/privacy}',\n",
" 'received_events_url': 'https://api.github.com/users/Sage-Bionetworks/received_events',\n",
" 'type': 'Organization',\n",
" 'site_admin': False},\n",
" 'html_url': 'https://github.com/Sage-Bionetworks/Bridge-iOS-SDK',\n",
" 'description': None,\n",
" 'fork': False,\n",
" 'url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK',\n",
" 'forks_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/forks',\n",
" 'keys_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/keys{/key_id}',\n",
" 'collaborators_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/collaborators{/collaborator}',\n",
" 'teams_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/teams',\n",
" 'hooks_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/hooks',\n",
" 'issue_events_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/issues/events{/number}',\n",
" 'events_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/events',\n",
" 'assignees_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/assignees{/user}',\n",
" 'branches_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/branches{/branch}',\n",
" 'tags_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/tags',\n",
" 'blobs_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/git/blobs{/sha}',\n",
" 'git_tags_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/git/tags{/sha}',\n",
" 'git_refs_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/git/refs{/sha}',\n",
" 'trees_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/git/trees{/sha}',\n",
" 'statuses_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/statuses/{sha}',\n",
" 'languages_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/languages',\n",
" 'stargazers_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/stargazers',\n",
" 'contributors_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/contributors',\n",
" 'subscribers_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/subscribers',\n",
" 'subscription_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/subscription',\n",
" 'commits_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/commits{/sha}',\n",
" 'git_commits_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/git/commits{/sha}',\n",
" 'comments_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/comments{/number}',\n",
" 'issue_comment_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/issues/comments{/number}',\n",
" 'contents_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/contents/{+path}',\n",
" 'compare_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/compare/{base}...{head}',\n",
" 'merges_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/merges',\n",
" 'archive_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/{archive_format}{/ref}',\n",
" 'downloads_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/downloads',\n",
" 'issues_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/issues{/number}',\n",
" 'pulls_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/pulls{/number}',\n",
" 'milestones_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/milestones{/number}',\n",
" 'notifications_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/notifications{?since,all,participating}',\n",
" 'labels_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/labels{/name}',\n",
" 'releases_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/releases{/id}',\n",
" 'deployments_url': 'https://api.github.com/repos/Sage-Bionetworks/Bridge-iOS-SDK/deployments',\n",
" 'created_at': '2014-10-02T22:13:39Z',\n",
" 'updated_at': '2022-02-03T00:03:41Z',\n",
" 'pushed_at': '2021-11-10T23:31:17Z',\n",
" 'git_url': 'git://github.com/Sage-Bionetworks/Bridge-iOS-SDK.git',\n",
" 'ssh_url': '[email protected]:Sage-Bionetworks/Bridge-iOS-SDK.git',\n",
" 'clone_url': 'https://github.com/Sage-Bionetworks/Bridge-iOS-SDK.git',\n",
" 'svn_url': 'https://github.com/Sage-Bionetworks/Bridge-iOS-SDK',\n",
" 'homepage': None,\n",
" 'size': 118304,\n",
" 'stargazers_count': 33,\n",
" 'watchers_count': 33,\n",
" 'language': 'Objective-C',\n",
" 'has_issues': True,\n",
" 'has_projects': True,\n",
" 'has_downloads': True,\n",
" 'has_wiki': True,\n",
" 'has_pages': False,\n",
" 'forks_count': 37,\n",
" 'mirror_url': None,\n",
" 'archived': False,\n",
" 'disabled': False,\n",
" 'open_issues_count': 0,\n",
" 'license': {'key': 'other',\n",
" 'name': 'Other',\n",
" 'spdx_id': 'NOASSERTION',\n",
" 'url': None,\n",
" 'node_id': 'MDc6TGljZW5zZTA='},\n",
" 'allow_forking': True,\n",
" 'is_template': False,\n",
" 'topics': [],\n",
" 'visibility': 'public',\n",
" 'forks': 37,\n",
" 'open_issues': 0,\n",
" 'watchers': 33,\n",
" 'default_branch': 'main',\n",
" 'permissions': {'admin': False,\n",
" 'maintain': False,\n",
" 'push': False,\n",
" 'triage': False,\n",
" 'pull': True}}"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"others[1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4fa546d5-c37a-4a18-a165-55376277f518",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment