Accessing Repository Contents
Access and explore Git repository data.
You are viewing legacy Freestyle documentation. See the new documentation for the latest guides and API reference.
Accessing Repository Contents
Get File or Directory Contents
Retrieve the contents of a file or directory at a specific ref (branch, commit, tag):
const response = await fetch(
`https://api.freestyle.sh/git/v1/repo/${repoId}/contents/${filePath}?ref=${ref}`,
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
}
);
const contents = await response.json();The response includes file content (base64-encoded) or directory listings with recursive entries.
Download Archives
Download repository contents as compressed archives:
# Download as tar
curl -H "Authorization: Bearer ${apiKey}" \
"https://api.freestyle.sh/git/v1/repo/${repoId}/tarball?ref=${ref}" \
-o repo.tar
# Download as zip
curl -H "Authorization: Bearer ${apiKey}" \
"https://api.freestyle.sh/git/v1/repo/${repoId}/zip?ref=${ref}" \
-o repo.zipReferences
Get branch and tag references:
// Get branch reference
const branchRef = await fetch(
`https://api.freestyle.sh/git/v1/repo/${repoId}/git/refs/heads/${branchName}`,
{
headers: { Authorization: `Bearer ${apiKey}` },
}
).then(r => r.json());
// Get tag reference
const tagRef = await fetch(
`https://api.freestyle.sh/git/v1/repo/${repoId}/git/refs/tags/${tagName}`,
{
headers: { Authorization: `Bearer ${apiKey}` },
}
).then(r => r.json());Default Branch
Get or set the repository's default branch:
// Get default branch
const { defaultBranch } = await fetch(
`https://api.freestyle.sh/git/v1/repo/${repoId}/default-branch`,
{
headers: { Authorization: `Bearer ${apiKey}` },
}
).then(r => r.json());
// Set default branch
await fetch(
`https://api.freestyle.sh/git/v1/repo/${repoId}/default-branch`,
{
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ defaultBranch: 'main' }),
}
);Git Database API
For advanced use cases requiring direct access to Git objects (blobs, trees, commits, tags), see the Git Objects API guide.