# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 id: github display_name: GitHub description: GitHub API and Git operations category: source_control credentials: - name: api_token description: GitHub token env_vars: [GITHUB_TOKEN, GH_TOKEN] required: true auth_style: bearer header_name: authorization discovery: credentials: [api_token] endpoints: # api.github.com is the REST API surface. Defaults to read-only — # writes require an explicit policy proposal so the agentic loop + # prover can audit each capability change. - host: api.github.com port: 443 protocol: rest access: read-only enforcement: enforce - host: api.github.com port: 443 path: /graphql protocol: graphql access: read-only enforcement: enforce # github.com is the git transport (clone / fetch by default). Git smart # HTTP needs POST to */git-upload-pack for clone/fetch, which the # read-only preset (GET/HEAD/OPTIONS) blocks. Spell the rules out so # clone/fetch works while push (git-receive-pack) stays denied — enabling # push requires an explicit policy proposal. - host: github.com port: 443 protocol: rest enforcement: enforce rules: - allow: { method: GET, path: "**" } - allow: { method: HEAD, path: "**" } - allow: { method: OPTIONS, path: "**" } - allow: { method: POST, path: "/**/git-upload-pack" } binaries: [/usr/bin/gh, /usr/local/bin/gh, /usr/bin/git, /usr/local/bin/git]