Esempio n. 1
0
issueStrategy.setup = function(setupOptions) {

    var jiveApi = setupOptions.jiveApi;
    var owner = setupOptions.owner;
    var repo = setupOptions.repo;
    var placeID = setupOptions.placeID;
    var placeUrl = setupOptions.placeUrl;
    var instance = setupOptions.instance;
    var auth = gitHubFacade.createOauthObject( setupOptions.gitHubToken);

    return gitHubFacade.subscribeToRepoEvent(owner, repo, gitHubFacade.Events.Issues, auth,
        function (payload) {
            if(notAnIgnoredAction(payload.action)) {
                var whoDunIt = payload.sender.login;
                return gitHubFacade.getUserDetails(whoDunIt, auth).then(function (user) {
                    return helpers.getDiscussionForIssue(jiveApi, placeUrl,payload.issue.id).then(function (discussion) {
                        var title = formatActivityHeadline(user, payload);
                        var formattedData = tileFormatter.formatActivityData(
                            title, payload.issue.body,
                            (user.name || user.login),
                            user.email,
                            (discussion ? discussion.resources.html.ref : payload.issue.html_url));
                        jive.extstreams.pushActivity(instance, formattedData);
                    });
                })
            }
        });
};
Esempio n. 2
0
issueStrategy.setup = function(setupOptions){

    var jiveApi = setupOptions.jiveApi;
    var owner = setupOptions.owner;
    var repo = setupOptions.repo;
    var placeID = setupOptions.placeID;
    var placeUrl = setupOptions.placeUrl;
    var auth = gitHubFacade.createOauthObject( setupOptions.gitHubToken);


    return gitHubFacade.subscribeToRepoEvent(owner, repo, gitHubFacade.Events.Issues, auth, function (gitData) {
        switch(gitData.action) {
            case "opened": // Issue just created on GitHub
                createIssueDiscussion(placeID, gitData, jiveApi);
                break;
            case "reopened":
                reopenDiscussion(jiveApi, placeUrl, gitData);
                break;
            case "closed":
                closeDiscussion(jiveApi, placeUrl, gitData);
                break;
            case "labeled":
            case "unlabeled":
                updateDiscussionTags(jiveApi, placeUrl, gitData);
                break
        }
    });
};
issueCommentStrategy.setup = function(setupOptions) {

    var jiveApi = setupOptions.jiveApi;
    var owner = setupOptions.owner;
    var repo = setupOptions.repo;
    var auth = gitHubFacade.createOauthObject( setupOptions.gitHubToken);

    return gitHubFacade.subscribeToRepoEvent(owner, repo, gitHubFacade.Events.IssueComment, auth, function (gitData) {
        //GitHub comment event handler
        var gitComment = gitData.comment.body;

        if(commentDidNotOriginateFromJive(gitComment)){
            helpers.getDiscussionForIssue(jiveApi,setupOptions.placeUrl, gitData.issue.id)
                .then(function (discussion) {
                    addCommentToDiscussion(jiveApi, gitData, auth, discussion);
                })
                .catch(function (error) {
                    jive.logger.error(error);
            });
        }
    });
};