Skip to content

Install and configure

pip install gitvow-provider-facts
gitvow-provider-facts --store facts.db --service orders ask route_callers /v1/orders

Options

Option Default Meaning
--store PATH required the SQLite fact store
--repo NAME basename of the repository gitvow passes the repo value used in fact rows for this repository
--service NAME same as --repo the dst_service value used in edge rows for calls into this repository
--gate-file GLOB none repeatable; files that answer gate_bearing with yes
--max-age-days N 14 above this, answers add a staleness warning to the evidence

Wire into gitvow

In .gitvow/policy.json of the repository, or ~/.gitvow/policy.json:

{
  "providers": [
    {
      "name": "topology",
      "command": "gitvow-provider-facts --store /var/lib/topology/facts.db --repo amnic-orders --service orders --gate-file auth/AuthorizeWhitelistedPaths.java",
      "questions": ["route_gate", "route_callers", "gate_bearing"],
      "timeout": 10
    }
  ]
}

Then test from the repository:

gitvow ask route_gate /export --path src/api/OrdersResource.java
gitvow ask route_callers /v1/orders/{id}

Running the provider by hand

gitvow-provider-facts ... ask <question> <subject> [--path FILE] prints the JSON answer. Without ask it reads a gitvow request on stdin, which is how gitvow calls it.