【问题标题】:Using Bitbucket REST Api v2 - Unable to specify project when creating new repository使用 Bitbucket REST Api v2 - 创建新存储库时无法指定项目
【发布时间】:2019-03-03 10:42:33
【问题描述】:

存储库已创建,但未添加到请求中指定的项目中。我在某处读到它可能是因为我在请求中使用了 form 关键字,但我不确定如何让它工作。

let event = {
reponame: "DWM_Test-3",
visibility: "private",
description: "This repo is created by DWM",
language: "php",
project: {"key": "DWMT"},
wiki: true,
issues: true,
username: "xyz"
};

这是我的功能

const createRepo = (access_token, event) => {
request({
    url: 'https://api.bitbucket.org/2.0/repositories/' + event.username + '/' + _.kebabCase(event.reponame),
    method: 'POST',
    headers: {'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json'},
    form: {
        "scm": "git",
        "name": event.reponame,
        "is_private": event.visibility === 'private' ? true : false,
        "description": event.description,
        "language": event.language,
        "project": event.project,
        "has_issues": event.issues,
        "has_wiki": event.wiki,
        "fork_policy": "no_public_forks"

    }
}, function (err, res) {
    if (err) {
        console.log(err);
    }

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

    if (res.statusCode === 401) {
        console.log(json);
        return json;
        // reject(new Error(json.error.message));
    }

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

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

    }

  });
};

【问题讨论】:

    标签: node.js api request bitbucket bitbucket-api


    【解决方案1】:

    设法弄明白了。

    let data = {
        "scm": "git",
        "name": event.repoName,
        "is_private": event.visibility === 'private',
        "description": event.description,
        "language": event.language,
        "project": event.project,
        "has_issues": false,
        "has_wiki": true,
        "fork_policy": "no_public_forks"
    };
    
        const createRepo = (access_token) => {
        request({
            url: 'https://api.bitbucket.org/2.0/repositories/' + event.owner + '/' + _.kebabCase(event.repoName),
            method: 'POST',
            headers: {'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json'},
            // form : {
            //     "scm": "git",
            //     "name": event.reponame,
            //     "is_private": event.visibility === 'private' ? true : false,
            //     "description": event.description,
            //     "language": event.language,
            //     "project": event.project,
            //     "has_issues": event.issues,
            //     "has_wiki": event.wiki,
            //     "fork_policy": "no_public_forks"
            //
            // }
            body: JSON.stringify(data)
        }, function (err, res) {
            if (err) {
                callback(err);
            }
    
            let json = JSON.parse(res.body);
    
            if (res.statusCode === 401) {
                response.statusCode = 401;
                response.message = json;
                // console.log(json);
                callback(null, response)
                // reject(new Error(json.error.message));
            }
    
            if (res.statusCode === 400) {
                response.statusCode = 400;
                response.message = json;
                // console.log(json);
                callback(null, response)
                // reject(new Error(json.error.message));
            }
    
            if (res.statusCode === 200) {
                response.statusCode = 200;
                response.url = json.links.html.href;
                console.log(chalk.green('\n' + json.name + ' created sucessfully.'));
                console.log(chalk.green('You can view it here: ' + json.links.html.href + '\n'));
                callback(null, response)
    
            }
    
        });
    
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-11
      • 2022-08-17
      • 2019-09-15
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多