You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2017/09/26 18:39:28 UTC
[1/3] allura git commit: [#8164] add activity stream entries for
merge request actions
Repository: allura
Updated Branches:
refs/heads/db/8164 [created] 6b662dfb3
[#8164] add activity stream entries for merge request actions
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/6b662dfb
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/6b662dfb
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/6b662dfb
Branch: refs/heads/db/8164
Commit: 6b662dfb30fe87bf46da501fc7908704e7831b99
Parents: 6307d34
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Sep 26 12:22:54 2017 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Sep 26 14:37:18 2017 -0400
----------------------------------------------------------------------
Allura/allura/controllers/repository.py | 7 +++++++
Allura/allura/model/repository.py | 6 ++++++
Allura/allura/tasks/repo_tasks.py | 2 ++
Allura/allura/tests/model/test_repo.py | 3 ++-
Allura/allura/tests/test_tasks.py | 3 ++-
5 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/6b662dfb/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 9518f89..17e3dfb 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -207,6 +207,8 @@ class RepoRootController(BaseController, FeedController):
subject='Discussion for Merge Request #:%s: %s' % (
mr.request_number, mr.summary))
session(t).flush()
+ g.director.create_activity(c.user, 'created', mr,
+ related_nodes=[c.project], tags=['merge-request'])
redirect(mr.url())
@without_trailing_slash
@@ -466,6 +468,9 @@ class MergeRequestController(object):
if changes:
self.req.add_meta_post(changes=changes)
+ g.director.create_activity(c.user, 'updated', self.req,
+ related_nodes=[c.project], tags=['merge-request'])
+
redirect(self.req.url())
@expose()
@@ -475,6 +480,8 @@ class MergeRequestController(object):
if status and self.req.status != status and \
(has_access(self.req, 'write') or (self.req.creator == c.user and status == 'rejected')):
self.req.add_meta_post(changes={'Status': [self.req.status, status]})
+ g.director.create_activity(c.user, 'updated', self.req,
+ related_nodes=[c.project], tags=['merge-request'])
self.req.status = status
redirect('.')
http://git-wip-us.apache.org/repos/asf/allura/blob/6b662dfb/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 4c508b7..0a22230 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -807,6 +807,12 @@ class MergeRequest(VersionedArtifact, ActivityObject):
def activity_name(self):
return 'merge request #%s' % self.request_number
+ @property
+ def activity_extras(self):
+ d = ActivityObject.activity_extras.fget(self)
+ d.update(summary=self.summary)
+ return d
+
@LazyProperty
def creator(self):
from allura import model as M
http://git-wip-us.apache.org/repos/asf/allura/blob/6b662dfb/Allura/allura/tasks/repo_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tasks/repo_tasks.py b/Allura/allura/tasks/repo_tasks.py
index a9a89d7..f84de1a 100644
--- a/Allura/allura/tasks/repo_tasks.py
+++ b/Allura/allura/tasks/repo_tasks.py
@@ -158,6 +158,8 @@ def merge(merge_request_id):
mr.app.repo.merge(mr)
mr.add_meta_post(changes={'Status': [mr.status, 'merged']})
mr.status = 'merged'
+ g.director.create_activity(c.user, 'merged', mr,
+ related_nodes=[c.project], tags=['merge-request'])
session(mr).flush(mr)
http://git-wip-us.apache.org/repos/asf/allura/blob/6b662dfb/Allura/allura/tests/model/test_repo.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/model/test_repo.py b/Allura/allura/tests/model/test_repo.py
index fc30c43..3761821 100644
--- a/Allura/allura/tests/model/test_repo.py
+++ b/Allura/allura/tests/model/test_repo.py
@@ -691,8 +691,9 @@ class TestMergeRequest(object):
self.mr = M.MergeRequest(
app_config=mock.Mock(_id=ObjectId()),
downstream={'commit_id': '12345'},
+ request_number=1,
)
- self.mr.app = mock.Mock(forkable=True)
+ self.mr.app = mock.Mock(forkable=True, url='/mock-app-url/')
self.mr.app.repo.commit.return_value = mock.Mock(_id='09876')
self.mr.merge_allowed = mock.Mock(return_value=True)
self.mr.discussion_thread = mock.Mock()
http://git-wip-us.apache.org/repos/asf/allura/blob/6b662dfb/Allura/allura/tests/test_tasks.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_tasks.py b/Allura/allura/tests/test_tasks.py
index abfa021..2f4de42 100644
--- a/Allura/allura/tests/test_tasks.py
+++ b/Allura/allura/tests/test_tasks.py
@@ -67,7 +67,8 @@ class TestRepoTasks(unittest.TestCase):
@mock.patch('allura.tasks.repo_tasks.session', autospec=True)
@mock.patch.object(M, 'MergeRequest', autospec=True)
def test_merge(self, MR, session):
- mr = mock.Mock(_id='_id')
+ mr = mock.Mock(_id='_id',
+ activity_name='merge req', activity_url='/fake/url', activity_extras={}, node_id=None)
MR.query.get.return_value = mr
repo_tasks.merge(mr._id)
mr.app.repo.merge.assert_called_once_with(mr)
[3/3] allura git commit: [#8164] creator of merge requests gets
subscribed to it
Posted by br...@apache.org.
[#8164] creator of merge requests gets subscribed to it
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/63070c1c
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/63070c1c
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/63070c1c
Branch: refs/heads/db/8164
Commit: 63070c1cf2adacb048c69025db11d2dfedee8899
Parents: 17d8729
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Sep 26 12:22:28 2017 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Sep 26 14:37:18 2017 -0400
----------------------------------------------------------------------
Allura/allura/controllers/repository.py | 1 +
Allura/allura/templates/mail/MergeRequest.txt | 2 +-
.../032-subscribe-merge-request-submitters.py | 40 ++++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/63070c1c/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 8a02905..7b4c703 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -197,6 +197,7 @@ class RepoRootController(BaseController, FeedController):
source_branch=kw['source_branch'],
summary=kw['summary'],
description=kw['description'])
+ mr.subscribe(user=c.user)
M.Notification.post(
mr, 'merge_request',
subject='Merge request: ' + mr.summary)
http://git-wip-us.apache.org/repos/asf/allura/blob/63070c1c/Allura/allura/templates/mail/MergeRequest.txt
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/mail/MergeRequest.txt b/Allura/allura/templates/mail/MergeRequest.txt
index 34d0af5..3302aba 100644
--- a/Allura/allura/templates/mail/MergeRequest.txt
+++ b/Allura/allura/templates/mail/MergeRequest.txt
@@ -20,6 +20,6 @@
---
-{{ data.creator_name }} has requested that you merge changes from `{{ data.downstream_repo.clone_url_first(anon=False) }}` at commit `{{data.downstream_repo.shorthand_for_commit(data.downstream.commit_id)}}` into the branch `{{ data.target_branch }}`
+{{ data.creator_name }} has requested to merge changes from `{{ data.downstream_repo.clone_url_first(anon=False) }}` at commit `{{data.downstream_repo.shorthand_for_commit(data.downstream.commit_id)}}` into the branch `{{ data.target_branch }}`
{{ data.description }}
http://git-wip-us.apache.org/repos/asf/allura/blob/63070c1c/scripts/migrations/032-subscribe-merge-request-submitters.py
----------------------------------------------------------------------
diff --git a/scripts/migrations/032-subscribe-merge-request-submitters.py b/scripts/migrations/032-subscribe-merge-request-submitters.py
new file mode 100644
index 0000000..3791dd7
--- /dev/null
+++ b/scripts/migrations/032-subscribe-merge-request-submitters.py
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import logging
+
+from ming.odm import ThreadLocalORMSession, state
+
+from allura.lib import utils
+from allura import model as M
+
+log = logging.getLogger(__name__)
+
+
+def main():
+ for chunk in utils.chunked_find(M.MergeRequest):
+ for mr in chunk:
+ try:
+ print 'Processing {0}'.format(mr.url())
+ mr.subscribe(user=mr.creator)
+ ThreadLocalORMSession.flush_all()
+ except:
+ log.exception('Error on %s', mr)
+
+
+if __name__ == '__main__':
+ main()
[2/3] allura git commit: [#8164] add subscribe icon in Merge Request
action bar
Posted by br...@apache.org.
[#8164] add subscribe icon in Merge Request action bar
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/6307d34f
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/6307d34f
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/6307d34f
Branch: refs/heads/db/8164
Commit: 6307d34f708ad5c000eb864ebf3e4d8147c4b9de
Parents: 63070c1
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Sep 26 12:54:02 2017 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Sep 26 14:37:18 2017 -0400
----------------------------------------------------------------------
Allura/allura/controllers/repository.py | 29 +++++++++++++++++++-
Allura/allura/templates/repo/merge_request.html | 3 ++
2 files changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/6307d34f/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 7b4c703..9518f89 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -359,6 +359,7 @@ class MergeRequestController(object):
page=None, limit=None, page_size=None, count=None,
style='linear')
mr_dispose_form = SCMMergeRequestDisposeWidget()
+ subscribe_form = SubscribeForm(thing='merge request')
def __init__(self, num):
self.req = M.MergeRequest.query.get(
@@ -373,9 +374,18 @@ class MergeRequestController(object):
c.thread = self.thread_widget
c.log_widget = self.log_widget
c.mr_dispose_form = self.mr_dispose_form
+ c.subscribe_form = self.subscribe_form
+
limit, page = h.paging_sanitizer(limit, page)
with self.req.push_downstream_context():
downstream_app = c.app
+
+ tool_subscribed = M.Mailbox.subscribed()
+ if tool_subscribed:
+ subscribed = False
+ else:
+ subscribed = M.Mailbox.subscribed(artifact=self.req)
+
result = dict(
downstream_app=downstream_app,
req=self.req,
@@ -384,7 +394,9 @@ class MergeRequestController(object):
merge_status=self.req.merge_task_status(),
page=page,
limit=limit,
- count=self.req.discussion_thread.post_count)
+ count=self.req.discussion_thread.post_count,
+ subscribed=subscribed,
+ )
try:
result['commits'] = self.req.commits
except Exception:
@@ -495,6 +507,21 @@ class MergeRequestController(object):
"""Return result from the cache. Used by js, after task was completed."""
return {'can_merge': self.req.can_merge()}
+ @expose('json:')
+ @require_post()
+ @validate(subscribe_form)
+ def subscribe(self, subscribe=None, unsubscribe=None, **kw):
+ if subscribe:
+ self.req.subscribe()
+ elif unsubscribe:
+ self.req.unsubscribe()
+ return {
+ 'status': 'ok',
+ 'subscribed': M.Mailbox.subscribed(artifact=self.req),
+ 'subscribed_to_tool': M.Mailbox.subscribed(),
+ 'subscribed_to_entire_name': 'code repository',
+ }
+
class RefsController(object):
http://git-wip-us.apache.org/repos/asf/allura/blob/6307d34f/Allura/allura/templates/repo/merge_request.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/repo/merge_request.html b/Allura/allura/templates/repo/merge_request.html
index c5517c1..fd3acdf 100644
--- a/Allura/allura/templates/repo/merge_request.html
+++ b/Allura/allura/templates/repo/merge_request.html
@@ -27,6 +27,9 @@ Merge Request #{{req.request_number}}: {{req.summary}} ({{req.status}})
{% endblock %}
{% block actions %}
+ {% if c.user and c.user != c.user.anonymous() %}
+ {{ c.subscribe_form.display(value=subscribed, action='subscribe', style='icon') }}
+ {% endif %}
{% if h.has_access(req, 'write')() %}
{{ g.icons['edit'].render(href='edit', show_title=True) }}
{% endif %}