2017-09-17 2 views
0

Ich versuche, ein Repository von einer Befehlszeile App zu erstellen, die ich schreibe. Ich verwende node.js, um eine Post-Anfrage an die Bitbucket 2.0 API zu senden, aber obwohl es mir gelingt, das Repo zu erstellen, scheint es nicht die Einstellungen zu respektieren, mit denen ich den Repo erstelle (zB is_private = true, has_wiki = true , Sprache = PHP). Ich bin mir nicht sicher, was ich falsch mache. Meine Vermutung ist, dass ich den Körper so formatiere? Unten ist der Code, den ich verwende:Erstellen Sie ein Repository mit Bitbucket 2.0 api und 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); 
      } 

     }); 

Die api docs here sind. Wer kann helfen? Danke im Voraus!

+0

Haben Sie versucht 'var dataString = {has_wiki: true, is_private: true};'? –

+0

Danke für die Rückmeldung an mich. Wenn ich versuche, Ihren Vorschlag zu übergeben, wird das Repository erfolgreich erstellt, aber es berücksichtigt nicht die übergebenen Werte :( – 5k313t0r

Antwort

0

Ich konnte die Antwort basierend auf this question finden. Ich musste die Repository-Einstellungen etwas anders übergeben. Durch den Formschlüssel anstelle des Körpers.

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); 
    } 

}); 
Verwandte Themen