IEnumerator GetProjectPriorities(string credentials) { string url = Url + "/rest/api/2/priority"; UnityWebRequest request = new UnityWebRequest(url, "GET"); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Authorization", "Basic " + credentials); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { Debug.Log("Error: " + request.responseCode + " - " + request.downloadHandler.text); } else { string json = "{\"Items\":" + request.downloadHandler.text + "}"; Priority[] priorities = JsonHelper.FromJson <Priority>(json); _IssuePriorities = new List <IssuePreference>(); for (int i = 0; i < priorities.Length; i++) { IssuePreference preference = new IssuePreference(); preference.name = priorities[i].name; preference.id = priorities[i].id.ToString(); _IssuePriorities.Add(preference); } } }
public IEnumerator CreateIssue(string summary, string description, string credentials) { Issue issue = new Issue(); issue.summary = summary; issue.description = description; for (int i = 0; i < _IssueTypes.Count; i++) { if (_IssueTypes[i].name == IssueCategory) { EntryType entryType = new EntryType(); entryType.id = _IssueTypes[i].id; issue.issuetype = entryType; break; } } for (int i = 0; i < _IssuePriorities.Count; i++) { if (_IssuePriorities[i].name == IssuePriority) { IssuePreference preference = new IssuePreference(); preference.id = _IssuePriorities[i].id; issue.priority = preference; break; } } EntryKey entryKey = new EntryKey(); entryKey.key = ProjectKey; issue.project = entryKey; string json = "{\"fields\":" + JsonUtility.ToJson(issue).ToString() + "}"; byte[] bodyRaw = Encoding.UTF8.GetBytes(json); UnityWebRequest request = new UnityWebRequest(Url + "/rest/api/2/issue", "POST"); request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Authorization", "Basic " + credentials); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { Debug.Log("Error: " + request.responseCode + " - " + request.downloadHandler.text); } else { Debug.Log("Jira Issue created!"); Entry entry = JsonUtility.FromJson <Entry>(request.downloadHandler.text); string path = ""; // path = Path.Combine(Application.persistentDataPath, "output_log.txt"); #if (!UNITY_EDITOR && UNITY_STANDALONE_WIN) path = CombinePaths(Environment.GetEnvironmentVariable("AppData"), "..", "LocalLow", Application.companyName, Application.productName, "output_log.txt"); #endif #if (UNITY_EDITOR && UNITY_EDITOR_WIN) path = CombinePaths(Environment.GetEnvironmentVariable("AppData"), "..", "Local", "Unity", "Editor", "Editor.log"); #endif if (File.Exists(path) && AttachOutputLog) { byte[] logData = GetBytesFromFilePath(path); string logName = "output_log.txt"; WWWForm form = new WWWForm(); form.AddBinaryData("file", logData, logName); UnityWebRequest attachment = UnityWebRequest.Post(Url + "/rest/api/2/issue" + "/" + entry.key + "/attachments", form); attachment.SetRequestHeader("X-Atlassian-Token", "no-check"); attachment.SetRequestHeader("Authorization", "Basic " + credentials); attachment.SendWebRequest(); if (attachment.isNetworkError || attachment.isHttpError) { Debug.Log("Error " + attachment.responseCode + " - " + attachment.downloadHandler.text); } else { Debug.Log("Output Log attach completed!"); } } } }