54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import os
|
||
|
import re
|
||
|
import sys
|
||
|
import argparse
|
||
|
from slack_sdk import WebClient
|
||
|
from slack_sdk.errors import SlackApiError
|
||
|
|
||
|
|
||
|
def parse_args():
|
||
|
parser = argparse.ArgumentParser()
|
||
|
parser.add_argument("slack_token")
|
||
|
parser.add_argument("slack_channel")
|
||
|
args = parser.parse_args()
|
||
|
return args
|
||
|
|
||
|
|
||
|
def checkCommitMessage(msg):
|
||
|
regex = re.compile(r"^'?\[FL-\d+\]")
|
||
|
if regex.match(msg):
|
||
|
return True
|
||
|
return False
|
||
|
|
||
|
|
||
|
def reportSlack(commit_hash, slack_token, slack_channel, message):
|
||
|
client = WebClient(token=slack_token)
|
||
|
try:
|
||
|
client.chat_postMessage(channel="#" + slack_channel, text=message)
|
||
|
except SlackApiError as e:
|
||
|
print(e)
|
||
|
sys.exit(1)
|
||
|
|
||
|
|
||
|
def main():
|
||
|
args = parse_args()
|
||
|
commit_msg = os.getenv("COMMIT_MSG")
|
||
|
commit_hash = os.getenv("COMMIT_HASH")
|
||
|
commit_sha = os.getenv("COMMIT_SHA")
|
||
|
commit_link = (
|
||
|
"<https://github.com/flipperdevices/flipperzero-firmware/commit/"
|
||
|
+ commit_hash
|
||
|
+ "|"
|
||
|
+ commit_sha
|
||
|
+ ">"
|
||
|
)
|
||
|
message = "Commit " + commit_link + " merged to dev without 'FL' ticket!"
|
||
|
if not checkCommitMessage(commit_msg):
|
||
|
reportSlack(commit_hash, args.slack_token, args.slack_channel, message)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|