##// END OF EJS Templates
user-groups: fix potential problem with group sync of external plugins....
user-groups: fix potential problem with group sync of external plugins. - when using external plugin we used to check for a parameter that set the sync mode. The problem is we only checked if the flag was there. So toggling sync on and off set the value and then left the key still set but with None. This confused the sync and thought the group should be synced !

File last commit:

r1959:b0de121b default
r2193:20e24a44 stable
Show More
pullrequest.py
144 lines | 4.7 KiB | text/x-python | PythonLexer
license: updated copyright year to 2017
r1271 # Copyright (C) 2016-2017 RhodeCode GmbH
dan
events: add pull request events
r378 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
events: make the System URL extraction safer....
r1424 import logging
dan
events: add serialization .to_dict() to events based on marshmallow
r379
dan
integrations: add integration support...
r411 from rhodecode.translation import lazy_ugettext
dan
events: change target to source repo for pull request events...
r514 from rhodecode.events.repo import (
RepoEvent, _commits_as_dict, _issues_as_dict)
dan
events: add pull request events
r378
events: make the System URL extraction safer....
r1424 log = logging.getLogger(__name__)
dan
events: add pull request events
r378
class PullRequestEvent(RepoEvent):
"""
dan
events: add serialization .to_dict() to events based on marshmallow
r379 Base class for pull request events.
dan
events: add pull request events
r378
dan
events: add serialization .to_dict() to events based on marshmallow
r379 :param pullrequest: a :class:`PullRequest` instance
dan
events: add pull request events
r378 """
dan
events: add serialization .to_dict() to events based on marshmallow
r379
dan
events: add pull request events
r378 def __init__(self, pullrequest):
super(PullRequestEvent, self).__init__(pullrequest.target_repo)
self.pullrequest = pullrequest
dan
integrations: add integration support...
r411 def as_dict(self):
from rhodecode.model.pull_request import PullRequestModel
data = super(PullRequestEvent, self).as_dict()
dan
events: change target to source repo for pull request events...
r514 commits = _commits_as_dict(
events: re-organizate events handling....
r1789 self,
dan
events: change target to source repo for pull request events...
r514 commit_ids=self.pullrequest.revisions,
repos=[self.pullrequest.source_repo]
)
issues = _issues_as_dict(commits)
dan
integrations: add integration support...
r411
data.update({
'pullrequest': {
'title': self.pullrequest.title,
'issues': issues,
'pull_request_id': self.pullrequest.pull_request_id,
pyramid: ported pyramid routing for events
r2016 'url': PullRequestModel().get_url(
self.pullrequest, request=self.request),
events: expose permalink urls for different set of object....
r1788 'permalink_url': PullRequestModel().get_url(
pyramid: ported pyramid routing for events
r2016 self.pullrequest, request=self.request, permalink=True),
dan
events: add an event for pull request comments with review status
r443 'status': self.pullrequest.calculated_review_status(),
dan
events: change target to source repo for pull request events...
r514 'commits': commits,
dan
integrations: add integration support...
r411 }
})
return data
dan
events: add pull request events
r378
class PullRequestCreateEvent(PullRequestEvent):
"""
An instance of this class is emitted as an :term:`event` after a pull
request is created.
"""
name = 'pullrequest-create'
dan
integrations: add integration support...
r411 display_name = lazy_ugettext('pullrequest created')
dan
events: add pull request events
r378
class PullRequestCloseEvent(PullRequestEvent):
"""
An instance of this class is emitted as an :term:`event` after a pull
request is closed.
"""
name = 'pullrequest-close'
dan
integrations: add integration support...
r411 display_name = lazy_ugettext('pullrequest closed')
dan
events: add pull request events
r378
class PullRequestUpdateEvent(PullRequestEvent):
"""
An instance of this class is emitted as an :term:`event` after a pull
dan
events: add an event for pull request comments with review status
r443 request's commits have been updated.
dan
events: add pull request events
r378 """
name = 'pullrequest-update'
dan
events: add an event for pull request comments with review status
r443 display_name = lazy_ugettext('pullrequest commits updated')
class PullRequestReviewEvent(PullRequestEvent):
"""
An instance of this class is emitted as an :term:`event` after a pull
request review has changed.
"""
name = 'pullrequest-review'
display_name = lazy_ugettext('pullrequest review changed')
dan
events: add pull request events
r378
class PullRequestMergeEvent(PullRequestEvent):
"""
An instance of this class is emitted as an :term:`event` after a pull
request is merged.
"""
name = 'pullrequest-merge'
dan
integrations: add integration support...
r411 display_name = lazy_ugettext('pullrequest merged')
dan
events: add pull request events
r378
dan
events: add an event for pull request comments with review status
r443 class PullRequestCommentEvent(PullRequestEvent):
dan
events: add pull request events
r378 """
An instance of this class is emitted as an :term:`event` after a pull
dan
events: add an event for pull request comments with review status
r443 request comment is created.
dan
events: add pull request events
r378 """
dan
events: add an event for pull request comments with review status
r443 name = 'pullrequest-comment'
display_name = lazy_ugettext('pullrequest commented')
def __init__(self, pullrequest, comment):
super(PullRequestCommentEvent, self).__init__(pullrequest)
self.comment = comment
def as_dict(self):
comments: renamed ChangesetCommentsModel to CommentsModel to reflect what it actually does....
r1323 from rhodecode.model.comment import CommentsModel
dan
events: add an event for pull request comments with review status
r443 data = super(PullRequestCommentEvent, self).as_dict()
dan
events: add pull request events
r378
dan
events: add an event for pull request comments with review status
r443 status = None
if self.comment.status_change:
status = self.comment.status_change[0].status
dan
events: add pull request events
r378
dan
events: add an event for pull request comments with review status
r443 data.update({
'comment': {
'status': status,
'text': self.comment.text,
slack: updated slack integration to use the attachements for nicer formatting.
r1467 'type': self.comment.comment_type,
'file': self.comment.f_path,
'line': self.comment.line_no,
pyramid: ported pyramid routing for events
r2016 'url': CommentsModel().get_url(
self.comment, request=self.request),
events: expose permalink urls for different set of object....
r1788 'permalink_url': CommentsModel().get_url(
pyramid: ported pyramid routing for events
r2016 self.comment, request=self.request, permalink=True),
dan
events: add an event for pull request comments with review status
r443 }
})
return data