Skip to content

Proxy to provide GitHub-like API on top of Gitlab. Especially designed to use the JIRA DVCS connector with Gitlab.

Notifications You must be signed in to change notification settings

thalmic/gitlab-github-proxy

 
 

Repository files navigation

GitLab-GitHub Proxy (glghproxy) Build Status

Proxy to provide GitHub-like API on top of Gitlab. Especially designed to use the JIRA DVCS connector with Gitlab.

VERY IMPORTANT CONFIGURATION REQUIREMENTS:

  1. The address of glghproxy on your network MUST be DNS resolvable AND routable from BOTH a) JIRA server, and b) end-user browsers.
  2. Additionally, glghproxy MUST operate on tcp/80.

Setup

Step 1. Launch glghproxy using Maven and Spring boot from CLI

NOTICE: The default Spring listen port is tcp/8080, so specifying it again as a java argument is redundant, but makes the problem explicit.
You can choose to setup a port forward in front of it, or (not recommended) run the service as root so you can listen on tcp/80.

mvn spring-boot:run -DgitlabUrl="http://yourgitlabserver.yourcompany.com" -Dserver.port=8080

Alternatively, you can launch using Docker, and its resident service will proxy tcp/80 -> tcp/8080 for you:

docker build -t glghproxy .
docker run -p 80:8080 glghproxy

If you use docker-compose you can easily build and start services

# Edit docker-compose.yml and configure gitlabUrl for your environment
docker-compose build  # Build the image
docker-compose up -d  # Start services

For the hostname (ie. glghproxy) you'll need to add a DNS entry or a /etc/hosts override. However the latter will only work if glghproxy, JIRA, and the browser are operating on the same machine. That can be nice for testing, (e.g., with a locally installed [containerized] trial version of JIRA) but be aware that if you are using docker containers you'll need to ensure the hostname resolves to an IP that is resolvable from all sides--in that case, the docker0 interface ip is recommended.

WARNING: By default, JIRA and glghproxy want to operate on the same tcp/8080 port. If you are not using containers, you'll have to resolve this conflict yourself.

Step 2. Generate new Application in GitLab

  • Browse to your Gitlab Applications tab (/profile/applications)

  • On the Add New Application tab, fill in the Name field with your choice (ie. glghproxy)

  • Fill in the Redirect URI with the address you've chosen for this proxy service.

     http://glghproxy/login/oauth/authorize_callback
    
  • Click the Save application button.

  • Make note of the Application Id and Secret on the following page.

Step 3. Add a new DVCS account in JIRA

  • Browse to your JIRA Administration > DVCS accounts page (/secure/admin/ConfigureDvcsOrganizations.jspa)
  • Click the Link Bitbucket Cloud or Github account button.
  • On the Add New Account popup, select Github Enterprise from the Host dropdown menu.
  • Fill in Team or User Account field with the name of the Gitlab group or username containing the repositories you want JIRA to integrate.
    NOTICE: You will need to add multiple DVCS accounts if your repositories are spread across more than one group or username.
  • Fill in Host URL with the address you've chosen for this proxy service. (ie. http://glghproxy)
  • Fill in Client ID with the Application Id generated for you by Gitlab earlier.
  • Fill in Client Secret with the Secret generated for you by Gitlab earlier.
  • The Auto Link New Repositories and Enable Smart Commits checkboxes are compatible and are safe to configure to your liking.
  • Click the Add button and then the Continue button when prompted.
  • It should say Connecting to Github Enterprise to configure your account....
  • Then it should say Linking new account ....
  • Then you should see your newly added account listed and the JIRA DVCS feature should operate normally from here.

About

Proxy to provide GitHub-like API on top of Gitlab. Especially designed to use the JIRA DVCS connector with Gitlab.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%