A python script to get mail from issues@example.com and create github issues.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

67 lignes
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()