Создание проблемы с помощью GitHub API

Я пытаюсь создать проблему в моем собственном 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 response: { "message": "Недопустимый запрос.\n\n Для 'links/0/schema', nil не является объектом.", "documentation_url": " https://develo/ (truncated...)

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

0 ответов

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

Сначала 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"
  ]
}

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

Здесь вы можете проверить код ошибки: https://developer.github.com/v3/

Sending invalid fields will result in a 422 Unprocessable Entity response.

HTTP/1.1 422 Unprocessable Entity
Content-Length: 149

{
  "message": "Validation Failed",
  "errors": [
    {
      "resource": "Issue",
      "field": "title",
      "code": "missing_field"
    }
  ]
}
Другие вопросы по тегам