{ "info": { "author": "Adam Venturella ", "author_email": "aventurella@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3" ], "description": "gitserver\n========\n\n\nGenerate an RSA key ::\n\n ssh-keygen -t rsa\n\n\nExample Configuration File:\n\n::\n\n port: 22\n driver: example\n host_key: /path/to/private/rsa/key\n\nNote that driver above corresponds to the name located in setup.py ::\n\n entry_points={\n 'gitserver.driver': [\n 'example = gitserver.example',\n ],\n }\n\nTo use your own driver, which you should be doing as the example driver\nis completely wide open, simply author a new Python package, and create\nand entrey_point in your setup.py as defined above. The important parts\nare ``example = gitserver.example``. Put another way,\n``name = path.to.python.module``.\n\nThe keyword ``name`` is what is used in the configuration file. In the\nexample entry_point above the `name` is **example**.\n\nThe right side of the assignment, ``path.to.python.module``\nis the python path to your module that will represent the ``name``.\nIn the example above it is represented as ``gitserver.example``. Which\nmeans it will looking the package ``gitserver`` for the module ``example.py``\n\nThe example provided in this package contains all of the 4 functions\nyou must implement, they are enumerated here ::\n\n def repopath(reponame):\n def authorize(model, command, path):\n def authenticate(credentials):\n def get_user_model(user_id):\n\nDuring ``authentication`` you **must** set ``credentials.username``\nto a value that can be passed to ``get_user_model(user_id)`` in order\nto hydrate your custom user model. Which leads us to definiing your\ncustom user model.\n\nAdditionally, aside from implementing the 4 functions above, you must\ndefine your own user model, which can be anything you like. You will\nreceive this user model in the authorize function above ::\n\n class ExampleUser(object):\n def __init__(self):\n self.id = None\n self.userame = None\n\n\nThe flow of the 4 required functions ::\n\n 1) authenticate(credentials) is invoked\n\n 2) get_user_model(user_id) is invoked with the value of\n credentials.username that was set in authenticate(credentials)\n\n 3) authorize(model, command, path)\n This is the last invocation in the flow.\n - model: the result of get_user_model(user_id)\n - command: one of git-upload-pack or git-receive-pack\n - path: the path of the requested operation\n\n You should return True or False here as to weather the\n 'model' (aka user) is authorized to perform the requested\n 'command' and the given 'path'\n\n Note that the example.py file included always returns False.\n In other words no one will be authorized. You will need to\n change this if you want this to be useful.\n\n The path argument here, using a github.com url as an example:\n git clone git@github.com:aventurella/gitserver.git would yield\n the following path:\n\n aventurella/gitserver.git\n\n Keep in mind that this must also work over ssh:// so\n git clone ssh://git@github.com:[port]/aventurella/gitserver.git\n would yield the following path:\n\n /aventurella/gitserver.git\n\n The ssh version will come with a leading / the other will not.\n\n 4) repopath(reponame) is invoked. Lets assume this is running\n on github and the following command is executed:\n git clone git@github.com:aventurella/gitserver.git\n\n reponame would then be 'aventurella/gitserver.git'\n\n It is unlikely that this is an actual path on your filesystem\n It is your job here to convert this path into the absolute path\n on your filesystem where the repository can be located.\n\nStart the server (in the foreground for example purposes) ::\n\n twistd -n gitserver -c /path/to/your/conf\n\n\nOmit, the `-n` argument to start daemonized.\n\n\nUbuntu Requirements\n====================\n\n- python-dev (pyopenssl requires)\n- libffi-dev (pyopenssl requires)\n- libssl-dev (pyopenssl requires)\n\n\n\n\n\n\n\n\n\nRelease History\n---------------\n\n0.0.1 (2014-01-20)\n++++++++++++++++++\n\n**API Changes**\n**Bugfixes**", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aventurella/gitserver", "keywords": "", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "gitserver", "package_url": "https://pypi.org/project/gitserver/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gitserver/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aventurella/gitserver" }, "release_url": "https://pypi.org/project/gitserver/0.0.5/", "requires_dist": null, "requires_python": null, "summary": "git server", "version": "0.0.5" }, "last_serial": 1075892, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f70fc11277cb6f1ef6c866071928901c", "sha256": "26b25fc51683b40b45f5b3799d435332568a8d7bd4b55109a1c78cee1ed779f0" }, "downloads": -1, "filename": "gitserver-0.0.1.tar.gz", "has_sig": false, "md5_digest": "f70fc11277cb6f1ef6c866071928901c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8591, "upload_time": "2014-04-29T12:33:48", "url": "https://files.pythonhosted.org/packages/94/21/8c48f808227b4d95c1551ca4e5ca6e68d1d77196fb68aaf1ed11b55b1c4f/gitserver-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "be2e1d5cfc1b8d8b26a81ea8e9fe279c", "sha256": "36dd75c20024c7d8bb864f2693553e13e513073e6c1b963d4d0756df654d0322" }, "downloads": -1, "filename": "gitserver-0.0.2.tar.gz", "has_sig": false, "md5_digest": "be2e1d5cfc1b8d8b26a81ea8e9fe279c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8598, "upload_time": "2014-04-29T12:35:01", "url": "https://files.pythonhosted.org/packages/1d/26/f47377e4a626ae972c602901e1111ceff9e214042874aefd56f2dad030cb/gitserver-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a75d0520914ea61ca952e4b47d3a08b8", "sha256": "aa49c8e9f3e0b4967c8f475346f8f441f12f408d5345fad61269ae92a0e07a2e" }, "downloads": -1, "filename": "gitserver-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a75d0520914ea61ca952e4b47d3a08b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8759, "upload_time": "2014-04-29T12:58:00", "url": "https://files.pythonhosted.org/packages/bc/c6/d4709076eff5968f188baab9d4af51e2abb1c13ce72ddf9952d9be156318/gitserver-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "292812cb39cd35483a9eeeeda1a2a1f9", "sha256": "e68572c104d45c2b6283e9874bcb91fb76504e3333457e5a5550735920d230a5" }, "downloads": -1, "filename": "gitserver-0.0.4.tar.gz", "has_sig": false, "md5_digest": "292812cb39cd35483a9eeeeda1a2a1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8925, "upload_time": "2014-04-29T20:15:24", "url": "https://files.pythonhosted.org/packages/1f/d9/7dd2e867afa613eeab32b5c89fa61e768a923bdccea045638c4b2533b358/gitserver-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "cb2397e4a317ec2a8a367f76c8a7eabe", "sha256": "f63c9d80b98eaa685d9a7f9f501e2b14f393e41a9f6d15f7e9a2f00bd5e394b8" }, "downloads": -1, "filename": "gitserver-0.0.5.tar.gz", "has_sig": false, "md5_digest": "cb2397e4a317ec2a8a367f76c8a7eabe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8934, "upload_time": "2014-04-29T20:23:52", "url": "https://files.pythonhosted.org/packages/b5/41/73f516897c9b701655525228ed94f1dc25c447f183487488ddc94c9621dc/gitserver-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb2397e4a317ec2a8a367f76c8a7eabe", "sha256": "f63c9d80b98eaa685d9a7f9f501e2b14f393e41a9f6d15f7e9a2f00bd5e394b8" }, "downloads": -1, "filename": "gitserver-0.0.5.tar.gz", "has_sig": false, "md5_digest": "cb2397e4a317ec2a8a367f76c8a7eabe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8934, "upload_time": "2014-04-29T20:23:52", "url": "https://files.pythonhosted.org/packages/b5/41/73f516897c9b701655525228ed94f1dc25c447f183487488ddc94c9621dc/gitserver-0.0.5.tar.gz" } ] }