Exemplo n.º 1
0
 def mail(self):
     ticket = self._ticket
     pullreq = self._pullreq
     target = self._target
     deltacommits = self._deltacommits
     sender = self._sender
     if len(deltacommits) > COMMIT_LIMIT:
         more = self.domain("/%s/compare/%s...%s" % (
             pullreq.to_proj.name,
             deltacommits[-COMMIT_LIMIT-1].sha,
             deltacommits[0].sha,))
         more_count = len(deltacommits) - COMMIT_LIMIT
     delta_commits = [(c.author.name, c.shortlog, self.domain(c.url), c.shortsha)
                      for c in reversed(deltacommits[-COMMIT_LIMIT:])]
     hook_url = self.hook_url
     ticket_url = self.domain(ticket.url)
     in_reply_to = IN_REPLY_TO % (target.name, ticket.ticket_id)
     subject = EMAIL_TITLE % (target.name, ticket.title, ticket.ticket_id)
     fromaddr = Mail.customize_sender(sender, target.name)
     toaddr, ccaddr = self.mail_receivers
     return Mail(subject,
                 to=toaddr,
                 cc=ccaddr,
                 from_=fromaddr,
                 in_reply_to=in_reply_to,
                 context=MailContext('new_commits', data=locals()))
Exemplo n.º 2
0
 def mail(self):
     sender = self._sender
     content = self._content
     issue = self._issue
     target = self._target
     url = self.domain(issue.url)
     toaddrs = Mail.addrs_by_usernames(self.noti_receivers, target)
     fromaddr = Mail.customize_sender(sender, target.name)
     hook_url = self.hook_url
     in_reply_to = IN_REPLY_TO % (target.name, self._issue_id)
     if issue.is_closed:
         status_line = "Issue closed by %s" % sender
         subject = EMAIL_TITLE % (target.name, issue.title, issue.number)
         message_id = None
     else:
         status_line = "%s create a new issue [%s (#%s)](%s)" % (
             sender, issue.title, issue.number, url)
         subject = "RE:" + EMAIL_TITLE % (target.name, issue.title,
                                          issue.number)
         message_id = in_reply_to
     if toaddrs:
         return Mail(subject,
                     to=toaddrs,
                     from_=fromaddr,
                     in_reply_to=in_reply_to,
                     message_id=message_id,
                     context=MailContext('_', data=locals()))
Exemplo n.º 3
0
 def mail(self):
     sender = self._sender
     content = self._content
     issue = self._issue
     target = self._target
     url = self.domain(issue.url)
     toaddrs = Mail.addrs_by_usernames(self.noti_receivers, target)
     fromaddr = Mail.customize_sender(sender, target.name)
     hook_url = self.hook_url
     in_reply_to = IN_REPLY_TO % (target.name, self._issue_id)
     if issue.is_closed:
         status_line = "Issue closed by %s" % sender
         subject = EMAIL_TITLE % (target.name, issue.title, issue.number)
         message_id = None
     else:
         status_line = "%s create a new issue [%s (#%s)](%s)" % (
             sender, issue.title, issue.number, url)
         subject = "RE:" + EMAIL_TITLE % (target.name, issue.title, issue.number)
         message_id = in_reply_to
     if toaddrs:
         return Mail(subject,
                     to=toaddrs,
                     from_=fromaddr,
                     in_reply_to=in_reply_to,
                     message_id=message_id,
                     context=MailContext('_', data=locals()))
Exemplo n.º 4
0
    def mail(self):
        sender = self._sender
        content = self._content
        issue = self._issue
        comment = self._comment
        target = self._target

        subject = EMAIL_TITLE % (target, issue.title, issue.number)
        hook_url = self.hook_url
        url = self.domain(self._url)

        toaddr = Mail.addrs_by_usernames([sender])
        ccaddr = Mail.addrs_by_usernames(self.noti_receivers, target)

        in_reply_to = IN_REPLY_TO % (target.name, self._issue_id)
        fromaddr = Mail.customize_sender(sender, target.name)
        status_line = "{} commented on issue [{} (#{})]({})".format(
            sender, issue.title, issue.number, url)

        return Mail(
            subject,
            to=toaddr,
            cc=ccaddr,
            from_=fromaddr,
            in_reply_to=in_reply_to,
            context=MailContext('_', data=locals()))
Exemplo n.º 5
0
 def mail_receivers(self):
     ticket = self._ticket
     ticket_id = ticket.ticket_id
     target = self._target
     to_receivers = Mute.filter('ticket', target.name,
                                ticket_id, [ticket.author, ])
     cc_recievers = Mute.filter('ticket', target.name,
                                ticket_id, ticket.participants)
     toaddr = Mail.addrs_by_usernames(to_receivers, target)
     ccaddr = Mail.addrs_by_usernames(cc_recievers, target)
     return toaddr, ccaddr
