e27ac0ddbe
We uses `pyupgrade --py3-plus` to automatically replace all occurence of `Text`. But manual fix is required to remove the unused imports. Note that with this configuration pyupgrade also convert string literals to .format(...) style, which is manually not included in the commit as well.
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from typing import Dict, Optional
|
|
|
|
# Change these values to configure authentication for the plugin
|
|
ZULIP_USER = "p4-bot@example.com"
|
|
ZULIP_API_KEY = "0123456789abcdef0123456789abcdef"
|
|
ZULIP_SITE = "https://zulip.example.com"
|
|
|
|
# Set this to True to silently drop messages if the destination stream
|
|
# does not exist. This prevents the warnings from Zulip's Notification Bot
|
|
# when commits are made on a branch for which no stream has been created.
|
|
ZULIP_IGNORE_MISSING_STREAM = False
|
|
|
|
# Set this to point at a p4web installation to get changelist IDs as links
|
|
# P4_WEB = "https://p4web.example.com"
|
|
P4_WEB: Optional[str] = None
|
|
|
|
# commit_notice_destination() lets you customize where commit notices
|
|
# are sent to with the full power of a Python function.
|
|
#
|
|
# It takes the following arguments:
|
|
# * path = the path to the Perforce depot on the server
|
|
# * changelist = the changelist id
|
|
#
|
|
# Returns a dictionary encoding the stream and topic to send the
|
|
# notification to (or None to send no notification).
|
|
#
|
|
# The default code below will send every commit except for ones in the
|
|
# "master-plan" and "secret" subdirectories of //depot/ to:
|
|
# * stream "depot_subdirectory-commits"
|
|
# * subject "change_root"
|
|
def commit_notice_destination(path: str, changelist: int) -> Optional[Dict[str, str]]:
|
|
dirs = path.split("/")
|
|
if len(dirs) >= 4 and dirs[3] not in ("*", "..."):
|
|
directory = dirs[3]
|
|
else:
|
|
# No subdirectory, so just use "depot"
|
|
directory = dirs[2]
|
|
|
|
if directory not in ["evil-master-plan", "my-super-secret-repository"]:
|
|
return dict(stream="%s-commits" % (directory,), subject=path)
|
|
|
|
# Return None for cases where you don't want a notice sent
|
|
return None
|
|
|
|
|
|
## If properly installed, the Zulip API should be in your import
|
|
## path, but if not, set a custom path below
|
|
ZULIP_API_PATH: Optional[str] = None
|