【问题标题】:How to get the revision history of user from Rally using Node js scripting如何使用 Node js 脚本从 Rally 获取用户的修订历史记录
【发布时间】:2016-05-13 17:35:15
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js rally


    【解决方案1】:

    这里有一个简短的例子来说明如何实现这一点。请注意,这仅显示如何获取用户集合中的所有修订,您需要遍历它们并匹配“已禁用”上的描述字段:

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

    【讨论】:

    • 代码对我有用。但我还有另一个问题,我在另一个名为 RallyDataLoader 的类中创建了一个 RestApi 连接,所以我无法在这个特定的类中使用它。怎么能这样?
    • 代码只显示第一个用户修订历史。您必须始终使用用户名进行过滤?
    • 虽然示例仅查询一个用户,但如果您愿意,您可以选择轮询用户集合以获取多个用户。
    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2014-08-16
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多