Exemplo n.º 6
0
 def mail(self):
     if self._last_week:
         timestamp = get_last_monday(timestamp=True)
         monday = get_last_monday()
         sunday = get_last_sunday()
     else:
         timestamp = get_current_monday(timestamp=True)
         monday = get_current_monday()
         sunday = get_current_sunday()
     changes = []
     projects = self._team.projects
     for project in projects:
         commits = project.repo.get_commits("HEAD",
                                            since=int(timestamp),
                                            no_merges=True)
         changes.append(dict(project=project, commits=commits))
     lines = []
     toaddrs, ccaddrs = self.mail_receivers
     mail = Mail("Code Team Weekly",
                 to=toaddrs,
                 cc=ccaddrs,
                 context=MailContext('weekly',
                                     data={
                                         "lines": lines,
                                         "changes": changes,
                                         "team": self._team,
                                         "sunday": sunday,
                                         "monday": monday
                                     }),
                 big=True)
     return mail
Exemplo n.º 7
0
 def mail(self):
     proj = self._proj
     comment = self._comment
     in_reply_to = self.in_reply_to
     subject = self.reply_mail_subject
     url = self.full_url
     hook_url = self.hook_url
     content = self._comment.content
     author = comment.author
     proj_name = proj.name
     fromaddr = Mail.customize_sender(author, proj_name)
     toaddr, ccaddr = self.mail_receivers
     return Mail(subject,
                 to=toaddr,
                 cc=ccaddr,
                 from_=fromaddr,
                 in_reply_to=in_reply_to,
                 context=MailContext('codereview', data=locals()))
Exemplo n.º 8
0
    def mail(self):
        comment = self._comment
        pullreq = self._pullreq
        to_proj = pullreq.to_proj
        ticket = self._ticket
        ticket_id = ticket.ticket_id
        status = self._status
        sender = self._sender
        diffurl = self.domain('/%s/pull/%s' % (to_proj.name, ticket_id))
        url = "%s/" % diffurl
        hook_url = self.hook_url

        if status == 'unmerge':
            _, toaddr = self.mail_receivers
            ccaddr = self.extra_receivers
            subject = self.mail_subject
            content = self._content
            message_id = self.in_reply_to
        else:
            toaddr, ccaddr = self.mail_receivers
            subject = self.reply_mail_subject
            content = """Pull request [{ticket_title} (#{ticket_id})]({url}) is {status} by {sender} """.format(
                ticket_title=ticket.title,
                ticket_id=ticket_id,
                url=url,
                status=status,
                sender=sender)
            message_id = None

        in_reply_to = self.in_reply_to
        fromaddr = Mail.customize_sender(self._sender, to_proj.name)
        return Mail(subject,
                    to=toaddr,
                    cc=ccaddr,
                    from_=fromaddr,
                    in_reply_to=in_reply_to,
                    message_id=message_id,
                    context=MailContext('pullrequest', data=locals()))
Exemplo n.º 9
0
 def mail(self):
     proj = self._proj
     comment = self._comment
     in_reply_to = self.in_reply_to
     subject = self.reply_mail_subject
     url = self.full_url
     hook_url = self.hook_url
     content = self._comment.content
     author = comment.author
     proj_name = proj.name
     fromaddr = Mail.customize_sender(author, proj_name)
     toaddr, ccaddr = self.mail_receivers
     return Mail(subject,
                 to=toaddr,
                 cc=ccaddr,
                 from_=fromaddr,
                 in_reply_to=in_reply_to,
                 context=MailContext('codereview', data=locals()))
Exemplo n.º 10
0
    def mail(self):
        comment = self._comment
        uid = self.uid

        ticket = self._ticket
        ticket_id = ticket.ticket_id
        ticket_title = ticket.title

        author = self._sender
        content = self._content

        pullreq = self._pullreq
        proj = pullreq.to_proj
        proj_url = self.domain(proj.url)
        proj_name = proj.name

        if self._is_ticketcomment:
            pr_url = '/%s/pull/%s/' % (proj_name, ticket_id)
            url = self.domain('%s#%s' % (pr_url, uid))
        else:
            path = comment.path
            url = self.domain(str('/%s/pull/%s/files#%s' % (proj_name,
                                                            ticket_id,
                                                            uid)))
            # FIXME: move to pullreq.xx
            diff = pullreq.get_diff(ref=comment.from_sha, paths=[path])
            # FIXME: new smart_slice
            #diff_content = diff.patches[0].smart_slice(comment.position) if diff and diff.patches else []
            diff_content = ''

        subject = self.reply_mail_subject
        in_reply_to = self.in_reply_to
        hook_url = self.hook_url
        fromaddr = Mail.customize_sender(author, proj_name)
        toaddr, ccaddr = self.mail_receivers
        return Mail(subject,
                    to=toaddr,
                    cc=ccaddr,
                    from_=fromaddr,
                    in_reply_to=in_reply_to,
                    context=MailContext('codereview', data=locals()))
