使用 rally-node 在讨论中创建 ConverationPost

Creating ConverationPost in discussion using rally-node

如何在现有用户故事中创建 ConverationPost?

我似乎无法正确理解语法:

const create = {
  type: 'ConversationPost',
  data: {
    Text: 'api test comment',
    Artifact: '/hierarchicalrequirement/287838839156'
  }
};
restApi.create(create)
.then(result => {
  console.log(result);
})
.catch(error => {
  console.error(error);
})

错误总是:

{ Error: /ConversationPost/create: 401! body=undefined
    at generateError (/Users/ts/Sites/node/tests/node_modules/rally/dist/request.js:38:11)
    at Request._callback (/Users/ts/Sites/node/tests/node_modules/rally/dist/request.js:114:20)
    at Request.self.callback (/Users/ts/Sites/node/tests/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/Users/ts/Sites/node/tests/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at Gunzip.<anonymous> (/Users/ts/Sites/node/tests/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:313:30) errors: [ '/ConversationPost/create: 401! body=undefined' ] }```

当我在使用 Rally GUI 手动创建 post 的同时查看开发工具时,我在请求正文中看到了这个:

{
  "ConversationPost": {
    "Text": "testing",
    "Artifact": "/hierarchicalrequirement/287838839156"
  }
}

有人知道怎么做吗?

编辑:

request debug 设置为 true 在请求中显示了这一点,看起来是正确的:

  json: 
   { ConversationPost: 
      { Text: 'api test comment',
        Artifact: '/hierarchicalrequirement/287838839156' } },
  gzip: true,
  url: 'https://rally1.rallydev.com/slm/webservice/v2.0/ConversationPost/create',
  qs: {},
  callback: [Function],
  method: 'POST' }

我应该补充一下 401 看起来很奇怪,因为我可以查询这个用户故事。

我还注意到来自 rally 节点模块的请求是 POST 请求,但在我的浏览器中 GUI 执行 PUT 请求?

事实证明这是正确的。烦人的小字是 "ALM WSAPI Read-only" 让 Rally 在配置你的 API 键时忽略第二个设置。

401 错误对应于 "access denied",也就是密钥或密钥权限有问题。