apicheats.dev github/llms.txt Raw .md
POST

POST /orgs/{org}/rulesets — GitHub API

GitHub token (required); https://api.github.com

GitHub API

Create an organization repository ruleset

Base URL
https://api.github.com
Auth
Authorization: Bearer <GITHUB_API_KEY>
Last verified
2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 327 tokens · Vary: Accept

Critical gotchas

GitHub recommends an Accept: application/vnd.github+json header and an explicit X-GitHub-Api-Version header.

Fine-grained tokens only authorize repositories and permissions selected when the token is created.

cURL

curl -X POST 'https://api.github.com/orgs/example-org/rulesets' \  -H "Authorization: Bearer $GITHUB_TOKEN" \  -H 'Accept: application/vnd.github+json' \  -H 'X-GitHub-Api-Version: 2026-03-10' \  -H 'Content-Type: application/json' \  -d '{  "name": "example-name",  "enforcement": "disabled"}'

Parameters

Name In Type Required Description
org path string Yes The organization name. The name is not case sensitive.
name body string Yes The name of the ruleset.
target body string No The target of the ruleset
enforcement body string Yes The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).
bypass_actors body object[] No The actors that can bypass the rules in this ruleset
conditions body object No Conditions for an organization ruleset. The branch and tag rulesets conditions object should contain both `repository_name` and `ref_name` properties, or both `repository_id` and `ref_name` properties, or both `repository_property` and `ref_name` properties. The push rulesets conditions object does not require the `ref_name` property. For repository policy rulesets, the conditions object should only contain the `repository_name`, the `repository_id`, or the `repository_property`.
rules body object[] No An array of rules within the ruleset.

Response 200 OK

{
  "id": 0,
  "name": "string",
  "target": "branch",
  "source_type": "Repository",
  "source": "string",
  "enforcement": "disabled",
  "bypass_actors": [
    {
      "actor_id": 0,
      "actor_type": "Integration",
      "bypass_mode": "always"
    }
  ],
  "current_user_can_bypass": "always",
  "node_id": "string",
  "_links": {
    "self": {
      "href": "string"
    },
    "html": {
      "href": "string"
    }
  },
  "conditions": {
    "ref_name": {
      "include": [
        "string"
      ],
      "exclude": [
        "string"
      ]
    }
  },
  "rules": [
    {
      "type": "creation"
    }
  ],
  "created_at": "2026-09-03T00:00:00Z",
  "updated_at": "2026-09-03T00:00:00Z"
}
Get a free GitHub API key → sponsored

Affiliate link - we may earn a commission, at no extra cost to you.