mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-16 21:53:50 -05:00
no git hook executed during "gitea squash and merge" #2877
Closed
opened 2025-11-02 04:52:17 -06:00 by GiteaMirror
·
18 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#2877
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @uwebartels on GitHub (Feb 8, 2019).
dfad569, 1.7.1 (docker image)[x]):Description
running a "squash and merge" in a pull request after an approval does not trigger a git hook post-receive. The git hook script is a bash script provided with "set -x". No corresponding output is found in any logfile.
But the merge is done.
Doing a git merge without gitea+pull request works like a charm.
Screenshots
none.
@apricote commented on GitHub (Feb 8, 2019):
From the official documentation on Git Hooks:
Emphasis mine.
This explains why it works when you manually do a
git mergeandgit push.When the Gitea Server performs a merge, it checks out your repository into a temporary location, runs
git mergeand thengit pushes the new commit back into the main repository:7fb09f035a/models/pull.go (L570)So it looks like there is an actual bug here.
I am not sure if we want to support this though, as the error from
post-receivewould be displayed as a500error page and the error message probably only includes theexit codeand not your stderr output.References:
@uwebartels commented on GitHub (Feb 8, 2019):
Thanks for your response.
There is no 500 error page and no log entry which shows a hint of the post-receive hook.
What I'm wondering is, why the push in pull.go:570 is not triggering the post-receive hook. Cause when I merge the branch via cmd I also merge locally and then push the commited result. At least it would be nice to add some debug output.
Best...
Uwe
@apricote commented on GitHub (Feb 8, 2019):
Yes, the
git pushin line 570 should trigger thepost-receivehook. Currently I can not confirm that this is or is not happening.If it would trigger the
post-receivehook, you would still not get any useful output, per the reasons described in my first comment.Can you maybe add some HTTP call to your
post-receivescript to a server that you control (local nginx on the machine?) so you can verify that thepost-receiveis not executed.@zeripath commented on GitHub (Feb 8, 2019):
The prereceive and post-receive hooks won't run because the environment variables aren't being set properly.
Well aren't being set at all.
@zeripath commented on GitHub (Feb 8, 2019):
Even in my make upload not clone branch (#5702) they won't run because they don't run in the editor currently.
Personally I think they probably should run.
See my pr for refactoring the editor to use LFS. That goes almost all the way but doesn't set the final key variable to make them run SSH_ORIGINAL_COMMAND. (Which can be set to anything it just has to be set.)
@lunny commented on GitHub (Feb 9, 2019):
@zeripath did you mean your PR will fix this bug?
@zeripath commented on GitHub (Feb 9, 2019):
Nope, it won't. I meant that as it currently stands it won't because that's current behaviour but I set almost all of the necessary environment variables to make them run.
I do think we should probably run the hooks but it looks like they were deliberately set up so that they wouldn't run for internal pushes etc.
So, there are two ways of fixing this:
I suspect that they original idea was that we would end up replicating the functionality of the hooks in the internal code, but of course that's code duplication so it gets missed/forgotten.
Therefore we should set it so that the hooks are run.
@zeripath commented on GitHub (Feb 9, 2019):
For clarity; in order for the hooks to be run you need to set the following environment variables:
That means that if you call a git command to commit or push you should probably set:
@zeripath commented on GitHub (Feb 9, 2019):
The issue is that our integration tests fail if you set
SSH_ORIGINAL_COMMAND, presumably because the environment isn't completely set up. I think if we migrate the affected tests to TestGit style it might work though.@uwebartels commented on GitHub (Feb 28, 2019):
Hiho,
any update? Do you think somebody could fix this?
I'm heavily dependent on git hooks and the code review process.
webhooks unfortunately are not an option as they are asynchronous.
Muchas...
Uwe
@theAkito commented on GitHub (Mar 22, 2019):
Does post-receive git hook work with other commands or does it not work at all?
@uwebartels commented on GitHub (Mar 22, 2019):
yes. the current workaround for us to work directly with git commands like
I just cannot enforce merging via gitea gui, thus not using the branch protection.
Best Regards
Uwe
@theAkito commented on GitHub (Mar 22, 2019):
Yes, but do Git hooks over Gitea GUI not work at all or does only merging over Gitea GUI not work?
@uwebartels commented on GitHub (Mar 22, 2019):
git hooks over gitea gui are not triggered at all. merging works well.
@theAkito commented on GitHub (Mar 22, 2019):
Well, so apparently that's why my hook doesn't work either. I think it should be clarified in the OP that this issue regards Git hooks in general, which is a big deal.
@zeripath commented on GitHub (Mar 24, 2019):
I think I'd better take another look at this.
The issue was that when I implemented the final environment variable
SSH_ORIGINAL_COMMANDthe integration test suites completely failed.That's likely due to the integration testing environment being too basic and not completely set up.
The required variables are listed above if anyone wants to try.
@theAkito commented on GitHub (Mar 24, 2019):
Does your example from above contain the finalized additions or do parts of those need to be customized for each git hook with specific variables?
@stale[bot] commented on GitHub (May 23, 2019):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.