From 24fbc73b2d0dab22c9f792f27c9e762cdbc99a14 Mon Sep 17 00:00:00 2001 From: MikeynJerry Date: Mon, 1 Oct 2018 20:34:28 +0000 Subject: [PATCH 1/4] Added initial ipython notebook --- jdunca51.ipynb | 172 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 jdunca51.ipynb diff --git a/jdunca51.ipynb b/jdunca51.ipynb new file mode 100644 index 0000000..e41ea95 --- /dev/null +++ b/jdunca51.ipynb @@ -0,0 +1,172 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True 200\n", + "ffld to gromacs topology https://gitlab.com/YangZhou233/ffld-to-gromacs-topology gitlab 1\n" + ] + } + ], + "source": [ + "import sys\n", + "import re\n", + "import pymongo\n", + "import json\n", + "import time\n", + "import datetime\n", + "import requests\n", + "\n", + "dbname = \"fdac18mp2\" #please use this database\n", + "collname = \"glprj_jdunca51\" #please modify so you store data in your collection\n", + "my_char = 'f'\n", + "\n", + "# beginning page index\n", + "begin = \"1\"\n", + "client = pymongo.MongoClient()\n", + "\n", + "db = client[dbname]\n", + "coll = db[collname]\n", + "\n", + "\n", + "beginurl = \"https://gitlab.com/api/v4/projects?archived=false&membership=false&order_by=created_at&owned=false&page=\" + begin + \\\n", + " \"&per_page=99&simple=false&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false\"\n", + "\n", + "gleft = 20\n", + "\n", + "header = {'per_page': 99}\n", + "\n", + "# check remaining query chances for rate-limit restriction\n", + "def wait(left):\n", + " global header\n", + " while (left < 20):\n", + " l = requests.get('https://gitlab.com/api/v4/projects', headers=header)\n", + " if (l.ok):\n", + " left = int(l.headers.get('RateLimit-Remaining'))\n", + " time .sleep(60)\n", + " return left\n", + "\n", + "def git_exists(url):\n", + " r = requests.get(url)\n", + " print(r.ok, r.status_code)\n", + " if r.ok and r.status_code == 200:\n", + " return True\n", + " return False\n", + "\n", + "# send queries and extract urls \n", + "def get(url, coll):\n", + "\n", + " global gleft\n", + " global header\n", + " global bginnum\n", + " gleft = wait(gleft)\n", + " values = []\n", + " size = 0\n", + " project_count = 0\n", + "\n", + " try:\n", + " r = requests .get(url, headers=header)\n", + " time .sleep(0.5)\n", + " # got blocked\n", + " if r.status_code == 403:\n", + " return \"got blocked\", str(bginnum)\n", + " if (r.ok):\n", + "\n", + " gleft = int(r.headers.get('RateLimit-Remaining'))\n", + " lll = r.headers.get('Link')\n", + " t = r.text\n", + " array = json.loads(t)\n", + " \n", + " for el in array:\n", + " if el['name'].lower().startswith(my_char):\n", + " if git_exists(el['http_url_to_repo']):\n", + " project_count += 1\n", + " el['forge'] = 'gitlab'\n", + " print(el['name'], el['web_url'], el['forge'], project_count)\n", + " coll.insert_one(el)\n", + " if project_count >= 50:\n", + " return\n", + " \n", + " #next page\n", + " while ('; rel=\"next\"' in lll):\n", + " gleft = int(r.headers.get('RateLimit-Remaining'))\n", + " gleft = wait(gleft)\n", + " # extract next page url\n", + " ll = lll.replace(';', ',').split(',')\n", + " url = ll[ll.index(' rel=\"next\"') -\n", + " 1].replace('<', '').replace('>', '').lstrip()\n", + " \n", + " try:\n", + " r = requests .get(url, headers=header)\n", + " if r.status_code == 403:\n", + " return \"got blocked\", str(bginnum)\n", + " if (r.ok):\n", + " lll = r.headers.get('Link')\n", + " t = r.text\n", + " array1 = json.loads(t)\n", + " for el in array1:\n", + " if el['name'].lower().startswith(my_char):\n", + " if git_exists(el['http_url_to_repo']):\n", + " project_count += 1\n", + " el['forge'] = 'gitlab'\n", + " print(el['name'], el['web_url'], el['forge'], project_count)\n", + " coll.insert_one(el)\n", + " if project_count >= 50:\n", + " return\n", + " else:\n", + " sys.stderr.write(\"url can not found:\\n\" + url + '\\n')\n", + " return \n", + " except requests.exceptions.ConnectionError:\n", + " sys.stderr.write('could not get ' + url + '\\n')\n", + " \n", + " else:\n", + " sys.stderr.write(\"url can not found:\\n\" + url + '\\n')\n", + " return\n", + "\n", + " except requests.exceptions.ConnectionError:\n", + " sys.stderr.write('could not get ' + url + '\\n')\n", + " except Exception as e:\n", + " sys.stderr.write(url + ';' + str(e) + '\\n')\n", + " \n", + "#start retrieving \n", + "get(beginurl,coll)\n", + "for doc in coll.find({}):\n", + " print(doc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f322695819e7799a9ac651b90a7c773e14c4dab1 Mon Sep 17 00:00:00 2001 From: MikeynJerry Date: Mon, 1 Oct 2018 23:27:40 +0000 Subject: [PATCH 2/4] Testing database --- jdunca51.ipynb | 58 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/jdunca51.ipynb b/jdunca51.ipynb index e41ea95..e441117 100644 --- a/jdunca51.ipynb +++ b/jdunca51.ipynb @@ -2,15 +2,63 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "True 200\n", - "ffld to gromacs topology https://gitlab.com/YangZhou233/ffld-to-gromacs-topology gitlab 1\n" + "{'star_count': 0, 'web_url': 'https://gitlab.com/Nemzs/fora-soft-test-task', 'http_url_to_repo': 'https://gitlab.com/Nemzs/fora-soft-test-task.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fora-soft test task', 'name_with_namespace': 'Stas / Fora-soft test task', 'path_with_namespace': 'Nemzs/fora-soft-test-task', 'namespace': {'path': 'Nemzs', 'kind': 'user', 'id': 674604, 'full_path': 'Nemzs', 'name': 'Nemzs', 'parent_id': None}, 'path': 'fora-soft-test-task', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Nemzs/fora-soft-test-task.git', 'id': 8653949, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T22:52:30.661Z', '_id': ObjectId('5bb2a9bfe618f5020013dcef'), 'last_activity_at': '2018-10-01T22:52:30.661Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin', 'http_url_to_repo': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin.git', 'readme_url': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fix-missing-alt-tags-plugin', 'name_with_namespace': 'Jaimeson Waugh / fix-missing-alt-tags-plugin', 'path_with_namespace': 'jaimeson4cesi/fix-missing-alt-tags-plugin', 'namespace': {'path': 'jaimeson4cesi', 'kind': 'user', 'id': 2361147, 'full_path': 'jaimeson4cesi', 'name': 'jaimeson4cesi', 'parent_id': None}, 'path': 'fix-missing-alt-tags-plugin', 'description': 'Allows one to check and automatically Fix Missing Alt Tags in posts.', 'ssh_url_to_repo': 'git@gitlab.com:jaimeson4cesi/fix-missing-alt-tags-plugin.git', 'id': 8653368, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T21:36:52.263Z', '_id': ObjectId('5bb2a9bfe618f5020013dcf0'), 'last_activity_at': '2018-10-01T21:36:52.263Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/arbazkhan971/Face-Detection-Using-Opencv', 'http_url_to_repo': 'https://gitlab.com/arbazkhan971/Face-Detection-Using-Opencv.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Face-Detection-Using-Opencv', 'name_with_namespace': 'arbazkhan971 / Face-Detection-Using-Opencv', 'path_with_namespace': 'arbazkhan971/Face-Detection-Using-Opencv', 'namespace': {'path': 'arbazkhan971', 'kind': 'user', 'id': 2990257, 'full_path': 'arbazkhan971', 'name': 'arbazkhan971', 'parent_id': None}, 'path': 'Face-Detection-Using-Opencv', 'description': 'Face detection using haar-cascade', 'ssh_url_to_repo': 'git@gitlab.com:arbazkhan971/Face-Detection-Using-Opencv.git', 'id': 8652898, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:55:54.126Z', '_id': ObjectId('5bb2a9bfe618f5020013dcf1'), 'last_activity_at': '2018-10-01T20:55:54.126Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/arbazkhan971/FunFacts', 'http_url_to_repo': 'https://gitlab.com/arbazkhan971/FunFacts.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FunFacts', 'name_with_namespace': 'arbazkhan971 / FunFacts', 'path_with_namespace': 'arbazkhan971/FunFacts', 'namespace': {'path': 'arbazkhan971', 'kind': 'user', 'id': 2990257, 'full_path': 'arbazkhan971', 'name': 'arbazkhan971', 'parent_id': None}, 'path': 'FunFacts', 'description': 'app that show different funfacts', 'ssh_url_to_repo': 'git@gitlab.com:arbazkhan971/FunFacts.git', 'id': 8652890, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:55:46.811Z', '_id': ObjectId('5bb2a9c4e618f5020013dcf2'), 'last_activity_at': '2018-10-01T20:55:46.811Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/YangZhou233/ffld-to-gromacs-topology', 'http_url_to_repo': 'https://gitlab.com/YangZhou233/ffld-to-gromacs-topology.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'ffld to gromacs topology', 'name_with_namespace': 'Yang Zhou / ffld to gromacs topology', 'path_with_namespace': 'YangZhou233/ffld-to-gromacs-topology', 'namespace': {'path': 'YangZhou233', 'kind': 'user', 'id': 2981873, 'full_path': 'YangZhou233', 'name': 'YangZhou233', 'parent_id': None}, 'path': 'ffld-to-gromacs-topology', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:YangZhou233/ffld-to-gromacs-topology.git', 'id': 8652420, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:20:09.620Z', '_id': ObjectId('5bb2a9c5e618f5020013dcf3'), 'last_activity_at': '2018-10-01T21:24:54.916Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/rodrigorila/FileTextAnalysis', 'http_url_to_repo': 'https://gitlab.com/rodrigorila/FileTextAnalysis.git', 'readme_url': 'https://gitlab.com/rodrigorila/FileTextAnalysis/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FileTextAnalysis', 'name_with_namespace': 'Rodrigo Salinas / FileTextAnalysis', 'path_with_namespace': 'rodrigorila/FileTextAnalysis', 'namespace': {'path': 'rodrigorila', 'kind': 'user', 'id': 3719979, 'full_path': 'rodrigorila', 'name': 'rodrigorila', 'parent_id': None}, 'path': 'FileTextAnalysis', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:rodrigorila/FileTextAnalysis.git', 'id': 8652328, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:11:39.478Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf4'), 'last_activity_at': '2018-10-01T20:11:39.478Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/KevSlashNull/f3-dtsniper', 'http_url_to_repo': 'https://gitlab.com/KevSlashNull/f3-dtsniper.git', 'readme_url': 'https://gitlab.com/KevSlashNull/f3-dtsniper/blob/master/readme.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'F3-dtSniper', 'name_with_namespace': 'Kev / F3-dtSniper', 'path_with_namespace': 'KevSlashNull/f3-dtsniper', 'namespace': {'path': 'KevSlashNull', 'kind': 'user', 'id': 2727495, 'full_path': 'KevSlashNull', 'name': 'KevSlashNull', 'parent_id': None}, 'path': 'f3-dtsniper', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:KevSlashNull/f3-dtsniper.git', 'id': 8652023, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:43:44.530Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf5'), 'last_activity_at': '2018-10-01T19:43:44.530Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/jonasN/financial-overview', 'http_url_to_repo': 'https://gitlab.com/jonasN/financial-overview.git', 'readme_url': 'https://gitlab.com/jonasN/financial-overview/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'financial-overview', 'name_with_namespace': 'Jonas Natzer / financial-overview', 'path_with_namespace': 'jonasN/financial-overview', 'namespace': {'path': 'jonasN', 'kind': 'user', 'id': 1001187, 'full_path': 'jonasN', 'name': 'jonasN', 'parent_id': None}, 'path': 'financial-overview', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:jonasN/financial-overview.git', 'id': 8651949, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:38:08.024Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf6'), 'last_activity_at': '2018-10-01T19:38:08.024Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/ravindra2017bangalore/flash', 'http_url_to_repo': 'https://gitlab.com/ravindra2017bangalore/flash.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flash', 'name_with_namespace': 'Ravindra Singh / flash', 'path_with_namespace': 'ravindra2017bangalore/flash', 'namespace': {'path': 'ravindra2017bangalore', 'kind': 'user', 'id': 3569099, 'full_path': 'ravindra2017bangalore', 'name': 'ravindra2017bangalore', 'parent_id': None}, 'path': 'flash', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:ravindra2017bangalore/flash.git', 'id': 8651420, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:00:00.690Z', '_id': ObjectId('5bb2a9cee618f5020013dcf7'), 'last_activity_at': '2018-10-01T19:00:00.690Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/memborg/fuzzy_time', 'http_url_to_repo': 'https://gitlab.com/memborg/fuzzy_time.git', 'readme_url': 'https://gitlab.com/memborg/fuzzy_time/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fuzzy_time', 'name_with_namespace': 'Rune Memborg / fuzzy_time', 'path_with_namespace': 'memborg/fuzzy_time', 'namespace': {'path': 'memborg', 'kind': 'user', 'id': 571960, 'full_path': 'memborg', 'name': 'memborg', 'parent_id': None}, 'path': 'fuzzy_time', 'description': 'calculate fuzzy time is WASM based on input from JS', 'ssh_url_to_repo': 'git@gitlab.com:memborg/fuzzy_time.git', 'id': 8651088, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T18:33:52.735Z', '_id': ObjectId('5bb2a9cee618f5020013dcf8'), 'last_activity_at': '2018-10-01T18:33:52.735Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/codeneomatrix/fundamentos', 'http_url_to_repo': 'https://gitlab.com/codeneomatrix/fundamentos.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fundamentos', 'name_with_namespace': 'Josue acevedo maldonado / fundamentos', 'path_with_namespace': 'codeneomatrix/fundamentos', 'namespace': {'path': 'codeneomatrix', 'kind': 'user', 'id': 117121, 'full_path': 'codeneomatrix', 'name': 'codeneomatrix', 'parent_id': None}, 'path': 'fundamentos', 'description': 'aqui esta todo el codigo de la materia de fundamentos', 'ssh_url_to_repo': 'git@gitlab.com:codeneomatrix/fundamentos.git', 'id': 8650276, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:49:29.859Z', '_id': ObjectId('5bb2a9d3e618f5020013dcf9'), 'last_activity_at': '2018-10-01T17:49:29.859Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/Tortes24/freeproj', 'http_url_to_repo': 'https://gitlab.com/Tortes24/freeproj.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'FreeProj', 'name_with_namespace': 'Alexei / FreeProj', 'path_with_namespace': 'Tortes24/freeproj', 'namespace': {'path': 'Tortes24', 'kind': 'user', 'id': 3699238, 'full_path': 'Tortes24', 'name': 'Tortes24', 'parent_id': None}, 'path': 'freeproj', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Tortes24/freeproj.git', 'id': 8650117, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:37:13.280Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfa'), 'last_activity_at': '2018-10-01T17:37:13.280Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/dolgiy_nykolay/forum', 'http_url_to_repo': 'https://gitlab.com/dolgiy_nykolay/forum.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'Forum', 'name_with_namespace': 'Nykolay / Forum', 'path_with_namespace': 'dolgiy_nykolay/forum', 'namespace': {'path': 'dolgiy_nykolay', 'kind': 'user', 'id': 2117118, 'full_path': 'dolgiy_nykolay', 'name': 'dolgiy_nykolay', 'parent_id': None}, 'path': 'forum', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:dolgiy_nykolay/forum.git', 'id': 8650067, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:33:24.176Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfb'), 'last_activity_at': '2018-10-01T17:33:24.176Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/ehorvat-faraday/faraday_test4', 'http_url_to_repo': 'https://gitlab.com/ehorvat-faraday/faraday_test4.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'faraday_test4', 'name_with_namespace': 'Eric Horvat / faraday_test4', 'path_with_namespace': 'ehorvat-faraday/faraday_test4', 'namespace': {'path': 'ehorvat-faraday', 'kind': 'user', 'id': 3488195, 'full_path': 'ehorvat-faraday', 'name': 'ehorvat-faraday', 'parent_id': None}, 'path': 'faraday_test4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:ehorvat-faraday/faraday_test4.git', 'id': 8650043, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:31:10.566Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfc'), 'last_activity_at': '2018-10-01T19:31:49.659Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/JohnWeeks1/first_test', 'http_url_to_repo': 'https://gitlab.com/JohnWeeks1/first_test.git', 'readme_url': 'https://gitlab.com/JohnWeeks1/first_test/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'first_test', 'name_with_namespace': 'Jonathan Weeks / first_test', 'path_with_namespace': 'JohnWeeks1/first_test', 'namespace': {'path': 'JohnWeeks1', 'kind': 'user', 'id': 3720244, 'full_path': 'JohnWeeks1', 'name': 'JohnWeeks1', 'parent_id': None}, 'path': 'first_test', 'description': 'This is a test', 'ssh_url_to_repo': 'git@gitlab.com:JohnWeeks1/first_test.git', 'id': 8648592, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T15:52:54.271Z', '_id': ObjectId('5bb2a9d9e618f5020013dcfd'), 'last_activity_at': '2018-10-01T15:52:54.271Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/k.bhanuprakash/flipkart', 'http_url_to_repo': 'https://gitlab.com/k.bhanuprakash/flipkart.git', 'readme_url': 'https://gitlab.com/k.bhanuprakash/flipkart/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flipkart', 'name_with_namespace': 'bhanuprakash / flipkart', 'path_with_namespace': 'k.bhanuprakash/flipkart', 'namespace': {'path': 'k.bhanuprakash', 'kind': 'user', 'id': 3720066, 'full_path': 'k.bhanuprakash', 'name': 'k.bhanuprakash', 'parent_id': None}, 'path': 'flipkart', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:k.bhanuprakash/flipkart.git', 'id': 8648289, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T15:31:20.585Z', '_id': ObjectId('5bb2a9dee618f5020013dcfe'), 'last_activity_at': '2018-10-01T15:31:20.585Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/SkywinOff/Facebook-Sidebar', 'http_url_to_repo': 'https://gitlab.com/SkywinOff/Facebook-Sidebar.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Facebook-Sidebar', 'name_with_namespace': 'Skywin / Facebook-Sidebar', 'path_with_namespace': 'SkywinOff/Facebook-Sidebar', 'namespace': {'path': 'SkywinOff', 'kind': 'user', 'id': 3692047, 'full_path': 'SkywinOff', 'name': 'SkywinOff', 'parent_id': None}, 'path': 'Facebook-Sidebar', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:SkywinOff/Facebook-Sidebar.git', 'id': 8647307, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T14:55:16.124Z', '_id': ObjectId('5bb2a9dee618f5020013dcff'), 'last_activity_at': '2018-10-01T14:55:16.124Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/mutiara.ayun19/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/mutiara.ayun19/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'feature/initial', 'forge': 'gitlab', 'name': 'FE Sesi 4', 'name_with_namespace': \"Mutiara a'yun / FE Sesi 4\", 'path_with_namespace': 'mutiara.ayun19/fe-sesi-4', 'namespace': {'path': 'mutiara.ayun19', 'kind': 'user', 'id': 3673200, 'full_path': 'mutiara.ayun19', 'name': 'mutiara.ayun19', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mutiara.ayun19/fe-sesi-4.git', 'id': 8646349, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:59.928Z', '_id': ObjectId('5bb2a9e2e618f5020013dd00'), 'last_activity_at': '2018-10-01T13:54:59.928Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/monikadv/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/monikadv/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fe-sesi-4', 'name_with_namespace': 'Lasea Monika / fe-sesi-4', 'path_with_namespace': 'monikadv/fe-sesi-4', 'namespace': {'path': 'monikadv', 'kind': 'user', 'id': 3673220, 'full_path': 'monikadv', 'name': 'monikadv', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': 'Belajar CSS sesi 4 ', 'ssh_url_to_repo': 'git@gitlab.com:monikadv/fe-sesi-4.git', 'id': 8646348, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:58.741Z', '_id': ObjectId('5bb2a9e2e618f5020013dd01'), 'last_activity_at': '2018-10-01T13:54:58.741Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/mars_/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/mars_/fe-sesi-4.git', 'readme_url': 'https://gitlab.com/mars_/fe-sesi-4/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FE Sesi 4', 'name_with_namespace': 'Mars Santoso / FE Sesi 4', 'path_with_namespace': 'mars_/fe-sesi-4', 'namespace': {'path': 'mars_', 'kind': 'user', 'id': 835133, 'full_path': 'mars_', 'name': 'mars_', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mars_/fe-sesi-4.git', 'id': 8646347, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:53.673Z', '_id': ObjectId('5bb2a9e2e618f5020013dd02'), 'last_activity_at': '2018-10-01T15:14:08.808Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/ekanova/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/ekanova/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fe-sesi-4', 'name_with_namespace': 'Eka Nova / fe-sesi-4', 'path_with_namespace': 'ekanova/fe-sesi-4', 'namespace': {'path': 'ekanova', 'kind': 'user', 'id': 3673212, 'full_path': 'ekanova', 'name': 'ekanova', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': 'Studying CSS.', 'ssh_url_to_repo': 'git@gitlab.com:ekanova/fe-sesi-4.git', 'id': 8646332, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:20.269Z', '_id': ObjectId('5bb2a9e3e618f5020013dd03'), 'last_activity_at': '2018-10-01T13:54:20.269Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/aamrein/flat-availability-client', 'http_url_to_repo': 'https://gitlab.com/aamrein/flat-availability-client.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flat availability client', 'name_with_namespace': 'Andreas Amrein / flat availability client', 'path_with_namespace': 'aamrein/flat-availability-client', 'namespace': {'path': 'aamrein', 'kind': 'user', 'id': 3719109, 'full_path': 'aamrein', 'name': 'aamrein', 'parent_id': None}, 'path': 'flat-availability-client', 'description': 'Receives messages from a server with availability information about some specific flats.\\r\\nMade for a good friend and to test ionic framework.', 'ssh_url_to_repo': 'git@gitlab.com:aamrein/flat-availability-client.git', 'id': 8646116, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:42:54.197Z', '_id': ObjectId('5bb2a9e3e618f5020013dd04'), 'last_activity_at': '2018-10-01T13:42:54.197Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/Roni691986/flightsapp', 'http_url_to_repo': 'https://gitlab.com/Roni691986/flightsapp.git', 'readme_url': 'https://gitlab.com/Roni691986/flightsapp/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FlightsApp', 'name_with_namespace': 'Roni / FlightsApp', 'path_with_namespace': 'Roni691986/flightsapp', 'namespace': {'path': 'Roni691986', 'kind': 'user', 'id': 3176296, 'full_path': 'Roni691986', 'name': 'Roni691986', 'parent_id': None}, 'path': 'flightsapp', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Roni691986/flightsapp.git', 'id': 8645863, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:31:06.571Z', '_id': ObjectId('5bb2a9e3e618f5020013dd05'), 'last_activity_at': '2018-10-01T13:31:06.571Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/zhujinglei/fakeproject', 'http_url_to_repo': 'https://gitlab.com/zhujinglei/fakeproject.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FAKEPROJECT', 'name_with_namespace': 'jingleizhu / FAKEPROJECT', 'path_with_namespace': 'zhujinglei/fakeproject', 'namespace': {'path': 'zhujinglei', 'kind': 'user', 'id': 3690314, 'full_path': 'zhujinglei', 'name': 'zhujinglei', 'parent_id': None}, 'path': 'fakeproject', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:zhujinglei/fakeproject.git', 'id': 8645852, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:29:55.692Z', '_id': ObjectId('5bb2a9e4e618f5020013dd06'), 'last_activity_at': '2018-10-01T13:29:55.692Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/arighi/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/arighi/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fe Sesi 4', 'name_with_namespace': 'ari ghi / Fe Sesi 4', 'path_with_namespace': 'arighi/fe-sesi-4', 'namespace': {'path': 'arighi', 'kind': 'user', 'id': 3673201, 'full_path': 'arighi', 'name': 'arighi', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:arighi/fe-sesi-4.git', 'id': 8645281, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:57:50.018Z', '_id': ObjectId('5bb2a9e8e618f5020013dd07'), 'last_activity_at': '2018-10-01T13:58:22.253Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/kratos500/feelslikehomealready', 'http_url_to_repo': 'https://gitlab.com/kratos500/feelslikehomealready.git', 'readme_url': 'https://gitlab.com/kratos500/feelslikehomealready/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FeelsLikeHomeAlready', 'name_with_namespace': 'Manu Araujo / FeelsLikeHomeAlready', 'path_with_namespace': 'kratos500/feelslikehomealready', 'namespace': {'path': 'kratos500', 'kind': 'user', 'id': 2689543, 'full_path': 'kratos500', 'name': 'kratos500', 'parent_id': None}, 'path': 'feelslikehomealready', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:kratos500/feelslikehomealready.git', 'id': 8644846, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:36:25.222Z', '_id': ObjectId('5bb2a9e8e618f5020013dd08'), 'last_activity_at': '2018-10-01T12:36:25.222Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/cenacle-devops/f7820e6060304af98a42a5a2a45852ad', 'http_url_to_repo': 'https://gitlab.com/cenacle-devops/f7820e6060304af98a42a5a2a45852ad.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'f7820e6060304af98a42a5a2a45852ad', 'name_with_namespace': 'devops / f7820e6060304af98a42a5a2a45852ad', 'path_with_namespace': 'cenacle-devops/f7820e6060304af98a42a5a2a45852ad', 'namespace': {'path': 'cenacle-devops', 'kind': 'user', 'id': 3507954, 'full_path': 'cenacle-devops', 'name': 'cenacle-devops', 'parent_id': None}, 'path': 'f7820e6060304af98a42a5a2a45852ad', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:cenacle-devops/f7820e6060304af98a42a5a2a45852ad.git', 'id': 8644398, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:11:15.465Z', '_id': ObjectId('5bb2a9ede618f5020013dd09'), 'last_activity_at': '2018-10-01T12:11:15.465Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/Rendyindo/FurAPI', 'http_url_to_repo': 'https://gitlab.com/Rendyindo/FurAPI.git', 'readme_url': 'https://gitlab.com/Rendyindo/FurAPI/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FurAPI', 'name_with_namespace': 'Rendy Arya Kemal / FurAPI', 'path_with_namespace': 'Rendyindo/FurAPI', 'namespace': {'path': 'Rendyindo', 'kind': 'user', 'id': 3021050, 'full_path': 'Rendyindo', 'name': 'Rendyindo', 'parent_id': None}, 'path': 'FurAPI', 'description': 'FurAffinity scraper, turns into an API.', 'ssh_url_to_repo': 'git@gitlab.com:Rendyindo/FurAPI.git', 'id': 8643621, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:38:08.346Z', '_id': ObjectId('5bb2a9ede618f5020013dd0a'), 'last_activity_at': '2018-10-01T11:38:08.346Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/timtizio/framework-files-exchange', 'http_url_to_repo': 'https://gitlab.com/timtizio/framework-files-exchange.git', 'readme_url': 'https://gitlab.com/timtizio/framework-files-exchange/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Framework Files Exchange', 'name_with_namespace': 'Timothé Tizio-Menut / Framework Files Exchange', 'path_with_namespace': 'timtizio/framework-files-exchange', 'namespace': {'path': 'timtizio', 'kind': 'user', 'id': 1739320, 'full_path': 'timtizio', 'name': 'timtizio', 'parent_id': None}, 'path': 'framework-files-exchange', 'description': 'Framework PHP permettant de mettre en place simplement une application de partage de fichiers. \\r\\nPHP framework allowing to easily set up an files exchange platform.', 'ssh_url_to_repo': 'git@gitlab.com:timtizio/framework-files-exchange.git', 'id': 8643481, 'tag_list': ['PHP', 'files', 'framework'], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:28:33.541Z', '_id': ObjectId('5bb2a9ede618f5020013dd0b'), 'last_activity_at': '2018-10-01T15:04:38.082Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/QuietBf/firstproject', 'http_url_to_repo': 'https://gitlab.com/QuietBf/firstproject.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'FirstProject', 'name_with_namespace': 'Dary / FirstProject', 'path_with_namespace': 'QuietBf/firstproject', 'namespace': {'path': 'QuietBf', 'kind': 'user', 'id': 3717890, 'full_path': 'QuietBf', 'name': 'QuietBf', 'parent_id': None}, 'path': 'firstproject', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:QuietBf/firstproject.git', 'id': 8643109, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:11:06.224Z', '_id': ObjectId('5bb2a9eee618f5020013dd0c'), 'last_activity_at': '2018-10-01T11:11:06.224Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/Palplos/fgcfgcf', 'http_url_to_repo': 'https://gitlab.com/Palplos/fgcfgcf.git', 'readme_url': 'https://gitlab.com/Palplos/fgcfgcf/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fgcfgcf', 'name_with_namespace': 'Flecheau Bastien / fgcfgcf', 'path_with_namespace': 'Palplos/fgcfgcf', 'namespace': {'path': 'Palplos', 'kind': 'user', 'id': 3717592, 'full_path': 'Palplos', 'name': 'Palplos', 'parent_id': None}, 'path': 'fgcfgcf', 'description': 'fgfdfg', 'ssh_url_to_repo': 'git@gitlab.com:Palplos/fgcfgcf.git', 'id': 8642056, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T10:34:44.031Z', '_id': ObjectId('5bb2a9f2e618f5020013dd0d'), 'last_activity_at': '2018-10-01T10:34:44.031Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/baldevp2/firebase-crud', 'http_url_to_repo': 'https://gitlab.com/baldevp2/firebase-crud.git', 'readme_url': 'https://gitlab.com/baldevp2/firebase-crud/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'firebase-crud', 'name_with_namespace': 'baldev parmar / firebase-crud', 'path_with_namespace': 'baldevp2/firebase-crud', 'namespace': {'path': 'baldevp2', 'kind': 'user', 'id': 3702820, 'full_path': 'baldevp2', 'name': 'baldevp2', 'parent_id': None}, 'path': 'firebase-crud', 'description': 'firebase-crud', 'ssh_url_to_repo': 'git@gitlab.com:baldevp2/firebase-crud.git', 'id': 8641319, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T09:54:58.458Z', '_id': ObjectId('5bb2a9f2e618f5020013dd0e'), 'last_activity_at': '2018-10-01T09:54:58.458Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/cranebytes/fuglu', 'http_url_to_repo': 'https://gitlab.com/cranebytes/fuglu.git', 'readme_url': 'https://gitlab.com/cranebytes/fuglu/blob/master/README.rst', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fuglu', 'name_with_namespace': 'Florian Pelgrim / fuglu', 'path_with_namespace': 'cranebytes/fuglu', 'namespace': {'path': 'cranebytes', 'kind': 'user', 'id': 3598185, 'full_path': 'cranebytes', 'name': 'cranebytes', 'parent_id': None}, 'path': 'fuglu', 'description': 'A mail content scanner for postfix written in python', 'ssh_url_to_repo': 'git@gitlab.com:cranebytes/fuglu.git', 'id': 8640053, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T08:40:25.366Z', '_id': ObjectId('5bb2a9f7e618f5020013dd0f'), 'last_activity_at': '2018-10-01T12:14:55.871Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/PricesAmy/fetch', 'http_url_to_repo': 'https://gitlab.com/PricesAmy/fetch.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fetch', 'name_with_namespace': 'Amy / Fetch', 'path_with_namespace': 'PricesAmy/fetch', 'namespace': {'path': 'PricesAmy', 'kind': 'user', 'id': 2596272, 'full_path': 'PricesAmy', 'name': 'PricesAmy', 'parent_id': None}, 'path': 'fetch', 'description': 'async/await:异步神器来封装接口请求文件fetch.js\\r\\n\\r\\n\\r\\n在前后端分离的项目开发中,前端人员如果要通过接口获取后端数据时,我们一般会独立封装自己的接口异步请求方法,以便在整个项目中都能够轻松的进行引用;', 'ssh_url_to_repo': 'git@gitlab.com:PricesAmy/fetch.git', 'id': 8639329, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T08:06:47.593Z', '_id': ObjectId('5bb2a9fbe618f5020013dd10'), 'last_activity_at': '2018-10-01T08:06:47.593Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/ZXPAY/Farm_Robot', 'http_url_to_repo': 'https://gitlab.com/ZXPAY/Farm_Robot.git', 'readme_url': 'https://gitlab.com/ZXPAY/Farm_Robot/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Farm_Robot', 'name_with_namespace': 'Guillaume Danny Deng / Farm_Robot', 'path_with_namespace': 'ZXPAY/Farm_Robot', 'namespace': {'path': 'ZXPAY', 'kind': 'user', 'id': 3716380, 'full_path': 'ZXPAY', 'name': 'ZXPAY', 'parent_id': None}, 'path': 'Farm_Robot', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:ZXPAY/Farm_Robot.git', 'id': 8639170, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T07:54:55.617Z', '_id': ObjectId('5bb2a9fbe618f5020013dd11'), 'last_activity_at': '2018-10-01T07:54:55.617Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map', 'http_url_to_repo': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map.git', 'readme_url': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fcc-visualize-choropleth-map', 'name_with_namespace': 'James Itum / fcc-visualize-choropleth-map', 'path_with_namespace': 'isemaj/fcc-visualize-choropleth-map', 'namespace': {'path': 'isemaj', 'kind': 'user', 'id': 3152491, 'full_path': 'isemaj', 'name': 'isemaj', 'parent_id': None}, 'path': 'fcc-visualize-choropleth-map', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:isemaj/fcc-visualize-choropleth-map.git', 'id': 8639101, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T07:50:26.171Z', '_id': ObjectId('5bb2a9fce618f5020013dd12'), 'last_activity_at': '2018-10-01T22:12:12.188Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/powq2018/floating_window_demo', 'http_url_to_repo': 'https://gitlab.com/powq2018/floating_window_demo.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'floating_window_demo', 'name_with_namespace': 'AdamChen / floating_window_demo', 'path_with_namespace': 'powq2018/floating_window_demo', 'namespace': {'path': 'powq2018', 'kind': 'user', 'id': 2984288, 'full_path': 'powq2018', 'name': 'powq2018', 'parent_id': None}, 'path': 'floating_window_demo', 'description': 'The floating window design in android 6.0 or later version. It would need the permission android.permission.SYSTEM_ALERT_WINDOW. In this demo I use the JobIntentService to do the relative floating window mechanism. For the JobIntentService it would need permission android.permission.WAKE_LOCK and add the android:permission=\"android.permission.BIND_JOB_SERVICE\" in the service component.', 'ssh_url_to_repo': 'git@gitlab.com:powq2018/floating_window_demo.git', 'id': 8638231, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:46:40.604Z', '_id': ObjectId('5bb2aa01e618f5020013dd13'), 'last_activity_at': '2018-10-01T06:46:40.604Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/runfit/frontend', 'http_url_to_repo': 'https://gitlab.com/runfit/frontend.git', 'readme_url': 'https://gitlab.com/runfit/frontend/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'frontend', 'name_with_namespace': 'ru12dd3412 / frontend', 'path_with_namespace': 'runfit/frontend', 'namespace': {'path': 'runfit', 'kind': 'group', 'id': 3715905, 'full_path': 'runfit', 'name': 'ru12dd3412', 'parent_id': None}, 'path': 'frontend', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:runfit/frontend.git', 'id': 8638176, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:41:13.316Z', '_id': ObjectId('5bb2aa01e618f5020013dd14'), 'last_activity_at': '2018-10-01T18:04:50.855Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica', 'http_url_to_repo': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica.git', 'readme_url': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fondamenti di Informatica', 'name_with_namespace': 'Francesco Gallo / Fondamenti di Informatica', 'path_with_namespace': 'francescogallogit/fondamenti-di-informatica', 'namespace': {'path': 'francescogallogit', 'kind': 'user', 'id': 3325443, 'full_path': 'francescogallogit', 'name': 'francescogallogit', 'parent_id': None}, 'path': 'fondamenti-di-informatica', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:francescogallogit/fondamenti-di-informatica.git', 'id': 8637898, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:15:28.954Z', '_id': ObjectId('5bb2aa02e618f5020013dd15'), 'last_activity_at': '2018-10-01T07:56:50.852Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/jkimmeyer/faker-js', 'http_url_to_repo': 'https://gitlab.com/jkimmeyer/faker-js.git', 'readme_url': 'https://gitlab.com/jkimmeyer/faker-js/blob/master/Readme.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'faker-js', 'name_with_namespace': 'Johannes Kimmeyer / faker-js', 'path_with_namespace': 'jkimmeyer/faker-js', 'namespace': {'path': 'jkimmeyer', 'kind': 'user', 'id': 1970444, 'full_path': 'jkimmeyer', 'name': 'jkimmeyer', 'parent_id': None}, 'path': 'faker-js', 'description': 'generate massive amounts of fake data in Node.js and the browser', 'ssh_url_to_repo': 'git@gitlab.com:jkimmeyer/faker-js.git', 'id': 8637895, 'tag_list': [], 'forks_count': 0, 'avatar_url': 'https://gitlab.com/jkimmeyer/faker-js/avatar', 'created_at': '2018-10-01T06:15:06.040Z', '_id': ObjectId('5bb2aa02e618f5020013dd16'), 'last_activity_at': '2018-10-01T06:15:06.040Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/anders-b/flight-planner', 'http_url_to_repo': 'https://gitlab.com/anders-b/flight-planner.git', 'readme_url': 'https://gitlab.com/anders-b/flight-planner/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Flight planner', 'name_with_namespace': 'Anders B / Flight planner', 'path_with_namespace': 'anders-b/flight-planner', 'namespace': {'path': 'anders-b', 'kind': 'user', 'id': 3715699, 'full_path': 'anders-b', 'name': 'anders-b', 'parent_id': None}, 'path': 'flight-planner', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:anders-b/flight-planner.git', 'id': 8637699, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T05:55:26.307Z', '_id': ObjectId('5bb2aa02e618f5020013dd17'), 'last_activity_at': '2018-10-01T05:55:26.307Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/mh_yuan/first_project_for_gitlab', 'http_url_to_repo': 'https://gitlab.com/mh_yuan/first_project_for_gitlab.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'first_project_for_gitlab', 'name_with_namespace': 'mhyuan / first_project_for_gitlab', 'path_with_namespace': 'mh_yuan/first_project_for_gitlab', 'namespace': {'path': 'mh_yuan', 'kind': 'user', 'id': 3715399, 'full_path': 'mh_yuan', 'name': 'mh_yuan', 'parent_id': None}, 'path': 'first_project_for_gitlab', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mh_yuan/first_project_for_gitlab.git', 'id': 8637121, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T04:32:46.877Z', '_id': ObjectId('5bb2aa07e618f5020013dd18'), 'last_activity_at': '2018-10-01T04:32:46.877Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk', 'http_url_to_repo': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk.git', 'readme_url': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'facebook-php-ads-sdk', 'name_with_namespace': 'Jorge Garcia / facebook-php-ads-sdk', 'path_with_namespace': 'slash28cu/facebook-php-ads-sdk', 'namespace': {'path': 'slash28cu', 'kind': 'user', 'id': 3715186, 'full_path': 'slash28cu', 'name': 'slash28cu', 'parent_id': None}, 'path': 'facebook-php-ads-sdk', 'description': 'An SDK built to facilitate application development for Facebook Ads API.', 'ssh_url_to_repo': 'git@gitlab.com:slash28cu/facebook-php-ads-sdk.git', 'id': 8636946, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T04:07:42.090Z', '_id': ObjectId('5bb2aa07e618f5020013dd19'), 'last_activity_at': '2018-10-01T04:07:42.090Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/silviopd-platzi/fundamentos-docker', 'http_url_to_repo': 'https://gitlab.com/silviopd-platzi/fundamentos-docker.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fundamentos-docker', 'name_with_namespace': 'platzi / fundamentos-docker', 'path_with_namespace': 'silviopd-platzi/fundamentos-docker', 'namespace': {'path': 'silviopd-platzi', 'kind': 'group', 'id': 2952979, 'full_path': 'silviopd-platzi', 'name': 'platzi', 'parent_id': None}, 'path': 'fundamentos-docker', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:silviopd-platzi/fundamentos-docker.git', 'id': 8636748, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T03:39:00.021Z', '_id': ObjectId('5bb2aa07e618f5020013dd1a'), 'last_activity_at': '2018-10-01T21:31:55.344Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2', 'http_url_to_repo': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2.git', 'readme_url': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2/blob/master/README.Md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FootbalMatch-Challenge2', 'name_with_namespace': 'HANDIKA DWIPUTRA / FootbalMatch-Challenge2', 'path_with_namespace': 'cakhandi95/footbalmatch-challenge2', 'namespace': {'path': 'cakhandi95', 'kind': 'user', 'id': 1829385, 'full_path': 'cakhandi95', 'name': 'cakhandi95', 'parent_id': None}, 'path': 'footbalmatch-challenge2', 'description': 'FootbalMatch-Challenge2 \\r\\nDICODING PROJECT 2', 'ssh_url_to_repo': 'git@gitlab.com:cakhandi95/footbalmatch-challenge2.git', 'id': 8636429, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:50:57.535Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1b'), 'last_activity_at': '2018-10-01T02:50:57.535Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/hhabt/first', 'http_url_to_repo': 'https://gitlab.com/hhabt/first.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'first', 'name_with_namespace': 'KimHyunHee / first', 'path_with_namespace': 'hhabt/first', 'namespace': {'path': 'hhabt', 'kind': 'user', 'id': 3715044, 'full_path': 'hhabt', 'name': 'hhabt', 'parent_id': None}, 'path': 'first', 'description': 'first rep', 'ssh_url_to_repo': 'git@gitlab.com:hhabt/first.git', 'id': 8636342, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:46:37.654Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1c'), 'last_activity_at': '2018-10-01T02:46:37.654Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/frerly/fyhproject', 'http_url_to_repo': 'https://gitlab.com/frerly/fyhproject.git', 'readme_url': 'https://gitlab.com/frerly/fyhproject/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fyhproject', 'name_with_namespace': 'Frerly Hinojosa Aliaga / fyhproject', 'path_with_namespace': 'frerly/fyhproject', 'namespace': {'path': 'frerly', 'kind': 'user', 'id': 3714228, 'full_path': 'frerly', 'name': 'frerly', 'parent_id': None}, 'path': 'fyhproject', 'description': 'Sistema portable para pequeñas empresas', 'ssh_url_to_repo': 'git@gitlab.com:frerly/fyhproject.git', 'id': 8636299, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:40:55.368Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1d'), 'last_activity_at': '2018-10-01T02:40:55.368Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/arduinoenigma/fivebuttonpiano', 'http_url_to_repo': 'https://gitlab.com/arduinoenigma/fivebuttonpiano.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FiveButtonPiano', 'name_with_namespace': 'Arduino Enigma / FiveButtonPiano', 'path_with_namespace': 'arduinoenigma/fivebuttonpiano', 'namespace': {'path': 'arduinoenigma', 'kind': 'user', 'id': 3048876, 'full_path': 'arduinoenigma', 'name': 'arduinoenigma', 'parent_id': None}, 'path': 'fivebuttonpiano', 'description': 'A five button Arduino piano / synthesizer ', 'ssh_url_to_repo': 'git@gitlab.com:arduinoenigma/fivebuttonpiano.git', 'id': 8636284, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:37:57.510Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1e'), 'last_activity_at': '2018-10-01T04:09:54.915Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/Fshy/FshyBot', 'http_url_to_repo': 'https://gitlab.com/Fshy/FshyBot.git', 'readme_url': 'https://gitlab.com/Fshy/FshyBot/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FshyBot', 'name_with_namespace': 'Fshy / FshyBot', 'path_with_namespace': 'Fshy/FshyBot', 'namespace': {'path': 'Fshy', 'kind': 'user', 'id': 1473567, 'full_path': 'Fshy', 'name': 'Fshy', 'parent_id': None}, 'path': 'FshyBot', 'description': \"Meet 2B / Everyone's favourite videogame waifu, now in the form of a Discord.js S̷l̷a̷v̷e̷ Bot.\", 'ssh_url_to_repo': 'git@gitlab.com:Fshy/FshyBot.git', 'id': 8636175, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:22:21.859Z', '_id': ObjectId('5bb2aa0de618f5020013dd1f'), 'last_activity_at': '2018-10-01T02:22:21.859Z'}\n", + "{'star_count': 0, 'web_url': 'https://gitlab.com/acidburn0-zzz/foxaur', 'http_url_to_repo': 'https://gitlab.com/acidburn0-zzz/foxaur.git', 'readme_url': 'https://gitlab.com/acidburn0-zzz/foxaur/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FoxAUR', 'name_with_namespace': 'Jooly Evans / FoxAUR', 'path_with_namespace': 'acidburn0-zzz/foxaur', 'namespace': {'path': 'acidburn0-zzz', 'kind': 'user', 'id': 147322, 'full_path': 'acidburn0-zzz', 'name': 'acidburn0-zzz', 'parent_id': None}, 'path': 'foxaur', 'description': 'Pacman wrapper and AUR helper to keep it simple.', 'ssh_url_to_repo': 'git@gitlab.com:acidburn0-zzz/foxaur.git', 'id': 8636094, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:10:57.052Z', '_id': ObjectId('5bb2aa0de618f5020013dd20'), 'last_activity_at': '2018-10-01T02:10:57.052Z'}\n" ] } ], @@ -54,9 +102,9 @@ "\n", "def git_exists(url):\n", " r = requests.get(url)\n", - " print(r.ok, r.status_code)\n", " if r.ok and r.status_code == 200:\n", " return True\n", + " print(r.ok, r.status_code)\n", " return False\n", "\n", "# send queries and extract urls \n", @@ -135,7 +183,7 @@ " sys.stderr.write(url + ';' + str(e) + '\\n')\n", " \n", "#start retrieving \n", - "get(beginurl,coll)\n", + "#get(beginurl,coll)\n", "for doc in coll.find({}):\n", " print(doc)" ] From f4de4c2a8477586d2a8a19828784295b2d1ba1b1 Mon Sep 17 00:00:00 2001 From: Jerry Date: Mon, 1 Oct 2018 21:52:26 -0400 Subject: [PATCH 3/4] README Fixes --- README.md | 116 +++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/README.md b/README.md index 254493f..0bc7965 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,66 @@ -# MiniProject2: Discover a list of projects on sourceforge.net and gitlab.com +# MiniProject2: Discover a list of projects on SourceForge.net and GitLab.com -These two forges presente two different types of challeges to discovery. +These two forges present two different types of data discovery challenges. -SourceForge actively prevents discovery. SourceForge over ten years ago was he largest forge -but as it started losing its market share to other forges it started blocking project discovery. +SourceForge actively prevents discovery. Over ten years ago it was the largest forge +but as it started losing market share to other forges, they started blocking project discovery. GitLab, on the other hand, has an error-prone API that is highly unreliable. - -Discover at least 50 projects on each of the forges that have -names starting with the letter (case insensitive) in font of your name. -Please provide ipython notebook used to do the discovery. +## Part 1 + - Discover at least 50 projects on SourceForge and GitLab whose +names start with the letter (case insensitive) in front of your name in the list below. + - Provide the IPython notebook you used to discovery the data. You are free to use any method, including a list compiled by someone else, search on google search engine, etc. -but you do need to verify that the discovered projects do currently exist on these -forges by retrieving the url of the version control repository used by the project. - -Please do discovery using the googlecloud VM to avoid accidentally -triggereing blocking to others. - -``` -a;3PIV;pprovins;Provins IV, Preston -b;BrettBass13;bbass11;Bass, Brett Czech -c;CipherR9;gyj992;Johnson, Rojae Antonio -d;Colsarcol;cmawhinn;Mawhinney, Colin Joseph -e;EvanEzell;eezell3;Ezell, Evan Collin -f;MikeynJerry;jdunca51;Duncan, Jerry -g;Tasmia;trahman4;Rahman, Tasmia -h;awilki13;awilki13;Wilkinson, Alex Webb -i;bryanpacep1;jpace7;Pace, Jonathan Bryan -j;caiwjohn;cjohn3;John, Cai William -k;cflemmon;cflemmon;Flemmons, Cole -l;dbarry9;dbarry;Barry, Daniel Patrick -m;desai07;adesai6;Desai, Avie -n;gjones1911;gjones2;Jones, Gerald Leon -o;herronej;eherron5;Herron, Emily Joyce -p;hossain-rayhan;rhossai2;Hossain, Rayhan -q;jdong6;jdong6;Dong, Jeffrey Jing -r;jyu25utk;jyu25;Yu, Jinxiao -s;mkramer6;mkramer6;Kramer, Matthew S -t;mmahbub;mmahbub;Mahbub, Maria -u;nmansou4;nmansou4;Mansour, Nasib -v;nschwerz;nschwerz;Schwerzler, Nicolas Winfield William -w;rdabbs42;rdabbs1;Dabbs, Rosemary -x;saramsv;mousavi;Mousavicheshmehkaboodi, Sara -y;spaulsteinberg;ssteinb2;Steinberg, Samuel Paul -z;zol0;akarnauc;Karnauch, Andrey -a;zrandall;zrandall;Randall, Zachary Adams -b;lpassarella;lpassare;Passarella, Linsey Sara -c;tgoedecke;pgoedec1;Goedecke, Trish -d;ray830305;hchang13;Chang, Hsun Jui -e;ssravali;ssadhu2;Sadhu, Sri Ravali -f;diadoo;jpovlin;Povlin, John P -g;mander59;mander59;Anderson, Matt Mcguffee -h;iway1;iway1;Way, Isaac Caldwell -``` +but you do need to verify that the discovered projects currently exist on these +forges by retrieving the url of the version control repository used by the project. + +Please use the Google Cloud VM when discovering the project names to avoid accidentally +causing UTK to be blocked. + +| Letter | GitHub Username | NetID | Name | +|:-:|:-:|:-:|---| +| a | 3PIV | pprovins | Provins IV, Preston | +| b | BrettBass13 | bbass11 | Bass, Brett Czech | +| c | CipherR9 | gyj992 | Johnson, Rojae Antonio | +| d | Colsarcol | cmawhinn | Mawhinney, Colin Joseph | +| e | EvanEzell | eezell3 | Ezell, Evan Collin | +| f | MikeynJerry | jdunca51 | Duncan, Jerry | +| g | Tasmia | trahman4 | Rahman, Tasmia | +| h | awilki13 | awilki13 | Wilkinson, Alex Webb | +| i | bryanpacep1 | jpace7 | Pace, Jonathan Bryan | +| j | caiwjohn | cjohn3 | John, Cai William | +| k | cflemmon | cflemmon | Flemmons, Cole | +| l | dbarry9 | dbarry | Barry, Daniel Patrick | +| m | desai07 | adesai6 | Desai, Avie | +| n | gjones1911 | gjones2 | Jones, Gerald Leon | +| o | herronej | eherron5 | Herron, Emily Joyce | +| p | hossain-rayhan | rhossai2 | Hossain, Rayhan | +| q | jdong6 | jdong6 | Dong, Jeffrey Jing | +| r | jyu25utk | jyu25 | Yu, Jinxiao | +| s | mkramer6 | mkramer6 | Kramer, Matthew S | +| t | mmahbub | mmahbub | Mahbub, Maria | +| u | nmansou4 | nmansou4 | Mansour, Nasib | +| v | nschwerz | nschwerz | Schwerzler, Nicolas Winfield William | +| w | rdabbs42 | rdabbs1 | Dabbs, Rosemary | +| x | saramsv | mousavi | Mousavicheshmehkaboodi, Sara | +| y | spaulsteinberg | ssteinb2 | Steinberg, Samuel Paul | +| z | zol0 | akarnauc | Karnauch, Andrey | +| a | zrandall | zrandall | Randall, Zachary Adams | +| b | lpassarella | lpassare | Passarella, Linsey Sara | +| c | tgoedecke | pgoedec1 | Goedecke, Trish | +| d | ray830305 | hchang13 | Chang, Hsun Jui | +| e | ssravali | ssadhu2 | Sadhu, Sri Ravali | +| f | diadoo | jpovlin | Povlin, John P | +| g | mander59 | mander59 | Anderson, Matt Mcguffee | +| h | iway1 | iway1 | Way, Isaac Caldwell | ## GitLab discovery -GitLab provides [APIs](https://docs.gitlab.com/ee/api/) to retrieve project url. -Here is a sample code for collecting projects url (and stores data in mogodb): +GitLab provides [APIs](https://docs.gitlab.com/ee/api/) to retrieve project urls. +Here is sample code for collecting project urls (and storing data in mongodb): ``` import sys import re @@ -70,10 +70,10 @@ import time import datetime import requests -dbname = fdac18mp2 #please use this database -collname = glprj_yourutkid #please modify so you store data in your collection +dbname = "fdac18mp2" #please use this database +collname = "glprj_yourutkid" #please modify so you store data in your collection # beginning page index -begin = sys.argv[1] +begin = "0" client = pymongo.MongoClient() db = client[dbname] @@ -118,7 +118,7 @@ def get(url, coll): gleft = int(r.headers.get('RateLimit-Remaining')) lll = r.headers.get('Link') - t = r.text.encode('utf-8') + t = r.text array = json.loads(t) for el in array: @@ -139,7 +139,7 @@ def get(url, coll): return "got blocked", str(bginnum) if (r.ok): lll = r.headers.get('Link') - t = r.text.encode('utf-8') + t = r.text array1 = json.loads(t) for el in array1: coll.insert(el) @@ -162,4 +162,4 @@ def get(url, coll): get(beginurl,coll) ``` -Note that the parameters in the sample code are not optimal. Please feel free to tune them. This sample code is not robust enough to deal with various returned errors from query. You might need to investigate errors encountered individually. +Note that the parameters in the sample code are not optimal. Please feel free to tune them. This sample code is not robust enough to deal with various returned errors from query. You might need to investigate errors encountered individually. From 609b3484fe358a08bf0a490c04c7e870d758dab9 Mon Sep 17 00:00:00 2001 From: MikeynJerry Date: Tue, 2 Oct 2018 03:04:41 +0000 Subject: [PATCH 4/4] MiniProject2 Part 1 --- jdunca51.ipynb | 113 +++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 70 deletions(-) diff --git a/jdunca51.ipynb b/jdunca51.ipynb index e441117..d3a3149 100644 --- a/jdunca51.ipynb +++ b/jdunca51.ipynb @@ -2,66 +2,11 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'star_count': 0, 'web_url': 'https://gitlab.com/Nemzs/fora-soft-test-task', 'http_url_to_repo': 'https://gitlab.com/Nemzs/fora-soft-test-task.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fora-soft test task', 'name_with_namespace': 'Stas / Fora-soft test task', 'path_with_namespace': 'Nemzs/fora-soft-test-task', 'namespace': {'path': 'Nemzs', 'kind': 'user', 'id': 674604, 'full_path': 'Nemzs', 'name': 'Nemzs', 'parent_id': None}, 'path': 'fora-soft-test-task', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Nemzs/fora-soft-test-task.git', 'id': 8653949, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T22:52:30.661Z', '_id': ObjectId('5bb2a9bfe618f5020013dcef'), 'last_activity_at': '2018-10-01T22:52:30.661Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin', 'http_url_to_repo': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin.git', 'readme_url': 'https://gitlab.com/jaimeson4cesi/fix-missing-alt-tags-plugin/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fix-missing-alt-tags-plugin', 'name_with_namespace': 'Jaimeson Waugh / fix-missing-alt-tags-plugin', 'path_with_namespace': 'jaimeson4cesi/fix-missing-alt-tags-plugin', 'namespace': {'path': 'jaimeson4cesi', 'kind': 'user', 'id': 2361147, 'full_path': 'jaimeson4cesi', 'name': 'jaimeson4cesi', 'parent_id': None}, 'path': 'fix-missing-alt-tags-plugin', 'description': 'Allows one to check and automatically Fix Missing Alt Tags in posts.', 'ssh_url_to_repo': 'git@gitlab.com:jaimeson4cesi/fix-missing-alt-tags-plugin.git', 'id': 8653368, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T21:36:52.263Z', '_id': ObjectId('5bb2a9bfe618f5020013dcf0'), 'last_activity_at': '2018-10-01T21:36:52.263Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/arbazkhan971/Face-Detection-Using-Opencv', 'http_url_to_repo': 'https://gitlab.com/arbazkhan971/Face-Detection-Using-Opencv.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Face-Detection-Using-Opencv', 'name_with_namespace': 'arbazkhan971 / Face-Detection-Using-Opencv', 'path_with_namespace': 'arbazkhan971/Face-Detection-Using-Opencv', 'namespace': {'path': 'arbazkhan971', 'kind': 'user', 'id': 2990257, 'full_path': 'arbazkhan971', 'name': 'arbazkhan971', 'parent_id': None}, 'path': 'Face-Detection-Using-Opencv', 'description': 'Face detection using haar-cascade', 'ssh_url_to_repo': 'git@gitlab.com:arbazkhan971/Face-Detection-Using-Opencv.git', 'id': 8652898, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:55:54.126Z', '_id': ObjectId('5bb2a9bfe618f5020013dcf1'), 'last_activity_at': '2018-10-01T20:55:54.126Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/arbazkhan971/FunFacts', 'http_url_to_repo': 'https://gitlab.com/arbazkhan971/FunFacts.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FunFacts', 'name_with_namespace': 'arbazkhan971 / FunFacts', 'path_with_namespace': 'arbazkhan971/FunFacts', 'namespace': {'path': 'arbazkhan971', 'kind': 'user', 'id': 2990257, 'full_path': 'arbazkhan971', 'name': 'arbazkhan971', 'parent_id': None}, 'path': 'FunFacts', 'description': 'app that show different funfacts', 'ssh_url_to_repo': 'git@gitlab.com:arbazkhan971/FunFacts.git', 'id': 8652890, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:55:46.811Z', '_id': ObjectId('5bb2a9c4e618f5020013dcf2'), 'last_activity_at': '2018-10-01T20:55:46.811Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/YangZhou233/ffld-to-gromacs-topology', 'http_url_to_repo': 'https://gitlab.com/YangZhou233/ffld-to-gromacs-topology.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'ffld to gromacs topology', 'name_with_namespace': 'Yang Zhou / ffld to gromacs topology', 'path_with_namespace': 'YangZhou233/ffld-to-gromacs-topology', 'namespace': {'path': 'YangZhou233', 'kind': 'user', 'id': 2981873, 'full_path': 'YangZhou233', 'name': 'YangZhou233', 'parent_id': None}, 'path': 'ffld-to-gromacs-topology', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:YangZhou233/ffld-to-gromacs-topology.git', 'id': 8652420, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:20:09.620Z', '_id': ObjectId('5bb2a9c5e618f5020013dcf3'), 'last_activity_at': '2018-10-01T21:24:54.916Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/rodrigorila/FileTextAnalysis', 'http_url_to_repo': 'https://gitlab.com/rodrigorila/FileTextAnalysis.git', 'readme_url': 'https://gitlab.com/rodrigorila/FileTextAnalysis/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FileTextAnalysis', 'name_with_namespace': 'Rodrigo Salinas / FileTextAnalysis', 'path_with_namespace': 'rodrigorila/FileTextAnalysis', 'namespace': {'path': 'rodrigorila', 'kind': 'user', 'id': 3719979, 'full_path': 'rodrigorila', 'name': 'rodrigorila', 'parent_id': None}, 'path': 'FileTextAnalysis', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:rodrigorila/FileTextAnalysis.git', 'id': 8652328, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T20:11:39.478Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf4'), 'last_activity_at': '2018-10-01T20:11:39.478Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/KevSlashNull/f3-dtsniper', 'http_url_to_repo': 'https://gitlab.com/KevSlashNull/f3-dtsniper.git', 'readme_url': 'https://gitlab.com/KevSlashNull/f3-dtsniper/blob/master/readme.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'F3-dtSniper', 'name_with_namespace': 'Kev / F3-dtSniper', 'path_with_namespace': 'KevSlashNull/f3-dtsniper', 'namespace': {'path': 'KevSlashNull', 'kind': 'user', 'id': 2727495, 'full_path': 'KevSlashNull', 'name': 'KevSlashNull', 'parent_id': None}, 'path': 'f3-dtsniper', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:KevSlashNull/f3-dtsniper.git', 'id': 8652023, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:43:44.530Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf5'), 'last_activity_at': '2018-10-01T19:43:44.530Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/jonasN/financial-overview', 'http_url_to_repo': 'https://gitlab.com/jonasN/financial-overview.git', 'readme_url': 'https://gitlab.com/jonasN/financial-overview/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'financial-overview', 'name_with_namespace': 'Jonas Natzer / financial-overview', 'path_with_namespace': 'jonasN/financial-overview', 'namespace': {'path': 'jonasN', 'kind': 'user', 'id': 1001187, 'full_path': 'jonasN', 'name': 'jonasN', 'parent_id': None}, 'path': 'financial-overview', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:jonasN/financial-overview.git', 'id': 8651949, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:38:08.024Z', '_id': ObjectId('5bb2a9c9e618f5020013dcf6'), 'last_activity_at': '2018-10-01T19:38:08.024Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/ravindra2017bangalore/flash', 'http_url_to_repo': 'https://gitlab.com/ravindra2017bangalore/flash.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flash', 'name_with_namespace': 'Ravindra Singh / flash', 'path_with_namespace': 'ravindra2017bangalore/flash', 'namespace': {'path': 'ravindra2017bangalore', 'kind': 'user', 'id': 3569099, 'full_path': 'ravindra2017bangalore', 'name': 'ravindra2017bangalore', 'parent_id': None}, 'path': 'flash', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:ravindra2017bangalore/flash.git', 'id': 8651420, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T19:00:00.690Z', '_id': ObjectId('5bb2a9cee618f5020013dcf7'), 'last_activity_at': '2018-10-01T19:00:00.690Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/memborg/fuzzy_time', 'http_url_to_repo': 'https://gitlab.com/memborg/fuzzy_time.git', 'readme_url': 'https://gitlab.com/memborg/fuzzy_time/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fuzzy_time', 'name_with_namespace': 'Rune Memborg / fuzzy_time', 'path_with_namespace': 'memborg/fuzzy_time', 'namespace': {'path': 'memborg', 'kind': 'user', 'id': 571960, 'full_path': 'memborg', 'name': 'memborg', 'parent_id': None}, 'path': 'fuzzy_time', 'description': 'calculate fuzzy time is WASM based on input from JS', 'ssh_url_to_repo': 'git@gitlab.com:memborg/fuzzy_time.git', 'id': 8651088, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T18:33:52.735Z', '_id': ObjectId('5bb2a9cee618f5020013dcf8'), 'last_activity_at': '2018-10-01T18:33:52.735Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/codeneomatrix/fundamentos', 'http_url_to_repo': 'https://gitlab.com/codeneomatrix/fundamentos.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fundamentos', 'name_with_namespace': 'Josue acevedo maldonado / fundamentos', 'path_with_namespace': 'codeneomatrix/fundamentos', 'namespace': {'path': 'codeneomatrix', 'kind': 'user', 'id': 117121, 'full_path': 'codeneomatrix', 'name': 'codeneomatrix', 'parent_id': None}, 'path': 'fundamentos', 'description': 'aqui esta todo el codigo de la materia de fundamentos', 'ssh_url_to_repo': 'git@gitlab.com:codeneomatrix/fundamentos.git', 'id': 8650276, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:49:29.859Z', '_id': ObjectId('5bb2a9d3e618f5020013dcf9'), 'last_activity_at': '2018-10-01T17:49:29.859Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/Tortes24/freeproj', 'http_url_to_repo': 'https://gitlab.com/Tortes24/freeproj.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'FreeProj', 'name_with_namespace': 'Alexei / FreeProj', 'path_with_namespace': 'Tortes24/freeproj', 'namespace': {'path': 'Tortes24', 'kind': 'user', 'id': 3699238, 'full_path': 'Tortes24', 'name': 'Tortes24', 'parent_id': None}, 'path': 'freeproj', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Tortes24/freeproj.git', 'id': 8650117, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:37:13.280Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfa'), 'last_activity_at': '2018-10-01T17:37:13.280Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/dolgiy_nykolay/forum', 'http_url_to_repo': 'https://gitlab.com/dolgiy_nykolay/forum.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'Forum', 'name_with_namespace': 'Nykolay / Forum', 'path_with_namespace': 'dolgiy_nykolay/forum', 'namespace': {'path': 'dolgiy_nykolay', 'kind': 'user', 'id': 2117118, 'full_path': 'dolgiy_nykolay', 'name': 'dolgiy_nykolay', 'parent_id': None}, 'path': 'forum', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:dolgiy_nykolay/forum.git', 'id': 8650067, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:33:24.176Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfb'), 'last_activity_at': '2018-10-01T17:33:24.176Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/ehorvat-faraday/faraday_test4', 'http_url_to_repo': 'https://gitlab.com/ehorvat-faraday/faraday_test4.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'faraday_test4', 'name_with_namespace': 'Eric Horvat / faraday_test4', 'path_with_namespace': 'ehorvat-faraday/faraday_test4', 'namespace': {'path': 'ehorvat-faraday', 'kind': 'user', 'id': 3488195, 'full_path': 'ehorvat-faraday', 'name': 'ehorvat-faraday', 'parent_id': None}, 'path': 'faraday_test4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:ehorvat-faraday/faraday_test4.git', 'id': 8650043, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T17:31:10.566Z', '_id': ObjectId('5bb2a9d4e618f5020013dcfc'), 'last_activity_at': '2018-10-01T19:31:49.659Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/JohnWeeks1/first_test', 'http_url_to_repo': 'https://gitlab.com/JohnWeeks1/first_test.git', 'readme_url': 'https://gitlab.com/JohnWeeks1/first_test/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'first_test', 'name_with_namespace': 'Jonathan Weeks / first_test', 'path_with_namespace': 'JohnWeeks1/first_test', 'namespace': {'path': 'JohnWeeks1', 'kind': 'user', 'id': 3720244, 'full_path': 'JohnWeeks1', 'name': 'JohnWeeks1', 'parent_id': None}, 'path': 'first_test', 'description': 'This is a test', 'ssh_url_to_repo': 'git@gitlab.com:JohnWeeks1/first_test.git', 'id': 8648592, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T15:52:54.271Z', '_id': ObjectId('5bb2a9d9e618f5020013dcfd'), 'last_activity_at': '2018-10-01T15:52:54.271Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/k.bhanuprakash/flipkart', 'http_url_to_repo': 'https://gitlab.com/k.bhanuprakash/flipkart.git', 'readme_url': 'https://gitlab.com/k.bhanuprakash/flipkart/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flipkart', 'name_with_namespace': 'bhanuprakash / flipkart', 'path_with_namespace': 'k.bhanuprakash/flipkart', 'namespace': {'path': 'k.bhanuprakash', 'kind': 'user', 'id': 3720066, 'full_path': 'k.bhanuprakash', 'name': 'k.bhanuprakash', 'parent_id': None}, 'path': 'flipkart', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:k.bhanuprakash/flipkart.git', 'id': 8648289, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T15:31:20.585Z', '_id': ObjectId('5bb2a9dee618f5020013dcfe'), 'last_activity_at': '2018-10-01T15:31:20.585Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/SkywinOff/Facebook-Sidebar', 'http_url_to_repo': 'https://gitlab.com/SkywinOff/Facebook-Sidebar.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Facebook-Sidebar', 'name_with_namespace': 'Skywin / Facebook-Sidebar', 'path_with_namespace': 'SkywinOff/Facebook-Sidebar', 'namespace': {'path': 'SkywinOff', 'kind': 'user', 'id': 3692047, 'full_path': 'SkywinOff', 'name': 'SkywinOff', 'parent_id': None}, 'path': 'Facebook-Sidebar', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:SkywinOff/Facebook-Sidebar.git', 'id': 8647307, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T14:55:16.124Z', '_id': ObjectId('5bb2a9dee618f5020013dcff'), 'last_activity_at': '2018-10-01T14:55:16.124Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/mutiara.ayun19/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/mutiara.ayun19/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'feature/initial', 'forge': 'gitlab', 'name': 'FE Sesi 4', 'name_with_namespace': \"Mutiara a'yun / FE Sesi 4\", 'path_with_namespace': 'mutiara.ayun19/fe-sesi-4', 'namespace': {'path': 'mutiara.ayun19', 'kind': 'user', 'id': 3673200, 'full_path': 'mutiara.ayun19', 'name': 'mutiara.ayun19', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mutiara.ayun19/fe-sesi-4.git', 'id': 8646349, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:59.928Z', '_id': ObjectId('5bb2a9e2e618f5020013dd00'), 'last_activity_at': '2018-10-01T13:54:59.928Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/monikadv/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/monikadv/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fe-sesi-4', 'name_with_namespace': 'Lasea Monika / fe-sesi-4', 'path_with_namespace': 'monikadv/fe-sesi-4', 'namespace': {'path': 'monikadv', 'kind': 'user', 'id': 3673220, 'full_path': 'monikadv', 'name': 'monikadv', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': 'Belajar CSS sesi 4 ', 'ssh_url_to_repo': 'git@gitlab.com:monikadv/fe-sesi-4.git', 'id': 8646348, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:58.741Z', '_id': ObjectId('5bb2a9e2e618f5020013dd01'), 'last_activity_at': '2018-10-01T13:54:58.741Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/mars_/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/mars_/fe-sesi-4.git', 'readme_url': 'https://gitlab.com/mars_/fe-sesi-4/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FE Sesi 4', 'name_with_namespace': 'Mars Santoso / FE Sesi 4', 'path_with_namespace': 'mars_/fe-sesi-4', 'namespace': {'path': 'mars_', 'kind': 'user', 'id': 835133, 'full_path': 'mars_', 'name': 'mars_', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mars_/fe-sesi-4.git', 'id': 8646347, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:53.673Z', '_id': ObjectId('5bb2a9e2e618f5020013dd02'), 'last_activity_at': '2018-10-01T15:14:08.808Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/ekanova/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/ekanova/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fe-sesi-4', 'name_with_namespace': 'Eka Nova / fe-sesi-4', 'path_with_namespace': 'ekanova/fe-sesi-4', 'namespace': {'path': 'ekanova', 'kind': 'user', 'id': 3673212, 'full_path': 'ekanova', 'name': 'ekanova', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': 'Studying CSS.', 'ssh_url_to_repo': 'git@gitlab.com:ekanova/fe-sesi-4.git', 'id': 8646332, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:54:20.269Z', '_id': ObjectId('5bb2a9e3e618f5020013dd03'), 'last_activity_at': '2018-10-01T13:54:20.269Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/aamrein/flat-availability-client', 'http_url_to_repo': 'https://gitlab.com/aamrein/flat-availability-client.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'flat availability client', 'name_with_namespace': 'Andreas Amrein / flat availability client', 'path_with_namespace': 'aamrein/flat-availability-client', 'namespace': {'path': 'aamrein', 'kind': 'user', 'id': 3719109, 'full_path': 'aamrein', 'name': 'aamrein', 'parent_id': None}, 'path': 'flat-availability-client', 'description': 'Receives messages from a server with availability information about some specific flats.\\r\\nMade for a good friend and to test ionic framework.', 'ssh_url_to_repo': 'git@gitlab.com:aamrein/flat-availability-client.git', 'id': 8646116, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:42:54.197Z', '_id': ObjectId('5bb2a9e3e618f5020013dd04'), 'last_activity_at': '2018-10-01T13:42:54.197Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/Roni691986/flightsapp', 'http_url_to_repo': 'https://gitlab.com/Roni691986/flightsapp.git', 'readme_url': 'https://gitlab.com/Roni691986/flightsapp/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FlightsApp', 'name_with_namespace': 'Roni / FlightsApp', 'path_with_namespace': 'Roni691986/flightsapp', 'namespace': {'path': 'Roni691986', 'kind': 'user', 'id': 3176296, 'full_path': 'Roni691986', 'name': 'Roni691986', 'parent_id': None}, 'path': 'flightsapp', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:Roni691986/flightsapp.git', 'id': 8645863, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:31:06.571Z', '_id': ObjectId('5bb2a9e3e618f5020013dd05'), 'last_activity_at': '2018-10-01T13:31:06.571Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/zhujinglei/fakeproject', 'http_url_to_repo': 'https://gitlab.com/zhujinglei/fakeproject.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FAKEPROJECT', 'name_with_namespace': 'jingleizhu / FAKEPROJECT', 'path_with_namespace': 'zhujinglei/fakeproject', 'namespace': {'path': 'zhujinglei', 'kind': 'user', 'id': 3690314, 'full_path': 'zhujinglei', 'name': 'zhujinglei', 'parent_id': None}, 'path': 'fakeproject', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:zhujinglei/fakeproject.git', 'id': 8645852, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T13:29:55.692Z', '_id': ObjectId('5bb2a9e4e618f5020013dd06'), 'last_activity_at': '2018-10-01T13:29:55.692Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/arighi/fe-sesi-4', 'http_url_to_repo': 'https://gitlab.com/arighi/fe-sesi-4.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fe Sesi 4', 'name_with_namespace': 'ari ghi / Fe Sesi 4', 'path_with_namespace': 'arighi/fe-sesi-4', 'namespace': {'path': 'arighi', 'kind': 'user', 'id': 3673201, 'full_path': 'arighi', 'name': 'arighi', 'parent_id': None}, 'path': 'fe-sesi-4', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:arighi/fe-sesi-4.git', 'id': 8645281, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:57:50.018Z', '_id': ObjectId('5bb2a9e8e618f5020013dd07'), 'last_activity_at': '2018-10-01T13:58:22.253Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/kratos500/feelslikehomealready', 'http_url_to_repo': 'https://gitlab.com/kratos500/feelslikehomealready.git', 'readme_url': 'https://gitlab.com/kratos500/feelslikehomealready/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FeelsLikeHomeAlready', 'name_with_namespace': 'Manu Araujo / FeelsLikeHomeAlready', 'path_with_namespace': 'kratos500/feelslikehomealready', 'namespace': {'path': 'kratos500', 'kind': 'user', 'id': 2689543, 'full_path': 'kratos500', 'name': 'kratos500', 'parent_id': None}, 'path': 'feelslikehomealready', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:kratos500/feelslikehomealready.git', 'id': 8644846, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:36:25.222Z', '_id': ObjectId('5bb2a9e8e618f5020013dd08'), 'last_activity_at': '2018-10-01T12:36:25.222Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/cenacle-devops/f7820e6060304af98a42a5a2a45852ad', 'http_url_to_repo': 'https://gitlab.com/cenacle-devops/f7820e6060304af98a42a5a2a45852ad.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'f7820e6060304af98a42a5a2a45852ad', 'name_with_namespace': 'devops / f7820e6060304af98a42a5a2a45852ad', 'path_with_namespace': 'cenacle-devops/f7820e6060304af98a42a5a2a45852ad', 'namespace': {'path': 'cenacle-devops', 'kind': 'user', 'id': 3507954, 'full_path': 'cenacle-devops', 'name': 'cenacle-devops', 'parent_id': None}, 'path': 'f7820e6060304af98a42a5a2a45852ad', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:cenacle-devops/f7820e6060304af98a42a5a2a45852ad.git', 'id': 8644398, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T12:11:15.465Z', '_id': ObjectId('5bb2a9ede618f5020013dd09'), 'last_activity_at': '2018-10-01T12:11:15.465Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/Rendyindo/FurAPI', 'http_url_to_repo': 'https://gitlab.com/Rendyindo/FurAPI.git', 'readme_url': 'https://gitlab.com/Rendyindo/FurAPI/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FurAPI', 'name_with_namespace': 'Rendy Arya Kemal / FurAPI', 'path_with_namespace': 'Rendyindo/FurAPI', 'namespace': {'path': 'Rendyindo', 'kind': 'user', 'id': 3021050, 'full_path': 'Rendyindo', 'name': 'Rendyindo', 'parent_id': None}, 'path': 'FurAPI', 'description': 'FurAffinity scraper, turns into an API.', 'ssh_url_to_repo': 'git@gitlab.com:Rendyindo/FurAPI.git', 'id': 8643621, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:38:08.346Z', '_id': ObjectId('5bb2a9ede618f5020013dd0a'), 'last_activity_at': '2018-10-01T11:38:08.346Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/timtizio/framework-files-exchange', 'http_url_to_repo': 'https://gitlab.com/timtizio/framework-files-exchange.git', 'readme_url': 'https://gitlab.com/timtizio/framework-files-exchange/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Framework Files Exchange', 'name_with_namespace': 'Timothé Tizio-Menut / Framework Files Exchange', 'path_with_namespace': 'timtizio/framework-files-exchange', 'namespace': {'path': 'timtizio', 'kind': 'user', 'id': 1739320, 'full_path': 'timtizio', 'name': 'timtizio', 'parent_id': None}, 'path': 'framework-files-exchange', 'description': 'Framework PHP permettant de mettre en place simplement une application de partage de fichiers. \\r\\nPHP framework allowing to easily set up an files exchange platform.', 'ssh_url_to_repo': 'git@gitlab.com:timtizio/framework-files-exchange.git', 'id': 8643481, 'tag_list': ['PHP', 'files', 'framework'], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:28:33.541Z', '_id': ObjectId('5bb2a9ede618f5020013dd0b'), 'last_activity_at': '2018-10-01T15:04:38.082Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/QuietBf/firstproject', 'http_url_to_repo': 'https://gitlab.com/QuietBf/firstproject.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'FirstProject', 'name_with_namespace': 'Dary / FirstProject', 'path_with_namespace': 'QuietBf/firstproject', 'namespace': {'path': 'QuietBf', 'kind': 'user', 'id': 3717890, 'full_path': 'QuietBf', 'name': 'QuietBf', 'parent_id': None}, 'path': 'firstproject', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:QuietBf/firstproject.git', 'id': 8643109, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T11:11:06.224Z', '_id': ObjectId('5bb2a9eee618f5020013dd0c'), 'last_activity_at': '2018-10-01T11:11:06.224Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/Palplos/fgcfgcf', 'http_url_to_repo': 'https://gitlab.com/Palplos/fgcfgcf.git', 'readme_url': 'https://gitlab.com/Palplos/fgcfgcf/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fgcfgcf', 'name_with_namespace': 'Flecheau Bastien / fgcfgcf', 'path_with_namespace': 'Palplos/fgcfgcf', 'namespace': {'path': 'Palplos', 'kind': 'user', 'id': 3717592, 'full_path': 'Palplos', 'name': 'Palplos', 'parent_id': None}, 'path': 'fgcfgcf', 'description': 'fgfdfg', 'ssh_url_to_repo': 'git@gitlab.com:Palplos/fgcfgcf.git', 'id': 8642056, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T10:34:44.031Z', '_id': ObjectId('5bb2a9f2e618f5020013dd0d'), 'last_activity_at': '2018-10-01T10:34:44.031Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/baldevp2/firebase-crud', 'http_url_to_repo': 'https://gitlab.com/baldevp2/firebase-crud.git', 'readme_url': 'https://gitlab.com/baldevp2/firebase-crud/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'firebase-crud', 'name_with_namespace': 'baldev parmar / firebase-crud', 'path_with_namespace': 'baldevp2/firebase-crud', 'namespace': {'path': 'baldevp2', 'kind': 'user', 'id': 3702820, 'full_path': 'baldevp2', 'name': 'baldevp2', 'parent_id': None}, 'path': 'firebase-crud', 'description': 'firebase-crud', 'ssh_url_to_repo': 'git@gitlab.com:baldevp2/firebase-crud.git', 'id': 8641319, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T09:54:58.458Z', '_id': ObjectId('5bb2a9f2e618f5020013dd0e'), 'last_activity_at': '2018-10-01T09:54:58.458Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/cranebytes/fuglu', 'http_url_to_repo': 'https://gitlab.com/cranebytes/fuglu.git', 'readme_url': 'https://gitlab.com/cranebytes/fuglu/blob/master/README.rst', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fuglu', 'name_with_namespace': 'Florian Pelgrim / fuglu', 'path_with_namespace': 'cranebytes/fuglu', 'namespace': {'path': 'cranebytes', 'kind': 'user', 'id': 3598185, 'full_path': 'cranebytes', 'name': 'cranebytes', 'parent_id': None}, 'path': 'fuglu', 'description': 'A mail content scanner for postfix written in python', 'ssh_url_to_repo': 'git@gitlab.com:cranebytes/fuglu.git', 'id': 8640053, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T08:40:25.366Z', '_id': ObjectId('5bb2a9f7e618f5020013dd0f'), 'last_activity_at': '2018-10-01T12:14:55.871Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/PricesAmy/fetch', 'http_url_to_repo': 'https://gitlab.com/PricesAmy/fetch.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fetch', 'name_with_namespace': 'Amy / Fetch', 'path_with_namespace': 'PricesAmy/fetch', 'namespace': {'path': 'PricesAmy', 'kind': 'user', 'id': 2596272, 'full_path': 'PricesAmy', 'name': 'PricesAmy', 'parent_id': None}, 'path': 'fetch', 'description': 'async/await:异步神器来封装接口请求文件fetch.js\\r\\n\\r\\n\\r\\n在前后端分离的项目开发中,前端人员如果要通过接口获取后端数据时,我们一般会独立封装自己的接口异步请求方法,以便在整个项目中都能够轻松的进行引用;', 'ssh_url_to_repo': 'git@gitlab.com:PricesAmy/fetch.git', 'id': 8639329, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T08:06:47.593Z', '_id': ObjectId('5bb2a9fbe618f5020013dd10'), 'last_activity_at': '2018-10-01T08:06:47.593Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/ZXPAY/Farm_Robot', 'http_url_to_repo': 'https://gitlab.com/ZXPAY/Farm_Robot.git', 'readme_url': 'https://gitlab.com/ZXPAY/Farm_Robot/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Farm_Robot', 'name_with_namespace': 'Guillaume Danny Deng / Farm_Robot', 'path_with_namespace': 'ZXPAY/Farm_Robot', 'namespace': {'path': 'ZXPAY', 'kind': 'user', 'id': 3716380, 'full_path': 'ZXPAY', 'name': 'ZXPAY', 'parent_id': None}, 'path': 'Farm_Robot', 'description': None, 'ssh_url_to_repo': 'git@gitlab.com:ZXPAY/Farm_Robot.git', 'id': 8639170, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T07:54:55.617Z', '_id': ObjectId('5bb2a9fbe618f5020013dd11'), 'last_activity_at': '2018-10-01T07:54:55.617Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map', 'http_url_to_repo': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map.git', 'readme_url': 'https://gitlab.com/isemaj/fcc-visualize-choropleth-map/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fcc-visualize-choropleth-map', 'name_with_namespace': 'James Itum / fcc-visualize-choropleth-map', 'path_with_namespace': 'isemaj/fcc-visualize-choropleth-map', 'namespace': {'path': 'isemaj', 'kind': 'user', 'id': 3152491, 'full_path': 'isemaj', 'name': 'isemaj', 'parent_id': None}, 'path': 'fcc-visualize-choropleth-map', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:isemaj/fcc-visualize-choropleth-map.git', 'id': 8639101, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T07:50:26.171Z', '_id': ObjectId('5bb2a9fce618f5020013dd12'), 'last_activity_at': '2018-10-01T22:12:12.188Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/powq2018/floating_window_demo', 'http_url_to_repo': 'https://gitlab.com/powq2018/floating_window_demo.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'floating_window_demo', 'name_with_namespace': 'AdamChen / floating_window_demo', 'path_with_namespace': 'powq2018/floating_window_demo', 'namespace': {'path': 'powq2018', 'kind': 'user', 'id': 2984288, 'full_path': 'powq2018', 'name': 'powq2018', 'parent_id': None}, 'path': 'floating_window_demo', 'description': 'The floating window design in android 6.0 or later version. It would need the permission android.permission.SYSTEM_ALERT_WINDOW. In this demo I use the JobIntentService to do the relative floating window mechanism. For the JobIntentService it would need permission android.permission.WAKE_LOCK and add the android:permission=\"android.permission.BIND_JOB_SERVICE\" in the service component.', 'ssh_url_to_repo': 'git@gitlab.com:powq2018/floating_window_demo.git', 'id': 8638231, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:46:40.604Z', '_id': ObjectId('5bb2aa01e618f5020013dd13'), 'last_activity_at': '2018-10-01T06:46:40.604Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/runfit/frontend', 'http_url_to_repo': 'https://gitlab.com/runfit/frontend.git', 'readme_url': 'https://gitlab.com/runfit/frontend/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'frontend', 'name_with_namespace': 'ru12dd3412 / frontend', 'path_with_namespace': 'runfit/frontend', 'namespace': {'path': 'runfit', 'kind': 'group', 'id': 3715905, 'full_path': 'runfit', 'name': 'ru12dd3412', 'parent_id': None}, 'path': 'frontend', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:runfit/frontend.git', 'id': 8638176, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:41:13.316Z', '_id': ObjectId('5bb2aa01e618f5020013dd14'), 'last_activity_at': '2018-10-01T18:04:50.855Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica', 'http_url_to_repo': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica.git', 'readme_url': 'https://gitlab.com/francescogallogit/fondamenti-di-informatica/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Fondamenti di Informatica', 'name_with_namespace': 'Francesco Gallo / Fondamenti di Informatica', 'path_with_namespace': 'francescogallogit/fondamenti-di-informatica', 'namespace': {'path': 'francescogallogit', 'kind': 'user', 'id': 3325443, 'full_path': 'francescogallogit', 'name': 'francescogallogit', 'parent_id': None}, 'path': 'fondamenti-di-informatica', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:francescogallogit/fondamenti-di-informatica.git', 'id': 8637898, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T06:15:28.954Z', '_id': ObjectId('5bb2aa02e618f5020013dd15'), 'last_activity_at': '2018-10-01T07:56:50.852Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/jkimmeyer/faker-js', 'http_url_to_repo': 'https://gitlab.com/jkimmeyer/faker-js.git', 'readme_url': 'https://gitlab.com/jkimmeyer/faker-js/blob/master/Readme.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'faker-js', 'name_with_namespace': 'Johannes Kimmeyer / faker-js', 'path_with_namespace': 'jkimmeyer/faker-js', 'namespace': {'path': 'jkimmeyer', 'kind': 'user', 'id': 1970444, 'full_path': 'jkimmeyer', 'name': 'jkimmeyer', 'parent_id': None}, 'path': 'faker-js', 'description': 'generate massive amounts of fake data in Node.js and the browser', 'ssh_url_to_repo': 'git@gitlab.com:jkimmeyer/faker-js.git', 'id': 8637895, 'tag_list': [], 'forks_count': 0, 'avatar_url': 'https://gitlab.com/jkimmeyer/faker-js/avatar', 'created_at': '2018-10-01T06:15:06.040Z', '_id': ObjectId('5bb2aa02e618f5020013dd16'), 'last_activity_at': '2018-10-01T06:15:06.040Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/anders-b/flight-planner', 'http_url_to_repo': 'https://gitlab.com/anders-b/flight-planner.git', 'readme_url': 'https://gitlab.com/anders-b/flight-planner/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'Flight planner', 'name_with_namespace': 'Anders B / Flight planner', 'path_with_namespace': 'anders-b/flight-planner', 'namespace': {'path': 'anders-b', 'kind': 'user', 'id': 3715699, 'full_path': 'anders-b', 'name': 'anders-b', 'parent_id': None}, 'path': 'flight-planner', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:anders-b/flight-planner.git', 'id': 8637699, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T05:55:26.307Z', '_id': ObjectId('5bb2aa02e618f5020013dd17'), 'last_activity_at': '2018-10-01T05:55:26.307Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/mh_yuan/first_project_for_gitlab', 'http_url_to_repo': 'https://gitlab.com/mh_yuan/first_project_for_gitlab.git', 'readme_url': None, 'default_branch': None, 'forge': 'gitlab', 'name': 'first_project_for_gitlab', 'name_with_namespace': 'mhyuan / first_project_for_gitlab', 'path_with_namespace': 'mh_yuan/first_project_for_gitlab', 'namespace': {'path': 'mh_yuan', 'kind': 'user', 'id': 3715399, 'full_path': 'mh_yuan', 'name': 'mh_yuan', 'parent_id': None}, 'path': 'first_project_for_gitlab', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:mh_yuan/first_project_for_gitlab.git', 'id': 8637121, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T04:32:46.877Z', '_id': ObjectId('5bb2aa07e618f5020013dd18'), 'last_activity_at': '2018-10-01T04:32:46.877Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk', 'http_url_to_repo': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk.git', 'readme_url': 'https://gitlab.com/slash28cu/facebook-php-ads-sdk/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'facebook-php-ads-sdk', 'name_with_namespace': 'Jorge Garcia / facebook-php-ads-sdk', 'path_with_namespace': 'slash28cu/facebook-php-ads-sdk', 'namespace': {'path': 'slash28cu', 'kind': 'user', 'id': 3715186, 'full_path': 'slash28cu', 'name': 'slash28cu', 'parent_id': None}, 'path': 'facebook-php-ads-sdk', 'description': 'An SDK built to facilitate application development for Facebook Ads API.', 'ssh_url_to_repo': 'git@gitlab.com:slash28cu/facebook-php-ads-sdk.git', 'id': 8636946, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T04:07:42.090Z', '_id': ObjectId('5bb2aa07e618f5020013dd19'), 'last_activity_at': '2018-10-01T04:07:42.090Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/silviopd-platzi/fundamentos-docker', 'http_url_to_repo': 'https://gitlab.com/silviopd-platzi/fundamentos-docker.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fundamentos-docker', 'name_with_namespace': 'platzi / fundamentos-docker', 'path_with_namespace': 'silviopd-platzi/fundamentos-docker', 'namespace': {'path': 'silviopd-platzi', 'kind': 'group', 'id': 2952979, 'full_path': 'silviopd-platzi', 'name': 'platzi', 'parent_id': None}, 'path': 'fundamentos-docker', 'description': '', 'ssh_url_to_repo': 'git@gitlab.com:silviopd-platzi/fundamentos-docker.git', 'id': 8636748, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T03:39:00.021Z', '_id': ObjectId('5bb2aa07e618f5020013dd1a'), 'last_activity_at': '2018-10-01T21:31:55.344Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2', 'http_url_to_repo': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2.git', 'readme_url': 'https://gitlab.com/cakhandi95/footbalmatch-challenge2/blob/master/README.Md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FootbalMatch-Challenge2', 'name_with_namespace': 'HANDIKA DWIPUTRA / FootbalMatch-Challenge2', 'path_with_namespace': 'cakhandi95/footbalmatch-challenge2', 'namespace': {'path': 'cakhandi95', 'kind': 'user', 'id': 1829385, 'full_path': 'cakhandi95', 'name': 'cakhandi95', 'parent_id': None}, 'path': 'footbalmatch-challenge2', 'description': 'FootbalMatch-Challenge2 \\r\\nDICODING PROJECT 2', 'ssh_url_to_repo': 'git@gitlab.com:cakhandi95/footbalmatch-challenge2.git', 'id': 8636429, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:50:57.535Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1b'), 'last_activity_at': '2018-10-01T02:50:57.535Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/hhabt/first', 'http_url_to_repo': 'https://gitlab.com/hhabt/first.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'first', 'name_with_namespace': 'KimHyunHee / first', 'path_with_namespace': 'hhabt/first', 'namespace': {'path': 'hhabt', 'kind': 'user', 'id': 3715044, 'full_path': 'hhabt', 'name': 'hhabt', 'parent_id': None}, 'path': 'first', 'description': 'first rep', 'ssh_url_to_repo': 'git@gitlab.com:hhabt/first.git', 'id': 8636342, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:46:37.654Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1c'), 'last_activity_at': '2018-10-01T02:46:37.654Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/frerly/fyhproject', 'http_url_to_repo': 'https://gitlab.com/frerly/fyhproject.git', 'readme_url': 'https://gitlab.com/frerly/fyhproject/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'fyhproject', 'name_with_namespace': 'Frerly Hinojosa Aliaga / fyhproject', 'path_with_namespace': 'frerly/fyhproject', 'namespace': {'path': 'frerly', 'kind': 'user', 'id': 3714228, 'full_path': 'frerly', 'name': 'frerly', 'parent_id': None}, 'path': 'fyhproject', 'description': 'Sistema portable para pequeñas empresas', 'ssh_url_to_repo': 'git@gitlab.com:frerly/fyhproject.git', 'id': 8636299, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:40:55.368Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1d'), 'last_activity_at': '2018-10-01T02:40:55.368Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/arduinoenigma/fivebuttonpiano', 'http_url_to_repo': 'https://gitlab.com/arduinoenigma/fivebuttonpiano.git', 'readme_url': None, 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FiveButtonPiano', 'name_with_namespace': 'Arduino Enigma / FiveButtonPiano', 'path_with_namespace': 'arduinoenigma/fivebuttonpiano', 'namespace': {'path': 'arduinoenigma', 'kind': 'user', 'id': 3048876, 'full_path': 'arduinoenigma', 'name': 'arduinoenigma', 'parent_id': None}, 'path': 'fivebuttonpiano', 'description': 'A five button Arduino piano / synthesizer ', 'ssh_url_to_repo': 'git@gitlab.com:arduinoenigma/fivebuttonpiano.git', 'id': 8636284, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:37:57.510Z', '_id': ObjectId('5bb2aa0ce618f5020013dd1e'), 'last_activity_at': '2018-10-01T04:09:54.915Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/Fshy/FshyBot', 'http_url_to_repo': 'https://gitlab.com/Fshy/FshyBot.git', 'readme_url': 'https://gitlab.com/Fshy/FshyBot/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FshyBot', 'name_with_namespace': 'Fshy / FshyBot', 'path_with_namespace': 'Fshy/FshyBot', 'namespace': {'path': 'Fshy', 'kind': 'user', 'id': 1473567, 'full_path': 'Fshy', 'name': 'Fshy', 'parent_id': None}, 'path': 'FshyBot', 'description': \"Meet 2B / Everyone's favourite videogame waifu, now in the form of a Discord.js S̷l̷a̷v̷e̷ Bot.\", 'ssh_url_to_repo': 'git@gitlab.com:Fshy/FshyBot.git', 'id': 8636175, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:22:21.859Z', '_id': ObjectId('5bb2aa0de618f5020013dd1f'), 'last_activity_at': '2018-10-01T02:22:21.859Z'}\n", - "{'star_count': 0, 'web_url': 'https://gitlab.com/acidburn0-zzz/foxaur', 'http_url_to_repo': 'https://gitlab.com/acidburn0-zzz/foxaur.git', 'readme_url': 'https://gitlab.com/acidburn0-zzz/foxaur/blob/master/README.md', 'default_branch': 'master', 'forge': 'gitlab', 'name': 'FoxAUR', 'name_with_namespace': 'Jooly Evans / FoxAUR', 'path_with_namespace': 'acidburn0-zzz/foxaur', 'namespace': {'path': 'acidburn0-zzz', 'kind': 'user', 'id': 147322, 'full_path': 'acidburn0-zzz', 'name': 'acidburn0-zzz', 'parent_id': None}, 'path': 'foxaur', 'description': 'Pacman wrapper and AUR helper to keep it simple.', 'ssh_url_to_repo': 'git@gitlab.com:acidburn0-zzz/foxaur.git', 'id': 8636094, 'tag_list': [], 'forks_count': 0, 'avatar_url': None, 'created_at': '2018-10-01T02:10:57.052Z', '_id': ObjectId('5bb2aa0de618f5020013dd20'), 'last_activity_at': '2018-10-01T02:10:57.052Z'}\n" - ] - } - ], + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], "source": [ "import sys\n", "import re\n", @@ -70,6 +15,7 @@ "import time\n", "import datetime\n", "import requests\n", + "from bs4 import BeautifulSoup\n", "\n", "dbname = \"fdac18mp2\" #please use this database\n", "collname = \"glprj_jdunca51\" #please modify so you store data in your collection\n", @@ -83,11 +29,14 @@ "coll = db[collname]\n", "\n", "\n", - "beginurl = \"https://gitlab.com/api/v4/projects?archived=false&membership=false&order_by=created_at&owned=false&page=\" + begin + \\\n", + "gitlab_url = \"https://gitlab.com/api/v4/projects?archived=false&membership=false&order_by=created_at&owned=false&page=\" + begin + \\\n", " \"&per_page=99&simple=false&sort=desc&starred=false&statistics=false&with_custom_attributes=false&with_issues_enabled=false&with_merge_requests_enabled=false\"\n", "\n", "gleft = 20\n", "\n", + "source_url = \"https://sourceforge.net/directory/?q=\" + my_char + \"&sort=name&page=\"\n", + "rest_url = \"https://sourceforge.net/rest/p/\"\n", + "\n", "header = {'per_page': 99}\n", "\n", "# check remaining query chances for rate-limit restriction\n", @@ -100,15 +49,39 @@ " time .sleep(60)\n", " return left\n", "\n", - "def git_exists(url):\n", + "def project_exists(url):\n", " r = requests.get(url)\n", - " if r.ok and r.status_code == 200:\n", + " if r.status_code == 200:\n", " return True\n", - " print(r.ok, r.status_code)\n", " return False\n", "\n", + "def get_source(url, coll, rest):\n", + " page = 1\n", + " project_count = 0\n", + " while True:\n", + " resp = requests.get(url + str(page))\n", + " text = resp.text\n", + " soup = BeautifulSoup(text, 'html.parser')\n", + " if re.search('No results found.', soup.get_text()):\n", + " return\n", + "\n", + " for link in soup.find_all(class_=\"project-icon\", href=True):\n", + " name = re.findall('/projects/([A-Za-z0-9\\-]*)', link.get('href'))\n", + " name = name[0] if name else None\n", + " if name is not None and name.lower().startswith(my_char):\n", + " resp = requests.get(rest + name)\n", + " if resp.status_code == 200:\n", + " info = json.loads(resp.text)\n", + " info['forge'] = 'sourceforge'\n", + " coll.insert_one(info)\n", + " project_count += 1\n", + " if project_count >= 50:\n", + " return\n", + " page += 1\n", + " return\n", + "\n", "# send queries and extract urls \n", - "def get(url, coll):\n", + "def get_gitlab(url, coll):\n", "\n", " global gleft\n", " global header\n", @@ -133,10 +106,9 @@ " \n", " for el in array:\n", " if el['name'].lower().startswith(my_char):\n", - " if git_exists(el['http_url_to_repo']):\n", + " if project_exists(el['http_url_to_repo']):\n", " project_count += 1\n", " el['forge'] = 'gitlab'\n", - " print(el['name'], el['web_url'], el['forge'], project_count)\n", " coll.insert_one(el)\n", " if project_count >= 50:\n", " return\n", @@ -160,10 +132,9 @@ " array1 = json.loads(t)\n", " for el in array1:\n", " if el['name'].lower().startswith(my_char):\n", - " if git_exists(el['http_url_to_repo']):\n", + " if project_exists(el['http_url_to_repo']):\n", " project_count += 1\n", " el['forge'] = 'gitlab'\n", - " print(el['name'], el['web_url'], el['forge'], project_count)\n", " coll.insert_one(el)\n", " if project_count >= 50:\n", " return\n", @@ -183,7 +154,9 @@ " sys.stderr.write(url + ';' + str(e) + '\\n')\n", " \n", "#start retrieving \n", - "#get(beginurl,coll)\n", + "get_gitlab(gitlab_url,coll)\n", + "get_source(source_url, coll, rest_url)\n", + "#print collected data\n", "for doc in coll.find({}):\n", " print(doc)" ]