Décrivez ici votre problème ou ce que vous cherchez à faire.
Je veux creer un ticket sur azure dev-ops (ça marche ) sauf que si j'utilise mon PAT tous les tickets s'afficheront qu'ils ont été crées par moi meme (ce qui est logique ) , je cherche une facon pour afficher celui qui a vraiment créé le ticket sachant qu'il me faut faire une authentification Azure Dev-Ops (ce qui est tres compliqué) par contre j'ai fait l'authentification azure AD .
Entourez votre coimport React, { useState } from "react";
import RequestSent from "./RequestSent";
import { PageLayout } from "../../pages/PageLayout";
import axios from "axios";
const BugSent =()=> {
const [title, setTitle] = useState('');
const [reproSteps, setReproSteps] = useState('');
const [criticite, setCriticite] = useState('');
const [etatAttendu, setEtatAttendu] = useState('');
const [etatObservable, setEtatObservable] = useState('');
const [affectedVersion, setAffectedVersion] = useState('');
const [priorite,setPriorite]=useState('');
const [environnement,setEnvironnement]=useState('');
const [titredulot,setTitredulot]=useState('')
const handleSubmit = async (e) => {
e.preventDefault();
const ticketData = [
{
op: 'add',
path: '/fields/Microsoft.VSTS.Build.IntegrationBuild',
value: ''
},
{
op: 'add',
path: '/fields/System.Title',
value: title
},
{
op: 'add',
path: '/fields/Custom.00a17f02-70c7-4683-a6d4-c607f4b0a243',
value: priorite
},
{
op: 'add',
path: '/fields/Microsoft.VSTS.TCM.ReproSteps',
value: reproSteps
},
{
op: 'add',
path: '/fields/Criticité',
value: criticite
},
{
op: 'add',
path: '/fields/Custom.Etatattendu',
value: etatAttendu
},
{
op: 'add',
path: '/fields/Custom.Etatobservable',
value: etatObservable
},
{
op: 'add',
path: '/fields/Custom.Affectedversion',
value: affectedVersion
},
{
op: 'add',
path: '/fields/Custom.Environnement',
value: environnement
},
{
op: 'add',
path: '/fields/Custom.Titredulot',
value: titredulot
},
{
op: 'add',
path: "/fields/System.CreatedBy",
value: "NouveauCréateur"
}
];
const url = 'https://dev.azure.com/{mon Entreprise }/Portail%20Support/_apis/wit/workitems/$Bug?api-version=7.0'
const token = 'my PAT'; // token of tarik
try {
const response = await axios.post(url, ticketData ,{
headers: {
'Content-Type': 'application/json-patch+json',
Authorization : `Basic ${token}`
}
});
} catch (error) {
console.error(error);
}
};
return (
<>
<PageLayout/>
<div className="form-group">
<h1 className="text-primary text-center"> Veuillez déclarer le BUG en complétant les champs suivant !</h1>
<form onSubmit={handleSubmit}>
<div className="col-12">
<label className="form-label text-primary"> Titre <span className="text-danger">*</span> </label>
<input className="form-control" name="titre" onChange={e => setTitle(e.target.value)} type="text" />
</div>
<div className="col-6">
<label className="text-primary"> Criticité <span className="text-danger" >*</span></label>
<select className="form-control" name="criticite" onChange={e=>setCriticite(e.target.value)} >
<option value="1 - Bloquante"> 1 - Bloquante </option>
<option value="2 - Majeure">2 - Majeure</option>
<option value="3 - Mineure">3 - Mineure</option>
</select>
</div>
<div className="col-6">
<label className="text-primary"> Priorité <span className="text-danger" >*</span></label>
<select className="form-control" name="priorite" onChange={e=>setPriorite(e.target.value)} >
<option value="1 - Immédiate">1 - Immédiate</option>
<option value="2 - Prioritaire">2 - Prioritaire</option>
<option value="3 - Normale">3 - Normale </option>
</select>
</div>
<div className="col-6">
<label className="text-primary"> Version Concérnée <span className="text-danger" ></span></label>
<select className="form-control" name="priorite" onChange={e=>setAffectedVersion(e.target.value)} >
<option selected > </option>
<option > All </option>
</select>
</div>
<div className="col-6">
<label className="text-primary"> Version cible <span className="text-danger" >*</span></label>
<textarea className="form-control" name="comportement_constate" rows="1" cols="1" onChange={e=>setTitredulot(e.target.value)} ></textarea>
</div>
<div className="col-6">
<label className="text-primary"> Environnement <span className="text-danger" >*</span></label>
<select className="form-control" name="priorite" onChange={e=>setEnvironnement(e.target.value)} >
<option value="QA">QA</option>
<option value="PROD">PROD</option>
<option value="Irrelevant">Irrelevant </option>
<option value="Pré-prod">Pré-prod </option>
<option value="Intégration">Integration </option>
</select>
</div>
<div className="col-12 text-primary">
<label > Etat observable</label>
<textarea className="form-control" name="comportement_constate" rows="10" cols="50" onChange={e=>setEtatObservable(e.target.value)} ></textarea>
</div>
<div className="col-12 text-primary">
<label > Etapes pour reproduire</label>
<textarea className="form-control" name="comportement_constate" rows="10" cols="50" onChange={e=>setReproSteps(e.target.value)} ></textarea>
</div>
<div className="col-12 text-primary">
<label> Etat attendu</label>
<textarea className="form-control" name="comportement_attendu" rows="10" cols="50" onChange={e=> setEtatAttendu(e.target.value)}></textarea>
</div>
<div className="col-12">
<button className="sendBtn btn btn-primary" type="submit" >Envoyer </button>
</div>
</form>
</div>
</>
);
}
export default BugSent;de en utilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code)
Ce que je veux
pour resumer , je veux changer le NOM uniquement de celui qui a créé le ticekt sachant que je peux recuperer son PAT azure AD et non pas son PAT azure Dev-Ops .
Ce que j'obtiens
c'est toujours moi qui crée les tickets ;