2011-05-04 37 views

Respuesta

26

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.

+0

¿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

+0

En realidad recibo un mensaje de error que dice "400 Bad Request ... field: summary no se puede establecer" – Tru

+0

@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

6

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.

+0

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

9

La API REST en JIRA 5.0 contiene métodos para crear tareas y subtareas.

(Al momento de escribir, 5.0 aún no se ha lanzado, aunque puede acceder a 5.0-m4 desde la página EAP. El doco para crear-problema en 5.0-m4 es here).

2

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/

+0

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

1

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

+0

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

+1

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

3

** 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(); 
      } 




     } 
3

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).

Cuestiones relacionadas