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

时间:2016-05-13 17:35:16

标签: javascript node.js rally

我的要求是获取用户被禁用的确切日期/时间。 为此,我需要在修订历史记录中查询“用户设置为INACTIVE”行,以查找用户从启用切换到禁用的日期。 如何使用节点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;
  }
}

1 个答案:

答案 0 :(得分:0)

以下是如何实现这一目标的简要示例。请注意,这仅显示如何在用户上获取集合中的所有修订,您需要遍历它们并匹配“已禁用”上的描述字段:

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