如何使用Node.js脚本从Rally获取用户的修订历史

How to get the revision history of user from Rally using Node js scripting

本文关键字:用户 历史 获取 Rally Node 何使用 js 脚本      更新时间:2023-09-26

我的要求是获得用户被禁用的确切日期/时间。为了实现这一点,我需要在修订历史记录中查询"用户设置为无效"一行,以查找用户从启用切换到禁用的日期。如何使用node js获取修订历史记录?我尝试了下面的代码,但它不起作用,因为Rally支持团队提到它的旧代码,我必须尝试v2.0。有人能帮我达到要求吗?

var revisions = story.RevisionHistory.Revisions;
revisions.sort(byRevisionNumber);
var story_was_blocked = false;
// it doesn't matter how many revs have been in BLOCKED state, presence of one is sufficient
for (var rix = 0; rix < revisions.length && story_was_blocked === false; rix++) {
  var rev = revisions[rix];
  if (rev.Description.indexOf("BLOCKED changed from ") >= 0) {
    story_was_blocked = true;
  }
}

下面是一个如何实现这一目标的简单示例。请注意,这只是显示了如何在User上获取集合中的所有修订,您需要对它们进行迭代,并匹配"Disabled"上的Description字段:

var rally = require('rally'),
queryUtils = rally.util.query,
rallyApi = rally({
    // Example key, not valid
    apiKey: '_UkMasZfjPZfquDIMExfEKnAboQUlyT2SP4UppMHir',
    server: 'https://rally1.rallydev.com',
    requestOptions: {
        headers: {
            'X-RallyIntegrationName': 'Query User Revisions',
            'X-RallyIntegrationVendor': 'Stackoverflow user4211235',
            'X-RallyIntegrationVersion': '1.0'
        }
    }
});
function onError(error) {
    console.log('Failure!', error);
}
function queryUserRevisions(result) {
    var revisions = result.Revisions;
    rallyApi.query({
        ref: revisions,
        start: 1,
        limit: Infinity,
        order: 'RevisionNumber',
        fetch: ['RevisionNumber','Description','CreationDate']
    }, function(error, result) {
        if(error) {
            onError(error);
        } else {
            console.log('Success querying User Revisions...');
            console.log('Summary of revisions on User:')
            console.log(result);
        }
    });
}
function queryUserRevisionHistory(result) {
    rallyApi.query({
        ref: result.Results[0].RevisionHistory,
        start: 1,
        limit: Infinity,
        fetch: ['Revisions','RevisionNumber','Description','CreationDate']
    }, function(error, result) {
        if(error) {
            onError(error);
        } else {
            console.log('Success querying User Revision History. Querying Revisions...');
            queryUserRevisions(result);
        }
    });
}
function queryUser(callback) {
    rallyApi.query({
        type: 'user',
        start: 1,
        pageSize: 2,
        limit: 10,
        order: 'CreationDate',
        fetch: ['UserName', 'EmailAddress', 'RevisionHistory'],
        query: queryUtils.where('UserName', '=', "user@company.com")
    }, function(error, result) {
        if(error) {
            onError(error);
        } else {
            console.log('Success querying User. Querying Revision History...');
            callback(result);
        }
    });
}
queryUser(queryUserRevisionHistory);