Umstieg von Jira

Übernimm Projekte, Vorgänge, Epics, Sprints, Kommentare, Zeiten und Dateien aus Jira Cloud oder Jira Data Center, prüfe vorab, was passieren würde, und mache es bei Bedarf rückgängig.

Überblick

Der Import ist Teil von Resourcecloud (Admin → Datenimport, für RC Admins). Du exportierst deine Jira-Daten in eine Datei, lädst sie hoch, legst fest, was jedes Jira-Ding wird, siehst dir an, was passieren würde, und startest. Der Import läuft im Hintergrund und berichtet, was er getan hat.

Vorbereitung

Begriffe Jira und Resourcecloud

In JiraIn ResourcecloudHinweis
ProjektTeam + LösungDas Team bestimmt, wer die Aufgaben sieht, die Lösung, wozu die Arbeit gehört. Gewählt pro Projekt in der Zuordnung.
Vorgang (Task, Bug, Story, …)AufgabeDer Aufgabentyp kommt aus der Zuordnung (Bug → Bugfix, …). Eine Jira-Story wird zur Aufgabe vom Typ Story.
Sub-TaskUnteraufgabeGehört zu ihrer Aufgabe und übernimmt deren Typ, wenn du keinen anderen wählst.
EpicEpicIn Resourcecloud enthält ein Epic Stories und eine Story Aufgaben; deshalb bekommt jedes Epic eine gleichnamige Story, die seine Aufgaben enthält.
Story (Vorgangstyp)Aufgabe vom Typ Story
oder Resourcecloud-Story
Standard ist eine Aufgabe. In der Zuordnung kannst du einen Vorgangstyp stattdessen zur Resourcecloud-Story machen (ein Behälter für Aufgaben).
BoardKanban-Board und Sprintplanung des TeamsBoards selbst werden nicht kopiert; sie bestimmen, zu welchem Team ein Sprint gehört.
Workflow, StatusStufen des Team-BoardsKategorie To Do → Zugewiesen (nicht begonnen), Done → Aufgabe geschlossen, In Progress → eine Stufe deiner Wahl (vorgeschlagen: Working).
SprintSprintName, Ziel, Daten und ob er abgeschlossen, aktiv oder künftig ist. Aufgaben kommen in die Sprints, in denen sie waren.
Story PointsStory PointsAuf ganze Zahlen gerundet.
Ursprüngliche SchätzungGeschätzte ZeitAufgaben ohne Schätzung bekommen 10 Minuten, wie in der API.
WorklogZeiteintragGebucht auf die Person, die ihn erfasst hat, an ihrem Tag. Braucht einen passenden Benutzer (siehe unten).
PrioritätPriorität: normal oder hochHighest, High, Blocker, Critical, Major, Urgent → hoch. Pro Priorität änderbar.
KommentarKommentarMit ursprünglichem Autor und Datum.
AnhangDateiAus dem Zip.
Melder, BearbeiterErstellt von, zugewiesen anZugeordnet über E-Mail, dann Benutzername.
Gelöst, LösungsdatumErledigt, Erledigt-DatumEine Aufgabe, deren Status auf „Erledigt“ zeigt, wird an ihrem Lösungsdatum geschlossen.
BeschreibungBeschreibungIn formatierten Text umgewandelt. Unsicheres Markup wird entfernt.

1. Export aus Jira

Jira hat keinen Knopf „alles exportieren“, nimm deshalb das Skript, das Resourcecloud mitbringt: tools/jira_export.py. Es fragt die REST-API von Jira (es liest nur) und schreibt ein Zip mit Projekten, Vorgängen, Kommentaren, Worklogs, Anhängen, Boards, Sprints und Personen.

  1. Jira Cloud:
    python3 jira_export.py --url https://acme.atlassian.net \
        --user [email protected] --token "$JIRA_TOKEN" --projects ABC,DEF
  2. Jira Data Center / Server:
    python3 jira_export.py --url https://jira.acme.com \
        --token "$JIRA_TOKEN" --projects ABC,DEF
    (ein Personal Access Token; oder --user und --password)
  3. Ohne --projects werden alle Projekte exportiert, die das Konto sieht. Gib Zugangsdaten über die Umgebung an (JIRA_USER, JIRA_TOKEN, JIRA_PASSWORD), damit sie nicht in der Shell-Historie landen.
  4. Ergebnis ist ein Ordner jira-export/ und jira-export.zip. Eine README.txt darin sagt, was exportiert wurde.

