Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Issues
  • #2767

Closed
Open
Created Jan 25, 2013 by Administrator@rootOwner

Process web hooks via queue

Created by: rlaneve

Currently, if a project has multiple web hooks and one fails, the rest are not processed. In version 4.0 and earlier, the failure of a web hook would fail the entire post-receive processing. The post-receive could be retried via the resque UI, but doing so would re-process the entire post-receive, including the creation of an events table entry, potentially updating a merge request, and re-firing all web hooks. As of 4.1 and the switch to sidekiq, the retry is automatic.

The suggested enhancement is to process web hooks the same way system hooks are processed: asynchronously via a dedicated queue. Doing so would stop an individual web hook failure from affecting any other web hooks, and allow for retrying a failed web hook with no other affects on the system (i.e., no more duplicate events table entries).

(pull request coming)

Assignee
Assign to
Time tracking