Visão geral dos arquivos de código-fonte
Você pode baixar um instantâneo de qualquer ramificação, marca ou commit específico em GitHub. Esses instantâneos são gerados pelo comando git archive
em um dos dois formatos: tarball ou zipball. Os instantâneos não contêm todo o histórico do repositório. Para usar todo o histórico, clone-o. Para saber mais, confira Clonar um repositório.
Como baixar arquivos de código-fonte
Você pode baixar os arquivos do código-fonte de três maneiras.
Baixando arquivos de código-fonte da exibição do repositório
-
Em GitHub, acesse a página principal do repositório.
-
Acima da lista de arquivos, clique em Código.
-
Clique em Baixar ZIP.
Baixando arquivos de código-fonte de uma versão
-
Em GitHub, acesse a página principal do repositório.
-
À direita da lista de arquivos, clique em Versões.
-
Role a tela até a seção "Ativos" na página da versão.
-
Para baixar o código-fonte, clique em Código-fonte (zip) ou Código-fonte (tar.gz) .
Baixando arquivos de código-fonte de uma marca
-
Em GitHub, acesse a página principal do repositório.
-
À direita da lista de arquivos, clique em Versões.
-
Na parte superior da página Versões, clique em Tags.
-
Para baixar o código-fonte, clique em zip ou em tar.gz.
URLs de arquivos do código-fonte
Os arquivos de código-fonte estão disponíveis em URLs específicas para cada repositório. Por exemplo, considere o repositório github/codeql
. Há URLs diferentes para baixar um branch, uma marca ou uma ID de confirmação específica.
Tipos de arquivos | Exemplo | URL |
---|---|---|
Branch | main | https://github.com/github/codeql/archive/refs/heads/main.tar.gz |
Marca | codeql-cli/v2.12.0 | https://github.com/github/codeql/archive/refs/tags/codeql-cli/v2.12.0.zip |
Commit | aef66c4 | https://github.com/github/codeql/archive/aef66c462abe817e33aad91d97aa782a1e2ad2c7.zip |
Note
Você pode usar .zip
ou .tar.gz
nas URLs acima para solicitar um zipball ou tarball, respectivamente.
Estabilidade dos arquivos de código-fonte
Os arquivos de código-fonte são gerados na solicitação, armazenados em cache por um tempo e, em seguida, excluídos. Se o mesmo arquivo for solicitado novamente no futuro, ele será regenerado. É importante entender o que o GitHub faz para garantir os arquivos de código-fonte.
- Um arquivo de uma ID de confirmação sempre terá o mesmo conteúdo de arquivo sempre que for solicitado, assumindo que a ID de confirmação ainda está no repositório e que o nome do repositório não foi alterado.
- Como branches e marcas podem ser movidos para diferentes IDs de confirmação, os downloads futuros de um arquivo podem ter conteúdos diferentes dos arquivos baixados anteriormente do mesmo branch ou marca. Supondo que o branch ou a marca ainda aponte para a mesma ID de confirmação, ele terá o mesmo conteúdo do arquivo.
- As configurações exatas de compactação usadas para gerar um zipball ou tarball podem ser alteradas ao longo do tempo. O conteúdo extraído não será alterado se o branch ou a marca não for alterado, mas o arquivo compactado externo poderá ter um layout de byte diferente. GitHub fornecerá pelo menos seis meses de aviso prévio antes de alterar as configurações de compactação.
- O nome do repositório faz parte da estrutura de diretório dentro do arquivo. Portanto, se o nome do repositório for alterado, o nome do diretório raiz também será alterado.
Se você depender da estabilidade dos arquivos de código-fonte para reprodutibilidade (garantindo que você sempre obtenha arquivos idênticos dentro do arquivo), recomendamos usar a API REST de arquivos com uma ID de confirmação do :ref
. O uso da ID de confirmação garante que você sempre obtenha o mesmo conteúdo de arquivo dentro do arquivo e esteja imune à reescrita de marcas por repositórios ou à movimentação de cabeçalhos de branch.
Se você depender da estabilidade dos arquivos para segurança (por exemplo: para garantir que não tente descompactar um arquivo mal-intencionado), recomendamos usar versões em vez de usar downloads de origem. Para saber mais, confira Sobre as versões.
Você pode usar algo como essa ação de GitHub de terceiros para criar e efetuar push desses arquivos como parte do processo de lançamento. A API REST de Ativos de Liberação pode ser usada posteriormente para recuperá-los.