Nützliche Optionen. --no-attachments lässt Dateien weg. --max-attachment-mb 200 überspringt größere Dateien. --delay 0.5 macht Pausen zwischen Anfragen bei einem ausgelasteten Jira. --cafile vertraut einem internen Zertifikat. Mit demselben --out erneut gestartet, macht das Skript weiter: bereits geladene Dateien werden nicht noch einmal geholt.

Das Skript wartet, wenn Jira um Langsamkeit bittet, ergänzt die Kommentar- und Worklog-Listen, die Jiras Suche abschneidet, schickt deine Zugangsdaten nie an einen anderen Host (Jira Cloud liefert Dateien von einem anderen aus) und bricht mit einer klaren Meldung ab, wenn Zugangsdaten oder Projektschlüssel nicht stimmen.

Eigener Export. Der Import liest, was die REST-API von Jira liefert: Seiten von Suchergebnissen, Sprint- und Board-Seiten, Benutzerlisten, als .json, .jsonl, .gz oder als .zip daraus. Hast du solche Dateien schon, lade sie unverändert hoch. Anhänge gehören ins Zip als attachments/<ID>/<Dateiname>; der Import findet sie über Jiras Anhangs-ID.

2. Hochladen

  1. Öffne Admin → Datenimport und ziehe das Zip auf das Feld (oder klicke darauf und wähle die Datei).
  2. Die Datei wird in Stücken von 4 MB mit Fortschrittsanzeige gesendet. Die Größe spielt keine Rolle. Bricht die Verbindung ab, versucht die Seite es selbst erneut; schließt du die Seite, öffne den Import in der Liste, wähle dieselbe Datei und er macht dort weiter, wo der Server stehen geblieben ist.
  3. Ist das letzte Stück da, liest Resourcecloud die Datei im Hintergrund („Export wird eingelesen…“) und die Zuordnung öffnet sich.

Steht Resourcecloud hinter einem Reverse-Proxy, der die Größe von Anfragen begrenzt (manche voreingestellt auf 1 MB), werden Stücke von 4 MB abgelehnt. Erhöhe das Limit für /backend/import_upload auf mindestens 8 MB.

3. Zuordnen

Die Zuordnung listet alles auf, was eine Entscheidung braucht, mit der Häufigkeit. Alles ist schon aus dem vorgeschlagen, was in Resourcecloud existiert; lies es durch, ändere, was nicht stimmt, und drücke Prüfen. Zurück zum Vorschlag verwirft deine Änderungen.

TabDu entscheidest
VorgangstypenWas jeder Jira-Vorgangstyp wird: Aufgabe, Unteraufgabe, Resourcecloud-Story oder Epic, und der Aufgabentyp. Fehlende Typen (wie Story) werden angelegt, wenn du es unter Optionen erlaubst.
StatusDie Stufe für jeden Jira-Status: Zugewiesen (nicht begonnen), Erledigt (geschlossen) oder eine Stufe des Teams. Hat das Team die Stufe nicht, kommen die Aufgaben nach Zugewiesen, außer du erlaubst das Ergänzen von Stufen.
PrioritätenNormal oder hoch.
ProjekteTeam, Lösung und (bei neuer Lösung) Firma pro Jira-Projekt. Wenn möglich über den Namen zugeordnet.
PersonenWelcher Resourcecloud-Benutzer jede Jira-Person ist. Filtern, nur nicht zugeordnete Personen zeigen, einen Benutzer suchen, Ich wählen (Kommentare werden dir zugeschrieben), Niemand oder Benutzer anlegen.
OptionenWas angelegt werden darf und was importiert wird (Kommentare, Worklogs, Anhänge, Sprints).

