bagaimana cara memigrasi masalah dari redmine ke tuleap

Awalnya kami menggunakan Redmine sebagai sistem manajemen masalah, sekarang kami berencana untuk bermigrasi ke sistem Tuleap.

Kedua sistem memiliki fitur untuk mengimpor/mengekspor masalah ke file .csv.

Saya ingin tahu apakah ada cara standar/sederhana untuk masalah migrasi.

Item utama dalam terbitan adalah status, title dan description.


person Larry Cai    schedule 18.10.2012    source sumber
comment
Ini agak lama, mungkin Anda sudah menyelesaikan masalahnya atau menyerah, tetapi sebagai catatan, Tuleap sekarang memiliki alat impor yang komprehensif. Anda harus memiliki XML yang cocok dengan tuleap.net/plugins/tracker/resources/artifacts.rng skema dan gunakan alat impor di /usr/share/tuleap/plugins/tracker/bin/import_artifacts.php   -  person Manuel VACELET    schedule 05.04.2014


Jawaban (3)


Apa jenis data "remaining_effort" dan "cross_references" yang ada di pengingat?

person Manuel VACELET    schedule 19.10.2012
comment
misalkan Anda perlu memberi komentar di bawah jawaban saya ;-) - person Larry Cai; 19.10.2012
comment
Ya :) tapi saya tidak tahu mengapa saya bisa berkomentar di sini tetapi tidak di pertanyaan awal atau jawaban pertama Anda. - person Manuel VACELET; 19.10.2012

Karena kedua sistem dapat mengekspor file csv, yang berisi header item yang mereka perlukan, beberapa header berbeda.

Dibutuhkan skrip untuk memetakan dari satu sistem ke sistem lain, cuplikan kode ditunjukkan di bawah ini.

Ini dapat berfungsi untuk sistem ALM lain jika tidak mendukung aplikasi (maksud saya migrasi).

#!/usr/bin/env python
import csv
import sys

# read sample tuleap csv header to avoid some field changes
tuleapcsvfile = open('tuleap.csv', 'rb')
reader = csv.DictReader(tuleapcsvfile)
to_del = ["remaining_effort","cross_references"]
# remove unneeded items
issueheader = [i for i in reader.fieldnames if not i in to_del]

# open stdout for output
w = csv.DictWriter(sys.stdout, fieldnames=issueheader,lineterminator="\n")
w.writeheader()

# read redmine csv files for converting
redminecsvfile = open('redmine.csv', 'rb')
redminereader = csv.DictReader(redminecsvfile)
for row in redminereader:
    newrow = {}
    if row['Status']=='New':
        newrow['status'] = "Not Started"
    # some simple one to one mapping
    newrow['i_want_to' ]= row['Subject']
    newrow['so_that'] = row['Description']
    w.writerow(newrow)

beberapa item dalam csv yang diekspor tidak dapat diimpor kembali dalam tuleap seperti remaining_effort,cross_references.

Kedua item ini ditampilkan di dalam file .csv yang diekspor dari masalah Tuleap.

person Larry Cai    schedule 18.10.2012

Punya masalah yang sama dan solusi csv tampak terlalu terbatas bagi saya:

  • bidang yang cocok antara pelacak dan konten csv harus sama persis
  • Anda tidak dapat mengimpor lampiran
  • Anda tidak dapat menautkan artefak
  • ...

Masalah dapat diekstraksi dari Redmine menggunakan REST API atau dengan langsung membaca database SQL. Artefak dapat dibuat di Tuleap menggunakan REST API . Anda "hanya" memerlukan skrip di tengah untuk mengekstrak masalah dari Redmine dan kemudian mengimpornya ke Tuleap.

Saya membuat skrip seperti itu dengan Python:

  • Ini memiliki pendekatan plugin sehingga dapat mengimpor masalah/bug dari pelacak bug mana pun dan kemudian menyimpannya ke pelacak bug lainnya.
  • Untuk saat ini hanya mendukung penggalian masalah dari database Redmine SQL dan mengekspor ke Tuleap menggunakan REST API.
  • Seseorang dapat memperluasnya (plugin baru) untuk mengekstrak masalah dari pelacak lain (bugzilla/mantis/gitlab).
  • Seseorang dapat memperluasnya (plugin baru) untuk menghasilkan file Tuleap xml daripada mengimpor artefak menggunakan Tuleap REST API (XML lebih kuat di sini).

Saya mem-porting ratusan masalah dari Redmine ke Tuleap menggunakan ini dan itu cukup sesuai dengan kebutuhan saya.

Lihat https://github.com/jpo38/TrackerIO.

person jpo38    schedule 04.10.2018