Repositories/EigenverftModule/GitHubCli_Example.json

{
  "$schema": "./eigenverft-module-package-definition-1.1.schema.json",
  "schemaVersion": "2.0-draft",
  "id": "GitHubCli",
  "display": {
    "default": {
      "name": "GitHub CLI",
      "publisher": "GitHub",
      "corporation": "GitHub, Inc.",
      "summary": "GitHub command-line interface"
    }
  },
 
  "packageTargets": [
    {
      "id": "gh-cli-win-x64",
      "channel": "stable",
      "platformTarget": "windows_amd64",
      "constraints": {
        "os": [
          "windows"
        ],
        "cpu": [
          "x64"
        ]
      },
      "versionSelection": {
        "strategy": "latestBySemver",
        "allowPrerelease": false,
        "pinning": {
          "enabled": true,
          "lockFile": "{applicationRootDirectory}/State/package-version-locks.json",
          "keyTemplate": "{definitionId}:{channel}:{platformTarget}"
        }
      },
      "artifact": {
        "fileNameTemplate": "gh_{version}_windows_amd64.zip"
      },
      "artifactSources": [
        {
          "kind": "packageDepot",
          "searchOrder": 100,
          "verification": {
            "mode": "optional"
          }
        },
        {
          "kind": "download",
          "sourceId": "ghCliGitHub",
          "searchOrder": 900,
          "verification": {
            "mode": "required"
          }
        }
      ],
      "versions": [
        {
          "version": "2.91.0",
          "releaseTag": "v2.91.0",
          "fileName": "gh_2.91.0_windows_amd64.zip",
          "contentHash": {
            "algorithm": "sha256",
            "value": "ced3e6f4bb5a9865056b594b7ad0cf42137dc92c494346f1ca705b5dbf14c88e"
          }
        }
      ]
    },
    {
      "id": "gh-cli-win-arm64",
      "channel": "stable",
      "platformTarget": "windows_arm64",
      "constraints": {
        "os": [
          "windows"
        ],
        "cpu": [
          "arm64"
        ]
      },
      "versionSelection": {
        "strategy": "latestBySemver",
        "allowPrerelease": false,
        "pinning": {
          "enabled": true,
          "lockFile": "{applicationRootDirectory}/State/package-version-locks.json",
          "keyTemplate": "{definitionId}:{channel}:{platformTarget}"
        }
      },
      "artifact": {
        "fileNameTemplate": "gh_{version}_windows_arm64.zip"
      },
      "artifactSources": [
        {
          "kind": "packageDepot",
          "searchOrder": 100,
          "verification": {
            "mode": "optional"
          }
        },
        {
          "kind": "download",
          "sourceId": "ghCliGitHub",
          "searchOrder": 900,
          "verification": {
            "mode": "required"
          }
        }
      ],
      "versions": [
        {
          "version": "2.91.0",
          "releaseTag": "v2.91.0",
          "fileName": "gh_2.91.0_windows_arm64.zip",
          "contentHash": {
            "algorithm": "sha256",
            "value": "ae0333d2f9b13fc28f785ca7379514f9a1cea382cd4726abb6e6f4d2a874dd15"
          }
        }
      ]
    }
  ],
 
  "discovery": {
    "version": {
      "sources": [
        {
          "kind": "commandOutput",
          "command": "gh",
          "arguments": [
            "--version"
          ],
          "outputPattern": "(?im)^gh version\\s+(?<value>\\d+\\.\\d+\\.\\d+)\\b",
          "confidence": "high"
        },
        {
          "kind": "fileVersion",
          "relativePath": "bin/gh.exe",
          "confidence": "medium"
        },
        {
          "kind": "registry",
          "paths": [
            "HKLM:\\SOFTWARE\\GitHub CLI",
            "HKCU:\\SOFTWARE\\GitHub CLI"
          ],
          "valueName": "Version",
          "confidence": "medium"
        }
      ]
    },
    "files": [
      "bin/gh.exe"
    ],
    "directories": [
      "bin"
    ],
    "commands": [
      {
        "name": "gh",
        "relativePath": "bin/gh.exe",
        "required": true
      }
    ],
    "registry": [
      {
        "paths": [
          "HKLM:\\SOFTWARE\\GitHub CLI",
          "HKCU:\\SOFTWARE\\GitHub CLI"
        ],
        "valueName": "Version"
      }
    ]
  },
 
  "upstreamSources": {
    "ghCliGitHub": {
      "kind": "githubRelease",
      "repositoryOwner": "cli",
      "repositoryName": "cli"
    }
  },
 
  "packageOperations": {
    "shared": {
      "ownershipPolicy": {
        "allowAdoptExternal": false,
        "upgradeAdoptedInstall": false,
        "requirePackageOwnership": true
      },
      "compatibility": {
        "checks": [
          {
            "kind": "osVersion",
            "operator": ">=",
            "value": "10.0"
          }
        ]
      }
    },
    "assigned": {
      "kind": "expandArchive",
      "installDirectory": "gh-cli-runtime/{channel}/{version}/{platformTarget}",
      "pathRegistration": {
        "mode": "user",
        "source": {
          "kind": "shim",
          "commands": [
            "gh"
          ]
        }
      },
      "expandedRoot": "auto",
      "createDirectories": [],
      "installedStateCheck": {
        "use": "discovery",
        "expectedVersion": "{version}",
        "require": {
          "files": true,
          "directories": true,
          "commands": true,
          "registry": false
        }
      }
    },
    "removed": {
      "keepInstallDirectory": false,
      "keepInventoryRecord": false,
      "requireProcessExit": [],
      "keepShims": false
    }
  }
}