Scripts should be idempotent and preserve manual tweaks
Since there are no default settings for new projects, people will have to run the various scripts on new projects and with the distributed nature of Debian, one should expect some duplication to happen from time to time. Nothing bad should happen when you run the script twice, instead it should just update the configuration appropriately.
For example, you recently dropped two events triggering the close/tagpending hook. When we re-run the script, we should have our hooks updated to no longer trigger on those two events. Right now it does nothing.
For emails_on_push, it should do nothing if detects that the email we want to configure is already part of the recipients. If the service is not activated at all, then the current behaviour is fine. But if the service is already activated with another email, I fear that running the script will overwrite (and thus lose) the current value (I did not test it).