2017-09-17 18 views
0

작성중인 명령 줄 응용 프로그램에서 저장소를 만들려고합니다. node.js를 사용하여 Bitbucket 2.0 API에 게시물 요청을 보내지 만 Repo를 만드는 데 성공했지만 Repo를 만드는 설정을 존중하지는 않습니다 (예 : is_private = true, has_wiki = true). , language = PHP). 내가 뭘 잘못하고 있는지 모르겠다. 내 생각에 내가 몸을 포맷하는 방식인가?Bitbucket 2.0 api 및 node.js를 사용하여 저장소 만들기

 var dataString = '{"has_wiki": true, "is_private": true}'; 

     request({ 
      url: 'https://api.bitbucket.org/2.0/repositories/' + username + '/' + _.kebabCase(answers.reponame), 
      method: 'POST', 
      headers: {'Authorization': 'Bearer ' + prefs.ginit.token}, 
      body: dataString 
     }, function (err, res) { 
      status.stop(); 

      if (err) { 
       console.log(err); 
       reject(new Error('Couldn\'t create remote repo.')); 
      } 

      let json = JSON.parse(res.body); 

      if(res.statusCode == 400) { 
       reject(new Error(json.error.message)); 
      } 

      if (res.statusCode == 200) { 
       console.log(chalk.green('\n' + json.name + ' created sucessfully.')); 
       console.log(chalk.green('You can view it here: ' + json.links.html.href + '\n')); 

       resolve(json); 
      } 

     }); 

은 API 문서가 here 같습니다 아래는 내가 사용하고있는 코드입니다. 누구든지 도울 수 있니? 미리 감사드립니다!

+0

'var dataString = {has_wiki : true, is_private : true}; 시도한 적이 있습니까? –

+0

다시 연락해 주셔서 감사합니다. 제안을 전달하려고하면 저장소가 성공적으로 만들어 지지만 다시 전달 된 값을 인식하지 못합니다. – 5k313t0r

답변

0

this question을 기반으로 답변을 찾을 수있었습니다. 저장소 설정을 약간 다르게 전달해야했습니다. 시체 대신 양식 키를 통해.

request({ 
    url: 'https://api.bitbucket.org/2.0/repositories/' + username + '/' + _.kebabCase(answers.reponame), 
    method: 'POST', 
    headers: {'Authorization': 'Bearer ' + prefs.ginit.token}, 
    form: { 
     "scm": "git", 
     "name": answers.reponame, 
     "is_private": answers.visibility === 'private' ? true : false, 
     "description": answers.description, 
     "language": answers.language, 
    } 
}, function (err, res) { 
    status.stop(); 

    if (err) { 
     console.log(err); 
     reject(new Error('Couldn\'t create remote repo.')); 
    } 

    let json = JSON.parse(res.body); 

    if(res.statusCode == 400) { 
     reject(new Error(json.error.message)); 
    } 

    if (res.statusCode == 200) { 
     console.log(chalk.green('\n' + json.name + ' created sucessfully.')); 
     console.log(chalk.green('You can view it here: ' + json.links.html.href + '\n')); 

     resolve(json); 
    } 

});