Создание проблемы с помощью GitHub API - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь создать проблему в своем собственном repo с помощью Github API, но по какой-то причине он продолжает выдавать мне ошибку

Route::post('/issue/create/{repo}',function ($_repo){

    $client = new Client([
        // Base URI is used with relative requests
        'base_uri' => 'https://api.github.com',
        // You can set any number of default request options.
//        'timeout'  => 2.0,
    ]);
    $url = '/repos/rehan-dckap/'.$_repo.'/issues';
    // Set various headers on a request
    $response = $client->request('POST', $url, [
        'query' => [
            'title' => 'IssueCreation',
            'body' => 'ThPI',
            'assignee' => '',
            'milestone' => 1,
            'labels' => [],
            'assignees' => []
        ],
        'headers' => [
            'Authorization'     => 'Bearer TOKENTOKENTOKENTOKEN'
        ]
    ]);
    return  response($response->getBody());
});

ОШИБКА

Ошибка клиента: POST https://api.github.com/repos/rehan-dckap/qatouch-api-docs/issues?title=IssueCreation&body=ThPI&assignee=&milestone=1 привело к ответу 422 Unprocessable Entity: {"message": "Недопустимый запрос. \ N \ nДля 'links / 0 / schema', nil не является объектом.", "Документация_url": "https://develo(усечено ...)

Может ли кто-нибудь направить меня?

1 Ответ

0 голосов
/ 05 марта 2019

Я потратил немало времени, чтобы попытаться понять, в чем здесь проблема, но без запуска самого кода это будет немного сложно.Можете ли вы предоставить онлайн-песочницу с этим кодом, чтобы я мог поиграть с ним?Я рад предоставить токен сам.Здесь есть две основные вещи.

Во-первых, 422 обычно означает, что произошла ошибка при анализе полезной нагрузки.Глядя на вашу полезную нагрузку и сообщение об ошибке, я бы попытался начать с удаления всех необязательных полей, начиная с массивов.Если мы посмотрим на сообщение об ошибке, оно говорит Nil is a not an object.Моими лучшими предположениями могут быть проблемы с массивами или строкой assignee.

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

{
  "title": "Found a bug",
  "body": "I'm having a problem with this.",
  "milestone": 1,
  "labels": [
    "bug"
  ]
}

Надеюсь, это поможет.

...