{ "info": { "author": "Loic Dachary", "author_email": "loic@dachary.org", "bugtrack_url": null, "classifiers": [ "Environment :: No Input/Output (Daemon)", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Utilities" ], "description": "github2gitlab\n=============\n\ngithub2gitlab is a command line tool to mirror projects from GitHub\nto GitLab. It does the following, in sequence:\n\n* Upload the ~/.ssh/id_rsa.pub ssh key to gitlab if not found\n* Create the gitlab project if it does not exist\n* Mirror the github git repository to the gitlab git repository\n* Create or update the GitLab merge requests to match the \n GitHub pull requests\n\nExamples\n========\n\nMirror http://github.com/dachary/test to http://workbench.dachary.org/dachary/test\n\n.. code:: sh\n\n github2gitlab \\\n --gitlab-url http://workbench.dachary.org \\\n --gitlab-token sxQJ67SQKihMrGWVf \\\n --github-repo dachary/test \n\nMirror http://github.com/ceph/ceph to\nhttp://workbench.dachary.org/ceph/ceph-backports and use the GitHub\ntoken to be allowed to do more requests than when anonymous.\nUse --ignore-closed to get rid of pull requests that are closed and\nwere never merged.\n\n.. code:: sh\n\n github2gitlab \\\n --gitlab-url http://workbench.dachary.org \\\n --gitlab-token sxQJ67SQKihMrGWVf \\\n --gitlab-repo ceph/ceph-backports \\\n --github-token 64933d355fda9844aadd4e224d \\\n --github-repo ceph/ceph \\\n --ignore-closed\n\nMirroring details\n=================\n\nThe GitHub git repository contains a reference for each pull requests.\nFor instance the pull request 483 has the refs/pull/483/head reference\nwhich is the tip of the branch that was pushed. If the pull request is\nopen and can be merged on the destination, the reference\nrefs/pull/483/merge also exists and is the result of the merge.\n\nInstead of mirroring the refs/pull/\\* references to GitLab, they are\nmoved to refs/heads/pull/\\* so they become branches. If GitLab CI is\nwatching the project, it will run a job each time the pull/\\*/head\nreference is updated.\n\nThe pull requests title and description are mirrored exactly. The\nstate of the pull request cannot be mapped exactly and is translated\nas follows::\n\n if the pull request is opened, the merge request is opened\n if the pull request is closed,\n if the pull request merged_at field is null,\n the merge request is closed\n else\n the merge request is merged\n\nIf a merge request is opened to mirror a pull request that has been\nmerged already, GitLab will refuse to set it to the merged state\nbecause it notices that there would be nothing to merge. In this case\nthe merge request is set to the closed state and the :MERGED: string\nis append to the description.\n\n* GitLab API http://doc.gitlab.com/ce/api/\n* GitHub API https://developer.github.com/v3/\n\nHacking\n=======\n\n* Get the code : git clone http://workbench.dachary.org/dachary/github2gitlab.git\n* Run the unit tests : tox\n* Run the integration tests. They require a gitlab token and a github token from \n actual users with permissions to delete and create projects. The github project\n specified with --github-repo and the github project specified with --gitlab-repo\n will be removed and all their data and git repository lost during the test.\n\n PYTHONPATH=. tests/integration.py \\\n --gitlab-url http://workbench.dachary.org \\\n --gitlab-token XXXXXXXXX \\\n --gitlab-repo dachary/testrepo2 \\\n --github-token XXXXXXXXX \\\n --github-repo dachary/testrepo \\\n --ssh-public-key ~/.ssh/id_rsa.pub \\\n --verbose \n\n* Tag a version\n\n - version=1.3.0 ; perl -pi -e \"s/^version.*/version = $version/\" setup.cfg ; for i in 1 2 ; do python setup.py sdist ; amend=$(git log -1 --oneline | grep --quiet \"version $version\" && echo --amend) ; git commit $amend -m \"version $version\" ChangeLog setup.cfg ; git tag -a -f -m \"version $version\" $version ; done\n\n* Check the documentation : rst2html < README.rst > /tmp/a.html\n\n* Publish a new version\n\n - python setup.py sdist upload --sign\n - git push ; git push --tags\n\n* pypi maintenance\n\n - python setup.py register # if the project does not yet exist\n - trim old versions at https://pypi.python.org/pypi/github2gitlab", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://workbench.dachary.org/dachary/github2gitlab", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "github2gitlab", "package_url": "https://pypi.org/project/github2gitlab/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/github2gitlab/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://workbench.dachary.org/dachary/github2gitlab" }, "release_url": "https://pypi.org/project/github2gitlab/1.5.5/", "requires_dist": null, "requires_python": null, "summary": "command line tool to migrate projects from GitHub to GitLab", "version": "1.5.5" }, "last_serial": 2015042, "releases": { "1.2.0": [], "1.3.0": [ { "comment_text": "", "digests": { "md5": "ad8da9245a9adecca2e12b230bf77145", "sha256": "d39e1a1b3a09b85d1a86e16677618d86b378affe3361ed11d85287a518cd92d2" }, "downloads": -1, "filename": "github2gitlab-1.3.0.tar.gz", "has_sig": true, "md5_digest": "ad8da9245a9adecca2e12b230bf77145", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25691, "upload_time": "2015-02-25T22:35:47", "url": "https://files.pythonhosted.org/packages/e2/fb/683be460cf21490257ca832e4137c1a30a4e4c7fba351143db9ff947649a/github2gitlab-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "274197e9422ce91e1a3ba71487d4426c", "sha256": "58e88a8af812c0a7089fc8073a539097b35eefa2920a2104cbc1fc029eab7e90" }, "downloads": -1, "filename": "github2gitlab-1.4.0.tar.gz", "has_sig": true, "md5_digest": "274197e9422ce91e1a3ba71487d4426c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25756, "upload_time": "2015-02-25T23:43:11", "url": "https://files.pythonhosted.org/packages/9d/25/d510d682e0e96ac18639108ded9cbf57bd8447b2827fc249f793eb20ba8b/github2gitlab-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "233b3eb162b32fd20852862861614b34", "sha256": "d930a1ffc4d5a46bcef8aeaf7e1ac74305b439dae87195ced5e9307f1f758d71" }, "downloads": -1, "filename": "github2gitlab-1.5.0.tar.gz", "has_sig": true, "md5_digest": "233b3eb162b32fd20852862861614b34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25927, "upload_time": "2015-02-26T00:55:46", "url": "https://files.pythonhosted.org/packages/72/00/579f26b8cb82dfcf2da9cfe77ff5114837ab0ae05182c85649b8c0d3ae9e/github2gitlab-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "cece3e8c9e1b6dd9b6f04d8e3eb1024e", "sha256": "2cef395c23bcd128e42251bd30c2da8b7439bb542488600cd5396c0db6925bf3" }, "downloads": -1, "filename": "github2gitlab-1.5.1.tar.gz", "has_sig": true, "md5_digest": "cece3e8c9e1b6dd9b6f04d8e3eb1024e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26532, "upload_time": "2015-11-05T12:30:05", "url": "https://files.pythonhosted.org/packages/64/ba/8db0b3ae5ed6473748379c45b06b4e79c463668d4771f931f9f61ca765ab/github2gitlab-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "ede89de8730a3d6e24567c4305b51a4c", "sha256": "c5a6cc9d498b1c435d29d24088736d02f9db07fd10a8ca113790f288b22db87d" }, "downloads": -1, "filename": "github2gitlab-1.5.2.tar.gz", "has_sig": true, "md5_digest": "ede89de8730a3d6e24567c4305b51a4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29781, "upload_time": "2015-12-01T17:12:16", "url": "https://files.pythonhosted.org/packages/98/81/7c490d57f49b9af26b1743aec05501e4512284791c4019dc6847caa4dba2/github2gitlab-1.5.2.tar.gz" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "2ce699f79311855d69f5a72142f65cf7", "sha256": "c8eccd979714b5dbaf9fc92d95a9689f2ba7aebf26bdfcd882bcdb07a4f2e951" }, "downloads": -1, "filename": "github2gitlab-1.5.3.tar.gz", "has_sig": true, "md5_digest": "2ce699f79311855d69f5a72142f65cf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29738, "upload_time": "2015-12-01T18:26:39", "url": "https://files.pythonhosted.org/packages/d4/a9/0719e4e087d9064bf441b63198bdbc48372671f83c02d9f0e5eff805dc21/github2gitlab-1.5.3.tar.gz" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "e584a7fb2148f473c28092db3ca173aa", "sha256": "d915fcd556f3c3f9fc52e1b5e7b055e7595f38e625373cfa8de96d4edb22d712" }, "downloads": -1, "filename": "github2gitlab-1.5.4.tar.gz", "has_sig": true, "md5_digest": "e584a7fb2148f473c28092db3ca173aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29728, "upload_time": "2015-12-07T21:25:09", "url": "https://files.pythonhosted.org/packages/37/49/1b8ddc82ebaa83e52113872bffa1ff79f3e417506b11ff5f413394281c00/github2gitlab-1.5.4.tar.gz" } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "56df04ec2a28132758855fcb7d1640ad", "sha256": "41b08316d61429a88701e56c7b732146f8cbc379fa7f601b483cdea26b9241db" }, "downloads": -1, "filename": "github2gitlab-1.5.5.tar.gz", "has_sig": true, "md5_digest": "56df04ec2a28132758855fcb7d1640ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29745, "upload_time": "2016-03-18T20:59:49", "url": "https://files.pythonhosted.org/packages/dc/bd/aec77a7bd2943459ab7cddd8e802e029146e2c2376e2ff8a175cd92afb51/github2gitlab-1.5.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "56df04ec2a28132758855fcb7d1640ad", "sha256": "41b08316d61429a88701e56c7b732146f8cbc379fa7f601b483cdea26b9241db" }, "downloads": -1, "filename": "github2gitlab-1.5.5.tar.gz", "has_sig": true, "md5_digest": "56df04ec2a28132758855fcb7d1640ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29745, "upload_time": "2016-03-18T20:59:49", "url": "https://files.pythonhosted.org/packages/dc/bd/aec77a7bd2943459ab7cddd8e802e029146e2c2376e2ff8a175cd92afb51/github2gitlab-1.5.5.tar.gz" } ] }