mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	gitlab: Fix event_name -> object_kind defaulting.
94457732c1 changed this from:
```py
event_name = payload.get("event_name", payload.get("object_kind")).tame(check_string)
```
...to:
```py
event_name = payload.get("event_name", payload["object_kind"]).tame(check_string)
```
Which causes a failure when `event_name` exists but `object_kind` does
not, since the default is evaluated first.
Switch to an `if` statement to clarify the fallbacks better.
			
			
This commit is contained in:
		
				
					committed by
					
						
						Anders Kaseorg
					
				
			
			
				
	
			
			
			
						parent
						
							a671ae9749
						
					
				
				
					commit
					d0c5389d60
				
			
							
								
								
									
										32
									
								
								zerver/webhooks/gitlab/fixtures/repository_update.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								zerver/webhooks/gitlab/fixtures/repository_update.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "event_name": "repository_update",
 | 
				
			||||||
 | 
					  "user_id": 1,
 | 
				
			||||||
 | 
					  "user_name": "John Smith",
 | 
				
			||||||
 | 
					  "user_email": "admin@example.com",
 | 
				
			||||||
 | 
					  "user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
 | 
				
			||||||
 | 
					  "project_id": 1,
 | 
				
			||||||
 | 
					  "project": {
 | 
				
			||||||
 | 
					    "name":"Example",
 | 
				
			||||||
 | 
					    "description":"",
 | 
				
			||||||
 | 
					    "web_url":"http://example.com/jsmith/example",
 | 
				
			||||||
 | 
					    "avatar_url":null,
 | 
				
			||||||
 | 
					    "git_ssh_url":"git@example.com:jsmith/example.git",
 | 
				
			||||||
 | 
					    "git_http_url":"http://example.com/jsmith/example.git",
 | 
				
			||||||
 | 
					    "namespace":"Jsmith",
 | 
				
			||||||
 | 
					    "visibility_level":0,
 | 
				
			||||||
 | 
					    "path_with_namespace":"jsmith/example",
 | 
				
			||||||
 | 
					    "default_branch":"master",
 | 
				
			||||||
 | 
					    "homepage":"http://example.com/jsmith/example",
 | 
				
			||||||
 | 
					    "url":"git@example.com:jsmith/example.git",
 | 
				
			||||||
 | 
					    "ssh_url":"git@example.com:jsmith/example.git",
 | 
				
			||||||
 | 
					    "http_url":"http://example.com/jsmith/example.git"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "changes": [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "before":"8205ea8d81ce0c6b90fbe8280d118cc9fdad6130",
 | 
				
			||||||
 | 
					      "after":"4045ea7a3df38697b3730a20fb73c8bed8a3e69e",
 | 
				
			||||||
 | 
					      "ref":"refs/heads/master"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "refs":["refs/heads/master"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -496,7 +496,10 @@ def get_event(request: HttpRequest, payload: WildValue, branches: Optional[str])
 | 
				
			|||||||
    event = validate_extract_webhook_http_header(request, "X-GitLab-Event", "GitLab")
 | 
					    event = validate_extract_webhook_http_header(request, "X-GitLab-Event", "GitLab")
 | 
				
			||||||
    if event == "System Hook":
 | 
					    if event == "System Hook":
 | 
				
			||||||
        # Convert the event name to a GitLab event title
 | 
					        # Convert the event name to a GitLab event title
 | 
				
			||||||
        event_name = payload.get("event_name", payload["object_kind"]).tame(check_string)
 | 
					        if "event_name" in payload:
 | 
				
			||||||
 | 
					            event_name = payload["event_name"].tame(check_string)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            event_name = payload["object_kind"].tame(check_string)
 | 
				
			||||||
        event = event_name.split("__")[0].replace("_", " ").title()
 | 
					        event = event_name.split("__")[0].replace("_", " ").title()
 | 
				
			||||||
        event = f"{event} Hook"
 | 
					        event = f"{event} Hook"
 | 
				
			||||||
    if event in ["Confidential Issue Hook", "Issue Hook", "Merge Request Hook", "Wiki Page Hook"]:
 | 
					    if event in ["Confidential Issue Hook", "Issue Hook", "Merge Request Hook", "Wiki Page Hook"]:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user