¿Es posible crear un problema en jira usando REST api? No encontré esto en la documentación (sin POST para problemas), pero sospecho que es posible.cómo crear un problema en jira a través de la API de reposo?
Un ejemplo de wget o curl sería bueno.
¿Es posible crear un problema en jira usando REST api? No encontré esto en la documentación (sin POST para problemas), pero sospecho que es posible.cómo crear un problema en jira a través de la API de reposo?
Un ejemplo de wget o curl sería bueno.
POST a esta URL
https://<JIRA_HOST>/rest/api/2/issue/
Estos datos:
{
"fields": {
"project":
{
"key": "<PROJECT_KEY>"
},
"summary": "REST EXAMPLE",
"description": "Creating an issue via REST API",
"issuetype": {
"name": "Bug"
}
}
}
En respuesta recibida será ID y la clave de su problema:
{"id":"83336","key":"PROJECT_KEY-4","self":"https://<JIRA_HOST>/rest/api/2/issue/83336"}
No se olvide de autorización . Usé HTTP-Basic uno.
A partir de la versión más reciente (4.3.3) no es posible hacerlo con el REST API. Puede crear problemas de forma remota utilizando la API JIRA SOAP.
Consulte this page para obtener un ejemplo de cliente Java.
Por alguna razón (falta de cumplimiento estándar), el soap api implica una dependencia del eje, específicamente. No puedo presentar esto en mi solicitud. Estoy bastante seguro de que hay una manera (posiblemente: escribir un plugin jira, que haré si no tengo una solución mejor). – ymajoros
Ahora puede usar REST + JSON para crear problemas.
para comprobar qué campos JSON puede configurar para crear la utilización emisión: https://jira.host.com/rest/api/2/issue/createmeta
Para obtener más información, véase la documentación resto JIRA: https://docs.atlassian.com/jira/REST/6.2.4/
La capacidad de usar la API REST para hacer más que leer datos fue parte de JIRA 5.x para cualquiera que quiera saber. La API REST no ha cambiado mucho desde entonces. – mdoar
Para enviar los datos del problema con la API REST que necesitamos para construir una cadena JSON válida que comprenda los detalles del problema.
Un ejemplo básico de cadena JSON:
{“fields” : { “project” : { “key” : “@[email protected]” } , “issuetype” : { “name” : “@[email protected]” } } }
Ahora, establecer la conexión con JIRA y busque la autenticación de usuario. Una vez que se establece la autenticación, POSTAMOS la cadena REST API + JSON mediante el método XMLHTTP. Procesar la respuesta y el usuario íntimo sobre el éxito o el fracaso de la respuesta.
Así que aquí JiraService es un objeto XMLHTTP, algo así agregará un problema, donde EncodeBase64 es una función que devuelve cadena cifrada.
Public Function addJIRAIssue() as String
With JiraService
.Open "POST", <YOUR_JIRA_URL> & "/rest/api/2/issue/", False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Accept", "application/json"
.setRequestHeader "Authorization", "Basic " & EncodeBase64
.send YOUR_JSON_STRING
If .Status <> 401 Then
addJIRAIssue = .responseText
Else
addJIRAIssue = "Error: Invalid Credentials!"
End If
End With
Set JiraService = Nothing
End Sub
Se puede extraer de un complete VBA example here
Gracias, pero acepté una respuesta hace 2 años y me quedaré con ella. Estaba interesado en el documento API, no realmente en un ejemplo vb (es decir, lo único que me interesaba era lo que estaría en YOUR_JSON_STRING aquí). – ymajoros
seguro, sin problemas. Solo quería publicar la respuesta para que cuando alguien con necesidades de VBA y JIRA acceda a este enlace, lo encuentre útil. Estoy de acuerdo con usted y la respuesta aceptada es perfecta. – cyboashu
** poner este código (C#) **
string postUrl = "https://netstarter.jira.com/rest/api/latest/issue";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(postUrl);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("JIRAMMS:JIRAMMS"));
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = @"{""fields"":{""project"":{""key"": ""JAPI""},""summary"": ""REST EXAMPLE"",""description"": ""Creating an issue via REST API 2"",""issuetype"": {""name"": ""Bug""}}}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
Para responder a la pregunta más directa, es decir, el uso de rizo.
Para usar cURL para acceder JIRA API REST en la creación de un caso, utilice
curl -D- -u <username>:<password> -X POST --data-binary "@<filename>" -H "Content-Type: application/json" http://<jira-host>/rest/api/2/issue/
y guarde este en su < nombre de archivo> (por favor, edite el campo por su caso Jira) y guardar en la carpeta se llama el comando cURL arriba.
{
"fields": {
"project":
{
"key": "<PROJECT_KEY>"
},
"summary": "REST EXAMPLE",
"description": "Creating an issue via REST API",
"issuetype": {
"name": "Bug"
}
}
}
Esto debería obras. (observe a veces si hay errores, posiblemente su contenido en el nombre de archivo sea incorrecto).
¿Puede decirme más sobre la autorización que mencionó? ¿Hay alguna necesidad de pasar el nombre de usuario y la contraseña del propietario del proyecto? ¿O REST aceptaría el POST con solo la URL, el encabezado (json) y los datos? – Tru
En realidad recibo un mensaje de error que dice "400 Bad Request ... field: summary no se puede establecer" – Tru
@Tru yes. La autorización HTTP-Basic es [tipo de autorización] (http://en.wikipedia.org/wiki/Basic_access_authentication). AFAIK hay otras opciones posibles para la autorización. De [manual] (http://docs.atlassian.com/jira/REST/latest/): 'Los métodos de autenticación preferidos son HTTP Basic (cuando se usa SSL) y OAuth, que están documentados en los tutoriales de la API REST de JIRA. Otros métodos admitidos son: HTTP Cookies, Trusted Applications y os_username/os_password query parameters. – msangel