Skip to content

Instantly share code, notes, and snippets.

@wjkennedy
Created May 25, 2024 09:36
Show Gist options
  • Save wjkennedy/85acce6a52dd05769c775ed672bdea25 to your computer and use it in GitHub Desktop.
Save wjkennedy/85acce6a52dd05769c775ed672bdea25 to your computer and use it in GitHub Desktop.
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
JIRA_URL = 'https://your-jira-instance.atlassian.net/rest/api/3/issue'
JIRA_AUTH = ('your-email', 'your-api-token')
@app.route('/create-issue', methods=['GET'])
def create_issue_form():
issue_type = request.args.get('type')
priority = request.args.get('priority')
# Render a simple HTML form
return f'''
<form action="/submit-issue" method="post">
<input type="hidden" name="type" value="{issue_type}">
<input type="hidden" name="priority" value="{priority}">
Description: <input type="text" name="description"><br>
Assignee: <input type="text" name="assignee"><br>
ETA: <input type="date" name="eta"><br>
<input type="submit" value="Submit">
</form>
'''
@app.route('/submit-issue', methods=['POST'])
def submit_issue():
issue_type = request.form['type']
priority = request.form['priority']
description = request.form['description']
assignee = request.form['assignee']
eta = request.form['eta']
issue_data = {
"fields": {
"project": {
"key": "QA"
},
"summary": description,
"description": description,
"issuetype": {
"name": issue_type
},
"priority": {
"name": priority
},
"assignee": {
"name": assignee
},
"customfield_12345": eta # Replace with your actual custom field ID for ETA
}
}
response = requests.post(JIRA_URL, json=issue_data, auth=JIRA_AUTH)
if response.status_code == 201:
return "Issue created successfully!"
else:
return f"Failed to create issue: {response.content}", 400
if __name__ == '__main__':
app.run(debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment