{"action":"created","comment":{"url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/comments/42973481","id":42973481,"diff_hunk":"@@ -0,0 +1,235 @@\n+# -*- coding: utf-8 -*-\n+#\n+# This file is part of Invenio.\n+# Copyright (C) 2015 CERN.\n+#\n+# Invenio is free software; you can redistribute it and/or\n+# modify it under the terms of the GNU General Public License as\n+# published by the Free Software Foundation; either version 2 of the\n+# License, or (at your option) any later version.\n+#\n+# Invenio is distributed in the hope that it will be useful, but\n+# WITHOUT ANY WARRANTY; without even the implied warranty of\n+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+# General Public License for more details.\n+#\n+# You should have received a copy of the GNU General Public License\n+# along with Invenio; if not, write to the Free Software Foundation, Inc.,\n+# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.\n+#\n+# In applying this license, CERN does not waive the privileges and immunities\n+# granted to it by virtue of its status as an Intergovernmental Organization or\n+# submit itself to any jurisdiction.\n+\n+\"\"\"Invenio application factory.\"\"\"\n+\n+from __future__ import absolute_import, print_function\n+\n+import logging\n+import os.path\n+import sys\n+import warnings\n+\n+import click\n+import pkg_resources\n+from flask import Flask\n+from flask_cli import FlaskCLI, FlaskGroup\n+\n+from .cmd import startproject\n+\n+\n+def create_app_factory(app_name, conf_loader=None,\n+                       ext_entry_points=None, extensions=None,\n+                       bp_entry_points=None, blueprints=None,\n+                       wsgi_factory=None, **app_kwargs):\n+    \"\"\"Create a Flask application factory.\n+\n+    The application factory will load Flask extensions and blueprints specified\n+    using both entry points and directly in the arguments. Loading order of\n+    entry points are not guaranteed and can happen in any order.\n+\n+    :param app_name: Flask application name.\n+    :param conf_loader: Callable which will be invoked on application creation\n+        in order to load the Flask configuration. See example below.\n+    :param ext_entry_points: List of entry points, which specifies Flask\n+        extensions that will be initialized only by passing in the Flask\n+        application object\n+    :param extensions: List of Flask extensions that can be initialized only by\n+        passing in the Flask application object.\n+    :param bp_entry_points: List of entry points, which specifies Blueprints\n+        that will be registered on the Flask application.\n+    :param blueprints: List of Blueprints that will be registered on the\n+        Flask application.\n+    :param wsgi_factory: A callable that will be passed the Flask application\n+        object in order to overwrite the default WSGI application (e.g. to\n+        install ``DispatcherMiddleware``).\n+    :param app_kwargs: Keyword arguments passed to :py:meth:`base_app`.\n+\n+    Example of a configuration loader:\n+\n+    .. code-block:: python\n+\n+       def my_conf_loader(app, **kwargs):\n+           app.config.from_module('mysite.config')\n+           app.config.update(**kwargs)\n+\n+    Note that Invenio-Config provides a default configuration loader which is\n+    sufficient for most cases.\n+\n+    Example of a WSGI factory:\n+\n+    .. code-block:: python\n+\n+       def my_wsgi_factory(app):\n+           return DispatcherMiddleware(app.wsgi_app, {'/api': api_app})\n+\n+    \"\"\"\n+    def _create_app(**kwargs):\n+        app = base_app(app_name, **app_kwargs)\n+\n+        # Load configuration\n+        if conf_loader:\n+            conf_loader(app, **kwargs)\n+\n+        # Load application based on entrypoints.\n+        app_loader(\n+            app,\n+            entry_points=ext_entry_points,\n+            modules=extensions,\n+        )\n+\n+        # Load blueprints\n+        blueprint_loader(\n+            app,\n+            entry_points=bp_entry_points,\n+            modules=blueprints,\n+        )\n+\n+        # Replace WSGI application using factory if provided (e.g. to install\n+        # WSGI middleware).\n+        if wsgi_factory:\n+            app.wsgi_app = wsgi_factory(app)\n+\n+        return app\n+\n+    return _create_app\n+\n+\n+def create_cli(create_app=None):\n+    \"\"\"Create CLI for ``inveniomanage`` command.\n+\n+    :param create_app: Application factory.\n+    \"\"\"\n+    def create_cli_app(info):\n+        \"\"\"Application factory for CLI app.\n+\n+        Internal function for creating the CLI. When invoked via\n+        ``inveniomanage`` FLASK_APP must be set.\n+        \"\"\"\n+        if create_app is None:\n+            # Fallback to normal Flask behavior\n+            info.create_app = None\n+            app = info.load_app()\n+        else:\n+            app = create_app()\n+            if info.debug is not None:\n+                app.debug = info.debug\n+            return app\n+\n+    @click.group(cls=FlaskGroup, create_app=create_cli_app,\n+                 add_app_option=True)\n+    def cli(**params):\n+        \"\"\"Command Line Interface for Invenio.\"\"\"\n+        pass\n+\n+    # Add command for startin new Invenio instances.\n+    cli.add_command(startproject)\n+\n+    return cli\n+\n+\n+def app_loader(app, entry_points=None, modules=None):\n+    \"\"\"Default application loader.\n+\n+    :param entry_points: List of entry points providing to Flask extensions.\n+    :param modules: List of Flask extensions.\n+    \"\"\"\n+    _loader(lambda ext: ext(app), entry_points=entry_points, modules=modules)\n+\n+\n+def blueprint_loader(app, entry_points=None, modules=None):\n+    \"\"\"Default blueprint loader.\n+\n+    :param entry_points: List of entry points providing to Blueprints.\n+    :param modules: List of Blueprints.\n+    \"\"\"\n+    _loader(\n+        lambda bp: app.register_blueprint(bp),\n+        entry_points=entry_points, modules=modules)\n+\n+\n+def _loader(init_func, entry_points=None, modules=None):\n+    \"\"\"Generic loader.\n+\n+    Used to load and initialize entry points and modules using an custom\n+    initialization function.\n+    \"\"\"\n+    if entry_points:\n+        for entry_point in entry_points:\n+            for ep in pkg_resources.iter_entry_points(entry_point):\n+                init_func(ep.load())\n+    if modules:\n+        for m in modules:\n+            init_func(m)\n+\n+\n+def base_app(app_name, env_prefix='APP', instance_path=None,\n+             static_folder=None, static_url_path='/static',\n+             template_folder='templates'):\n+    \"\"\"Invenio base application factory.\"\"\"","path":"invenio_base/app.py","position":189,"original_position":189,"commit_id":"dc49b8fca3044b3ae4fe9d963e2a92163aa6fb34","original_commit_id":"dc49b8fca3044b3ae4fe9d963e2a92163aa6fb34","user":{"login":"nharraud","id":5708796,"avatar_url":"https://avatars.githubusercontent.com/u/5708796?v=3","gravatar_id":"","url":"https://api.github.com/users/nharraud","html_url":"https://github.com/nharraud","followers_url":"https://api.github.com/users/nharraud/followers","following_url":"https://api.github.com/users/nharraud/following{/other_user}","gists_url":"https://api.github.com/users/nharraud/gists{/gist_id}","starred_url":"https://api.github.com/users/nharraud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nharraud/subscriptions","organizations_url":"https://api.github.com/users/nharraud/orgs","repos_url":"https://api.github.com/users/nharraud/repos","events_url":"https://api.github.com/users/nharraud/events{/privacy}","received_events_url":"https://api.github.com/users/nharraud/received_events","type":"User","site_admin":false},"body":"Missing `:return:` in doc","created_at":"2015-10-26T09:46:04Z","updated_at":"2015-10-26T09:46:04Z","html_url":"https://github.com/inveniosoftware/invenio-base/pull/27#discussion_r42973481","pull_request_url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27","_links":{"self":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/comments/42973481"},"html":{"href":"https://github.com/inveniosoftware/invenio-base/pull/27#discussion_r42973481"},"pull_request":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27"}}},"pull_request":{"url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27","id":48331832,"html_url":"https://github.com/inveniosoftware/invenio-base/pull/27","diff_url":"https://github.com/inveniosoftware/invenio-base/pull/27.diff","patch_url":"https://github.com/inveniosoftware/invenio-base/pull/27.patch","issue_url":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/27","number":27,"state":"open","locked":false,"title":"global: major refactoring","user":{"login":"lnielsen","id":1698163,"avatar_url":"https://avatars.githubusercontent.com/u/1698163?v=3","gravatar_id":"","url":"https://api.github.com/users/lnielsen","html_url":"https://github.com/lnielsen","followers_url":"https://api.github.com/users/lnielsen/followers","following_url":"https://api.github.com/users/lnielsen/following{/other_user}","gists_url":"https://api.github.com/users/lnielsen/gists{/gist_id}","starred_url":"https://api.github.com/users/lnielsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnielsen/subscriptions","organizations_url":"https://api.github.com/users/lnielsen/orgs","repos_url":"https://api.github.com/users/lnielsen/repos","events_url":"https://api.github.com/users/lnielsen/events{/privacy}","received_events_url":"https://api.github.com/users/lnielsen/received_events","type":"User","site_admin":false},"body":"\r\n","created_at":"2015-10-21T13:37:28Z","updated_at":"2015-10-26T09:46:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8e8f45049ab571b43afff8cd416d4165136efca7","assignee":{"login":"nharraud","id":5708796,"avatar_url":"https://avatars.githubusercontent.com/u/5708796?v=3","gravatar_id":"","url":"https://api.github.com/users/nharraud","html_url":"https://github.com/nharraud","followers_url":"https://api.github.com/users/nharraud/followers","following_url":"https://api.github.com/users/nharraud/following{/other_user}","gists_url":"https://api.github.com/users/nharraud/gists{/gist_id}","starred_url":"https://api.github.com/users/nharraud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nharraud/subscriptions","organizations_url":"https://api.github.com/users/nharraud/orgs","repos_url":"https://api.github.com/users/nharraud/repos","events_url":"https://api.github.com/users/nharraud/events{/privacy}","received_events_url":"https://api.github.com/users/nharraud/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/inveniosoftware/invenio-base/milestones/10","html_url":"https://github.com/inveniosoftware/invenio-base/milestones/v1.0.0","labels_url":"https://api.github.com/repos/inveniosoftware/invenio-base/milestones/10/labels","id":1359231,"number":10,"title":"v1.0.0","description":null,"creator":{"login":"jirikuncar","id":189798,"avatar_url":"https://avatars.githubusercontent.com/u/189798?v=3","gravatar_id":"","url":"https://api.github.com/users/jirikuncar","html_url":"https://github.com/jirikuncar","followers_url":"https://api.github.com/users/jirikuncar/followers","following_url":"https://api.github.com/users/jirikuncar/following{/other_user}","gists_url":"https://api.github.com/users/jirikuncar/gists{/gist_id}","starred_url":"https://api.github.com/users/jirikuncar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jirikuncar/subscriptions","organizations_url":"https://api.github.com/users/jirikuncar/orgs","repos_url":"https://api.github.com/users/jirikuncar/repos","events_url":"https://api.github.com/users/jirikuncar/events{/privacy}","received_events_url":"https://api.github.com/users/jirikuncar/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":1,"state":"open","created_at":"2015-10-16T11:35:58Z","updated_at":"2015-10-23T09:15:20Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27/commits","review_comments_url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27/comments","review_comment_url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/comments{/number}","comments_url":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/27/comments","statuses_url":"https://api.github.com/repos/inveniosoftware/invenio-base/statuses/dc49b8fca3044b3ae4fe9d963e2a92163aa6fb34","head":{"label":"lnielsen:rewrite","ref":"rewrite","sha":"dc49b8fca3044b3ae4fe9d963e2a92163aa6fb34","user":{"login":"lnielsen","id":1698163,"avatar_url":"https://avatars.githubusercontent.com/u/1698163?v=3","gravatar_id":"","url":"https://api.github.com/users/lnielsen","html_url":"https://github.com/lnielsen","followers_url":"https://api.github.com/users/lnielsen/followers","following_url":"https://api.github.com/users/lnielsen/following{/other_user}","gists_url":"https://api.github.com/users/lnielsen/gists{/gist_id}","starred_url":"https://api.github.com/users/lnielsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnielsen/subscriptions","organizations_url":"https://api.github.com/users/lnielsen/orgs","repos_url":"https://api.github.com/users/lnielsen/repos","events_url":"https://api.github.com/users/lnielsen/events{/privacy}","received_events_url":"https://api.github.com/users/lnielsen/received_events","type":"User","site_admin":false},"repo":{"id":43577928,"name":"invenio-base","full_name":"lnielsen/invenio-base","owner":{"login":"lnielsen","id":1698163,"avatar_url":"https://avatars.githubusercontent.com/u/1698163?v=3","gravatar_id":"","url":"https://api.github.com/users/lnielsen","html_url":"https://github.com/lnielsen","followers_url":"https://api.github.com/users/lnielsen/followers","following_url":"https://api.github.com/users/lnielsen/following{/other_user}","gists_url":"https://api.github.com/users/lnielsen/gists{/gist_id}","starred_url":"https://api.github.com/users/lnielsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lnielsen/subscriptions","organizations_url":"https://api.github.com/users/lnielsen/orgs","repos_url":"https://api.github.com/users/lnielsen/repos","events_url":"https://api.github.com/users/lnielsen/events{/privacy}","received_events_url":"https://api.github.com/users/lnielsen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lnielsen/invenio-base","description":"Base package for building the Invenio application.","fork":true,"url":"https://api.github.com/repos/lnielsen/invenio-base","forks_url":"https://api.github.com/repos/lnielsen/invenio-base/forks","keys_url":"https://api.github.com/repos/lnielsen/invenio-base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lnielsen/invenio-base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lnielsen/invenio-base/teams","hooks_url":"https://api.github.com/repos/lnielsen/invenio-base/hooks","issue_events_url":"https://api.github.com/repos/lnielsen/invenio-base/issues/events{/number}","events_url":"https://api.github.com/repos/lnielsen/invenio-base/events","assignees_url":"https://api.github.com/repos/lnielsen/invenio-base/assignees{/user}","branches_url":"https://api.github.com/repos/lnielsen/invenio-base/branches{/branch}","tags_url":"https://api.github.com/repos/lnielsen/invenio-base/tags","blobs_url":"https://api.github.com/repos/lnielsen/invenio-base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lnielsen/invenio-base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lnielsen/invenio-base/git/refs{/sha}","trees_url":"https://api.github.com/repos/lnielsen/invenio-base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lnielsen/invenio-base/statuses/{sha}","languages_url":"https://api.github.com/repos/lnielsen/invenio-base/languages","stargazers_url":"https://api.github.com/repos/lnielsen/invenio-base/stargazers","contributors_url":"https://api.github.com/repos/lnielsen/invenio-base/contributors","subscribers_url":"https://api.github.com/repos/lnielsen/invenio-base/subscribers","subscription_url":"https://api.github.com/repos/lnielsen/invenio-base/subscription","commits_url":"https://api.github.com/repos/lnielsen/invenio-base/commits{/sha}","git_commits_url":"https://api.github.com/repos/lnielsen/invenio-base/git/commits{/sha}","comments_url":"https://api.github.com/repos/lnielsen/invenio-base/comments{/number}","issue_comment_url":"https://api.github.com/repos/lnielsen/invenio-base/issues/comments{/number}","contents_url":"https://api.github.com/repos/lnielsen/invenio-base/contents/{+path}","compare_url":"https://api.github.com/repos/lnielsen/invenio-base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lnielsen/invenio-base/merges","archive_url":"https://api.github.com/repos/lnielsen/invenio-base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lnielsen/invenio-base/downloads","issues_url":"https://api.github.com/repos/lnielsen/invenio-base/issues{/number}","pulls_url":"https://api.github.com/repos/lnielsen/invenio-base/pulls{/number}","milestones_url":"https://api.github.com/repos/lnielsen/invenio-base/milestones{/number}","notifications_url":"https://api.github.com/repos/lnielsen/invenio-base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lnielsen/invenio-base/labels{/name}","releases_url":"https://api.github.com/repos/lnielsen/invenio-base/releases{/id}","created_at":"2015-10-02T21:48:27Z","updated_at":"2015-10-02T21:48:29Z","pushed_at":"2015-10-23T21:12:17Z","git_url":"git://github.com/lnielsen/invenio-base.git","ssh_url":"git@github.com:lnielsen/invenio-base.git","clone_url":"https://github.com/lnielsen/invenio-base.git","svn_url":"https://github.com/lnielsen/invenio-base","homepage":"","size":7194,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"inveniosoftware:next","ref":"next","sha":"26fd70fb4f34cb1446ba56e08a33628961bd68ea","user":{"login":"inveniosoftware","id":1157480,"avatar_url":"https://avatars.githubusercontent.com/u/1157480?v=3","gravatar_id":"","url":"https://api.github.com/users/inveniosoftware","html_url":"https://github.com/inveniosoftware","followers_url":"https://api.github.com/users/inveniosoftware/followers","following_url":"https://api.github.com/users/inveniosoftware/following{/other_user}","gists_url":"https://api.github.com/users/inveniosoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/inveniosoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inveniosoftware/subscriptions","organizations_url":"https://api.github.com/users/inveniosoftware/orgs","repos_url":"https://api.github.com/users/inveniosoftware/repos","events_url":"https://api.github.com/users/inveniosoftware/events{/privacy}","received_events_url":"https://api.github.com/users/inveniosoftware/received_events","type":"Organization","site_admin":false},"repo":{"id":41039850,"name":"invenio-base","full_name":"inveniosoftware/invenio-base","owner":{"login":"inveniosoftware","id":1157480,"avatar_url":"https://avatars.githubusercontent.com/u/1157480?v=3","gravatar_id":"","url":"https://api.github.com/users/inveniosoftware","html_url":"https://github.com/inveniosoftware","followers_url":"https://api.github.com/users/inveniosoftware/followers","following_url":"https://api.github.com/users/inveniosoftware/following{/other_user}","gists_url":"https://api.github.com/users/inveniosoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/inveniosoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inveniosoftware/subscriptions","organizations_url":"https://api.github.com/users/inveniosoftware/orgs","repos_url":"https://api.github.com/users/inveniosoftware/repos","events_url":"https://api.github.com/users/inveniosoftware/events{/privacy}","received_events_url":"https://api.github.com/users/inveniosoftware/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/inveniosoftware/invenio-base","description":"Base package for building the Invenio application.","fork":false,"url":"https://api.github.com/repos/inveniosoftware/invenio-base","forks_url":"https://api.github.com/repos/inveniosoftware/invenio-base/forks","keys_url":"https://api.github.com/repos/inveniosoftware/invenio-base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/inveniosoftware/invenio-base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/inveniosoftware/invenio-base/teams","hooks_url":"https://api.github.com/repos/inveniosoftware/invenio-base/hooks","issue_events_url":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/events{/number}","events_url":"https://api.github.com/repos/inveniosoftware/invenio-base/events","assignees_url":"https://api.github.com/repos/inveniosoftware/invenio-base/assignees{/user}","branches_url":"https://api.github.com/repos/inveniosoftware/invenio-base/branches{/branch}","tags_url":"https://api.github.com/repos/inveniosoftware/invenio-base/tags","blobs_url":"https://api.github.com/repos/inveniosoftware/invenio-base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/inveniosoftware/invenio-base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/inveniosoftware/invenio-base/git/refs{/sha}","trees_url":"https://api.github.com/repos/inveniosoftware/invenio-base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/inveniosoftware/invenio-base/statuses/{sha}","languages_url":"https://api.github.com/repos/inveniosoftware/invenio-base/languages","stargazers_url":"https://api.github.com/repos/inveniosoftware/invenio-base/stargazers","contributors_url":"https://api.github.com/repos/inveniosoftware/invenio-base/contributors","subscribers_url":"https://api.github.com/repos/inveniosoftware/invenio-base/subscribers","subscription_url":"https://api.github.com/repos/inveniosoftware/invenio-base/subscription","commits_url":"https://api.github.com/repos/inveniosoftware/invenio-base/commits{/sha}","git_commits_url":"https://api.github.com/repos/inveniosoftware/invenio-base/git/commits{/sha}","comments_url":"https://api.github.com/repos/inveniosoftware/invenio-base/comments{/number}","issue_comment_url":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/comments{/number}","contents_url":"https://api.github.com/repos/inveniosoftware/invenio-base/contents/{+path}","compare_url":"https://api.github.com/repos/inveniosoftware/invenio-base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/inveniosoftware/invenio-base/merges","archive_url":"https://api.github.com/repos/inveniosoftware/invenio-base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/inveniosoftware/invenio-base/downloads","issues_url":"https://api.github.com/repos/inveniosoftware/invenio-base/issues{/number}","pulls_url":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls{/number}","milestones_url":"https://api.github.com/repos/inveniosoftware/invenio-base/milestones{/number}","notifications_url":"https://api.github.com/repos/inveniosoftware/invenio-base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/inveniosoftware/invenio-base/labels{/name}","releases_url":"https://api.github.com/repos/inveniosoftware/invenio-base/releases{/id}","created_at":"2015-08-19T14:38:15Z","updated_at":"2015-10-16T15:22:18Z","pushed_at":"2015-10-23T21:12:17Z","git_url":"git://github.com/inveniosoftware/invenio-base.git","ssh_url":"git@github.com:inveniosoftware/invenio-base.git","clone_url":"https://github.com/inveniosoftware/invenio-base.git","svn_url":"https://github.com/inveniosoftware/invenio-base","homepage":"","size":7598,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":14,"mirror_url":null,"open_issues_count":3,"forks":14,"open_issues":3,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27"},"html":{"href":"https://github.com/inveniosoftware/invenio-base/pull/27"},"issue":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/27"},"comments":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/issues/27/comments"},"review_comments":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27/comments"},"review_comment":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/pulls/27/commits"},"statuses":{"href":"https://api.github.com/repos/inveniosoftware/invenio-base/statuses/dc49b8fca3044b3ae4fe9d963e2a92163aa6fb34"}}}}