Grant repo access
/api/v1/grant_repo_accessWhether Docsbook can COMMIT to a GitHub repository — and, when it cannot, the one URL that fixes it. It writes nothing and needs no GitHub authorisation of its own. The fix is always the same shape and the owner does it once, on GitHub's own screen: install the Docsbook GitHub App on the repository with "Contents: Read and write". That authorisation belongs to the repository rather than to a session, so it keeps working at 03:00. Nothing this tool or any other can do grants it — hand the URL to the person and stop. repo is optional: omitted, it answers for the repository this project already publishes to.
Price — $0.00003 per call (twice what serving it costs us), charged to the workspace balance, the same as over MCP.
Also reachable by name at POST /api/v1/tools/grant_repo_access.
Authorization: Bearer dbk_YOUR_API_KEY.Sent from your browser straight to the API — never to Docsbook, never stored.200 with ok: false: the call was made and billed, and that refusal is its answer.Show child attributes8
github_app, docsbook_account, your_session or none — which credential answered.your_session is false.- Call this BEFORE
write_docson any project whose site is served from a repository Docsbook does not host, and call it whenever a write comes back NO_GITHUB_ACCESS.
- 🔴
can_write: trueis not the whole answer — readworks_unattended. - A repository reachable only through a signed-in browser session cannot be published to by an agent, a schedule or an MCP client, which is every caller on this side of the wire: that case reports
route: "your_session"and still carries afix.
ok to see whether it succeeded.curl -X POST 'https://docsbook.io/api/v1/grant_repo_access' \
-H 'Authorization: Bearer dbk_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{}'{
"ok": true,
"result": {
"repo": "<repo>",
"can_write": true,
"route": "<route>",
"works_unattended": true,
"detail": "<detail>",
"fix": "<fix>",
"is_this_projects_repo": true,
"hint": "<hint>"
},
"duration_ms": 0
}