This tool imports commits from a private GitLab repository to a separate repository. It can be used to showcase your programming activity for another company on GitHub.
Check out this informative blog post for a practical use case on how to import GitLab commits here.
Contributions before running import-gitlab-commits:
 
After:
 
- 
Download and install Go. 
- 
Install the program by running the following command in a shell: go install github.com/alexandear/import-gitlab-commits@latest 
- 
Set environment variables and run import-gitlab-commits:export GITLAB_BASE_URL=<your_gitlab_server_url> export GITLAB_TOKEN=<your_gitlab_token> export COMMITTER_NAME="<Name Surname>" export COMMITTER_EMAIL=<[email protected]> $(go env GOPATH)/bin/import-gitlab-commits 
Where:
- GITLAB_BASE_URLis a GitLab instance URL, e.g.,- https://gitlab.com,- https://gitlab.gnome.org, or any GitLab server.
- GITLAB_TOKENis a personal access token.
- COMMITTER_NAMEis your GitHub name with surname, e.g.,- John Doe(can be passed to- git config user.name).
- COMMITTER_EMAILis your GitHub email, e.g.,- [email protected](valid for- git config user.email).
- $(go env GOPATH)/bin/is the path where- import-gitlab-commitsis installed.
What the tool does:
- Retrieves current user info using GITLAB_TOKEN.
- Fetches projects from GITLAB_BASE_URLthat the current user contributed to.
- For all projects, fetches commits where the author's email matches the current user's email.
- Creates a new repository repo.gitlab.yourcompany.com.currentusernameand commits all fetched commits with the message:Project: GITLAB_PROJECT_ID commit: GITLAB_COMMIT_HASH, commit dateGITLAB_COMMIT_DATE, and commit authorCOMMITTER_NAME <COMMITTER_EMAIL>.
To display the changes on GitHub, you need to:
- Create a new repository yourcompany-contributionson GitHub.
- Open the folder repo.gitlab.yourcompany.com.currentusername.
- Add the remote URL: git remote add origin [email protected]:username/yourcompany-contributions.git.
- Push the changes.
To run integration tests:
- 
Set the GITLAB_TOKENenvironment variable with the value obtained at https://gitlab.com/-/user_settings/personal_access_tokens. Necessary scopes:- read_api
- read_user
- read_repository
 
- 
Set GITLAB_BASE_URLtohttps://gitlab.com.
- 
Run make test-integration.