[bug] Commenting on a non-head git changeset fails with TypeError in notification email (0.7.0, still in tip)
橋本 憲一
hashimoto.kenichi at genetec.co.jp
Tue Sep 29 12:05:42 UTC 2026
Hi,
Adding a comment to a git changeset that is not a branch head fails with HTTP 500, and the comment is not saved.
Version: Kallithea 0.7.0 (Python 3.11). The same code is still present in tip.
Steps to reproduce:
1. In a git repository, open a changeset that is not the head of any branch (for example, the parent of the master head).
2. Add a general (not inline) comment.
Result: HTTP 500. The error log shows:
kallithea/model/comment.py, in create_notification
kallithea/model/notification.py, in get_email_tmpl
return email_template.render_unicode(**_kwargs)
mako/util.py, in getvalue
return self.delim.join(self.data)
TypeError: sequence item 16: expected str instance, NoneType found
Cause: in kallithea/lib/vcs/backends/git/changeset.py, GitChangeset.branch returns None unless the commit is a branch head. kallithea/model/comment.py passes it through unchanged ('branch': cs.branch), and templates/email/changeset_comment.txt renders it with ${branch|n}, so rendering fails and the whole comment request is rolled back. Commenting on a branch-head changeset works.
Possible fix: pass a string, for example 'branch': cs.branch or '' (or ', '.join(cs.branches)), or guard the value in changeset_comment.txt / changeset_comment.html.
Regards,
More information about the kallithea-general
mailing list