Est-il possible de créer un problème dans jira en utilisant REST api? Je ne l'ai pas trouvé dans la documentation (no POST pour les problèmes), mais je soupçonne c'est possible.
Un exemple wget ou curl serait Nice.
Publier sur cette URL
https://<JIRA_Host>/rest/api/2/issue/
Ces données:
{
"fields": {
"project":
{
"key": "<PROJECT_KEY>"
},
"summary": "REST EXAMPLE",
"description": "Creating an issue via REST API",
"issuetype": {
"name": "Bug"
}
}
}
La réponse reçue sera l'ID et la clé de votre PROBLÈME:
{"id":"83336","key":"PROJECT_KEY-4","self":"https://<JIRA_Host>/rest/api/2/issue/83336"}
N'oubliez pas l'autorisation. J'ai utilisé HTTP-Basic.
Depuis la dernière version publiée (4.3.3), il n'est pas possible de le faire en utilisant REST API . Vous pouvez créer des problèmes à distance à l'aide de l'API JIRA SOAP.
Voir cette page pour un exemple Java client.
Pour répondre à la question plus directement, c'est-à-dire en utilisant cURL.
Pour utiliser cURL pour accéder à JIRA REST lors de la création d'un cas, utilisez
curl -D- -u <username>:<password> -X POST --data-binary "@<filename>" -H "Content-Type: application/json" http://<jira-Host>/rest/api/2/issue/
Et enregistrez-le dans votre <Nom de fichier> (veuillez modifier le champ selon votre cas Jira) et enregistrez-le dans le dossier que vous appelez la commande cURL ci-dessus.
{
"fields": {
"project":
{
"key": "<PROJECT_KEY>"
},
"summary": "REST EXAMPLE",
"description": "Creating an issue via REST API",
"issuetype": {
"name": "Bug"
}
}
}
Cela devrait fonctionner. (notez parfois qu'en cas d'erreur, votre contenu dans le nom de fichier est peut-être incorrect).
** mettez ce code (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();
}
}
Vous pouvez maintenant utiliser REST + JSON pour créer des problèmes.
Pour vérifier quels champs json vous pouvez définir pour créer le problème, utilisez: https://jira.Host.com/rest/api/2/issue/createmeta
Pour plus d'informations, veuillez consulter la documentation de JIRA reste: https://docs.atlassian.com/jira/REST/6.2.4/
Je tombe juste dessus et j'ai des problèmes pour créer un problème via l'API REST.
issue_dict = {
'project': {'key': "<Key>"},
'summary': 'New issue from jira-python',
'description': 'Look into this one',
'issuetype': {'name': 'Test'},
}
new_issue = jira.create_issue(issue_dict)
new_issue renvoie un problème déjà existant et n'en crée pas.
Pour envoyer les données du problème avec l'API REST, nous devons construire une chaîne JSON valide comprenant les détails du problème.
Un exemple de base de chaîne JSON:
{“fields” : { “project” : { “key” : “@KEY@” } , “issuetype” : { “name” : “@IssueType@” } } }
Maintenant, établissez une connexion à JIRA et vérifiez l'authentification de l'utilisateur. Une fois l'authentification établie, nous POST la REST API + chaîne JSON via la méthode XMLHTTP. Traitez la réponse et informez l'utilisateur de la réussite ou de l'échec de la réponse) .
Donc, ici JiraService étant un objet XMLHTTP, quelque chose comme ça va ajouter un problème, où EncodeBase64 est une fonction qui retourne une chaîne cryptée.
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
Vous pouvez consulter un exemple VBA complet ici
Afin de créer un problème , définir un estimation du temps et vous attribuer it, utilisez ceci:
Générer un jeton Atlassian
Générez et enregistrez un jeton d'authentification encodé en base64:
export b64token="$(echo "<your_email>:<generated_token>" | openssl base64)"
Faire une demande POST:
curl -X POST \
https://<your_jira_Host>.atlassian.net/rest/api/2/issue/ \
-H 'Accept: */*' \
-H 'Authorization: Basic $b64token \
-d '{
"fields":{
"project":{
"key":"<your_project_key (*)>"
},
"issuetype":{
"name":"Task"
},
"timetracking":{
"remainingEstimate":"24h"
},
"assignee":{
"name":"<your_name (**)>"
},
"summary":"Endpoint Development"
}
}'
Remarques:
(*) Habituellement, une version courte et en majuscule de la description du projet telle que: ... atlassian.net/projects/ [~ # ~] up [~ # ~] /.
(**) si vous ne connaissez pas votre nom JIRA, cURL GET avec la même autorisation que ci-dessus pour https://<your_jira_Host>.atlassian.net/rest/api/2/search?jql=project=<any_project_name>
et recherchez issues.fields.assignee.name
.