A python script to get mail from issues@example.com and create github issues.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

67 lines
1.3KB

  1. #!/usr/bin/python
  2. '''
  3. ## Description
  4. A script to get mail from issues@example.com and create github issues
  5. ## Installation Instuctions
  6. * Install the github python API:
  7. ```
  8. pip install github3.py
  9. ```
  10. * Place the script under */usr/local/sbin/mail2github_issues.py*.
  11. * Edit */etc/aliases*:
  12. ```
  13. issues: "|/usr/local/sbin/mail2github_issues.py"
  14. ```
  15. * Run the `newaliases` command.
  16. '''
  17. import sys
  18. import email
  19. import datetime
  20. import github3
  21. DEBUG = 0
  22. TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  23. USER = 'exampledev'
  24. REPO = 'myrepo'
  25. def main():
  26. '''
  27. Main function
  28. '''
  29. raw_msg = ''
  30. for line in sys.stdin:
  31. raw_msg = raw_msg + line
  32. msg = email.message_from_string(raw_msg)
  33. gh_session = github3.login(token=TOKEN)
  34. issue = {'title': msg['Subject'],
  35. 'body': msg.get_payload(),
  36. 'created_at': str(datetime.datetime.now().isoformat() + 'Z')
  37. }
  38. repository = gh_session.repository(USER, REPO)
  39. repository.import_issue(**issue)
  40. if DEBUG:
  41. filename = "/tmp/msg.out"
  42. out = open(filename, 'w')
  43. out.write(msg['Subject'])
  44. out.write("\n\n")
  45. out.write(msg['Date'])
  46. out.write("\n\n")
  47. out.write(msg.get_payload())
  48. if __name__ == "__main__":
  49. main()