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 togit config user.name).COMMITTER_EMAILis your GitHub email, e.g.,[email protected](valid forgit config user.email).$(go env GOPATH)/bin/is the path whereimport-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_apiread_userread_repository
 - 
Set
GITLAB_BASE_URLtohttps://gitlab.com. - 
Run
make test-integration.