events: added support for pull-request-comment and commit-comment events.

- allows chopts like actions on commits
- re organized events and code cleanups
This commit is contained in:
Marcin Kuzminski 2020-04-17 22:08:42 +02:00
parent 875bda9f88
commit 324544678c
17 changed files with 325 additions and 113 deletions

View file

@ -75,4 +75,5 @@ from rhodecode.events.pullrequest import ( # pragma: no cover
PullRequestReviewEvent,
PullRequestMergeEvent,
PullRequestCloseEvent,
PullRequestCommentEvent,
)

View file

@ -44,6 +44,9 @@ class RhodecodeEvent(object):
self._request = request
self.utc_timestamp = datetime.datetime.utcnow()
def __repr__(self):
return '<%s:(%s)>' % (self.__class__.__name__, self.name)
def get_request(self):
if self._request:
return self._request
@ -116,3 +119,4 @@ class RhodeCodeIntegrationEvent(RhodecodeEvent):
"""
Special subclass for Integration events
"""
description = ''

View file

@ -77,6 +77,7 @@ class PullRequestCreateEvent(PullRequestEvent):
"""
name = 'pullrequest-create'
display_name = lazy_ugettext('pullrequest created')
description = lazy_ugettext('Event triggered after pull request was created')
class PullRequestCloseEvent(PullRequestEvent):
@ -86,6 +87,7 @@ class PullRequestCloseEvent(PullRequestEvent):
"""
name = 'pullrequest-close'
display_name = lazy_ugettext('pullrequest closed')
description = lazy_ugettext('Event triggered after pull request was closed')
class PullRequestUpdateEvent(PullRequestEvent):
@ -95,6 +97,7 @@ class PullRequestUpdateEvent(PullRequestEvent):
"""
name = 'pullrequest-update'
display_name = lazy_ugettext('pullrequest commits updated')
description = lazy_ugettext('Event triggered after pull requests was updated')
class PullRequestReviewEvent(PullRequestEvent):
@ -104,6 +107,8 @@ class PullRequestReviewEvent(PullRequestEvent):
"""
name = 'pullrequest-review'
display_name = lazy_ugettext('pullrequest review changed')
description = lazy_ugettext('Event triggered after a review status of a '
'pull requests has changed to other.')
def __init__(self, pullrequest, status):
super(PullRequestReviewEvent, self).__init__(pullrequest)
@ -117,6 +122,8 @@ class PullRequestMergeEvent(PullRequestEvent):
"""
name = 'pullrequest-merge'
display_name = lazy_ugettext('pullrequest merged')
description = lazy_ugettext('Event triggered after a successful merge operation '
'was executed on a pull request')
class PullRequestCommentEvent(PullRequestEvent):
@ -126,6 +133,8 @@ class PullRequestCommentEvent(PullRequestEvent):
"""
name = 'pullrequest-comment'
display_name = lazy_ugettext('pullrequest commented')
description = lazy_ugettext('Event triggered after a comment was made on a code '
'in the pull request')
def __init__(self, pullrequest, comment):
super(PullRequestCommentEvent, self).__init__(pullrequest)

View file

@ -186,13 +186,33 @@ class RepoCommitCommentEvent(RepoEvent):
An instance of this class is emitted as an :term:`event` after a comment is made
on repository commit.
"""
name = 'repo-commit-comment'
display_name = lazy_ugettext('repository commit comment')
description = lazy_ugettext('Event triggered after a comment was made '
'on commit inside a repository')
def __init__(self, repo, commit, comment):
super(RepoCommitCommentEvent, self).__init__(repo)
self.commit = commit
self.comment = comment
name = 'repo-commit-comment'
display_name = lazy_ugettext('repository commit comment')
def as_dict(self):
data = super(RepoCommitCommentEvent, self).as_dict()
data['commit'] = {
'commit_id': self.commit.raw_id,
'commit_message': self.commit.message,
'commit_branch': self.commit.branch,
}
data['comment'] = {
'comment_id': self.comment.comment_id,
'comment_text': self.comment.text,
'comment_type': self.comment.comment_type,
'comment_f_path': self.comment.f_path,
'comment_line_no': self.comment.line_no,
}
return data
class RepoPreCreateEvent(RepoEvent):
@ -202,6 +222,7 @@ class RepoPreCreateEvent(RepoEvent):
"""
name = 'repo-pre-create'
display_name = lazy_ugettext('repository pre create')
description = lazy_ugettext('Event triggered before repository is created')
class RepoCreateEvent(RepoEvent):
@ -211,6 +232,7 @@ class RepoCreateEvent(RepoEvent):
"""
name = 'repo-create'
display_name = lazy_ugettext('repository created')
description = lazy_ugettext('Event triggered after repository was created')
class RepoPreDeleteEvent(RepoEvent):
@ -220,6 +242,7 @@ class RepoPreDeleteEvent(RepoEvent):
"""
name = 'repo-pre-delete'
display_name = lazy_ugettext('repository pre delete')
description = lazy_ugettext('Event triggered before a repository is deleted')
class RepoDeleteEvent(RepoEvent):
@ -229,6 +252,7 @@ class RepoDeleteEvent(RepoEvent):
"""
name = 'repo-delete'
display_name = lazy_ugettext('repository deleted')
description = lazy_ugettext('Event triggered after repository was deleted')
class RepoVCSEvent(RepoEvent):
@ -269,6 +293,7 @@ class RepoPrePullEvent(RepoVCSEvent):
"""
name = 'repo-pre-pull'
display_name = lazy_ugettext('repository pre pull')
description = lazy_ugettext('Event triggered before repository code is pulled')
class RepoPullEvent(RepoVCSEvent):
@ -278,6 +303,7 @@ class RepoPullEvent(RepoVCSEvent):
"""
name = 'repo-pull'
display_name = lazy_ugettext('repository pull')
description = lazy_ugettext('Event triggered after repository code was pulled')
class RepoPrePushEvent(RepoVCSEvent):
@ -287,6 +313,8 @@ class RepoPrePushEvent(RepoVCSEvent):
"""
name = 'repo-pre-push'
display_name = lazy_ugettext('repository pre push')
description = lazy_ugettext('Event triggered before the code is '
'pushed to a repository')
class RepoPushEvent(RepoVCSEvent):
@ -298,6 +326,8 @@ class RepoPushEvent(RepoVCSEvent):
"""
name = 'repo-push'
display_name = lazy_ugettext('repository push')
description = lazy_ugettext('Event triggered after the code was '
'pushed to a repository')
def __init__(self, repo_name, pushed_commit_ids, extras):
super(RepoPushEvent, self).__init__(repo_name, extras)

View file

@ -60,6 +60,7 @@ class RepoGroupCreateEvent(RepoGroupEvent):
"""
name = 'repo-group-create'
display_name = lazy_ugettext('repository group created')
description = lazy_ugettext('Event triggered after a repository group was created')
class RepoGroupDeleteEvent(RepoGroupEvent):
@ -69,6 +70,7 @@ class RepoGroupDeleteEvent(RepoGroupEvent):
"""
name = 'repo-group-delete'
display_name = lazy_ugettext('repository group deleted')
description = lazy_ugettext('Event triggered after a repository group was deleted')
class RepoGroupUpdateEvent(RepoGroupEvent):
@ -78,3 +80,4 @@ class RepoGroupUpdateEvent(RepoGroupEvent):
"""
name = 'repo-group-update'
display_name = lazy_ugettext('repository group update')
description = lazy_ugettext('Event triggered after a repository group was updated')