Como posso baixar um repositório privado do GitHub sem acesso ao 'git' na minha máquina local?


9

O que eu quero fazer é baixar o repositório privado do GitHub, extraí-lo, remover o arquivo e copiar alguns diretórios que estão dentro do projeto baixado.

Tentei usar, wgetmas não posso me autorizar:

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

Eu também tentei com 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

Aqui a autorização passa, mas não consigo extrair o arquivo.

Como fazer isso?


Por que você não usa git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen 30/03

1
Porque eu estou fazendo isso no servidor onde não há git.
Kamil Lelonek 30/03

Respostas:


4

A solução com wgetseria algo como:

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>/

Notas:

  • --strip-components=1 removerá o diretório de nível superior contido no arquivo criado no GitHub,
  • certifique-se de não colocar um à direita /no final de diretórios que estão a ser copiado com cp( <dir1>, <dir2>..., <dirn>) e que a fuga /está presente no final do diretório de destino ( <destination-dir>).

0

Desde que você tenha seu próprio "Personal Access Token", você pode baixar um arquivo da ramificação do seu repositório usando o comando curl:

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

ProjectID é exibido na página principal do repositório.

Você pode obter o valor SHA da webUI depois de selecionar a ramificação desejada no menu suspenso e copiar o valor à direita para o SHA. Veja a captura de tela abaixo:

insira a descrição da imagem aqui

A outra maneira de fazer isso é via wget assim:

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

Espero que ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.