All Downloads are FREE. Search and download functionalities are using the official Maven repository.

le.github-repository-tools.0.2.1.source-code.repository-schema.json Maven / Gradle / Ivy

{
    "title": "repository",
    "type": "object",
    "properties": {
        "name": {
            "description": "repository name",
            "type": "string"
        },
        "organization": {
            "description": "github organization or username",
            "type": "string"
        },
        "settings": {
            "type": "object",
            "properties": {
                "initialize": {
                    "description": "initialze the repositry when created",
                    "type": "boolean"
                },
                "hidden": {
                    "description": "make the repository private",
                    "type": "boolean"
                },
                "labels": {
                    "descriptions": "labels (name:color key/value pairs)",
                    "type": "object"
                },
                "teams": {
                    "descriptions": "team (slug:perm key/value pairs) access",
                    "type": "object"
                },
                "collaborators": {
                    "descriptions": "user (username:perm key/value pairs) access",
                    "type": "object"
                },
                "branches": {
                    "description": "branches and associated protections",
                    "type": "object",
                    "properties": {
                        "primary": {
                            "description": "primary branch name (default: master)",
                            "type": "string"
                        },
                        "other": {
                            "description": "other repository branches to protect",
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "uniqueItems": true
                        },
                        "protections": {
                            "description": "branch protections, with branch name as json key",
                            "type": "object",
                            "patternProperties": {
                                ".*": {
                                    "$ref": "#/definitions/protection"
                                }
                            }
                        }
                    },
                    "additionalProperties": false
                }
            },
            "additionalProperties": false
        },
        "plugins": {
            "description": "plugin configuration, with plugin name as json key",
            "type": "object"
        },
        "workflow": {
            "description": "workflow steps, if not specified 'github' is added as first step",
            "type": [
                "array",
                "null"
            ],
            "items": {
                "type": "string"
            },
            "uniqueItems": true
        }
    },
    "additionalProperties": false,
    "definitions": {
        "protection": {
            "type": [
                "object",
                "null"
            ],
            "properties": {
                "requireSignedCommits": {
                    "description": "require gpg signed commits",
                    "type": "boolean"
                },
                "includeAdministrators": {
                    "description": "enforce all restrictions for admins",
                    "type": "boolean"
                },
                "requireReviews": {
                    "type": "object",
                    "properties": {
                        "requiredReviewers": {
                            "description": "number of required reviewers",
                            "type": "integer",
                            "minimum": 1
                        },
                        "dismissStaleApprovals": {
                            "description": "dismiss stale approvals",
                            "type": "boolean"
                        },
                        "requireCodeOwner": {
                            "description": "require review from code owner",
                            "type": "boolean"
                        },
                        "restrictDismissals": {
                            "description": "restrict who can dismiss reviews",
                            "$ref": "#/definitions/access"
                        }
                    },
                    "additionalProperties": false
                },
                "requiredStatusChecks": {
                    "type": "object",
                    "properties": {
                        "requireUpToDate": {
                            "description": "require the branch to be up-to-date before merge",
                            "type": "boolean"
                        },
                        "contexts": {
                            "description": "required status contexts",
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "uniqueItems": true
                        }
                    },
                    "additionalProperties": false
                },
                "pushAccess": {
                    "description": "grant push access to teams/users",
                    "$ref": "#/definitions/access"
                }
            },
            "additionalProperties": false
        },
        "access": {
            "type": "object",
            "properties": {
                "teams": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "uniqueItems": true
                },
                "users": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "uniqueItems": true
                }
            },
            "additionalProperties": false
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy