Skip to content

General Settings

General settings cover the repository’s basic properties, feature toggles, and pull request merge behavior.

spec:
description: "My awesome project"
homepage: "https://example.com"
visibility: public # public | private | internal
archived: false
topics:
- go
- cli
- github
FieldTypeDescription
descriptionstringRepository description
homepagestringURL displayed on the repo page
visibilitystringpublic, private, or internal (GitHub Enterprise)
archivedbooltrue to archive (read-only). Reversible — set to false to unarchive
topicslistGitHub topics for discoverability

Set archived: true to mark a repository as read-only:

spec:
archived: true

This is reversible — set it back to false to unarchive.

Toggle repository features on or off:

spec:
features:
issues: true
projects: false
wiki: false
discussions: false
FieldTypeDefaultDescription
issuesbooltrueEnable Issues tab
projectsbooltrueEnable Projects tab
wikibooltrueEnable Wiki tab
discussionsboolfalseEnable Discussions tab

Control how pull requests can be merged:

spec:
merge_strategy:
allow_merge_commit: false
allow_squash_merge: true
allow_rebase_merge: false
allow_auto_merge: true
auto_delete_head_branches: true
merge_commit_title: MERGE_MESSAGE # MERGE_MESSAGE | PR_TITLE
merge_commit_message: PR_TITLE # PR_TITLE | PR_BODY | BLANK
squash_merge_commit_title: PR_TITLE # PR_TITLE | COMMIT_OR_PR_TITLE
squash_merge_commit_message: COMMIT_MESSAGES # COMMIT_MESSAGES | PR_BODY | BLANK
FieldTypeDescription
allow_merge_commitboolAllow merge commits
allow_squash_mergeboolAllow squash merging
allow_rebase_mergeboolAllow rebase merging
allow_auto_mergeboolAllow auto-merge on pull requests
auto_delete_head_branchesboolAutomatically delete head branches after merge
merge_commit_titlestringTitle format for merge commits
merge_commit_messagestringMessage format for merge commits
squash_merge_commit_titlestringTitle format for squash merges
squash_merge_commit_messagestringMessage format for squash merges

Prevent releases and their assets from being modified or deleted after publishing:

spec:
release_immutability: true
FieldTypeDescription
release_immutabilitybooltrue to lock releases after publishing. Once enabled, release assets and metadata cannot be edited or deleted