Files @ af7b367f6b5a
Branch filter:

Location: kallithea/scripts/run-all-cleanup

Thomas De Schampheleire
db: introduce constraint ensuring no duplicate (reviewer, pullrequest) combinations

A reviewer should only be added once to a review.

Previously, this was not ensured by the database itself, although that the
controller would try to not add duplicate reviewers. But there was no hard
guarantee: e.g. simultaneous adding of the same reviewer to the same review
by a review owner and admin, a framework bug that sends the same request
twice, ... could still trigger duplicate addition. Additionally, code
changes (e.g. a new API) could introduce bugs at the controller level.

Existing production databases were found to contain such duplicate entries.
Nevertheless, as the code displaying reviewers in a pull request filtered
out duplicates, this never showed in the UI, and never was a 'real' problem.

Add a UniqueConstraint in the database to prevent such entries, with a
database migration step that will first find and remove existing duplicates.
#!/bin/sh

# Convenience script for running various idempotent source code cleanup scripts

set -e
set -x

scripts/docs-headings.py
scripts/generate-ini.py
scripts/whitespacecleanup.sh

hg loc 'set:!binary()&grep("^#!.*python")' '*.py' | xargs scripts/pyflakes
echo "no blocking problems found by $0"