ошибка 403 при отправке файла в githib через REST с использованием nodejs - PullRequest
0 голосов
/ 04 июня 2019

Я хочу отправить несколько файлов в репозиторий Github через nodejs.Перепробовал несколько подходов и в итоге использовал модуль node-rest-client.Попробованный ниже код отправляет файл примера в хранилище под названием «метаданные».Но после публикации я получаю сообщение об ошибке «Запрос запрещен административными правилами. Пожалуйста, убедитесь, что у вашего запроса есть заголовок User-Agent» ... пожалуйста, дайте мне знать, если кто-то сталкивался с этой ошибкой ранее, и избавьтесь от нее.

convertval = "somedata";
var dataObj = {
    "message": "my commit message",
    "committer": {
      "name": "Scott Chacon",
      "email": "ravindra.devagiri@gmail.com"
    },
    "content": "bXkgbmV3IGZpbGUgY29udGVudHM="
  }
debugger;
var Client = require('node-rest-client').Client;
var client = new Client()            
var args = {
    data: dataObj,
    headers: { 'Content-Type': 'application/json' },
};
client.post("https://api.github.com/repos/metadata/contents", args, function (data, response) {
    console.log("file send: True : " + data);
});

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

В соответствии с REST API :

Все запросы API ДОЛЖНЫ содержать действительный заголовок User-Agent.Запросы без заголовка User-Agent будут отклонены.

0 голосов
/ 04 июня 2019

Прежде всего, вам нужно определить «User-Agent» со значением «request» в заголовке вашего запроса.Обратитесь к этой ссылке .

Во-вторых, для конечной точки, которую вы пытаетесь вызвать, может потребоваться аутентификация.Сгенерируйте личный токен из здесь , добавьте этот токен в заголовок вашего запроса, «Авторизация»: «токен».

Если вы активно используете Git в своем коде, я предлагаю вамиспользуйте это - Nodegit .

Редактировать: Я не думаю, что отправка нескольких файлов в одном запросе возможна в группе конечных точек "Содержание" ( ссылка ).

Вы можете оформить API Git Data (как обсуждено здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...