Skip to content

GitHub: Create a Git Hub Pages site

GitHub repos.reposCreatePagesSite: arguments, response, policy and SDK examples.

← Repos operations · Get started

Operation github.repos_create_pages_site

Provider route: POST /repos/{owner}/{repo}/pages. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/github with npm, or alter-sdk-github with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { GitHubIntegration } from "@alter-ai/github";
async function execute(input: Parameters<GitHubIntegration["repos"]["reposCreatePagesSite"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new GitHubIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.repos.reposCreatePagesSite(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_github import GitHubIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = GitHubIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.repos.repos_create_pages_site(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.ownerstringRequired within parent
path.repostringRequired within parent
bodyJSONRequired within parent
body (anyOf 1)objectAlternativeThe source branch and directory used to publish your Pages site.
body (anyOf 1).build_typestringOptionalThe process in which the Page will be built. Possible values are `“legacy”` and `“workflow”`.
One of: legacy, workflow
body (anyOf 1).sourceobjectOptionalThe source branch and directory used to publish your Pages site.
body (anyOf 1).source.branchstringRequired within parentThe repository branch used to publish your site’s source files.
body (anyOf 1).source.pathstringOptionalThe repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/`
Default: /
One of: /, /docs
body (anyOf 1) (anyOf 1)JSONAlternative
body (anyOf 1) (anyOf 2)JSONAlternative
body (anyOf 2)nullAlternative

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Get a Git Hub Pages site — response body

Referenced models: Get a Git Hub Pages site — response body

Get a Git Hub Pages site — response body
FieldTypePresenceDescription and constraints
$objectRootThe configuration for GitHub Pages for a repository.
build_typeJSONOptional
build_type (anyOf 1)stringAlternativeThe process in which the Page will be built.
Known values: legacy, workflow
build_type (anyOf 2)nullAlternative
cnameJSONRequired within parent
cname (anyOf 1)stringAlternativeThe Pages site's custom domain
cname (anyOf 2)nullAlternative
custom_404booleanRequired within parentWhether the Page has a custom 404 page.
Default: false
html_urlstringOptionalThe web address the Page can be accessed from.
Format: uri
https_certificateModelOptionalExpand Get a Git Hub Pages site — response body — https certificate
https_enforcedbooleanOptionalWhether https is enabled on the domain
pending_domain_unverified_atJSONOptional
pending_domain_unverified_at (anyOf 1)stringAlternativeThe timestamp when a pending domain becomes unverified.
Format: date-time
pending_domain_unverified_at (anyOf 2)nullAlternative
protected_domain_stateJSONOptional
protected_domain_state (anyOf 1)stringAlternativeThe state if the domain is verified
Known values: pending, verified, unverified
protected_domain_state (anyOf 2)nullAlternative
publicbooleanRequired within parentWhether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site.
sourceModelOptionalExpand Get a Git Hub Pages site — response body — source
statusJSONRequired within parent
status (anyOf 1)stringAlternativeThe status of the most recent build of the Page.
Known values: built, building, errored
status (anyOf 2)nullAlternative
urlstringRequired within parentThe API address for accessing this Page resource.
Format: uri

Referenced models: Get a Git Hub Pages site — response body — https certificate, Get a Git Hub Pages site — response body — source

Get a Git Hub Pages site — response body — https certificate
FieldTypePresenceDescription and constraints
$objectRoot
descriptionstringRequired within parent
domainsarrayRequired within parentArray of the domain set and its alternate name (if it is configured)
domains[]stringEach item
expires_atstringOptionalFormat: date
statestringRequired within parentKnown values: new, authorization_created, authorization_pending, authorized, authorization_revoked, issued, uploaded, approved, errored, bad_authz, destroy_pending, dns_changed
Get a Git Hub Pages site — response body — source
FieldTypePresenceDescription and constraints
$objectRoot
branchstringRequired within parent
pathstringRequired within parent

SDK function policy ID: github.repos_create_pages_site. Catalog operation: repos/create-pages-site. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Pinned headers: {"X-GitHub-Api-Version": "2026-03-10", "User-Agent": "Alter", "Accept": "application/vnd.github+json"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.