Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

How To Create Gitlab Project Using GIT API And Lumen

How To Create Gitlab Project Using GIT API And Lumen

This tutorial help to create gitlab project using git api v4 and lumen micro rest framework. This rest tutorial is help to create project under the specific groups using api.The gitlab group can be contains number of projects.We just add one new project into that project using API.

GITLAB is providing Rest interface to create project, add groups,create issue etc.It gives us the possibility to manage all gitlab work using HTTP requests.I am using one them is '/project' call to create gitlab project using git api v4.

Create Project Using GIT API V4

We will create POST call to send data to gitlab rest API host server. The project post call will required project_name, group_id and some optional parameters.

Step 1: Create route entry into routes.php file.

$app->post('create_gitlab_project', 'GitlabController@createGitlabProject');

Step 2: Created handler method into GitController.php file.

public function createGitlabProject(Request $request) {
     $parameters = array();
     $array_data = $request->json()->all();
     
      if(isset($array_data['gitlab_project_id']) && !empty($array_data['gitlab_project_id']) && !empty($array_data['gitlab_project_name'])) {
        try {
            $parameters['namespace_id'] = $array_data['gitlab_project_id'];
            $parameters['name'] = $array_data['gitlab_project_name'];
            $parameters['description'] = isset($array_data['gitlab_project_desc']) ? $array_data['gitlab_project_desc'] : '';
            $parameters['visibility'] = isset($array_data['gitlab_project_visibility']) ? $array_data['gitlab_project_visibility'] : 'public';
            $response = $this->gitlab->createGitlabProject($parameters);
         
            return json_encode($response);
         } catch(Exception $ex) {
            return 'Unable to create gitlab project';
         } 
      } else {
         return 'Missing! gitlab params to create repo';
      }
   }

Step 3: Created service method into GitService.php file.

var $gitlabAPI = "https://gitlab-hostname/api/v4/";

   private function _client($endpoint) {

   	  $token = 'your gitlab token';
      $client = new Client([
          'base_uri' => $endpoint,
          'timeout' => 300,
		  'headers' => ['Content-Type' => 'application/json', "Accept" => "application/json", "PRIVATE-TOKEN" => $token],
          'http_errors' => false,
          'verify' => false
      ]);
      return $client;
   }
   /**
    * Method to create project into gitlab
    *
    * @author parvez.alam
    */
   public function createGitlabProject($parameters) {
      $client = $this->_client($this->gitlabAPI);
      try {
         $response = $client->post("projects", ['json' => $parameters])->getBody()->getContents();
         return json_decode($response);
      } catch(Exception $ex) {
         Log::info($ex->getMessage());
         return 'Unable to create gitlab project';
         
      }
      
      return 'Unable to create gitlab project';
   }

Above code, Created _client method that will take $token and $gitlabAPI params, this method return client object of git api.

createGitlabProject() method use to create client and send HTTP post call to gitlab API server.The server will response success with project_id or send error message ‘name has been taken’.

The post How To Create Gitlab Project Using GIT API And Lumen appeared first on Rest Api Example.



This post first appeared on Rest Api Example, please read the originial post: here

Share the post

How To Create Gitlab Project Using GIT API And Lumen

×

Subscribe to Rest Api Example

Get updates delivered right to your inbox!

Thank you for your subscription

×