Hướng dẫn này giải thích cách đọc các bảng được định nghĩa trong file Markdown và tự động đăng ký mỗi hàng thành một GitHub Issue.

Cấu trúc dự án

project/
├─ .env                           # Lưu trữ GitHub Access Token
├─ example.md                     # Bảng Markdown chứa các issue cần đăng ký
├─ markdown-table-parser.js       # Lớp phân tích bảng (Parser)
├─ markdown-issue-mapper.js        # Bộ chuyển đổi hàng -> GitHub Issue
├─ github-issue-client.js         # Client giao tiếp với GitHub API
├─ dry-run-issue-preview.js       # Chế độ chạy thử (Dry-run) để xem trước
├─ mark-down-github-issue-register.js # Lớp tích hợp đăng ký tổng thể
└─ run-markdown-to-issues.js      # Điểm bắt đầu thực thi (Entry point)

Chuẩn bị trước

1. Cấp GitHub Access Token

snippet
GITHUB_TOKEN=ghp_...
GITHUB_USER_NAME=tên_người_dùng
GITHUB_REPO_NAME=tên_kho_chứa
⚠️ Đảm bảo đã thêm .env vào file .gitignore.

Cấu trúc file Markdown

Ví dụ: example.md
## Research

| Category | Type | Summary | Description | Priority | Status | Comments |
|----------|---------|------------------------------|------------------------------|----------|--------|----------|
| AI | Prompting | Nghiên cứu và viết mẫu | Mô tả thử nghiệm | High | Open | Mục quan trọng |
| API | Weather API | Kiểm tra và kết nối API thời tiết | Mô tả thử nghiệm | Medi

Cách thực hiện

✅ Chạy cơ bản
node run-markdown-to-issues.js
✅ Chỉ định file/section cụ thể
node run-markdown-to-issues.js --file ./example.md --section "## Research"
✅ Chế độ Dry-run (Chỉ kiểm tra, không đăng ký)
node run-markdown-to-issues.js --file ./example.md --section "## Research" --dry-run

Kết quả thực hiện

  • Phân tích bảng trong section được chỉ định.
  • Chuyển đổi mỗi hàng thành một đối tượng GitHub Issue.
  • Đăng ký Issue lên GitHub (Tự động bỏ qua nếu trùng tiêu đề).

Các hạng mục có thể tùy chỉnh

Screenshot 2026-01-29 132330.png

Mẹo kiểm thử và Debug

  • Sử dụng tùy chọn dry-run để kiểm tra kết quả đầu ra mà không thực sự tạo Issue trên GitHub.
  • Sử dụng fetchIssues() để kiểm tra danh sách các Issue hiện có.
  • Chỉ cần sửa đổi MarkdownIssueMapper để thay đổi toàn bộ định dạng của Issue.

Tóm tắt các lớp chính

Screenshot 2026-01-29 132420.png

Tính năng mở rộng đề xuất

  • Tự động hóa thông qua GitHub Actions.
  • Mapping thêm các trường Assignee, Milestone.
  • Thiết lập động --owner, --repo từ giao diện dòng lệnh (CLI).
  • Tùy chọn xuất ra file .json hoặc .csv.
Nguồn bài viết ryukato.github.io