mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	integrations: Move get_setup_webhook_message to common.py.
				
					
				
			Move `get_setup_webhook_message` to `zerver/lib/webhooks/common.py` so multiple integrations can use this rather than just those which import `zerver/lib/webhooks/git.py`. Also added the documentation for this.
This commit is contained in:
		@@ -106,6 +106,13 @@ below are for a webhook named `MyWebHook`.
 | 
			
		||||
  associate it with the function called `api_mywebhook_webhook` in
 | 
			
		||||
  `zerver/webhooks/mywebhook/view.py`.
 | 
			
		||||
 | 
			
		||||
## Common Helpers
 | 
			
		||||
 | 
			
		||||
* If your integration will receive a test webhook payload, you can use
 | 
			
		||||
  `get_setup_webhook_message` to create our standard message for test payloads.
 | 
			
		||||
  You can import this from `zerver/lib/webhooks/common.py`, and it will generate
 | 
			
		||||
  a message like this: "GitHub webhook is successfully configured! 🎉"
 | 
			
		||||
 | 
			
		||||
## General advice
 | 
			
		||||
 | 
			
		||||
* Consider using our Zulip markup to make the output from your
 | 
			
		||||
 
 | 
			
		||||
@@ -32,10 +32,21 @@ but didn't correctly configure the webhook to send data in the JSON format
 | 
			
		||||
that this integration expects!
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
SETUP_MESSAGE_TEMPLATE = "{integration} webhook has been successfully configured"
 | 
			
		||||
SETUP_MESSAGE_USER_PART = " by {user_name}"
 | 
			
		||||
 | 
			
		||||
# Django prefixes all custom HTTP headers with `HTTP_`
 | 
			
		||||
DJANGO_HTTP_PREFIX = "HTTP_"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_setup_webhook_message(integration: str, user_name: Optional[str] = None) -> str:
 | 
			
		||||
    content = SETUP_MESSAGE_TEMPLATE.format(integration=integration)
 | 
			
		||||
    if user_name:
 | 
			
		||||
        content += SETUP_MESSAGE_USER_PART.format(user_name=user_name)
 | 
			
		||||
    content = f"{content}."
 | 
			
		||||
    return content
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def notify_bot_owner_about_invalid_json(
 | 
			
		||||
    user_profile: UserProfile, webhook_client_name: str
 | 
			
		||||
) -> None:
 | 
			
		||||
 
 | 
			
		||||
@@ -54,9 +54,6 @@ PULL_REQUEST_OR_ISSUE_MESSAGE_TEMPLATE_WITH_TITLE = (
 | 
			
		||||
PULL_REQUEST_OR_ISSUE_ASSIGNEE_INFO_TEMPLATE = "(assigned to {assignee})"
 | 
			
		||||
PULL_REQUEST_BRANCH_INFO_TEMPLATE = "from `{target}` to `{base}`"
 | 
			
		||||
 | 
			
		||||
SETUP_MESSAGE_TEMPLATE = "{integration} webhook has been successfully configured"
 | 
			
		||||
SETUP_MESSAGE_USER_PART = " by {user_name}"
 | 
			
		||||
 | 
			
		||||
CONTENT_MESSAGE_TEMPLATE = "\n~~~ quote\n{message}\n~~~"
 | 
			
		||||
 | 
			
		||||
COMMITS_COMMENT_MESSAGE_TEMPLATE = "{user_name} {action} on [{sha}]({url})"
 | 
			
		||||
@@ -225,14 +222,6 @@ def get_pull_request_event_message(
 | 
			
		||||
    return main_message.rstrip()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_setup_webhook_message(integration: str, user_name: Optional[str] = None) -> str:
 | 
			
		||||
    content = SETUP_MESSAGE_TEMPLATE.format(integration=integration)
 | 
			
		||||
    if user_name:
 | 
			
		||||
        content += SETUP_MESSAGE_USER_PART.format(user_name=user_name)
 | 
			
		||||
    content = f"{content}."
 | 
			
		||||
    return content
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_issue_event_message(
 | 
			
		||||
    user_name: str,
 | 
			
		||||
    action: str,
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ from zerver.lib.response import json_success
 | 
			
		||||
from zerver.lib.webhooks.common import (
 | 
			
		||||
    check_send_webhook_message,
 | 
			
		||||
    get_http_headers_from_filename,
 | 
			
		||||
    get_setup_webhook_message,
 | 
			
		||||
    validate_extract_webhook_http_header,
 | 
			
		||||
)
 | 
			
		||||
from zerver.lib.webhooks.git import (
 | 
			
		||||
@@ -23,7 +24,6 @@ from zerver.lib.webhooks.git import (
 | 
			
		||||
    get_push_commits_event_message,
 | 
			
		||||
    get_push_tag_event_message,
 | 
			
		||||
    get_release_event_message,
 | 
			
		||||
    get_setup_webhook_message,
 | 
			
		||||
)
 | 
			
		||||
from zerver.models import UserProfile
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user