mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-09 04:25:18 -05:00
Jenkins Git plugin webhook support #8361
Open
opened 2025-11-02 08:03:40 -06:00 by GiteaMirror
·
14 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
No Label
type/proposal
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#8361
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 @fhuberts on GitHub (Jan 16, 2022).
Feature Description
Please add a webhook that supports the Jenkins Git plugin.
This plugin exposes a Jenkins URL that will scan all jobs to see if they need building, based on the clone URL that is handed to it.
A simple GET request on that URL is sufficient.
The format of that URL is
<jenkins-url>/git/notifyCommit?url=<clone-url>.So the only thing needed in the Gitea webhook to be configurable is the Jenkins URL and the clone URL to use.
I've followed the webhooks guide to implement this in php, but having this natively in Gitea would be much much better.
And since it's quite a simple interface, it shouldn't be very hard to do.
My implementation can be found here:
Screenshots
No response
@fhuberts commented on GitHub (Jan 16, 2022):
It would be nice if this was added to the current stable release.
@beyerjsb commented on GitHub (Feb 18, 2022):
I wanted/needed this myself, but after some pondering, I realized that my knowledge about how post-receive-hooks in Git work, blinded me about the ways Gitea does work.
You don't have to provide a generic webhook script in Gitea.
You have to manually configure the webhook for each git repo. Thus, you can simply craft that webhook URL.
Go to your repo's Admin page, Webhooks section, create a new webhook of type Gitea, and configure it:
Target URL: https://yourjenkinsserver/jenkins/git/notifyCommit?url=https://yourgiteaserver/yourgitearepo.git
Method: GET
Trigger: Push
Save it, test it. For me it works. And since you have to configure it for each repo anyway, it's a bit overhead, but absolutely in the way how Gitea works regards of repos.
@fhuberts commented on GitHub (Feb 18, 2022):
I know, and I did it like that until it started to fail...
The problem is that you have to choose the type of the webhook, and that determines the payload that is sent to the webhook URL.
I chose 'Gitea' as type and that sends quite a large json object to the webhook. So large in fact that my Jenkins started choking on it.
Hence my solution.
@beyerjsb commented on GitHub (Feb 18, 2022):
How about Gitea provides just a toggle (yes/no) for the Gitea Webhook if the payload should be sent or not. Very simple, quick change. Would help in this case.
@fhuberts commented on GitHub (Feb 18, 2022):
That would work as well for this use-case.
(I'm still keeping my code in place for more complex use-cases though ;-) )
@lunny commented on GitHub (Feb 18, 2022):
How about use https://github.com/jenkinsci/gitea-plugin directly?
@fhuberts commented on GitHub (Feb 18, 2022):
However, 1 small advantage of my solution is that the webhook is the same for every repo.
But that is just my personal preference.
@fhuberts commented on GitHub (Feb 18, 2022):
I have no need for that currently.
@beyerjsb commented on GitHub (Feb 18, 2022):
This is not the same.
Using the API the Jenkins Git plugin provides, it triggers the polling of the repos, and takes polling options into account, and subsequently only triggers builds which are required. No additional security/account handling required.
Using the Jenkins Gitea plugin, it needs a Jenkins account, and then triggers a build directly, unconditionally.
@weberhofer commented on GitHub (Aug 9, 2023):
As suggested above, it would be great, if a GET request could be implemented, to trigger a rebuild in Jenkins. I have tested a lot integration gitea and jenkins.
The most simple method to trigger a rebuild in jenkins would be a GET web-hook following this schema:
https://JENKINS-HOST/job/MY-PROJECT/build?token=MY-TOKENThe only web-hook integrated is the "Gitea" hook. It allows sending the hook as GET request. unfortunately this results in the following response from jenkins:
I think it would be good to have an separate option for the gitea web-hook
GET without bodyor an additional web-hook provider for jenkins which both are simply sending GET requests without body.@arslantu commented on GitHub (Nov 4, 2023):
Encountered with the same problem,
Request Header Fields Too Large, did you solve it?@Jeansen commented on GitHub (Feb 14, 2024):
Same here. When I test the webhook of type gitea for my Jenkins GET endpoint, it works. As soon as it is triggered automatically by a push to my repository, the webhook is triggerd, but I geth a 431 Code. I'd really see an option to withdraw the payload body in GET or have a Jenkins entry added (which will not send any additional data).
@Jeansen commented on GitHub (Feb 14, 2024):
I've hacked together a simple script and Systemd service that will cut off the payload and forward the webhook. It's a workaround, but it works. At least, for me. Here's the gist: https://gist.github.com/Jeansen/952eac5055870fc2847237b1e5facf0a
@Bastelwombat commented on GitHub (Mar 16, 2024):
I found another workaround, even simpler than that of @Jeansen:
Increasing the maximum acceptable header size for Jenkins. E.g., by adding
JENKINS_ARGS="--requestHeaderSize=258140"to the environment variables passed to the Jenkins container.