Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class JIRA
- {
- private string AuthToken { get; set; }
- private const string c_JIRAUrl = "https://org.atlassian.net";
- private const string c_LoginUrl = c_JIRAUrl + "/rest/auth/1/session";
- private const string c_CreateVersionUrl = c_JIRAUrl + "/rest/api/2/version";
- public JIRA()
- {
- //this works...
- var authResponse = ExecuteRequest(c_LoginUrl, "POST", new
- {
- username = "login",
- password = "password"
- });
- AuthToken = authResponse["session"]["value"].ToString();
- }
- public void CreateVersion(string name, string projectKey, ProjectEnvironment environment)
- {
- //lets hardcode the same data I use in Postman for testing purposes...
- var createVersionResponse = ExecuteRequest(c_CreateVersionUrl, "POST", new
- {
- description = "An excellent version",
- name = "1.1.2",
- archived = false,
- released = false,
- project = "TEST"
- });
- }
- private JObject ExecuteRequest(string url, string method, object data)
- {
- HttpWebResponse response;
- var jsonDataString = JsonConvert.SerializeObject(data);
- byte[] dataBytes = Encoding.Default.GetBytes(jsonDataString);
- var responseText = string.Empty;
- var wr = (HttpWebRequest)WebRequest.Create(url);
- wr.ContentType = "application/json";
- if (!string.IsNullOrEmpty(AuthToken))
- wr.Headers.Add(HttpRequestHeader.Authorization, $"Bearer {AuthToken}");
- wr.Method = method;
- wr.ContentLength = dataBytes.Length;
- wr.Accept = "application/json";
- using (var webStream = wr.GetRequestStream())
- {
- webStream.Write(dataBytes, 0, dataBytes.Length);
- response = (HttpWebResponse)wr.GetResponse();
- }
- using (var sr = new StreamReader(response.GetResponseStream()))
- {
- responseText = sr.ReadToEnd();
- }
- return JObject.Parse(responseText);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement