{ "info": { "author": "Alexander Overvoorde", "author_email": "overv161@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.5" ], "description": "# gitlabfs\n\ngitlabfs allows you to mount all projects in a company's GitLab instance as a file system.\n\n## About\n\nThis project was conceived out of a need to easily browse code in many different repositories within a company. While GitLab does have builtin browsing and search, it's just not as convenient to use as common tools like `find` and `grep`.\n\nIt sets out to solve that by exposing an entire GitLab instance as a file system with the following hierarchy:\n\n```\n/\n /user\n /project\n /master\n README.md\n /feature\n /abc\n /src\n main.py\n /v1.0\n main.py\n /group\n /subgroup\n /project\n```\n\nThis allows you to freely browse all of the code in a GitLab instance without having to clone everything. All of the files are loaded from the GitLab API as you access them. The only caveat is that it is a read-only view.\n\n## Installation\n\nInstall the latest version of gitlabfs from [PyPI](https://pypi.org/project/gitlabfs/):\n\n pip install gitlabfs\n\n## Usage\n\n1. Go to your profile page in GitLab and [generate a new access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) with the `api` scope.\n2. Create a directory where you would like to access your projects from, e.g. `~/gitlab`.\n3. Mount GitLab at that directory:\n\n ```\n glfs https://gitlab.mycompany.com ~/gitlab\n ```\n\n You will be asked to provide your access token and then the GitLab hierarchy will be mounted.\n\n## Configuration\n\nVarious options can be passed to configure the properties of the file system:\n\n* `--tags`: Include tags in the list of repository refs.\n* `--users`: List user repositories as well.\n* `--file-times`: Better approximate file modification times with commit metadata.\n* `--cache-expiry=SEC`: Expire the cache after this many seconds (default: 60).\n* `--fresh-project-tree`: Enable cache expiry for the project tree.\n* `--debug`: Enable verbose logging for development purposes.\n\nMany of these are not enabled by default because they may result in worse performance or more clutter.\n\nThe access token must be provided via a command line prompt by default, but can also be passed via the `GITLAB_TOKEN` environment variable.\n\n## Limitations\n\n* Not designed for GitLab instances with a huge number of projects (e.g. gitlab.com).\n* File modification times are not accurate since they are not exposed by the GitLab API.\n\n## Development\n\nThe file system can be easily run locally with [Pipenv](https://github.com/pypa/pipenv):\n\n```\npipenv install\npipenv run ./glfs [options]\n```\n\nAnd the PyPI package is published using the following commands:\n\n```\npipenv run python setup.py sdist bdist bdist_wheel\npipenv run twine upload dist/*\n```\n\n## License\n\nMIT License\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Overv/gitlabfs", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gitlabfs", "package_url": "https://pypi.org/project/gitlabfs/", "platform": "", "project_url": "https://pypi.org/project/gitlabfs/", "project_urls": { "Homepage": "https://github.com/Overv/gitlabfs" }, "release_url": "https://pypi.org/project/gitlabfs/1.1.0/", "requires_dist": [ "python-gitlab", "fusepy", "iso8601", "cachetools" ], "requires_python": ">=3.5", "summary": "Mount projects in GitLab as a file system", "version": "1.1.0" }, "last_serial": 5553201, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "044f0e29cdb44f111b7ee82094eabb60", "sha256": "56ded929bfb2690a7827dc3fd9db4871627c581e2f6bd2188908dcaa9a19cb56" }, "downloads": -1, "filename": "gitlabfs-1.0.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "044f0e29cdb44f111b7ee82094eabb60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9185, "upload_time": "2019-07-14T18:03:26", "url": "https://files.pythonhosted.org/packages/ef/e0/31be2706afa1045d6ef032a4c3f4ed23851e6fa1ba340bb42288410ebf7c/gitlabfs-1.0.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "9efe3d09036dbd0f7750b9ecda7fb7ac", "sha256": "950d3dcdf625149ce700d73a3ae2dfe3567e907ed004058ae7350b736cb9cdcd" }, "downloads": -1, "filename": "gitlabfs-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9efe3d09036dbd0f7750b9ecda7fb7ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11627, "upload_time": "2019-07-14T18:03:25", "url": "https://files.pythonhosted.org/packages/f2/ea/d854e6120cc93648038b43735408d999a407e09f7d004e4732cb3500e5de/gitlabfs-1.0.2-py3-none-any.whl" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7fdccc42ae907ee5fa73a47af8c851a4", "sha256": "0588707f69eac6a1a3f55dc594824618537db9e2669ce6cae65b92472d758c3b" }, "downloads": -1, "filename": "gitlabfs-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7fdccc42ae907ee5fa73a47af8c851a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11625, "upload_time": "2019-07-14T18:17:55", "url": "https://files.pythonhosted.org/packages/f6/ab/7f764145e02ad868c59c15616d035d68affcdcd33c5e0e3647606ab5ef72/gitlabfs-1.0.3-py3-none-any.whl" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "6a81aa84fb27cf5a5e6f71971ed3336c", "sha256": "55c22a6d3d2bc86b47f0c30baa179cdc819e8a5a0ff8f5db2a1405d7bd12d492" }, "downloads": -1, "filename": "gitlabfs-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6a81aa84fb27cf5a5e6f71971ed3336c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11887, "upload_time": "2019-07-15T20:05:35", "url": "https://files.pythonhosted.org/packages/e9/2a/eeb500447cc9af91e861d3a20c83ec8b03ef0bedb61a5f4ded9b1e5e5b27/gitlabfs-1.0.4-py3-none-any.whl" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "cbe664bc7f8840d2de6baf81e7c632f0", "sha256": "71af0c824dcdacdd9b2583b805cd64d54cd2ec33a6f2e4b744109f4efa983f69" }, "downloads": -1, "filename": "gitlabfs-1.0.5.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "cbe664bc7f8840d2de6baf81e7c632f0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9458, "upload_time": "2019-07-16T20:16:58", "url": "https://files.pythonhosted.org/packages/54/a6/f0a6545e3d3bbf3dea0261e869fba39b6aca4e5ef40c542681278675abd9/gitlabfs-1.0.5.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "b0c47a18e0a246f7b06371b46ad67bf0", "sha256": "2d9b2ae9a52a8faa09f326badbb470278733441d46bb84c635798069eb78daf8" }, "downloads": -1, "filename": "gitlabfs-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b0c47a18e0a246f7b06371b46ad67bf0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11906, "upload_time": "2019-07-16T20:16:57", "url": "https://files.pythonhosted.org/packages/70/de/77e16b92848ab47fd8a1543cd0a0b0d165ca4730a8eb9e8add42545f0915/gitlabfs-1.0.5-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "64d2e645a033e2a82dbf740792742def", "sha256": "28e86bcdf34e3095f736bc1065ae1ad7b034479bb657df0f503c21a34ebaec4b" }, "downloads": -1, "filename": "gitlabfs-1.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "64d2e645a033e2a82dbf740792742def", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9636, "upload_time": "2019-07-18T20:32:25", "url": "https://files.pythonhosted.org/packages/49/0a/4dd3db4d38ed4d83dfac07575d41819597e94a82e57fdc566afbf12bcc96/gitlabfs-1.1.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "6336763b1ddc9563bf63df4164764dbb", "sha256": "fbf7abdf5ec3ec3a065308f66a20c98c3799fe95ef8530a018693d8893943832" }, "downloads": -1, "filename": "gitlabfs-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6336763b1ddc9563bf63df4164764dbb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12077, "upload_time": "2019-07-18T20:32:24", "url": "https://files.pythonhosted.org/packages/f7/a5/d6494a15162a5202f7357e60baf77f1aa7ca9e11d55dcaae7daec07a05a2/gitlabfs-1.1.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64d2e645a033e2a82dbf740792742def", "sha256": "28e86bcdf34e3095f736bc1065ae1ad7b034479bb657df0f503c21a34ebaec4b" }, "downloads": -1, "filename": "gitlabfs-1.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "64d2e645a033e2a82dbf740792742def", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9636, "upload_time": "2019-07-18T20:32:25", "url": "https://files.pythonhosted.org/packages/49/0a/4dd3db4d38ed4d83dfac07575d41819597e94a82e57fdc566afbf12bcc96/gitlabfs-1.1.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "6336763b1ddc9563bf63df4164764dbb", "sha256": "fbf7abdf5ec3ec3a065308f66a20c98c3799fe95ef8530a018693d8893943832" }, "downloads": -1, "filename": "gitlabfs-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6336763b1ddc9563bf63df4164764dbb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12077, "upload_time": "2019-07-18T20:32:24", "url": "https://files.pythonhosted.org/packages/f7/a5/d6494a15162a5202f7357e60baf77f1aa7ca9e11d55dcaae7daec07a05a2/gitlabfs-1.1.0-py3-none-any.whl" } ] }