Exemplo n.º 11
0
 def mail(self):
     sha = self._sha
     state = self._state
     pull = self._pull
     url = self._qaci_url
     project = pull.to_proj
     number = self.build_number
     commit = project.repo.get_commit(sha)
     ticket_url = pull.full_url
     subject = EMAIL_TITLE_TEMPLATE.format(state=state,
                                           project_name=project.name,
                                           qaci_id=number,
                                           qaci_sha=sha[:8])
     toaddr, ccaddr = self.mail_receivers
     in_reply_to = None
     message_id = None
     return Mail(subject,
                 to=toaddr,
                 cc=ccaddr,
                 in_reply_to=in_reply_to,
                 message_id=message_id,
                 context=MailContext('qaci', data=locals()))
Exemplo n.º 12
0
    def mail(self):
        comment = self._comment
        pullreq = self._pullreq
        to_proj = pullreq.to_proj
        ticket = self._ticket
        ticket_id = ticket.ticket_id
        status = self._status
        sender = self._sender
        diffurl = self.domain('/%s/pull/%s' % (to_proj.name, ticket_id))
        url = "%s/" % diffurl
        hook_url = self.hook_url

        if status == 'unmerge':
            _, toaddr = self.mail_receivers
            ccaddr = self.extra_receivers
            subject = self.mail_subject
            content = self._content
            message_id = self.in_reply_to
        else:
            toaddr, ccaddr = self.mail_receivers
            subject = self.reply_mail_subject
            content = """Pull request [{ticket_title} (#{ticket_id})]({url}) is {status} by {sender} """.format(
                ticket_title=ticket.title,
                ticket_id=ticket_id,
                url=url,
                status=status,
                sender=sender)
            message_id = None

        in_reply_to = self.in_reply_to
        fromaddr = Mail.customize_sender(self._sender, to_proj.name)
        return Mail(subject,
                    to=toaddr,
                    cc=ccaddr,
                    from_=fromaddr,
                    in_reply_to=in_reply_to,
                    message_id=message_id,
                    context=MailContext('pullrequest', data=locals()))
Exemplo n.º 13
0
 def mail_receivers(self):
     toaddr = Mail.addrs_by_usernames([self._proj.owner_id])
     ccaddr = Mail.addrs_by_usernames(self.noti_receivers)
     toaddr.add(EMAIL_REPLY_BOT)
     return toaddr, ccaddr
Exemplo n.º 14
0
 def mail_receivers(self):
     toaddr = Mail.addrs_by_usernames([self._ticket.author])
     #ccaddr = Mail.addrs_by_usernames(self.noti_receivers)
     ccaddr = []
     return toaddr, ccaddr
Exemplo n.º 15
0
 def mail_receivers(self):
     toaddr = Mail.addrs_by_usernames([self._ticket.author])
     #ccaddr = Mail.addrs_by_usernames(self.noti_receivers)
     ccaddr = []
     return toaddr, ccaddr
Exemplo n.º 16
0
 def extra_receivers(self):
     if self._extra_receivers:
         return Mail.addrs_by_usernames(self._extra_receivers)
     else:
         return set()
Exemplo n.º 17
0
 def mail_receivers(self):
     toaddr = Mail.addrs_by_usernames([self._ticket.author])
     ccaddr = Mail.addrs_by_usernames(self.noti_receivers)
     toaddr.add(EMAIL_REPLY_BOT)
     return toaddr, ccaddr
Exemplo n.º 18
0
 def mail_receivers(self):
     toaddrs = Mail.addrs_by_usernames(self._team.user_ids)
     ccaddrs = ["*****@*****.**"]
     return toaddrs, ccaddrs
Exemplo n.º 19
0
 def mail_receivers(self):
     toaddr = Mail.addrs_by_usernames([self._proj.owner_id])
     ccaddr = Mail.addrs_by_usernames(self.noti_receivers)
     toaddr.add(EMAIL_REPLY_BOT)
     return toaddr, ccaddr
Exemplo n.º 20
0
 def extra_receivers(self):
     if self._extra_receivers:
         return Mail.addrs_by_usernames(self._extra_receivers)
     else:
         return set()
Exemplo n.º 21
0
 def mail_receivers(self):
     toaddrs = Mail.addrs_by_usernames(self._team.user_ids)
     ccaddrs = ["*****@*****.**"]
     return toaddrs, ccaddrs