The patch provided originally was made against the latest pagure code,
but we are not on the latest dev version. So I created the patch
directly for the source file deployed on src.stg.fedoraproject.org.
There is a local fix on src.fedoraproject.org that is missing on
src.stg.fedoraproject.org. I provided the fix in
https://pagure.io/pagure/pull-request/5525 and this commit is adding it
as patch to ansible, so the change is permanent.
So in out dist-git setup the git hook have a dedicated configuration
file which only contains a read-only access to the database.
This is because of the way our dist-git is setup where every packager
actually has a shell account on the machine and the hook are run by
that account.
So if the packager manages to get a shell access, they will be able to
read this configuration file and we do not want to give them read/write
access to the database.
Pagure however in the default hook tries to update the database, among
other it tries to clear the cached merge status of the open PR when a
commit is pushed.
For a nice UX, it does this within the hook process, this way there is
no race-condition and users accessing a PR right after a push will get
an up to date merge status (as it will be re-generated).
But we cannot do this in dist-git since we cannot update the database
directly, so instead, with this hotfix, we move the process of cleaning
up the merge status to an async job that will have read/write access
and there may be some race-condition in displaying the merge status
but so be it.
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
This is necessary because of the way our dist-git is deployed, the git hook
only have a read-only access to the database so they can't reset the cached
merge status of the open PRs in the same process so we need to do this via
an async process which is basically what this hotfix does.
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>