Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tekknolagi/01d04a25e99d3abb0e109ecad74bff65 to your computer and use it in GitHub Desktop.
Save tekknolagi/01d04a25e99d3abb0e109ecad74bff65 to your computer and use it in GitHub Desktop.
Creates GitHub Issues from a CSV file.
import json
import requests
import csv
# Authentication for user filing issue (must have read/write access to
# repository to add issue to)
USERNAME = 'username'
PASSWORD = 'password'
# The repository to add this issue to
REPO_OWNER = 'owner'
REPO_NAME = 'repo'
def make_github_issue(title, body=None, assignee=None, milestone=None, labels=None):
'''Create an issue on github.com using the given parameters.'''
# Our url to create issues via POST
url = 'https://api.github.com/repos/%s/%s/issues' % (REPO_OWNER, REPO_NAME)
# Create an authenticated session to create the issue
session = requests.Session()
session.auth = (USERNAME, PASSWORD)
# Create our issue
issue = {'title': title,
'body': body,
'assignee': assignee,
'milestone': milestone,
'labels': labels}
# Add the issue to our repository
r = session.post(url, json.dumps(issue))
if r.status_code == 201:
print('Successfully created Issue "%s"' % title)
else:
print('Could not create Issue "%s"' % title)
print('Response:', r.content)
with open('issues.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
make_github_issue(row['title'], row['body'], milestone=3, labels=['iosapp'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment