GithubDataScraper/Untitled.ipynb
2020-09-10 23:52:40 +02:00

310 lines
No EOL
38 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from requests_oauthlib import OAuth2Session\n",
"import os\n",
"import json\n",
"import pandas as pd\n",
"import time\n",
"from datetime import datetime"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"MAXTIME = 365\n",
"RESULT_FOLDER = \"results\"\n",
"CLIENTID = \"hoernschen\"\n",
"TOKEN = \"8f8f5c00e15f7ae7dc6dcbc38b01015c1c1a51d9\"\n",
"FILE = \"decentral_communication_protocols.csv\""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def getGithubOAuthSession():\n",
" token = {\n",
" 'access_token': TOKEN\n",
" }\n",
" return OAuth2Session(CLIENTID, token=token) "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def createCSV(pathToFile, list):\n",
" df = pd.DataFrame(list)\n",
" df.to_csv(pathToFile)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"def getCommits(repoName, oAuthSession):\n",
" commitList = []\n",
" devList = []\n",
" headers = {'Accept': 'application/vnd.github.mercy-preview+json'}\n",
" commitsResponseJson = None\n",
" i = 0\n",
" commitsTooOld = False\n",
" while commitsResponseJson is None or len(commitsResponseJson) > 0:\n",
" commitsResponse = oAuthSession.get('https://api.github.com/repos/' + repoName + '/commits?page=' + str(i), headers=headers)\n",
" if commitsResponse.status_code == 200:\n",
" commitsResponseJson = commitsResponse.json()\n",
" i = i + 1\n",
" for commit in commitsResponseJson:\n",
" if MAXTIME is not None and (datetime.now() - datetime.strptime(commit['commit']['author']['date'], '%Y-%m-%dT%H:%M:%SZ')).days > MAXTIME:\n",
" commitsTooOld = True\n",
" break\n",
" committer = commit['committer']\n",
" if committer is not None and \"login\" in committer.keys() and committer['login'] not in devList:\n",
" devList.append(committer['login'])\n",
" commitList.append(commit)\n",
" if commitsTooOld:\n",
" break\n",
" elif commitsResponse.status_code == 409: # empty repo\n",
" break\n",
" else:\n",
" time.sleep(3600)\n",
" print(\"Error in Http Request (commitsRequest):\", commitsResponse.status_code, commitsResponse.text)\n",
" return commitList, devList"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"def getIssues(repoName, oAuthSession):\n",
" issueList = []\n",
" devList = []\n",
" headers = {'Accept': 'application/vnd.github.mercy-preview+json'}\n",
" issuesResponseJson = None\n",
" i = 0\n",
" issuesTooOld = False\n",
" while issuesResponseJson is None or len(issuesResponseJson) > 0:\n",
" issuesResponse = oAuthSession.get('https://api.github.com/repos/' + repoName + '/issues?state=all&page=' + str(i), headers=headers)\n",
" if issuesResponse.status_code == 200:\n",
" i = i + 1\n",
" issuesResponseJson = issuesResponse.json()\n",
" for issue in issuesResponseJson:\n",
" if MAXTIME is not None and (datetime.now() - datetime.strptime(issue['created_at'], '%Y-%m-%dT%H:%M:%SZ')).days > MAXTIME:\n",
" issuesTooOld = True\n",
" break\n",
" assignee = issue['assignee']\n",
" assignees = issue['assignees']\n",
" if assignee is not None and 'login' in assignee.keys() and assignee['login'] not in devList:\n",
" devList.append(assignee['login'])\n",
" for assignee in assignees:\n",
" if 'login' in assignee.keys() and assignee['login'] not in devList:\n",
" devList.append(assignee['login'])\n",
" issueList.append(issue)\n",
" if issuesTooOld:\n",
" break\n",
" elif issuesResponse.status_code == 409: # empty repo\n",
" break\n",
" else:\n",
" print(\"Error in Http Request (issuesRequest):\", issuesResponse.status_code, issuesResponse.text)\n",
" time.sleep(3600)\n",
" return issueList, devList"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"def getRepoFacts(repoName, oAuthSession):\n",
" devList = []\n",
" issueList = []\n",
" commitList = []\n",
" issueList, devListIssues = getIssues(repoName, oAuthSession)\n",
" commitList, devListCommits = getCommits(repoName, oAuthSession)\n",
" devList.append(devListIssues)\n",
" for dev in devListCommits:\n",
" if dev not in devList:\n",
" devList.append(dev)\n",
" return issueList, commitList, devList"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"def getTopicFacts(topicName):\n",
" amountRepos = 0\n",
" amountStars = 0\n",
" amountIssues = 0\n",
" amountCommits = 0\n",
" amountDeveloper = 0\n",
"\n",
" repoNameList = []\n",
" repoList = []\n",
" issueList = []\n",
" commitList = []\n",
" devList = []\n",
"\n",
" oAuthSession = getGithubOAuthSession()\n",
" headers = {'Accept': 'application/vnd.github.mercy-preview+json'}\n",
" topicResponse = oAuthSession.get('https://api.github.com/search/repositories?q=topic:' + topicName, headers=headers)\n",
"\n",
" if topicResponse.status_code == 200:\n",
" topicResponseJson = topicResponse.json()\n",
" i = 0\n",
" while \"items\" in topicResponseJson.keys() and len(topicResponseJson['items']) > 0:\n",
" i = i + 1\n",
" for repo in topicResponseJson['items']:\n",
" print(repo['full_name'])\n",
" if repo['full_name'] not in repoNameList:\n",
" issueListRepo, commitListRepo, devListRepo = getRepoFacts(repo['full_name'], oAuthSession)\n",
" for issue in issueListRepo:\n",
" issueList.append(issue)\n",
" for commit in commitListRepo:\n",
" commitList.append(commit)\n",
" for dev in devListRepo:\n",
" if dev not in devList:\n",
" devList.append(dev)\n",
" amountStars = amountStars + int(repo['stargazers_count'])\n",
" repoNameList.append(repo['full_name'])\n",
" repoList.append(repo)\n",
" topicResponseJson = oAuthSession.get('https://api.github.com/search/repositories?q=topic:' + topicName + '&page=' + str(i), headers=headers).json()\n",
" \n",
" createCSV(topicName + \"_repos.csv\", repoList)\n",
" createCSV(topicName + \"_issues.csv\", issueList)\n",
" createCSV(topicName + \"_commits.csv\", commitList)\n",
"\n",
" amountRepos = len(repoList)\n",
" amountDevs = len(devList)\n",
" amountIssues = len(issueList)\n",
" amountCommits = len(commitList)\n",
" print(\"Amount Repos:\", str(amountRepos))\n",
" print(\"Amount Stars:\", str(amountStars))\n",
" print(\"Amount Issues:\", str(amountIssues))\n",
" print(\"Amount Commits:\", str(amountCommits))\n",
" print(\"Amount Devs:\", str(amountDevs))\n",
" else:\n",
" print(\"Error in Http Request (topicRequest):\", topicResponse.status_code, topicResponse.text)\n",
" return amountRepos, amountStars, amountIssues, amountCommits, amountDevs"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"tags": [
"outputPrepend"
]
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": "TheKinrar/mastodon-instances\nArkanosis/microstatus\njaywink/federation\nGargron/cobalt\ntootsuite/mastodon\nChocobozzz/PeerTube\nLemmyNet/lemmy\npixelfed/pixelfed\nwriteas/writefreely\nPlume-org/Plume\nsyuilo/misskey\nforgefed/forgefed\ntsileo/microblog.pub\nrustodon/rustodon\nAardwolf-Social/aardwolf\ngo-fed/activity\nBasixKOR/awesome-activitypub\ndariusk/rss-to-activitypub\nmouse-reeve/bookwyrm\njaywink/socialhome\nnextcloud/social\nandstatus/andstatus\nanforaProject/anfora\nsyuilo/dolphin\nreel2bits/reel2bits\nframasoft/mobilizon\npfefferle/wordpress-activitypub\njoyeusenoelle/GuideToMastodon\nmariusor/go-littr\nwriteas/Read.as\nTheKinrar/mastodon-instances\nArkanosis/microstatus\njaywink/federation\nGargron/cobalt\ndsblank/activitypub\nthefederationinfo/the-federation.info\nlandrok/activitypub\npubcast/pubcast\nrowanlupton/pylodon\ntsileo/little-boxes\ntOkeshu/activitypub-example\nautogestion/pubgate\npeerpx/peerpx\nlambdadog/fontina\nshleeable/Big-List-of-ActivityPub\naaronpk/Nautilus\ngrishka/Smithereen\nyukimochi/Activity-Relay\ngo-fed/apcore\np2panda/beep-beep\nbrooksn/serverless-activitypub\nactivitypubguide/guide\nToromino/kibou\ngo-ap/activitypub\nemilebosch/awesome-fediverse\nargrath/activitypub\nYuigaWada/MisskeyKit-for-iOS\nwmurphyrd/activitypub-express\nDeadSuperHero/postmodern\ngo-ap/fedbox\ngazpachoteam/hanatachi\nwriteas/pherephone\nbotwiki/glitch-fediverse-bot\nlesion/gancio\njfmcbrayer/cl-activitypub\nweathermen/soundstorm\neniehack/Learn-ActivityPub\npfefferle/wordpress-nodeinfo\nwakin-/simple_ap\nautogestion/pubgate-telegram\nXeltica/actorscafe\nScarly-Crow/lamia\npauljohncleary/activitypub.js\npfefferle/wordpress-webfinger\npixelfedLabs/delta\nDavidLibeau/FediBlog\ngo-fed/presentations\nYuzuRyo61/CrossPlan\ngamebin/decen_social\nrzr/mastodon-lite\nTGNThump/Pantheon\nswentel/activitypub\nmoodle/moodlenet\nmerveilles/merveilles-town\nredaktor/ActivityPubSchema\neniehack/asteroidgazer\nMatejLach/astreams\nfedimos/server\nevan-duncan/activitypub-php\nreel2bits/reel2bits.org\nexlibris-fed/exlibris\norigamium/Tempest-Client\ncomm-network/mastodon\nbrooksn/activitypub-web\nFlaque/metapod\nlukehoersten/activitypub\nautogestion/pubgate-rssbot\ntoddsundsted/ktistec\nyukimochi/mastodon_pub-relay\nmediaformat/fediembedi\nwriteas/activityserve\nufosc/TheIsolator\ncommune-project/rbq\nfoozmeat/tusk.rocks\nfediverse/wordpress\nreconnexion/colibris.social\nautogestion/vkfed\nh3poteto/pleroma.io\njapaslu/History-TwitChain\nrzr/fediverse-action\nreconnexion/activitypub-mailer\nassemblee-virtuelle/ActivityPubBundle\nakihikodaki/activity-intent\nmikekasprzak/hacktivity-pub\nreconnexion/admin.colibris.social\nmarrus-sh/so-what\nchinianwang/mawa\nd0p1s4m4/Minna\npk400/bonfire-server\npH7Software/pH7Decentralized\nWellFactored/clovis\nfujitastyle/clione-bottlepy\nchrisjdavis/habariActivityPub\ncommonspub/CommonsPub-Client-React\nHasHooves/mastodon-backup\nfedimos/ios\ntimmot/activity-pub-tutorial\nXeltica/groundpolis-lite\nacid-chicken/dogpark\nfiatjaf/litepub\nautogestion/pubgate-steemit\n153/twtoo\ninnereq/pleroma-soapbox-builder\nSamR1/activity-pub-test\nwalkaway-project/sora\nargrath/kroeg-vagrant\n153/fedichan\nsentriz/honk-docker\nbashrc2/epicyon\nGopiandcode/simple-pleroma-comments\nlqdev/APFS\nAmount Repos: 137\nAmount Stars: 47118\nAmount Issues: 10755\nAmount Commits: 25837\nAmount Devs: 204\nProtocol: matrix-org\nmatrix-org/synapse\nmatrix-org/dendrite\nspantaleev/matrix-docker-ansible-deploy\ntulir/mautrix-telegram\ntulir/gomuks\ntulir/mautrix-whatsapp\nSwellRT/swellrt\nmatrix-construct/construct\nmaubot/maubot\nmaelstrom-rs/maelstrom\nAwesome-Technologies/synapse-admin\ntulir/mautrix-facebook\nmatrix-org/matrix-rust-sdk\ntulir/mautrix-go\npoljar/weechat-matrix-rs\nZerataX/matrix-registration\naaronraimist/element-themes\nfinogeeks/Ligase\ngary-kim/riotchat\ndevture/matrix-corporal\nsignaller-matrix/signaller\nKB1RD/matrix-notepad\n4nd3r/tiny-matrix-bot\nmatrix-org/rust-synapse-compress-state\ndaydream-mx/Daydream\ndylhack/matrix-appservice-minecraft\nnilsding/AgentSmith\ntulir/mautrix-python\ntulir/mautrix-hangouts\ndevture/matrix-synapse-shared-secret-auth\nmatrix-org/synapse\nmatrix-org/dendrite\nspantaleev/matrix-docker-ansible-deploy\ntulir/mautrix-telegram\ntulir/gomuks\ntulir/mautrix-whatsapp\nSwellRT/swellrt\nmatrix-construct/construct\nmaubot/maubot\nmaelstrom-rs/maelstrom\nAwesome-Technologies/synapse-admin\ntulir/mautrix-facebook\nmatrix-org/matrix-rust-sdk\ntulir/mautrix-go\npoljar/weechat-matrix-rs\nZerataX/matrix-registration\naaronraimist/element-themes\nfinogeeks/Ligase\ndevture/matrix-corporal\ngary-kim/riotchat\nsignaller-matrix/signaller\nKB1RD/matrix-notepad\n4nd3r/tiny-matrix-bot\nmatrix-org/rust-synapse-compress-state\ndaydream-mx/Daydream\ndylhack/matrix-appservice-minecraft\ntulir/mautrix-python\nnilsding/AgentSmith\ntulir/mautrix-hangouts\ndevture/matrix-synapse-shared-secret-auth\nrrerrNet/Minetrix\ntulir/mautrixfs\nbettiah/transform\nmininmobile/manex\nMTRNord/auto-invite-matrix-bot\ntulir/mautrix-manager\nhoohoot/synapse-keycloak-adapter\nUdelaRInterior/ansible-role-matrix-synapse\ntulir/mautrix-appservice-go\nartyom-poptsov/matrix-php\ncyphar/matrix-utils\nspectral-im/spectral\nandrewshadura/kanboard-plugin-matrix\ndylhack/matrix-plugin\nDominaezzz/matrix-kt\neikendev/pushbits\ntulir/mautrix-twilio\npinpox/matrix-bot\nblakehawkins/crate_glitch\ntulir/remuks\nsaber-nyan/vk2matrix-bot\nmtorials/dial-phone\nsrados/pcb\nvarsq/tgvmax-auto-confirm\nserra-allgood/matrix-fly-swatter\nvberger/matrix-tabsbot\nsputnik-messenger/issues\nzhaytee/matrix-rpc-js\nHalf-Shot/matrix-reactbot\npinpox/gitea-matrix-bot\ntulir/mautrix-cookiemonster\nR1tschY/harbour-determinant\ncromo/mx-timer-bot\nendes123321/haxe-matrix-im\nderEisele/tuple-weather-example\nmtorials/dialbot\naaronraimist/matrix-user-documentation\ntulir/mautrix-twitter\nsaber-nyan/smeshnyavka-matrix-bot\nxy795/hubot-matrix-enhanced\nscriptschmied/lysander-js\nsinnwerkstatt/knopfler\nSharparam/cshrix-bot\nKevinScruff/matrix-contact-form\nerdii/synapse-docker\nHalf-Shot/matrix-cache\nd-ban/cliper\ndekonnection/synapse-room-logger\nbazsup/matrix-ui-client\nMaT1g3R/arrow\nrealaravinth/ids-matrix\ncyd3r/matrix-logger\nRichardNysater/chaanbot\nemersonmde/zion\nCollabVM-Unofficial/riotbot-example\nshnarazk/SAT-bench\nmatrix-org/rust-matrix-state-map\nfabiooreff/MatrixSynapse-HomeserverInstaller\nHacklabJKL/matrix-irc-nick\nphilipaconrad/matrix-archiver-sqlite\nbazsup/matrix-js-poc\nLeLuxNet/Minetrix\ncromo/mx-tldr-bot\nerdnaxeli/matrix-architect\nAmount Repos: 94\nAmount Stars: 11161\nAmount Issues: 5394\nAmount Commits: 10824\nAmount Devs: 167\nProtocol: napster\nNapster/napster.js\nhzxie/Napster\nandrewnaguib/napster-filesharing-system\nkhaytsus/opennap-ng\nfilippofilip95/napster-api\nzoharyAnd/musicables-angularJS\nmauricio-chavez/napster-ingenieria-software\nNapster/napster.js\nhzxie/Napster\nandrewnaguib/napster-filesharing-system\nkhaytsus/opennap-ng\nfilippofilip95/napster-api\nzoharyAnd/musicables-angularJS\nmauricio-chavez/napster-ingenieria-software\nAmount Repos: 7\nAmount Stars: 50\nAmount Issues: 22\nAmount Commits: 49\nAmount Devs: 6\nProtocol: gnutella\nivan386/Shareaza\nGetEnvy/Envy\nFIAV1/R00tella\nshivnshu/P2P-chat\nghmeier/gotella\ndeepstupid/phex\nmatteobogo/yet-aaanother-gnutella-simulator\nthamizhv/tgnutella\nbenthecarman/Basic-Gnutella\nivan386/Shareaza\nGetEnvy/Envy\nFIAV1/R00tella\nshivnshu/P2P-chat\nghmeier/gotella\ndeepstupid/phex\nmatteobogo/yet-aaanother-gnutella-simulator\nthamizhv/tgnutella\nbenthecarman/Basic-Gnutella\nAmount Repos: 9\nAmount Stars: 108\nAmount Issues: 7\nAmount Commits: 32\nAmount Devs: 6\nProtocol: gnutella2\nivan386/Shareaza\nGetEnvy/Envy\nivan386/MegaMagDrive\ndeepstupid/phex\nivan386/Shareaza\nGetEnvy/Envy\nivan386/MegaMagDrive\ndeepstupid/phex\nAmount Repos: 4\nAmount Stars: 94\nAmount Issues: 7\nAmount Commits: 10\nAmount Devs: 3\nProtocol: freenet\nBombe/Sone\nObscurix/Obscurix\nfreenet-mobile/app\nBombe/jSite\nfreenet/mactray\nbrightflash64/MOFO-Linux\nBombe/jFCPlib\nBombe/fresta\nBombe/fcp\nzahranmd/freenet-regex\nhubtigwolf/refactored-winnaar\nBombe/Sone\nObscurix/Obscurix\nfreenet-mobile/app\nBombe/jSite\nfreenet/mactray\nbrightflash64/MOFO-Linux\nBombe/jFCPlib\nBombe/fresta\nBombe/fcp\nzahranmd/freenet-regex\nhubtigwolf/refactored-winnaar\nAmount Repos: 11\nAmount Stars: 129\nAmount Issues: 74\nAmount Commits: 875\nAmount Devs: 6\nProtocol: bittorrent\nagalwood/Motrix\nwebtorrent/webtorrent\naria2/aria2\nHelloZeroNet/ZeroNet\nqbittorrent/qBittorrent\nwebtorrent/webtorrent-desktop\npopcorn-official/popcorn-desktop\nlbryio/lbry-sdk\nRadarr/Radarr\nXIU2/TrackersListCollection\nanacrolix/torrent\nuber/kraken\nTribler/tribler\njohang/btfs\narvidn/libtorrent\nnyaadevs/nyaa\nwebtorrent/instant.io\nsergiotapia/magnetissimo\nboramalper/magnetico\ntransmission-remote-gui/transgui\natomashpolskiy/bt\nCloudbox/Cloudbox\nHDInnovations/UNIT3D-Community-Edition\npicotorrent/picotorrent\nasapach/peerflix-server\nkeenwon/antcolony\nwebtorrent/bittorrent-tracker\nchihaya/chihaya\nDEgITx/rats-search\nwebtorrent/bittorrent-dht\nagalwood/Motrix\nwebtorrent/webtorrent\naria2/aria2\nHelloZeroNet/ZeroNet\nqbittorrent/qBittorrent\nwebtorrent/webtorrent-desktop\npopcorn-official/popcorn-desktop\nlbryio/lbry-sdk\nRadarr/Radarr\nXIU2/TrackersListCollection\nanacrolix/torrent\nuber/kraken\nTribler/tribler\njohang/btfs\narvidn/libtorrent\nnyaadevs/nyaa\nwebtorrent/instant.io\nsergiotapia/magnetissimo\nboramalper/magnetico\ntransmission-remote-gui/transgui\natomashpolskiy/bt\nCloudbox/Cloudbox\nHDInnovations/UNIT3D-Community-Edition\npicotorrent/picotorrent\nasapach/peerflix-server\nkeenwon/antcolony\nwebtorrent/bittorrent-tracker\nchihaya/chihaya\nDEgITx/rats-search\nwebtorrent/bittorrent-dht\nveggiedefender/torrent-client\nalanmcgovern/monotorrent\nP3TERX/aria2.sh\nNovage/p2p-media-loader\nwebtorrent/webtorrent-cli\nBiglySoftware/BiglyBT\ncenkalti/rain\nP3TERX/Docker-Aria2-Pro\nxuset/planktos\nsonnyp/aria2.js\ntaobataoma/meanTorrent\nwebtorrent/webtorrent-hybrid\nbtpd/btpd\nGerryFerdinandus/bittorrent-tracker-editor\nrndusr/stig\nwebtorrent/parse-torrent\nalanyang/dhtspider\nautodl-community/autodl-irssi\nCorralPeltzer/newTrackon\ndanoctavian/bluntly\nanatasluo/ant\nwebtorrent/bittorrent-protocol\nwebtorrent/create-torrent\nseanoflynn/research-bittorrent\nBrightStarry/zx-bt\nDavidMoore/ipfilter\nfastcast/fastcast\nclostra/newnode\ncbdevnet/ipmagnet\njohang/vlc-bittorrent\nwebtorrent/magnet-uri\nanacrolix/dht\nnicoSWD/put.io-adder\nwebtorrent/torrent-discovery\ntorrentpier/torrentpier\nJohnDoee/autotorrent\nEmpornium/Luminance\nbizzehdee/System.Net.Torrent\nanacrolix/utp\nkz26/dottorrent-gui\nbitletorg/bitlet\nBiglySoftware/BiglyBT-Android\nmajestrate/XD\nautodl-community/autodl-trackers\nanacrolix/confluence\nthemasch/node-bencode\ngallexis/pytorrent\nNovage/wt-tracker\nShenHongFei/utorrent-block-xunlei\nwebtorrent/ut_metadata\nthe8472/mldht\nborzunov/bit-torrent\ncronokirby/haze\nalyakhtar/Katastrophe\nsdjdd/whitewash-torrent\nautodl-community/autodl-rutorrent\nhaecker-felix/Fragments\ncit/MlDHT\nsemk/Pytt\nivan386/Shareaza\nSamuelFisher/torrentcore\nMika-/torrent-control\neduard-permyakov/BitFiend\nanacrolix/go-libutp\ndalaizhao/PhpSpiderMagnetBitTorrent\nwebtorrent/parse-torrent-file\nddevault/receptor\nfolz/bento\nnodiscc/xsrv\nmasterwok/simple-torrent-android\nbttown/torrent-spider\nDiegoRBaquero/uWebTorrentTracker\nacgist/snail\nrumanzo/bt2qbt\nsergiotapia/torrentinim\nwebtorrent/ut_pex\nkz26/dottorrent\nwebtorrent/bittorrent-peerid\nYunoHost-Apps/peertube_ynh\nSimplyAhmazing/BatTorrent\nJohnnei/JavaTorrent\nP3TERX/aria2-builder\nPapierkorb/torrent\naldenml/libtorrent4j\nzhujun1980/dhtrobot\nguidouil/TorrentsDuck\nporla/porla\nskangas/mentor\nhanxi/aria2-bt-tracker\nWindPT/WindPT\nsamuelmaddock/swarm-peer-server\npldubouilh/webtorrent-webui\nbhutanio/videostream\nelektito/pybtracker\nJayBrown/Checksums\nCuteTorrent/CuteTorrent\nfelix/dhtsearch\nbashkirtsevich-llc/mad-torrent\nOpenWebTorrent/openwebtorrent-tracker\nFredStober/tinyBT\nwhtsky/bencoder.pyx\nbaddymaster/torrent-hound\nproject-mk-ultra/torrent-tracker-scraper\nGetEnvy/Envy\nbongochong/CombinedPrivacyBlockLists\ntuarua/BitTorrentANE\naliakseis/LIII\nDiffylab/Diffy\nkrisives/voltage\nwebtorrent/torrent-piece\ngreatest-ape/aquatic\nXIU2/PeerflixServerZH\nBubuAnabelas/CheckWebPeer\nJohnDoee/magnet2torrent\nspiritualized/smarthash\nmmgoodnow/cross-seed\nKarasiq/torrentstream\nxieh1995/bthello\nbongochong/CWP-Utilities\nkz26/dottorrent-cli\nxieh1995/bthello-app\nStat1cV01D/bt_trackers_replacer\nserenader2014/rarbg-api\njustinnoah/rtracker\nsimionrobert/BitInsight\nivan386/lua-dht\nWindPT/WindTurbine\narokettu/bencode\nasmoker/btrackers-postman\nfuchsi/ripalt\neyedeekay/I2P-in-Private-Browsing-Mode-Firefox\ntorrentpier/ocelot\ndevCU/IPS-4.4-BitTracker\ntoby/det\nWhinarn/TorrentSwifter\nsprt/ratioboss\nMovieCast/desktop\noakbrad/torrentcleaner.py\ndevCU/IPS-4.3-BitTracker\nakustar/mimic\nbartima3us/erl-bittorrent\ngmosley/boontorrent\nbashkirtsevich-llc/grapefruit-crawler\n0xcaff/dht-crawler\nencrypt0r/BitSharp\nnimmis/docker-resilio-sync\nalxhotel/webtorrent-checker\nduyanghao/Eagle\npiperun/torrent-clipper\natmoner/Bittystream\nBenjaminLawson/PeerTunes\netix/goscrape\nwinneon/docker-bittorrent\nvuze/vuze-remote-for-android\nRazielXT/mtTorrent\natmoner/Bittytorrent\nutay/bittorrent.cr\nfijiwebdesign/bitcast\nlkslts64/charo-torrent\nSeia-Soto/ohys-fanmade\nJodusNodus/teevee\nAnimMouse/atrack\nvitor-alves/Torrentine\nthomasleveil/magneturi\nterorie/find-torrent-data\nSeaHOH/ban-peers\nfbdtemme/bencode\nreklatsmasters/btparse\nwebtorrent/string2compact\nFIAV1/BugTorrent\nvomnes/hypertube\nsergiotapia/magnex\nthebigmunch/thorod\nspritzle/spritzle\nZeroNetPlus/ZeroNetPlus\nacatton/flatbencode\nnmrshll/kademlia-dht-rs\nGlavin001/resin-deluge\ncfcs/omktorrent\nHaehnchen/bittorrent-tracker\nrefreex/refreex-desktop\nTheFlow95/node-qbittorrent-api-v2\nlnsp/ftp2p\nOPSnet/bencode-torrent\ncit/krpc_protocol\namercier/download-station-kickass-search-module\natomashpolskiy/bt-cli-demo\nkaitokid222/pdonvtracker\ndeekerno/tyto\nLiMinggang/bitswash\nqqdaiyu55/YanQi\nbashkirtsevich-llc/lib-bt_utp\ntorrentpier/xbt\ncsssuf/rt\nGlavin001/resin-utorrent\nFoRTu/OpenTracker-Munin\nbartima3us/gen_bittorrent\nwoojiahao/torrent.go\nmaravento/lockstring\ntomerwald/razor\ncm/dhtc\njaymmodi/BitTorrent\nPowersource/tempname-ipfs-vid\nRpsl/go-soap4me\nliu-kan/docker-transmission-nginx\nKOLANICH/BTDigg_Chart_Adder\narokettu/torrent-file\nmajestrate/torrent.ano\nonedr0p/sonarr-episode-prune\nthiagopnts/raft\nthiagopnts/raft\npriyendumori/Mini-Bit-torrent\nprog-it/rtorrent-rutorrent-setup-guide\nbashkirtsevich-llc/py3bencode\noczkers/pdeo\nvi/tribler-rs\nfruit-testbed/p2p-update\nEssenceOfChaos/extorrent\ncwyang/bencode\ntheimpossibleastronaut/docker-i2p-xd\nmatei-oltean/go-torrent\nbonaert/torrent\nMelinysh/fastify\nphlalx/sawadee\np-project/p-seeder-engine\nAnkurRyder/BitTorrent-\npkoenig10/transmission-app\nR3DDY97/BitTorrent-client\nwilkmaia/bencoding\nyoungkaneda/ben\ngit-sinaptika/libtorrent\nratopi/bencoding\nasig/torrenttools\ntorrentpier/builder\nFullaxx/biglybt\nzpqsunny/dht\nmanoelcampos/SMA-Torrent\ndzharvis/krot\nAnimMouse/ap-gae-tracker\nsupersaeyan/bittorpy\nxgfone/bt\ndwdht/bittorrent\nPratik32/TorrentClient\nJoshRodd/bencode_py3\nycwoo/DHTSpider\nMoscarda/BitStorm\nfr33b1rd1m/freebird.news\nivan386/sparse_light\nanuranBarman/Yify-Torrent-Directory\nserverfarmer/sf-detect-suspicious\nm-ajiao/Dr.-Tanaka-Says\nKusumoto/seedbox-deamon\nr4victor/torrent_client\nwilldady/terraform-transmission-aws\nFullaxx/rtorrent\npieterkockx/bittorrent\nbartima3us/erline-dht\ndeluge-nursery/mediainfo-plugin\nsayakbiswas/p2p-file-sharing\nminosiants/biton-dht\nmhadam/clutchless\nrushitjasani/Mini-BitTorrent\nzhangbohun/BitTorrentNetworkSpider\njansanz/MiniTorrent\navishkarabhishek786/webtor\ndplavcic/gtorrent\nficoos/torrentstream\njosuecau/transmission-docker\neyedeekay/samtracker\nmlsteele/bittles\nCovertness/node-torrent-downloader\nalexdevero/magnet-link-generator\n1970633640/Bit-Torrent-Record-Spider\nsyang-ng/peer\nlouije/Magneto\nFoRTu/OpenTracker-InfluxDB\nkengwang/BT-Tracker-Seeker\nPurfview/IMDb-Scout-Mod\nxinhangliu/dht-crawler\nminosiants/benc\ndevCU/IPS-4.5-BitTracker\ngoshaQ/CS3103-Project\nGaalexxC/LaraBit\nldotlopez/arroyo\nonedr0p/qbittorrent-prune\nfalzm/tdump\nakshay1713/gotorrent\nwqsa/bget\najm113/antTracker\nthibaultmeyer/sparrow\nzuqq/surge\nlucis-fluxum/bittorrent-rs\nVatsalSoni301/BitTorrent\nm19t12/bendercoder\narthurmteodoro/bittorrent\nstavalfi/TorrentX\naltermarkive/bittorrent-over-vpn\nottid/ditto\nnytopop/silver\nBrettDixonBCIT/Blacklister\nCraigglesO/ut-extensions\nCraigglesO/torrent-parser\nCraigglesO/torrent-piece-handler\nthe8472/cryptorrent-fuse\nBunsenLabs/opentracker-docker\nmikaeldui/TrackerListBot\naachick/bittorrent\nFullaxx/rtorrent-openvpn\nearankyk/itty-bitty\ndhawal777/BitTorrent\nIvanSolomakhin/magnetizer\nbillyninja/parse_torrent\nCraigglesO/bittorrent-wire\nwoodenchalet/BitTorrentParser\ndarshank15/Mini-BitTorrent\nbodgit/torrent\nnosmo/docker-deluge\n1234max/Trackers\nromanz/pybt\najinkya2709/Peer2Peer\ncm/bitblam\ndidoatanasov/tracker\nandredcoliveira/scom-project\nHR/spacedrop\nhashsite/hashsite\nmosaic101/dht-spider\ntalhabalaj/Bitorrent-Remote\nvoidloop/tntcrawler\nnmrshll/potatobox\nzzyandzzy/super-bt\ndhanu10896/dbit\nVFK/Bitfield\njholtmann/BitTorrent-Forensics\nmosaic101/dht-spider\ntalhabalaj/Bitorrent-Remote\nvoidloop/tntcrawler\nnmrshll/potatobox\nzzyandzzy/super-bt\nIGI-111/vik\nf380cedric/BITEtorrent\nmosaic101/iso\nlewisrobbins/Bencode\nIvanSolomakhin/bencodec\nbelamenso/ntorrent\ngantleman/bcode\nhojason117/P2P_file_sharing\nonai/torrent-graph\novercat/orianna\nbashkirtsevich/Py-ut_metadata\nagentbillwilson/btname\nQuoorex/docker-bittorrent-tracker\nTensorTom/nibtorrent\nSixArm/sixarm_bittorrent_sync\npatokeni/BTWasher\nmike-seagull/vpn-twitcher\nabhishek0508/peer-to-peer-file-sharing-system\nqzmfranklin/torrent\nlisphacker/fileswarm2\nrussmack/bencoderus\nbluk/bt_bencode\nsaitiku/BtNasPian-Transmission-bt\nCeRiAl/docker-transmission\nvitor-alves/Torrentine-webUI\npytha12/BitTorrentParser\nzoueature/powerful-download\nrlavolee/uncle-b\nhackervaillant/maketorrent\nhubtigwolf/refactored-winnaar\nLeopere/dht-bootstrap-compose\nColumPaget/transbt_mgr.lua\nstsh89/rbit\navistaz/avalanche\navishkarabhishek786/torrent\ngabboraron/orsi-osszefoglalo\nCraigglesO/hose\nKanna19/BitTorrent-like-File-Sharing-Protocol\nFeqzz/qTracker-Client\nhexlab/awesome-peer-to-peer\nsaiajaym/gorrent\ntoby/keyrun\nsirodoht/herb\nAmount Repos: 405\nAmount Stars: 176009\nAmount Issues: 12328\nAmount Commits: 19551\nAmount Devs: 320\nProtocol: ed2k\nivan386/Shareaza\na-pavlov/jed2k\nmagunetto/moviemagnetbot\nyouusername/ed2kTools\nGetEnvy/Envy\njtojnar/ed2k\njimmymasaru/ed2k-calc\nemulefanscom/ipfilter\ntokkenno/sleepy\nloo2k/WeiyunHelper\nSunnyLi/ed2k.js\nemulefanscom/ed2k-link-selector\nemulefanscom/misc\nemulefanscom/ip2c\nvaleth/digest-ed2k-hash.rb\nivan386/sparser.js\nivan386/Shareaza\na-pavlov/jed2k\nmagunetto/moviemagnetbot\nyouusername/ed2kTools\nGetEnvy/Envy\njtojnar/ed2k\njimmymasaru/ed2k-calc\nemulefanscom/ipfilter\ntokkenno/sleepy\nloo2k/WeiyunHelper\nSunnyLi/ed2k.js\nemulefanscom/ed2k-link-selector\nemulefanscom/misc\nemulefanscom/ip2c\nvaleth/digest-ed2k-hash.rb\nivan386/sparser.js\nAmount Repos: 16\nAmount Stars: 242\nAmount Issues: 27\nAmount Commits: 40\nAmount Devs: 7\nProtocol: irc\nthelounge/thelounge\ntwisted/twisted\njitsi/jitsi\n42wim/matterbridge\nhexchat/hexchat\nirssi/irssi\nweechat/weechat\nsjdy521/Mojo-Webqq\nznc/znc\nsjdy521/Mojo-Weixin\noragono/oragono\nsopel-irc/sopel\nglowing-bear/glowing-bear\ninspircd/inspircd\nNordaaker/convos\nircv3/ircv3-specifications\nkhlieng/dispatch\nquassel/quassel\njreese/znc-push\ndavisonio/awesome-irc\nProgVal/Limnoria\nbitlbee/bitlbee\nWhonix/Whonix\nkiwiirc/kiwiirc\naatxe/irc\nsockethub/sockethub\nmiranda-ng/miranda-ng\npocmo/Yaaic\njrosdahl/miniircd\nronilaukkarinen/weed\nthelounge/thelounge\ntwisted/twisted\njitsi/jitsi\n42wim/matterbridge\nhexchat/hexchat\nirssi/irssi\nweechat/weechat\nsjdy521/Mojo-Webqq\nznc/znc\nsjdy521/Mojo-Weixin\noragono/oragono\nsopel-irc/sopel\nglowing-bear/glowing-bear\ninspircd/inspircd\nNordaaker/convos\nircv3/ircv3-specifications\nkhlieng/dispatch\nquassel/quassel\njreese/znc-push\ndavisonio/awesome-irc\nProgVal/Limnoria\nbitlbee/bitlbee\nWhonix/Whonix\nkiwiirc/kiwiirc\naatxe/irc\nsockethub/sockethub\nmiranda-ng/miranda-ng\npocmo/Yaaic\njrosdahl/miniircd\nronilaukkarinen/weed\nyetibot/yetibot\nautodl-community/autodl-irssi\natheme/atheme\neggheads/eggdrop\nMCMrARM/revolution-irc\nngircd/ngircd\nCloudBotIRC/CloudBot\njaraco/irc\nunrealircd/unrealircd\nirccloud/ios\nanope/anope\nirccloud/android\nmyano/jenni\ndylanaraps/birch\njprjr/multistreamer\n42wim/matterircd\n"
},
{
"output_type": "error",
"ename": "NameError",
"evalue": "name 'issuesResponse' is not defined",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-15-555ea80995f6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 27\u001b[0m })\n\u001b[1;32m 28\u001b[0m \u001b[0mprotocols\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"new.csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0mmain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-15-555ea80995f6>\u001b[0m in \u001b[0;36mmain\u001b[0;34m()\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprotocols\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Protocol:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprotocols\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Github Tag\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0mamountRepos\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mamountStars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mamountIssues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mamountCommits\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mamountDevs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetTopicFacts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprotocols\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Github Tag\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mamountReposList\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamountRepos\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-14-b37d7d3c46ed>\u001b[0m in \u001b[0;36mgetTopicFacts\u001b[0;34m(topicName)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepo\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'full_name'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrepo\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'full_name'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrepoNameList\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 26\u001b[0;31m \u001b[0missueListRepo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcommitListRepo\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevListRepo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetRepoFacts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepo\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'full_name'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moAuthSession\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 27\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0missue\u001b[0m \u001b[0;32min\u001b[0m \u001b[0missueListRepo\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0missueList\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0missue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-13-c762a0387c81>\u001b[0m in \u001b[0;36mgetRepoFacts\u001b[0;34m(repoName, oAuthSession)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mcommitList\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0missueList\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevListIssues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetIssues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepoName\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moAuthSession\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mcommitList\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevListCommits\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetCommits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepoName\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moAuthSession\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mdevList\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdevListIssues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mdev\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdevListCommits\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-11-8e555f5bb044>\u001b[0m in \u001b[0;36mgetCommits\u001b[0;34m(repoName, oAuthSession)\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcommitsTooOld\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 23\u001b[0;31m \u001b[0;32melif\u001b[0m \u001b[0missuesResponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus_code\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m409\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# empty repo\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 24\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'issuesResponse' is not defined"
]
}
],
"source": [
"def main():\n",
" amountReposList = []\n",
" amountStarsList = []\n",
" amountIssuesList = []\n",
" amountCommitsList = []\n",
" amountDevsList = []\n",
" #result_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), RESULT_FOLDER)\n",
" #if not os.path.exists(result_path):\n",
" # os.makedirs(result_path)\n",
" protocols = pd.read_csv(FILE)\n",
" for i in range(len(protocols)):\n",
" print(\"Protocol:\", protocols[\"Github Tag\"][i])\n",
" amountRepos, amountStars, amountIssues, amountCommits, amountDevs = getTopicFacts(protocols[\"Github Tag\"][i])\n",
"\n",
" amountReposList.append(amountRepos)\n",
" amountStarsList.append(amountStars)\n",
" amountIssuesList.append(amountIssues)\n",
" amountCommitsList.append(amountCommits)\n",
" amountDevsList.append(amountDevs)\n",
"\n",
" protocols.assign(**{\n",
" 'amountRepos':amountReposList,\n",
" 'amountStars':amountStarsList,\n",
" 'amountIssues':amountIssuesList,\n",
" 'amountCommits':amountCommitsList,\n",
" 'amountDevs':amountDevsList\n",
" })\n",
" protocols.to_csv(\"new.csv\")\n",
"main()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"if __name__ == \"__main__\":\n",
" print(\"Start\")\n",
" main()\n",
" print(\"End\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.7.5 64-bit",
"language": "python",
"name": "python_defaultSpec_1599206669290"
},
"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.7.5-final"
}
},
"nbformat": 4,
"nbformat_minor": 4
}