Создание проблемы с помощью 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"
}
]
}