2014-11-19 21 views
7

Come si determina il nome di un campo personalizzato in jira-python?jira python customfield

Quando ho recuperare un problema, i miei campi personalizzati vengono visualizzati come customfield_xxx

I nomi sul mio schermo sono 'progetto', 'nome', 'data di scadenza', ecc breve di mettere un valore in ogni campo, quindi vedere dove appare quando rileggo il problema.

Cioè posso mettere 'a' in uno dei miei campi, quindi leggere il problema e scoprire che customfield_10801 (o qualsiasi altra cosa) ha il valore 'a'. Ma esiste un modo generale per trovare, ad esempio, se il mio campo personalizzato è "data di scadenza", a quale customfield_xxx viene mappato?

Oppure, nella GUI JIRA, come dovrei cercare su questi # campo personalizzato.

risposta

8

Dalla GUI è possibile vedere il campo personalizzato id nel codice html o url:

  • Nella pagina di amministrazione in cui tutti i campi personalizzati sono elencati nella riga del campo personalizzato si è interessati alla fare clic con il tasto destro del mouse sulla rotellina e fare clic/hover su "Configura". Dovresti vedere l'ID campo personalizzato nell'URL.

Un altro modo è tramite l'API REST:

  • {jira-base-url}/resto/api/2/campo
  • Si tratta di una richiesta GET in modo appena messo l'URL nel tuo browser .

Aggiornamento:

Sulla base delle osservazioni si può fare qualcosa di simile:

# Fetch all fields 
allfields=jira.fields() 
# Make a map from field name -> field id 
nameMap = {field['name']:field['id'] for field in allfields} 
# Fetch an issue 
issue = jira.issue('ABC-1') 
# You can now look up custom fields by name using the map 
getattr(issue.fields, nameMap[custom_name]) 
+0

Grazie LukeSolar. Che funzioni. Speravo di poterlo rendere programmabile. Io uso REST in jira-python e sembra che l'unico dato che puoi ottenere da customfield_xxx sia l'id, l'url e il valore. Non "nome". –

+0

Il tuo commento sull'URL mi ha fatto capire che i dati sono a livello di server, non di progetto o di livello. In python, questo farà un nome -> numero dizionario: –

+2

allfields = jira.fields(); nameMap = {campo ['nome']: campo ['id']} per campo in tutti i campi} –