Push code lên GitHub: 2 cách và N8n

Với hơn 100 triệu lập trình viên trên khắp thế giới, GitHub là nền tảng cộng tác hàng đầu dành cho các lập trình viên. Điều thú vị hơn nữa về GitHub là nó cung cấp các công cụ để tự động hoá gần như mọi khía cạnh của quá trình phát triển: từ chỉnh sửa mã, đẩy mã, kiểm tra, đến làm việc với các vấn đề, quản lý người dùng và còn nhiều thứ nữa. N8n là 1 trong những cách đẩy code hiệu quả.
Vì vậy, hôm nay chúng ta sẽ tập trung trả lời một câu hỏi đơn giản, nhưng rất phổ biến: cách đẩy mã lên GitHub:
- Bạn sẽ học (hoặc ôn lại) cách đẩy mã dự án lên GitHub từ Terminal,
- Sau đó, bạn sẽ xem cách thực hiện cùng một công việc một cách tự động qua n8n, một công cụ tự động hoá quy trình làm việc mở nguồn:
- Cuối cùng, chúng ta sẽ trình bày cách tự động hoá các công việc khác nhau trên GitHub với n8n, tận dụng nút GitHub đã được xây dựng sẵn. Các ví dụ này có thể truyền cảm hứng để tạo ra các tích hợp linh hoạt với GitHub với ít mã lập trình nhất có thể.
Hãy bắt đầu ngay nhé!
Phương pháp 1: Đẩy mã lên GitHub bằng Command Line
Nếu bạn là người dùng GitHub thành thạo, việc thiết lập một kho lưu trữ Git cục bộ và liên kết nó với GitHub hẳn đã trở thành điều quen thuộc thứ hai của bạn. Bạn có thể chuyển ngay sang phương pháp số 2.
Nếu bạn cần giúp đỡ để đẩy mã lên một kho lưu trữ mới trên GitHub, bạn sẽ tìm thấy hướng dẫn khởi đầu ngắn gọn nhất trong vài đoạn dưới đây.
Trước tiên, tạo một kho lưu trữ mới trong tài khoản GitHub của bạn.

Sau khi tạo xong kho lưu trữ mới, GitHub sẽ hiển thị một ghi chú ngắn gọn.

Nếu bạn đã có một kho lưu trữ từ xa và đã cài đặt Git trong môi trường phát triển của mình, hãy làm theo các bước sau và chỉnh sửa các dòng lệnh nếu cần:
mkdir -p <local-path-to-repo>
cd <local-path-to-repo>
git init
echo "# git_push_article" >> README.md
git add .
# optional commands:
# 1. If the folder owner is different from the user, add this:
git config --global --add safe.directory <local-path-to-folder>
# 2. If you test Git commands for the first time, also add this:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git commit -m "first commit"
git branch -M main
git remote add origin 'https://<github-username>:<github-user-access-key>@github.com/<github-repo.git>'
git push -u origin main
Ví dụ này cơ bản thực hiện các bước sau:
- Tạo thư mục mới, chuyển vào đó và khởi tạo kho Git,
- Tạo một file README.md mặc định và thêm tất cả các tập tin trong thư mục vào kho,
- Các lệnh tùy chọn chỉ cần thực hiện một lần cho mỗi kho,
- Cam kết các thay đổi vào kho cục bộ với mô tả và tạo ra nhánh mới gọi là “main”,
- Thêm đích kho từ xa trên GitHub sử dụng tên người dùng và token truy cập tạm thời để tiện lợi,
- Lệnh cuối cùng đẩy mã lên kho mới trên GitHub.
Sau khi thực thi thành công, bạn sẽ thấy tập tin mới xuất hiện trên GitHub:

Điều này thật dễ đúng không?
Phương pháp 2: Đẩy mã lên GitHub bằng các nút n8n
Sử dụng n8n để đẩy mã lên GitHub mở ra những chân trời mới cho bạn:
- Trước hết, n8n cho phép bạn thực hiện các thay đổi trực tiếp trong kho lưu trữ Git. Điều này đặc biệt hữu ích khi bạn cần cập nhật các phần của tài liệu Git mà không cần phải kéo xuống từ GitHub và thực hiện cam kết cục bộ trước khi đẩy các thay đổi trở lại vị trí từ xa.
- Thứ hai, bạn có thể tự động hóa các tiến trình của Git hơn nữa. n8n cho phép tự động hóa chu kỳ phát triển cục bộ của bạn, kiểm tra trạng thái của kho cục bộ và đẩy mã lên Git trong giờ nghỉ làm.
Bây giờ, hãy xem xét mẫu luồng công việc này để đẩy và cập nhật các tệp trong GitHub, trong đó chúng ta cập nhật tệp README.md.

