Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » ADO-Arbeitselemente

ADO-Arbeitselemente

Plugin: wkdoadowi
Namespace: lib/plugins/wkdoadowi/
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Lizenz: GPL 2.0-only


Aufgabenorientierte Anleitungen stehen unter Arbeiten mit Arbeitselementen. Diese Seite ist die technische Referenz des Pakets.

Zweck

Bringt die Arbeitselemente eines Azure-DevOps-Projekts in die Projektarbeitsfläche: eine Trefferliste über WIQL mit Volltextsuche und fünf Filtern, eine Einzelansicht mit Feldern, Verknüpfungen, Kommentaren und Verlauf, und — abhängig von der Projektrolle — Anlegen, Ändern, Zuweisen, Kommentieren und Verknüpfen.

Alles läuft über ein einziges ADO-Dienstkonto; Leser und Mitwirkende brauchen keine eigene ADO-Lizenz. Die Autorisierungsgrenze ist die Projektrolle dieses Wikis, nicht eine ADO-Lizenz.

Zielgruppe: Administratoren und Entwicklerinnen, die verstehen wollen, was dieses Paket entscheidet.


Das Gegenstück zu wkdoadogit

Paket Was es aus Azure DevOps holt
wkdoadogit Repositories: Dateibaum, Verlauf, Branches, Tags, Clone-Endpunkt
wkdoadowi Arbeitselemente: Liste, Einzelansicht, Schreiboperationen
wkdoado Beides darunter: Verbindungen, Anmeldeinformationen, der gehärtete REST-Client

Nicht zu verwechseln mit wkdoworkitems, wkdoboards und wkdoqueries: die arbeiten auf einer lokalen Ablage dieses Wikis und haben mit Azure DevOps nichts zu tun. Beide Bestände zählen ab eins und lassen sich an ihren Nummern nicht unterscheiden.


Es wird nichts kopiert

Das Paket ist eine Sicht, kein Abgleich. Die Liste stellt eine WIQL-Abfrage; die Einzelansicht liest das Element im Augenblick des Öffnens; eine Änderung geht als JSON-Patch an denselben Server. Es gibt keinen zweiten Stand, der veralten könnte.

In wkdostorage liegt ein vollständiges Gerüst für einen Abgleich — Zuordnungstabelle, Ausgangs- und Eingangswarteschlange, Konfliktablage. Es hat keine Aufrufer und wird von diesem Paket nicht benutzt. Wer es eines Tages in Betrieb nimmt, führt damit die Frage ein, welche Seite recht hat; diese Sicht hat sie nicht.

Was vom Server kommt und nicht im Code steht

Nichts an Prozessvorlagen-Vokabular ist hier hinterlegt. Gelesen werden:

Angabe Endpunkt
Arbeitselementtypen mit ihren Zuständen {projekt}/_apis/wit/workitemtypes
Zustände eines Typs, mit Kategorie {projekt}/_apis/wit/workitemtypes/{typ}/states
Felder eines Typs {projekt}/_apis/wit/workitemtypes/{typ}/fields
Bereiche und Iterationen {projekt}/_apis/wit/classificationnodes/…
Verknüpfungsarten _apis/wit/workitemrelationtypes
Zuweisbare Personen die Teams des Projekts und deren Mitglieder

Die Antworten werden zwischengespeichert (Vorgabe sechs Stunden), ein Fehlschlag deutlich kürzer (Vorgabe zwei Minuten): eine unerreichbare Verbindung darf nicht bei jedem Seitenaufruf fünf Zeitüberschreitungen kosten, muss aber von selbst wieder anspringen.

Antwortet der Server nicht, bleibt das Vokabular leer — und ein Bedienelement ohne Auswahl wird nicht angezeigt. Es wird nie ein wahrscheinlicher Wert erfunden.

Was „offen" bedeutet

Azure DevOps ordnet jeden Zustand einer Kategorie zu: Proposed, InProgress, Resolved, Completed, Removed. Der Filter Nur offene schließt die letzten beiden aus. Zustandsnamen sind über Typen hinweg nicht eindeutig; ein Name gilt nur dann als abgeschlossen, wenn ihn kein Typ als offen führt. Ist im Filter ein Typ gewählt, entscheidet dessen eigenes Vokabular.

Auf diesem Server führt die Prozessvorlage die Zustände der verborgenen Testtypen in ungewöhnlichen Kategorien — Test Case legt Design und Ready unter Removed, Test Suite auch In Progress. Das ist die Angabe des Servers, keine Annahme dieses Pakets.

Berechtigungen

