| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- <?php
 
- class GitLab{
 
- 	public $token,$host;
 
- 	
 
- 	public function projects($id = null){
 
- 		$projects = $this->rest('GET','/projects');
 
- 		return $projects;
 
- 	}
 
- 	public function groups($id = null){
 
- 		$projects = $this->rest('GET','/groups?per_page=1000');
 
- 		return $projects;
 
- 	}
 
- 	public function project_save($group,$label,$slug){
 
- 		$body = array(
 
- 	        "name"=> $slug,
 
- 	        "path"=> $slug,
 
- 	        "description"=> $label,
 
- 	        'namespace_id' => $group
 
- 	       
 
- 		);
 
- 		$project = $this->rest('POST','/projects',json_encode($body));
 
- 		return $project;
 
- 	}
 
- 	public function groupe_save($label,$slug){
 
- 		$body = array(
 
- 	        "name"=> $slug,
 
- 	        "path"=> $slug,
 
- 	        "description"=> $label,
 
- 	        "visibility"=> "internal",
 
- 	        "share_with_group_lock"=> false,
 
- 	        "require_two_factor_authentication"=> false,
 
- 	        "two_factor_grace_period"=> 48,
 
- 	        "project_creation_level"=> "developer",
 
- 	        "auto_devops_enabled"=> null,
 
- 	        "subgroup_creation_level"=> "owner",
 
- 	        "emails_disabled"=> null,
 
- 	        "mentions_disabled"=> null,
 
- 	        "lfs_enabled"=> true,
 
- 	        "default_branch_protection"=> 1,
 
- 	        "avatar_url"=> null,
 
- 	        "request_access_enabled"=> false,
 
- 	        "parent_id"=> null
 
- 		);
 
- 		$project = $this->rest('POST','/groups',json_encode($body));
 
- 		return $project;
 
- 	}
 
- 	//Requete rest
 
- 	public function rest($method,$action,$body='',$headers=array()){
 
- 		$url = $this->host.$action;
 
- 		$ch = curl_init();
 
- 		$options[CURLOPT_URL] =  $url;
 
- 		$options[CURLOPT_RETURNTRANSFER] =  true;
 
- 		$options[CURLOPT_SSL_VERIFYPEER] =  false;
 
- 		$options[CURLOPT_FOLLOWLOCATION] = true;
 
- 		$options[CURLOPT_SSL_VERIFYPEER] = false;
 
- 		$options[CURLOPT_USERAGENT] = 'Awesome erp';
 
- 		$options[CURLOPT_CUSTOMREQUEST] = $method;
 
- 		if(!empty($body)) $options[CURLOPT_POSTFIELDS] = $body;
 
- 		$headers = array();
 
- 		$headers[] = 'Content-Type: application/json';
 
- 		$headers[] = 'Accept: application/json';
 
- 		$headers[] = 'Private-Token: '.$this->token;
 
- 		$options[CURLOPT_HTTPHEADER] = $headers;
 
- 		curl_setopt_array($ch,$options);
 
- 		$response = curl_exec($ch);
 
- 		if($response === false) throw new Exception(curl_error($ch));
 
- 		curl_close($ch);
 
- 		return json_decode($response,true);
 
- 	}	
 
- }
 
- ?>
 
 
  |