Hướng dẫn clone GitHub bằng phương pháp token

Ngay lúc viết bài này thì GitHub không cho clone source code bằng phương pháp password nữa. Cho dù là repository public và download dễ dàng vẫn có lỗi như sau:

Bài viết này hướng dẫn cách clone source code GitHub trên hệ điều hành Linux (Ubuntu). Có nhiều cách nhưng bài viết này chỉ liệt kê cách dễ làm và dễ thành công nhất.

Trước đây GitHub là nơi chia sẻ code của cộng đồng mã nguồn mở, sau này khi Microsoft mua lại GitHub thì thêm tính năng Private Repository. Nhờ tính năng này mà GitHub được các doanh nghiệp lựa chọn để lưu trữ source code chứ không chỉ cộng đồng mã nguồn mở.

Vì có doanh nghiệp tham gia nên các chính sách về bảo mật, phân quyền trở nên quan trọng hơn vì source code là tài sản quý. Có nhiều cách để xác thực, nâng cao bảo mật và Access token là 1 trong những cách đó.

Bước 1: cài đặt GitHub trên smartphone của bạn

Vào link https://github.com/mobile để cài đặt app tương ứng với smartphone của bạn. Sau đó đăng nhập bằng tài khoản GitHub.

Cần phải cài đặt GitHub app vì có vài bước sẽ yêu cầu xác thực, xác thực bằng app chính chủ là cách dễ nhất.

Bước 2: tạo access token

Vào menu Settings

Chọn tiếp menu Developer settings

Trong mục Personal access tokens chọn Tokens (classic)

Trong combobox Generate new token chọn Generate new token (classic)

Đến đây thì GitHub sẽ yêu cầu xác thực, bạn dùng app đã cài ở bước 1 để xác thực

GitHub sẽ hiện ra 1 con số

Bạn mở app GitHub trên phone thì 1 popup tự động hiện ra, các bạn nhập con số đó vào là được

Trang web GitHub sẽ chuyển bạn tới trang tạo Token mới, trong này hiện ra các quyền mà bạn cấp cho token đó. VD bạn cấp token chỉ có quyền read mà không có quyền write, hoặc cấp trong vòng bao nhiêu ngày thì hết hạn,…

Các bạn chọn quyền phù hợp, doc về các permission ở đây: https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps

Với nhu cầu bình thường là clone, push, pull thì các bạn chọn Repo như hình dưới là được

Bước 3: clone source code

Tiến hành clone như bình thường, với password là token vừa tạo

Bạn có thể save token lại ở đâu đó khi clone code, tuy nhiên đó không phải là cách chính thống. Cách chính thống là mỗi token dùng cho 1 repository và cache.

Để lưu lại token dùng cho những lần sau, bạn có thể dùng lệnh:
git config --global credential.helper cache

Lệnh này sẽ save token của bạn vào file ~/.git-credentials.

Nếu file ~/.git-credentials rỗng thì bạn kiểm tra lại quyền ghi hoặc đổi owner của file, với ubuntu là username của linux PC.
sudo chown ubuntu ~/.git-credentials

Các lỗi thường gặp khác

fatal: unable to connect to cache daemon: Permission denied
Lỗi này do bạn không có quyền ghi vào folder ~/.cache/git/credential/. Sửa bằng command bên dưới với ubuntu là username của linux PC:
sudo chown ubuntu -R ~/.cache/git/credential/

Lời kết

Ngoài cách này ra còn vài cách nữa như SSH key,… Tuy nhiên bài viết này giới thiệu cách đơn giản nhất để các bạn đủ thao tác và làm với dự án đơn giản.