merge_report_qa.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python3
  2. import argparse
  3. import os
  4. import re
  5. import sys
  6. from slack_sdk import WebClient
  7. from slack_sdk.errors import SlackApiError
  8. def parse_args():
  9. parser = argparse.ArgumentParser()
  10. parser.add_argument("slack_token")
  11. parser.add_argument("slack_channel")
  12. args = parser.parse_args()
  13. return args
  14. def checkCommitMessage(msg):
  15. regex = re.compile(r"^'?\[(FL-\d+,?\s?)+\]")
  16. if regex.match(msg):
  17. return True
  18. return False
  19. def reportSlack(commit_hash, slack_token, slack_channel, message):
  20. client = WebClient(token=slack_token)
  21. try:
  22. client.chat_postMessage(channel="#" + slack_channel, text=message)
  23. except SlackApiError as e:
  24. print(e)
  25. sys.exit(1)
  26. def main():
  27. args = parse_args()
  28. commit_msg = os.getenv("COMMIT_MSG")
  29. commit_hash = os.getenv("COMMIT_HASH")
  30. commit_sha = os.getenv("COMMIT_SHA")
  31. commit_link = (
  32. "<https://github.com/flipperdevices/flipperzero-firmware/commit/"
  33. + commit_hash
  34. + "|"
  35. + commit_sha
  36. + ">"
  37. )
  38. message = "Commit " + commit_link + " merged to dev without 'FL' ticket!"
  39. if not checkCommitMessage(commit_msg):
  40. reportSlack(commit_hash, args.slack_token, args.slack_channel, message)
  41. if __name__ == "__main__":
  42. main()