Làm cách nào tôi có thể tải xuống kho lưu trữ riêng từ GitHub không có quyền truy cập vào 'git' trên máy cục bộ của mình?


9

Những gì tôi muốn làm là tải xuống kho lưu trữ riêng tư từ GitHub, giải nén nó, xóa tệp lưu trữ và sao chép một số thư mục bên trong dự án đã tải xuống.

Tôi đã cố gắng sử dụng wgetnhưng tôi không thể ủy quyền cho mình:

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

Tôi cũng đã thử với cURL:

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

Ở đây ủy quyền thông qua, nhưng tôi không thể giải nén tập tin.

Làm thế nào để làm điều đó?


Tại sao bạn không sử dụng git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen

1
Bởi vì tôi đang làm việc đó ở máy chủ nơi không có git.
Kamil Lelonek

Có thể giải quyết vấn đề của bạn: stackoverflow.com/questions/23347134/ từ
errordeveloper

Câu trả lời:


4

Giải pháp với wgetsẽ là một cái gì đó như:

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

Ghi chú:

  • --strip-components=1 sẽ xóa thư mục cấp cao nhất có trong GitHub được tạo arhive,
  • hãy chắc chắn rằng bạn không đặt một dấu /ở phần cuối của thư mục đó sẽ được sao chép với cp( <dir1>, <dir2>, ..., <dirn>) và các dấu /hiện diện ở phần cuối của thư mục đích ( <destination-dir>).

0

Miễn là bạn có "Mã truy cập cá nhân" của riêng mình, bạn có thể tải xuống kho lưu trữ của chi nhánh kho lưu trữ của mình bằng cách sử dụng lệnh curl:

curl -k --header "PRIVATE-TOKEN: xxxx" https://gitlab.xxxxx/api/v4/projects/<projectID>/repository/archive?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c -o myFilename.tar.gz

ProjectID được hiển thị trên trang chính của repo.

Bạn có thể nhận được giá trị SHA từ webUI sau khi chọn nhánh bạn muốn từ trình đơn kéo xuống và sao chép giá trị ở bên phải cho SHA. Xem ảnh chụp màn hình bên dưới:

nhập mô tả hình ảnh ở đây

Cách khác để làm điều này là thông qua wget như thế này:

wget --no-check-certificate -O myFilename.zip --header=PRIVATE-TOKEN:xxxx "https://gitlab.xxxx/api/v4/projects/<projectID>/repository/archive.zip?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c"

Tôi hy vọng điều đó sẽ giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.