我如何使用gitlab的API和节点的https.request在回购上提交一些数据?

时间:2019-08-30 00:52:28

标签: node.js git gitlab-api

我正在尝试使用节点方法https.request进行PUT请求。我使用这种方法的原因是因为我需要传递--header private-token = PRIVATE和--data {stuff}之类的一些选项。

我已经有了一个GET请求,该请求很简单。我试图对PUT请求进行一些修改,但对工作的GET请求进行了一些修改,但显然我的语法在某处不正确。

像这样的事情就可以了。

const options = {
   host: 'hostname.com'
   path: '/path/to/repo'
   port: 443
   method: 'GET'
   headers: {'Private-Token: PRIVATE'}
}
const req = https.request(options, (res) => {
   console.log(res.statusCode); //returns 200
});

现在,我想做与上述类似的事情,但要有一个额外的选项数据,用于指定其他信息a

const options = {
   host: 'hostname.com'
   path: '/path/to/repo'
   port: 443
   method: 'PUT'
   headers: {
   'Private-Token: PRIVATE',
   'Content-Type: 'application/json'
   },
   data : {
      'branch': 'master',
      'author_email': foo@foo.com',
      'encoding': 'base64',
      'content': foobar64,
      'commit_message': 'testing through api'
   }

}
const req = https.request(options, (res) => {
   console.log(res.statusCode); //returns 400 bad request
});

想法是这样做curl --request PUT --header 'PRIVATE-TOKEN: <your_access_token>' --header "Content-Type: application/json" --data '{"branch": "master", "author_email": "author@example.com", "author_name": "Firstname Lastname", "content": "some content", "commit_message": "update file"}' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb' 但在节点 我知道语法是错误的,但是我不知道如何修复它,这是Nodejs的新功能。

0 个答案:

没有答案