Created
February 28, 2022 19:21
-
-
Save tthyer/37521ff3823e747ae6ced6d860ab487e to your computer and use it in GitHub Desktop.
Find which software licenses are used by Sage Bionetworks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "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