Đẩy qua nút GitHub
Cách tiếp cận này cho phép bạn cập nhật kho Git mà không cần liên quan đến kho cục bộ.
Phần trên cùng của ảnh chụp màn hình, có ba nút:
- GitHub tải về tệp README.md từ kho và trả về dưới dạng dữ liệu nhị phân;
- Nút giải mã tệp chuyển đổi chuỗi base64 thành văn bản dễ đọc;
- Nút cuối cùng đẩy tệp đã chỉnh sửa trực tiếp lên GitHub:
{{ $json.data }} ## Cập nhật vào lúc: {{ $now.toISO() }}
Đẩy qua nút Git / bash
Bây giờ hãy thử một phương pháp khác và sử dụng nút Git để làm việc với kho cục bộ.
Phần dưới của ảnh chụp màn hình hiển thị một số Nút Git và một nút Thực thi lệnh:
- Git pull lấy về kho từ xa và cập nhật bản sao cục bộ. Bước này cần thiết vì kho GitHub đã được cập nhật trước đó, và bản sao cục bộ của bạn có thể không đồng bộ;
- Nút Cập nhật README và thêm tệp mới thực thi một chuỗi lệnh cục bộ ghi dòng vào tệp README.md và tạo một tệp mới.
echo '' >> {{ $('config').item.json.localrepo }}/README.md
echo '## Cập nhật vào lúc:' >> {{ $('config').item.json.localrepo }}/README.md
echo '{{ $now.toISO() }}' >> {{ $('config').item.json.localrepo }}/README.md
echo 'Kiểm tra tệp mới' >> {{ $('config').item.json.localrepo }}/README.md
echo '' >> {{ $('config').item.json.localrepo }}/README.md
echo '# Đây là một tệp mới' >> {{ $('config').item.json.localrepo }}/new_{{ $now.toFormat('yyyyddMM-hhmmss') }}.md
- Các nút Thêm tệp, Cam kết và Đẩy thực hiện đúng như tên gọi của chúng – cập nhật tất cả các thay đổi gần đây trong kho Git. Điều quan trọng cần lưu ý là nút Git làm việc với kho cục bộ. Do đó, bạn cần đảm bảo rằng tệp cấu hình Git đã được thiết lập trước.
Tự động hóa GitHub với n8n
Hãy hình dung việc tối ưu hóa hoạt động của bạn với n8n, dễ dàng điều hướng các tác vụ như kéo, lấy dữ liệu, cam kết và đọc nhật ký. Xem danh sách đầy đủ các lệnh Git trên trang tài liệu.

Nhưng đó chưa phải tất cả. Với Trigger GitHub và nút Git, bạn có thể tự động hóa nhiều hành động. Bắt và đăng các vấn đề mới trong kho lưu trữ lên kênh Slack, theo dõi các kho dự án công cộng khác hoặc thực hiện các hành động trên chính của bạn. Tạo tệp, phát hành các bản cập nhật và hơn thế nữa. Phạm vi tự động hóa với n8n là vô hạn.
Cuối cùng, n8n cho phép bạn kết nối Git với các hệ thống khác. Chúng tôi đã đề cập việc đăng các vấn đề mới lên Slack, nhưng đó chỉ là phần nổi của tảng băng chìm. Hãy xem một số luồng công việc cộng đồng hữu ích, sử dụng chúng miễn phí và điều chỉnh chúng theo nhu cầu của bạn:
Kết luận
Trong hướng dẫn này, bạn đã học cách đẩy mã tự động lên GitHub bằng hai phương pháp khác nhau:
- Qua nút GitHub. Cách này bạn có thể làm việc trực tiếp với kho lưu trữ từ xa trên GitHub. Đây là một phương pháp đơn giản, tuy nhiên không tiện lợi lắm khi bạn cần cập nhật nhiều tệp;
- Qua nút Git. Phương pháp này yêu cầu n8n có quyền truy cập vào một kho lưu trữ Git cục bộ. Nó đòi hỏi kiến thức sâu hơn về Git.
Hoặc, bạn có thể sử dụng lệnh git bash thay vì nút Git. Đây là cách làm việc nâng cao nhất với các kho lưu trữ cục bộ. Bạn có thể đẩy và kéo dữ liệu từ nhiều tệp cùng lúc hoặc dễ dàng chạy các lệnh như git commit và push trong một nút Thực thi lệnh.
Nếu các bạn muốn tham khảo thêm các template khác, các bạn có thể truy cập vào: N8n Template