- บันทึกประสบการณ์ของโปรเจกต์โอเพนซอร์สสำหรับย้ายระบบจาก Jira ไปยัง GitLab
- ที่มา
- ข่าวการยุติการสนับสนุนผลิตภัณฑ์ Jira Server ตั้งแต่วันที่ 15 กุมภาพันธ์ 2024
- ทางเลือกที่สามารถเลือกได้: Pivotal Tracker, IBM Engineering Requirements Management DOORS Next, Rally Software, GitLab, ServiceNow Agile Development, GitHub เป็นต้น
- แล้วผู้ที่ใช้งาน Jira Server ควรทำอย่างไร? ลองสร้างโปรเจกต์สำหรับย้ายไปยัง GitLab ดูไหม?
- สถานะความสามารถของการย้าย Jira → GitLab
- ใน GitLab สามารถคัดลอก title, description, label ของ Jira issue ได้
- เมทาดาทาที่เหลือจะถูกนำเข้าไปใน description
- มี UI สำหรับแมป Jira User กับ GitLab User
- ข้อจำกัดของการย้าย Jira → GitLab
- จำเป็นต้องตั้งค่า Jira Integration
- รองรับเฉพาะ Jira API v3
- Jira และ GitLab ใช้ไวยากรณ์ต่างกัน จึงไม่สามารถย้ายได้อย่างแม่นยำทั้งหมด
- ใน description,
Heading 1, Heading 2, Heading 3 ถูกย้ายไปเป็น Numbered, SubNumbered, SubNembered 2
- GitLab ใช้ไวยากรณ์ Markdown ส่วน Jira ใช้มาตรฐานเฉพาะของตัวเองชื่อ
ADF(Atlassian Document Format) จึงเกิดความแตกต่างนี้
- issue type, priority, label ก็ย้ายได้ไม่แม่นยำนัก
- ทิศทางของโปรเจกต์ย้ายระบบภายในองค์กร
- เป้าหมาย:
- ตัดสินใจว่า Jira epic ควรถูกย้ายไปที่ใด และ issue ควรถูกย้ายไปที่ใด
- ดำเนินการย้ายอย่างเป็นรูปธรรมว่า field ของ Jira issue เช่น title, description, label, component ควรถูกย้ายไปยัง field ใดของ GitLab
- ตอนย้าย Jira epic ไปเป็น GitLab epic จะเปิดอิสระให้ผู้ใช้เลือกได้ว่าจะย้ายไปเป็น sub-epic ใน sub-group หรือเป็น epic ในกลุ่มระดับบน
- ส่วน issue จะย้ายไปเป็น issue
- ข้อจำกัด:
- เดิมอยากย้าย sub-task ให้ไปเป็น task ที่อยู่ใต้ issue ย่อยเช่นกัน แต่ GitLab ยังไม่รองรับ Task API
- Jira มี field จำนวนมากเกินไป;
- ความสามารถพื้นฐานอย่าง description, label, component นั้น GitLab ก็รองรับ จึงย้ายได้
- But!!! field ที่เกี่ยวกับ time tracking และ security นั้น GitLab ไม่รองรับ จึงย้ายไม่ได้
- แบบออกแบบสุดท้าย
- Jira project → GitLab project
- Jira epic → GitLab epic
- Jira issue → GitLab issue
- title, description, version, story point, resolution ของ Jira จะถูกแมปไปยัง GitLab ตรง ๆ
- Jira resolution → GitLab closed, Jira story point → GitLab weight
- Jira issue type, component, status, priority → ย้ายโดยใช้ GitLab label และ scoped label
- พัฒนา custom field ด้วย
- สำหรับ description จะพาร์สฟอร์แมตทั้งหมดด้วย regular expression แล้วแปลงเนื้อหาเป็น Markdown เพื่อย้าย
- ผลลัพธ์ของโปรเจกต์
- การย้าย Jira แบบโหมดมาตรฐานใช้งานได้ค่อนข้างดี
- ถ้าไม่มีปลั๊กอินและออโตเมชัน การย้ายทำได้ดี
- ส่วนใหญ่แมปด้วย GitLab Label
- สร้าง epic ในกลุ่มระดับบนของปลายทาง
- ลิงก์ issue ที่เชื่อมกันใน Jira ก็ย้ายไปยัง GitLab ด้วย
- Jira wiki markup แปลงด้วย Markdown converter
- เพิ่ม attachment และ comment เข้าไปใน issue ด้วย
- ถ้าสร้าง custom field จำนวนมาก จะทำให้ย้ายได้ยาก
- สิ่งที่ทำได้ดี
- สร้างเวอร์ชันคลาวด์ก่อน แล้วค่อยเพิ่มเวอร์ชันสำหรับเซิร์ฟเวอร์
- ถ้าตั้งค่าเฉพาะการแมป custom field ก็สามารถย้ายได้เกือบทั้งหมด
- จัดการ parallel processing ได้เหมาะสม ทำให้ย้ายได้เร็วกว่าเดิมมากกว่า 3 เท่าเมื่อเทียบกับตอนที่ยังไม่ได้ทำ
- จัดการคอนฟิกแบบ YAML-based ให้สอดคล้องกับเทรนด์
- เปิดเป็นโอเพนซอร์สเพื่อให้ใครก็ย้ายระบบได้
- แจกจ่ายแพ็กเกจผ่าน Brew
- จุดที่ควรปรับปรุง
- เมื่อย้ายจาก Jira Server
- ต้องเพิ่มการแมป sprint
- ไม่มีวิธีรองรับ field แบบ Cascade
- เมื่อย้ายจาก Jira Cloud
- จำเป็นต้องทดสอบกับเคสจริงจำนวนมาก เช่น การย้ายข้อมูลที่เกี่ยวกับปลั๊กอิน
- หน้าโปรเจกต์โอเพนซอร์สนี้:
ยังไม่มีความคิดเห็น