New GitLab and GitHub Enterprise Integration:
Auto Deploy and Review Apps

We are very happy to release today the extended version of our deep integration with Source Code Management tools. After GitHub, we now integrate with GitLab, GitHub Enterprise and GitLab self-hosted! You can now auto-deploy, create review apps and much more from numerous SCM tools.

Our mission at Scalingo is to make developers’ life easier. With the introduction of the GitHub integration a few years ago, we deeply integrated with a platform used by many of you out there. We received many positive feedbacks and requests to integrate with other Source Code Management (SCM) tools such as GitLab.

We are now able to deliver the same level of integration with GitLab, GitHub Enterprise and self-hosted GitLab instances.

The SCM Integration

Let’s first remind what is included in the SCM integration. The SCM integration let you link a Scalingo application with a repository hosted on one of the compatible SCM tools. It is composed of two main parts: Deployments and Review apps.

The objective of the SCM integration is to automate the GitHub flow, a best practice in modern application development. Note that despite its name, the GitHub flow is perfectly applicable to GitLab hosted applications.

Deployments

You can configure your Scalingo application to be automatically deployed whenever a commit occurs on a given branch. This is especially useful, for instance, if you want the application to always be in sync with the production branch of your repository.

You may have Continuous Integration (CI) tools associated with your repository like Codeship or TravisCI which run tasks, tests or whatever. We will always wait that all these tools succeed before deploying your app.

You can also manually trigger a deployment of your application from any branch.

You can find more information on the dedicated documentation page for GitHub and GitLab.

Review Apps

Review apps are an awesome tool to discuss about new features with your teammates. Whenever you create a new pull request (or merge request in the GitLab world), you can create a new application, called a review app, with the code of the new feature. It is then easy to share the result of your work! If you push a modification to the pull/merge request, it will automatically be deployed in your review app.

When the pull/merge request is closed, Scalingo automatically deletes the review app.

You can either automatically create a new review app for each pull/merge request opened on your repository or manually deploy a review app.

You can find more information about review apps on our documentation page.

Using the SCM Integration

The GitHub integration is always available under the “Code” section of your web dashboard. But the new integrations are only available via the CLI. A brand new dashboard is on its way which includes all the UX for you to use these new integrations in your web browser.

Here are the commands to link your Scalingo account with one of the SCM tool:

# Link your Scalingo account to your public GitHub account
scalingo integrations-add github
# Link your Scalingo account to your GitLab.com account
scalingo integrations-add gitlab
# Link your Scalingo account to your GitHub Enterprise account
scalingo integrations-add github-enterprise --url https://ghe.example.com --token <token>
# Link your Scalingo account to your self-hosted GitLab account
scalingo integrations-add gitlab-self-hosted --url https://gl.example.com --token <token>

The token is mandatory for GitHub Enterprise and GitLab self-hosted. Please see the documentation page for GitHub and GitLab to help you find this token.

Then you can link a Scalingo application with one of these integrations:

# Link the GitHub repository sample-go-martini to the Scalingo application my-app, auto-deploy the master branch
scalingo --app my-app integration-link-create https://github.com/Scalingo/sample-go-martini --auto-deploy --branch master
# Link the GitLab repository sample-go-martini to the Scalingo application my-app, auto-deploy the master branch
scalingo --app my-app integration-link-create https://gitlab.com/Scalingo/sample-go-martini --auto-deploy --branch master
# Link the GitHub Enterprise repository sample-go-martini to the Scalingo application my-app, auto-deploy the master branch
scalingo --app my-app integration-link-create https://ghe.example.com/Scalingo/sample-go-martini --auto-deploy --branch master

Conclusion

With the introduction of this new feature, Scalingo keeps being the hosting platform of choice for developers with a set of integrations which greatly help them in their development practice.

Thinking about another tool Scalingo could integrate with? Feel free to reach us on the support. We are always eager to feed our public roadmap with great new ideas from you!

Photo by Franck V. on Unsplash