psproject.schema.json

{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://raw.githubusercontent.com/jdhitsolutions/PSProjectStatus/main/psproject.schema.json",
    "title": "PSProject Status Schema",
    "description": "Schema for the PSProjectStatus configuration file. Version 1.1.0 last updated 27 Dec 2023.",
    "type": "object",
    "properties": {
        "Name": {
            "description": "Specify the project name. In PowerShell, this will typically be the module name.",
            "type": "string"
        },
        "Path": {
            "description": "Specify the full project path. It should be the directory containing this file.",
            "type": "string"
        },
        "LastUpdate": {
            "description": "Specify the last update time of the project. This value will be formatted by ConvertTo-JSON.",
            "type": "string"
        },
        "ProjectVersion": {
            "description": "Specify the project version. You might use the PowerShell module version.",
            "type": "string"
        },
        "Computername": {
            "description": "Specify the computer name where this project was last updated.",
            "type": "string"
        },
        "Author": {
            "description": "Specify the project author. It could be the module author.",
            "type": "string"
        },
        "UpdateUser": {
            "description": "Specify the user who last updated the project.",
            "type": "string"
        },
        "GitBranch": {
            "description": "Specify the current git branch of the project.",
            "type": "string"
        },
        "Comment": {
            "description": "Add additional comments about the project.",
            "type": "string",
            "default": "none"
        },
        "Tasks": {
            "description": "Specify a list of pending tasks for the project.",
            "type": "array",
            "default": "none"
        },
        "Tags" : {
            "description" : "Specify a set of user-defined tags for this project.",
            "type" : "array",
            "default" : "none"
        },
        "Status": {
            "description": "Specify the project status.",
            "type": "string",
            "enum": [
                "Development",
                "Updating",
                "Stable",
                "AlphaTesting",
                "BetaTesting",
                "ReleaseCandidate",
                "Patching",
                "UnitTesting",
                "AcceptanceTesting",
                "Archive",
                "Other"
            ]
        },
        "RemoteRepository": {
            "description": "Enter information about remote git repositories.",
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "Name": {
                        "description": "Specify the name of the remote repository.",
                        "default": "origin",
                        "type": "string"
                    },
                    "Url": {
                        "description": "Specify the url of the remote repository.",
                        "type": "string"
                    },
                    "Mode": {
                        "description": "Specify the git mode for the remote branch.",
                        "type": "integer",
                        "oneOf": [
                            {
                                "const": 0,
                                "description": "fetch"
                            },
                            {
                                "const": 1,
                                "description": "push"
                            }
                        ]
                    },
                    "required": [
                        "Name",
                        "Url",
                        "Mode"
                    ]
                }
            }
        }
    },
    "required": [
        "Name",
        "Path",
        "LastUpdate"
    ]
}