SmartCLIDE Service Creation

SmartCLIDE Service Creation Backend Component

Preconditions to build and run Service Creation

To build and run the backend service of Service Creation, the following software is required:

  • Java (at least version 8)
  • Apache Maven (at least version 3.2+)
  • Docker (for building and running the final image)

How to build Service Creation

Service Creation can be built using maven with the following command:

mvn install

In order to build a Docker image of the service that can be deployed, the following commands can be used:

mvn install
docker build -t ${IMAGE_NAME:IMAGE_TAG} .

More specifically:

mvn install
docker build -t smartclide-service-creation:latest .

How to run Service Creation

All the images of this component can be found here.

You can run the backend service with the following command:

docker run smartclide-service-creation:latest

How to use Service Creation

This backend service leverages the provided GitLab and Jenkins APIs in order to authenticate a User and create a new repository based on the options selected by the User. Furthermore, depending on the User’s choices, the newly created repository can be paired with a Jenkins CI/CD. The component creates a new Jenkins CI/CD pipeline and then performs the necessary configuration actions (webhooks, ect.) in order to complete the pairing process. As a result, the process is completed automatically, thus sparing the User from the manual use and configuration of the external tools.

The service includes two endpoints:

Endpoint 1: "/createStructure" -> creates a GitLab repository.
Request parameters:
projectName -> String
projVisibility -> String
projDescription -> String
gitLabServerURL -> String
gitlabToken -> String

Endpoint 2: "/createStuctureJenkins" -> creates a GitLab repository and a Jenkins pipeline and finaly configures and pairs them.
Request parameters:
projectName -> String
projVisibility -> String
projDescription -> String
gitLabServerURL -> String
gitlabToken -> String
jenkinsServerUrl -> String
jenkinsUsername -> String
jenkinsToken -> String