Personen ohne Zuordnung

Benutzer und Teams anlegen

Standardmäßig aus. Ein RC Admin kann es mit dem Schalter auf der Übersichtsseite des Imports erlauben; der Import bietet dann Benutzer anlegen und Virtuelles Team anlegen an. Angelegte Benutzer sind inaktiv, können sich erst anmelden, wenn du sie aktivierst, und zählen bis dahin nicht als lizenzierte Plätze. Angelegte Teams sind virtuelle Teams, die die Stufen bekommen, die ihre Vorgänge brauchen, und die Personen, die darin arbeiten, als Mitglieder. Der Schalter wird beim Lauf des Imports noch einmal geprüft.

4. Prüfen und starten

  1. Prüfen speichert die Zuordnung und macht einen Probelauf. Er schreibt nichts. Er zeigt pro Art, wie viele Objekte neu, geändert oder unverändert wären, was außer der Arbeit angelegt würde (Aufgabentypen, Lösungen, Teams, Benutzer, Stufen) und was einen Blick braucht: Personen ohne Zuordnung, Stufen, die ein Team nicht hat, übergeordnete Vorgänge oder Epics, die nicht im Export sind.
  2. Fehler (etwa ein Projekt ohne Team) werden pro Zeile gezeigt und müssen behoben werden. Warnungen kannst du akzeptieren.
  3. Import starten fragt noch einmal nach. Der Import läuft im Hintergrund; du kannst die Seite schließen.

5. Bericht und Ergebnis

Während er läuft, siehst du Fortschrittsbalken und Protokoll. Danach nennt der Bericht pro Art, wie viele Objekte angelegt, aktualisiert, unverändert, übersprungen und fehlgeschlagen sind, jedes fehlgeschlagene Objekt mit Grund, und das Protokoll (Warnungen wie Personen ohne Zuordnung, Dateien, die nicht im Zip waren). Ein fehlgeschlagenes Objekt hält die anderen nicht auf.

Sieh dir das Ergebnis dann dort an, wo deine Leute arbeiten: Backlog und Kanban-Board jedes Teams (offene Arbeit landet im Backlog oder in der Stufe, die du zugeordnet hast), die Sprintplanung, Epics und Stories, Kommentare und Zeit einer Aufgabe, ihre Dateien. Aufräumen entfernt die hochgeladene Datei und die eingelesenen Daten vom Server; der Bericht und das Verzeichnis dessen, was importiert wurde, bleiben.

Geschwindigkeit. Auf einem Entwicklungsrechner schrieb der Import etwa 1.000 Objekte (Aufgaben, Kommentare, Worklogs) pro Sekunde; 50.000 Vorgänge mit 150.000 Kommentaren brauchen also einige Minuten. Das Einlesen der Datei ist noch schneller. Langsam ist der Export aus Jira, und er hängt von Jira ab.

Erneut importieren

Du kannst dasselbe Projekt beliebig oft importieren: zuerst zum Ansehen, noch einmal als letzter Lauf kurz vor dem Umstieg.

Import rückgängig machen

Im Bericht eines abgeschlossenen Imports zeigt Import rückgängig machen eine Vorschau und läuft nach Bestätigung im Hintergrund.

Was nicht importiert wird

Lege die Regeln, die du brauchst, auf der Resourcecloud-Seite neu an: Stufen und Arbeitsmodell jedes Teams, Rollen, Benachrichtigungen.

