2014-11-19 6 views
7

Wie ermitteln Sie den Namen eines benutzerdefinierten Felds in jira-python?jira python customfield

Wenn ich ein Problem abzuzurufen, zeigen meine benutzerdefinierten Felder auf, als customfield_xxx

Die Namen auf meinem Bildschirm sind ‚Projekt‘, ‚Name‘, ‚Fälligkeitsdatum‘ usw. Kurz der Wert in jedem setzen Feld, dann sehen, wo es erscheint, wenn ich das Problem erneut lese.

Das ist ich kann 'a' in einem meiner Felder setzen, dann lesen Sie das Problem, und finden Sie, dass customfield_10801 (oder was auch immer) den Wert 'a' hat. Aber gibt es eine allgemeine Möglichkeit zu finden, zum Beispiel, wenn mein benutzerdefiniertes Feld 'Fälligkeitsdatum' ist, welches customfield_xxx wird es zugeordnet?

Oder, in der JIRA GUI, wie würde ich diese customfield # s nachschlagen.

Antwort

8

Von der GUI SieFormal die benutzerdefinierten Feld-ID in dem HTML-Code oder URL zu sehen:

  • Auf der Admin-Seite, wo alle benutzerdefinierten Felder aufgelistet sind in der Zeile des benutzerdefinierten Feldes sind Sie interessiert an den Klicken Sie mit der rechten Maustaste auf das Zahnrad und klicken/bewegen Sie den Mauszeiger über "Konfigurieren". Sie sollten die benutzerdefinierte Feld-ID in der URL sehen.

Ein anderer Weg ist über die REST-API:

  • {jira-base-url}/rest/api/2/Feld
  • Es ist eine Anforderung GET so setzen Sie einfach diese URL in Ihrem Browser .

Update:

Basierend auf den Kommentaren kann es so etwas wie dies geschehen:

# 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

Dank LukeSolar. Das funktioniert. Ich hatte gehofft, ich könnte es programmierbar machen. Ich benutze REST in jira-python und es scheint, dass die einzigen Daten, die du von customfield_xxx erhalten kannst, die ID, die URL und der Wert sind. Nicht "Name". –

+0

Ihr Kommentar zu der URL hat mir gezeigt, dass die Daten auf Serverebene liegen, nicht auf Projekt- oder Issue-Ebene. In Python macht dies einen Namen -> Nummer Wörterbuch: –

+2

allfields = jira.fields(); nameMap = {Feld ['Name']: Feld ['ID']} für Feld in allen Feldern} –