mail2github_issues/mail2github_issues.py

67 líneas
1.3 KiB
Python

2018-06-07 15:17:57 +03:00
#!/usr/bin/python
'''
## Description
A script to get mail from issues@example.com and create github issues
## Installation Instuctions
* Install the github python API:
```
pip install github3.py
```
* Place the script under */usr/local/sbin/mail2github_issues.py*.
* Edit */etc/aliases*:
```
issues: "|/usr/local/sbin/mail2github_issues.py"
```
* Run the `newaliases` command.
'''
import sys
import email
import datetime
import github3
DEBUG = 0
TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
USER = 'exampledev'
REPO = 'myrepo'
def main():
'''
Main function
'''
raw_msg = ''
for line in sys.stdin:
raw_msg = raw_msg + line
msg = email.message_from_string(raw_msg)
gh_session = github3.login(token=TOKEN)
issue = {'title': msg['Subject'],
'body': msg.get_payload(),
'created_at': str(datetime.datetime.now().isoformat() + 'Z')
}
repository = gh_session.repository(USER, REPO)
repository.import_issue(**issue)
if DEBUG:
filename = "/tmp/msg.out"
out = open(filename, 'w')
out.write(msg['Subject'])
out.write("\n\n")
out.write(msg['Date'])
out.write("\n\n")
out.write(msg.get_payload())
if __name__ == "__main__":
main()