Umstiegsplan

  1. Probe. Exportiere ein Projekt, importiere es in ein Testteam, sieh dich um, mache es rückgängig. Verbessere die Zuordnung, bis sie so ist, wie du sie willst.
  2. Alles importieren, ein bis zwei Wochen vor dem Umstieg. Lass die Teammitglieder ihre Aufgaben ansehen; korrigiere Namen und Stufen, die sie überraschen.
  3. Jira einfrieren am Tag selbst: schreibgeschützt machen oder alle bitten aufzuhören. Noch einmal exportieren und importieren; angefasst wird nur, was sich geändert hat.
  4. Umstieg. Ab jetzt arbeiten alle in Resourcecloud. Halte Jira so lange schreibgeschützt, wie deine Aufbewahrungspflichten es verlangen; das Export-Zip ist eine vollständige Kopie dessen, was importiert wurde.
  5. Führe am Ende Aufräumen für die Importe aus, damit die Uploads nicht auf dem Server bleiben.

Fragen

Warum ist eine Jira-Story eine Aufgabe und keine Resourcecloud-Story?

In Jira ist eine Story ein gewöhnlicher Vorgang. In Resourcecloud ist eine Story ein Behälter für Aufgaben, also etwas anderes; deshalb wird eine Jira-Story zur Aufgabe vom Typ Story. Nutzt du Jira-Stories als Behälter, ordne diesen Vorgangstyp stattdessen der Resourcecloud-Story zu; seine Sub-Tasks werden dann Aufgaben darin.

Einige Personen wurden nicht zugeordnet. Was nun?

Öffne den Tab Personen, setze Nur nicht zugeordnete Personen und wähle für jede einen Benutzer, oder erlaube das Anlegen (inaktiver) Benutzer und wähle Benutzer anlegen. Dann prüfen und erneut importieren: Was importiert ist, bleibt unberührt, und die fehlenden Worklogs werden ergänzt.

Worklogs fehlen.

Worklogs von Personen ohne Zuordnung werden absichtlich übersprungen (siehe „Personen ohne Zuordnung“). Das Protokoll nennt sie. Prüfe auch, dass „Zeitbuchungen“ unter Optionen gesetzt ist.

Ein Anhang wurde als fehlend gemeldet.

Die Datei war nicht im Zip oder an anderer Stelle. Das Export-Skript legt jede Datei unter attachments/<Anhangs-ID>/<Name> ab. Dateien über der Größengrenze, die du dem Skript gegeben hast, werden absichtlich übersprungen. Lege die Datei unter diesem Pfad ins Zip und importiere erneut; der Vorgang wird nicht verdoppelt, die Datei kommt dazu.

Emoji fehlen in Titeln.

Die Datenbank von Resourcecloud kann in Titeln und Namen keine Emoji speichern; dort werden sie weggelassen. In Beschreibungen und Kommentaren bleiben sie erhalten.

Ein Titel hat Text zwischen < und > verloren.

Titel und Namen sind in Resourcecloud einfacher Text; alles, was wie ein HTML-Tag aussieht, wird entfernt, und ein einzelnes < oder > durch sein breites Gegenstück ersetzt. Beschreibungen und Kommentare behalten ihre Formatierung; Skripte, Event-Handler und unsichere Links werden daraus entfernt.

Kann ich in ein Team importieren, das schon ein Board hat?

Ja. Wähle das Team in der Zuordnung und gib jedem Status die Stufe, in die er soll. Eine Stufe, die das Team nicht hat, wird nur ergänzt, wenn du es unter Optionen erlaubst; diese Aufgaben kommen nach Zugewiesen.

Kann ich zwei Jira-Installationen importieren?

Ja. Jeder Export wird unter der Installation abgelegt, aus der er stammt (aus den Links von Jira gelesen); IDs, die in mehreren Installationen vorkommen, kollidieren also nicht.

Verschickt der Import E-Mails?

Nein. Es werden keine E-Mails und keine Benachrichtigungen verschickt, egal wie viele Objekte geschrieben werden.

Der Upload bricht jedes Mal an derselben Stelle ab.

Etwas zwischen Browser und Server begrenzt die Größe einer Anfrage. Siehe den Hinweis in Schritt 2.

Sicherheit