main
 1{
 2  "extends": "pi-nono-local",
 3  "meta": {
 4    "name": "pi-nono-github-ro",
 5    "description": "Pi with read-only GitHub research through a brokered token"
 6  },
 7  "command_policies": {
 8    "credentials": {
 9      "github-api": {
10        "type": "proxy",
11        "upstream": "https://api.github.com",
12        "credential_key": "env://NONO_GH_TOKEN",
13        "env_var": "GH_TOKEN",
14        "inject_header": "Authorization",
15        "credential_format": "Bearer {}"
16      }
17    },
18    "commands": {
19      "gh": {
20        "from": {
21          "session": {
22            "sandbox": {
23              "fs_read": ["$WORKDIR"],
24              "credentials": [
25                {
26                  "name": "github-api",
27                  "endpoint_policy": {
28                    "default": "deny",
29                    "allow": [
30                      { "method": "GET", "path": "/user" },
31                      { "method": "GET", "path": "/repos/**" },
32                      { "method": "GET", "path": "/user/repos" }
33                    ]
34                  }
35                }
36              ]
37            },
38            "invocation_policy": {
39              "default": "deny",
40              "allow": [
41                { "argv": { "prefix": ["repo", "view"] } },
42                { "argv": { "prefix": ["repo", "list"] } },
43                { "argv": { "prefix": ["issue", "list"] } },
44                { "argv": { "prefix": ["issue", "view"] } },
45                { "argv": { "prefix": ["pr", "list"] } },
46                { "argv": { "prefix": ["pr", "view"] } },
47                { "argv": { "prefix": ["pr", "checks"] } },
48                { "argv": { "prefix": ["run", "list"] } },
49                { "argv": { "prefix": ["run", "view"] } },
50                { "argv": { "prefix": ["api"] } }
51              ]
52            }
53          }
54        }
55      }
56    }
57  }
58}