Загрузить файл через Gitlab API v4 - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь интегрировать свое приложение с Gitlab, используя Gitlab API v4. Сейчас я пытаюсь загрузить файл в проект.

Используя cURL, файл загружается правильно и корректно. Но когда я использую жрет в Laravel / PHP, возникает какая-то проблема, и он говорит:

Файл недействителен

Это мой cURL

curl --request POST --header "PRIVATE-TOKEN: {api-token}" https://gitlab.com/api/v4/projects/usamarehank%2Flabel-functionality/uploads --form "file=@../../../public/storage/defect/2q4.jpg"

Это моя жадность


$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => $currBase[1].'/',
    // You can set any number of default request options.
    // 'timeout'  => 2.0,
]);

try {
    $projectNamespace = self::convertToURLEncoded($gitlabData[0]->channel);

    $response = $client->request('POST', '/api/v4/projects/'.$projectNamespace.'/uploads',[
            'headers' => [
                'Private-Token'     => $gitlabData[1]->apikey,
                'Content-Type' =>  'multipart/form-data'
            ],
            'form_params' => [
                'file' => ' @../../../public/storage/defect/2q4.jpg'
            ]
        ]
    );
}
    // catch for bad credentials exception
catch (GuzzleHttp\Exception\BadResponseException $e){
    return ['status' => false, 'msg' => 'Incorrect Credentials'];
}

// if 200 then successful
if($response->getStatusCode() === 201 || $response->getStatusCode() === 200){
    $responseContent = json_decode($response->getBody(), true);
    self::insertGeneratedIssueDetails($responseContent, $_projectID, $_defectID);
    return ['status' => true, 'msg' => 'Authentication Successful'];
}

Понятия не имею, что я делаю неправильно, я бы хотел, чтобы файл был загружен. Я следовал этому документу API

Любая помощь будет высоко оценена.

...