Github to bitbucket migration - github

We are planning to migrate 15-20 repositories from GitHub to Bitbucket,
Is there any checklist of the all the items that we migrate?
It seems that PR, Issues can not be migrated with Bitbucket Import feature, is there any automated way to migrate the same?
Is there anything else that cannot be migrated with Bitbucket Import feature?
Any known issues/problems that can be faced?
Checked multiple blogs but could not find our answers.

The Bitbucket import feature seems to be strictly limited to code import (from CodePlex, GitHub, Google Code, SourceForge, Subversion, or another Git-based hosting site)
It won't manage issues, pull requests or merge requests.
And it won't manage user account migration, which means a collaborator would need to recreate their account on BitBucket, and email aliases need to be configured, in order to associate commits to the new (BitBucket) account.

Related

Why does GitLab need full access read and write permissions when importing a GitHub repo?

I just signed up for GitLab, after learning about this cool feature where you can import your GitHub repositories and keep the two in sync. The import feature seems simple enough, but I paused when I got to the step where I authorize GitLab to my GitHub account. Why does it need so many permissions? Some make sense to me, others not so much. Specifically:
Personal user data
Full access
This application will be able to read and write all user data. This
includes the following:
Private email addresses
Private profile information
Followers
I understand why it needs to read and write to all public and private repository data. It's moving all that data to GitLab, and it needs to write to keep it in sync. What I don't understand is why it needs write permissions to my email and profile information?
I know that GitLab is a reputable company that didn't just pop up yesterday, but I am still wary when giving full access permissions to any service. If someone could help me understand, that would be appreciated.
You have two options when migrating a repository from GitHub to GitLab. You can migrate using only the url, in which case what you’ll have on GitLab is more similar to what you’d get if you simply added an additional remote in the repo - the full repo will be there, but everything specific to GitHub - the pull requests, comments, issues, etc, as well as all users tagged or participating - will be lost.
Alternatively, you can use the GitHub importer. This option fully migrates the GitHub repo to GitLab, setting up the GitLab equivalents of GitHub features (pull requests become merge requests, etc.). And part of this involves assigning users to each comment, mention, PR, etc.
From the gitlab docs:
When issues and pull requests are being imported, the importer attempts to find their GitHub authors and assignees in the database of the GitLab instance. Pull requests are called merge requests in GitLab.
For this association to succeed, each GitHub author and assignee in the repository must meet one of the following conditions prior to the import:
Have previously logged in to a GitLab account using the GitHub icon.
Have a GitHub account with a public-facing email address that matches their GitLab account’s email address.
GitLab content imports that use GitHub accounts require that the GitHub public-facing email address is populated. This means all comments and contributions are properly mapped to the same user in GitLab. GitHub Enterprise does not require this field to be populated so you may have to add it on existing accounts.
So yes, these are required if you want the full GitHub mirror or migration. If you just want the git repo contents, use the import from url tool, and the requirements will be much less extensive.

Is there a way watch multiple issues and reviews in a single place?

I am wondering if anyone builded a tool that can watch things like:
github bugs (multiple projects)
gerrit reviews (multiple gerrit instances, I already have patches in 3)
jira bugs (multiple instances)
Clearly such a tool would have to be able to talk with different API for github, gerrit and jira.
Few notes:
* Email doesn't really work (just ignore it)
* A hosted service would not work because some of these are on intranet
* A browser extension may work
If you are a GitHub organizations user, you can have all the issues and pull request and the projects for organizations tab. See the link: https://github.com/blog/2272-introducing-projects-for-organizations
You must manually add the issues and PRs to the projects. AFAIK there is no tool to do it right now. You can still track all your PR's and issues at your git dashboard.

Migrating issues from Visual Studio Team Services to github

I'm in process of migrating my open source project from VS Team Services to GitHub (in hope of having actual contributors at least).
Migrating git repository was easy, but now I have a problem of migrating issues.
I don't know how to migrate issues.
I really like Team Services board. Can I get something like this in Github?
For Question 1, there isn't any tool or simple way to migrate the VSTS issues to GitHub as I know since the issues in VSTS are work items that use a totally different template with GitHub. If you have large amount of issues need to be migrated, you may create an application and use VSTS Rest API and GitHub API to do this.
For Question 2, GitHub does not provide Kankan board feature by default but you can get it from some other service. For example: waffle.io

Export a repository from gitlab.com

There are similar questions out there on how to export a gitlab repository from server A to server B, keeping issues, milestones, etc. My problem is that the repo is hosted at gitlab.com and I don't have acces to it's database, etc. I've searched for an "export" button in the Gitlab UI but I don't find it. I've also searched in Google.
Is it possible to export a repository from gitlab.com (with issues, milestones,...) and import it in my own server?
As twk3 suggests, the import currently only handles issues and the code repository. There are various feature requests right now for adding merge requests, wikis, etc.
Merge requests - https://gitlab.com/gitlab-org/gitlab-ce/issues/2833
Wiki - https://gitlab.com/gitlab-org/gitlab-ce/issues/2834

How can I add a custom git hook to a GitHub Enterprise repo?

I've fired up an instance of GitHub Enterprise (11.10.272) and created a repository. I've written a pre-receive hook in Ruby which I'd like to use with that repository.
GitHub Enterprise, like regular GitHub, allows the configuration of service hooks. I tried to SSH into the GitHub Enterprise server to create a hook file, but I couldn't find the repo directory. Furthemore, GitHub Enterprise's terms forbid modifying the VM, so I'm not confident this is a great approach.
It seems GitHub:FI supported hooks. The current version of the FI to Enterprise migration tool does not currently support hooks according to Migrating from GitHub:FI.
I know that this is really old, but GitHub Enterprise 2.6 just came out with pre-receive hooks. More information can be learned here: https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/.
I'm fairly certain this will perfectly align with the things you are looking for. Hopefully this either helps OP, or anyone else who stumbles upon this later!
Based on my email with GitHub customer support, pre-receive hooks aren't supported for GitHub Enterprise as of May 2013.
We don't have admin access on our GHE box, so we couldn't go in and "fix" this if we wanted to.
They claim that things they do would break if you could reject commits. I assume they mean things like automatic merging of pull requests, but I'm not sure.
They have an extensive set of post-commit webhooks which you could use for post-commit functionality.
I'm looking into building a "pass-through git server" -- basically, poll the GHE API frequently to make a local clone of any repo that exists on certain GHE accounts, and then auto-clone it with custom pre-recieve and post-receive hooks. This would let us clone off the pass-through server, do our pre-receive hooks there, and push approved changes through to GHE. There doesn't seem to be any kind of standard pass-through server for git out there yet, probably because you need to know what repos to clone, which doesn't seem to have a standard git API.
GitHub Enterprise seems to store repostories in /data/repositories. Each repository has hooks generated by a template. I can modify these hooks, but that would surely break something. The template hooks seem to look for hooks in another location, but that location is defined in config and I can't find it.