Die Projektrolle kommt aus wkdocore — dieselbe, die über Seiten und Repositories entscheidet.

Rolle Lesen Anlegen Ändern Kommentieren Verknüpfen
keine
Leser ja
Mitwirkender ja ja ja ja
Betreuer ja ja ja ja ja
Administrator ja ja ja ja ja

Verknüpfen steht eine Stufe höher, weil es die Form eines fremden Arbeitsbestands ändert: ein umgehängtes Feature nimmt alle untergeordneten Elemente mit, und die Änderung erscheint im Verlauf des anderen Elements.

Vor jeder Ansicht wird zusätzlich die DokuWiki-ACL der umgebenden Seite geprüft. Ein Bedienelement, das abgewiesen würde, wird nicht gezeichnet — und an seiner Stelle steht die Anfrage nach der Rolle, die es erlauben würde.


Schreiben

Operation Wie
Anlegen PATCH {projekt}/_apis/wit/workitems/${typ} mit add-Operationen
Ändern PATCH _apis/wit/workitems/{nr}, test /rev als erste Operation
Kommentieren POST {projekt}/_apis/wit/workItems/{nr}/comments
Verknüpfen add /relations/- mit der Adresse, die der Server für das Ziel nennt
Verknüpfung lösen remove /relations/{index}, Fassungsprüfung zwingend

Nur Felder aus einer festen Liste werden geschrieben: Titel, Zustand, Zuweisung, Bereich, Iteration, Schlagwörter, Beschreibung, Reproduktionsschritte, Grund. Ein Formular, das jedes Feld schreiben kann, kann auch die Nachvollziehbarkeit überschreiben.

Nebenläufigkeit. Der Server antwortet auf eine fehlgeschlagene Fassungsprüfung mit HTTP 412 und TestPatchOperationFailedException; das wird als Konflikt gemeldet, nicht als Netzstörung. Der Patch wird ganz abgelehnt.

Nicht enthalten: Löschen (Azure DevOps verschiebt in einen Papierkorb, den dieses Wiki nicht wieder ausleeren kann), Anhänge hochladen, Felder außerhalb der Liste, gespeicherte Abfragen, Boards.


Bildschirme

do= Was
wkdoadowi Trefferliste. Zugleich das Ziel des Projektbereichs Arbeitselemente.
wkdoadowi_item Einzelansicht; tab= wählt fields, links oder history.
wkdoadowi_new Formular für ein neues Arbeitselement.

Schreiboperationen laufen als POST mit Sicherheitsmerkmal gegen dieselben Adressen und enden in einer Weiterleitung; der Ausgang reist als Kennung in der Adresse, nie als Text.

Ein AJAX-Aufruf wkdoadowi_states liefert die Zustände eines Typs für das Anlegeformular. Er liest nur und ist die einzige Stelle, an der dieses Paket JavaScript braucht — ohne ihn bietet das Formular die Zustände des zuerst gewählten Typs an, und der Server entscheidet.


Welches Azure-DevOps-Projekt gemeint ist

  1. Das Hinweisfeld der Verbindung, wenn es gesetzt ist.
  2. Sonst das ADO-Projekt, das die eingebundenen Repositories dieses Projekts am häufigsten nennen.
  3. Sonst gar keins — es wird nicht aus dem Projektschlüssel geraten. Auf dieser Installation heißt das Wiki-Projekt zim und sein ADO-Projekt PKIaaS; ein geratener Name hätte drei von vier Projekten richtig getroffen und eines still falsch.

Einstellungen

Schlüssel Vorgabe Bedeutung
meta_ttl 21600 Sekunden, die das Prozessvorlagen-Vokabular zwischengespeichert wird.
meta_fail_ttl 120 Sekunden, die ein fehlgeschlagener Abruf gemerkt wird.

Grenzen

  • Der Urheber ist immer das Dienstkonto. Im Verlauf eines Arbeitselements steht nicht, wer die Änderung im Wiki ausgelöst hat. Wer namentlich zeichnen muss, kommentiert oder arbeitet in Azure DevOps.
  • Ein Projekt, eine Verbindung. Die erste aktive Verbindung eines Projekts gewinnt; mehrere werden nicht zusammengeführt.
  • Keine gespeicherten Abfragen. Ein Filter ist eine Adresse und wird als Lesezeichen abgelegt.
  • Keine Aggregation über Projekte hinweg. Der Bereich gehört zu einem Projekt.

Verwandte Themen

de/wiki/dwe/wkdoadowi.txt · Zuletzt geändert: von 0.0.0.0