Bus-factor signal + capped human contributors for one repo (spec §8).
Return the ownership signal for one repo, scoped to the latest scan of its org.
Contributors are humans only, ordered by commit_count DESC. Returns 200
with zeros / null / empty arrays when no signal exists yet (the feature flag
OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the
endpoint stays callable without agents needing a “flag-off” branch.
Paginated via limit / offset; X-Total-Count carries the full
human contributor count. Raw emails are never returned (PII contract).
GET
/
api
/
v1
/
repositories
/
{repo_id}
/
ownership
Bus-factor signal + capped human contributors for one repo (spec §8).
curl --request GET \ --url https://api.example.com/api/v1/repositories/{repo_id}/ownership \ --header 'X-API-Key: <api-key>'
Per-repo ownership signal + capped human contributors (spec §8).
Returns the signal computed at the latest completed scan of the repo's
connected org. When no signal row exists yet (OWNERSHIP_SIGNAL_ENABLED
is off, or the scan ran before backfill), all numeric fields are 0,
top_author/window/computed_at are null, and contributors
is empty — endpoints stay callable so agents do not need to special-case
"ownership not enabled yet".
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Riftmap","description":"Cross-repository dependency mapper and change impact engine for GitLab/GitHub orgs. The agent-friendly API for 'if I change repo X, what breaks?'","colors":{"primary":"#7B61FF","light":"#9B85FF","dark":"#5E47DB"},"logo":{"light":"https://mintcdn.com/westgaardtechnologies/3NKuoQH-GCYzbIwS/logo.png?fit=max\u0026auto=format\u0026n=3NKuoQH-GCYzbIwS\u0026q=85\u0026s=ca82ef4bbabdfd659799823771bad0ec","dark":"https://mintcdn.com/westgaardtechnologies/3NKuoQH-GCYzbIwS/logo.png?fit=max\u0026auto=format\u0026n=3NKuoQH-GCYzbIwS\u0026q=85\u0026s=ca82ef4bbabdfd659799823771bad0ec"},"favicon":"https://mintcdn.com/westgaardtechnologies/3NKuoQH-GCYzbIwS/favicon.png?fit=max\u0026auto=format\u0026n=3NKuoQH-GCYzbIwS\u0026q=85\u0026s=55d4e687c4535ecb69d903d5e02d0ed9","navbar":{"links":[{"href":"https://app.riftmap.dev","label":"App"}],"primary":{"type":"button","label":"Sign up","href":"https://app.riftmap.dev/register"}},"seo":{"metatags":{"og:site_name":"Riftmap Docs"},"indexing":"navigable"},"fonts":{"heading":{"family":"DM Sans"},"body":{"family":"DM Sans"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"westgaardtechnologies","hasAudioNarration":false,"actualSubdomain":"westgaardtechnologies","customDomains":["docs.riftmap.dev"],"gitSource":{"type":"github","owner":"danielwestgaard","repo":"riftmap","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aa9521202ae04dd3ca6ab39","collectionId":"6f981270-5d60-46f9-9d4d-c0eb0b80ef8c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aa9521202ae04dd3ca6ab39"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ab910403102d6a97e68e101","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"API Reference","count":88},{"language":"default","tag":"Endpoints","count":87},{"language":"default","tag":"auth","count":18},{"language":"default","tag":"billing","count":18},{"language":"default","tag":"Documentation","count":14},{"language":"default","tag":"workspaces","count":12},{"language":"default","tag":"connected-orgs","count":7},{"language":"default","tag":"repositories","count":7},{"language":"default","tag":"Changelog","count":6},{"language":"default","tag":"invitations","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8","slug":"/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8","pageMetadata":{"title":"Bus-factor signal + capped human contributors for one repo (spec §8).","description":"Return the ownership signal for one repo, scoped to the latest scan of its org.\n\nContributors are humans only, ordered by ``commit_count DESC``. Returns 200\nwith zeros / null / empty arrays when no signal exists yet (the feature flag\n``OWNERSHIP_SIGNAL_ENABLED`` is off, or the scan ran before backfill) — the\nendpoint stays callable without agents needing a \"flag-off\" branch.\n\nPaginated via ``limit`` / ``offset``; ``X-Total-Count`` carries the full\nhuman contributor count. Raw emails are never returned (PII contract).","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/ownership","href":"/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Return the ownership signal for one repo, scoped to the latest scan of its org.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Contributors are humans only, ordered by \", _jsx(_components.code, {\n children: \"commit_count DESC\"\n }), \". Returns 200\\nwith zeros / null / empty arrays when no signal exists yet (the feature flag\\n\", _jsx(_components.code, {\n children: \"OWNERSHIP_SIGNAL_ENABLED\"\n }), \" is off, or the scan ran before backfill) — the\\nendpoint stays callable without agents needing a “flag-off” branch.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Paginated via \", _jsx(_components.code, {\n children: \"limit\"\n }), \" / \", _jsx(_components.code, {\n children: \"offset\"\n }), \"; \", _jsx(_components.code, {\n children: \"X-Total-Count\"\n }), \" carries the full\\nhuman contributor count. Raw emails are never returned (PII contract).\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Bus-factor signal + capped human contributors for one repo (spec §8).","description":"Return the ownership signal for one repo, scoped to the latest scan of its org.\n\nContributors are humans only, ordered by ``commit_count DESC``. Returns 200\nwith zeros / null / empty arrays when no signal exists yet (the feature flag\n``OWNERSHIP_SIGNAL_ENABLED`` is off, or the scan ran before backfill) — the\nendpoint stays callable without agents needing a \"flag-off\" branch.\n\nPaginated via ``limit`` / ``offset``; ``X-Total-Count`` carries the full\nhuman contributor count. Raw emails are never returned (PII contract).","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/ownership","href":"/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Return the ownership signal for one repo, scoped to the latest scan of its org.\n\nContributors are humans only, ordered by ``commit_count DESC``. Returns 200\nwith zeros / null / empty arrays when no signal exists yet (the feature flag\n``OWNERSHIP_SIGNAL_ENABLED`` is off, or the scan ran before backfill) — the\nendpoint stays callable without agents needing a \"flag-off\" branch.\n\nPaginated via ``limit`` / ``offset``; ``X-Total-Count`` carries the full\nhuman contributor count. Raw emails are never returned (PII contract).","operationId":"get_repository_ownership_api_v1_repositories__repo_id__ownership_get","parameters":["319ba467-6dfc-45a1-a1a6-dd3c2173e452","30b4e0b7-60f2-4e26-aa4a-8293fd3ce140","391ddd7c-37e1-4d46-b6b4-9dff50e52f8b","dd634c7b-96ff-48ec-8bf8-1848999ea7d7","fa0f5a69-7cfc-4877-b42d-b54e6704dbcf"],"responses":{"200":"1e2a744b-9945-4d76-8034-30f966d4133d","422":"0efab143-e101-48b2-97c1-dfa1f73c9048"},"security":["266f5fa7-c0f4-4cde-b76c-8b12d574f32c","a2c40c4d-7fe4-4fae-8fd2-7ad53deee0f6"],"summary":"Bus-factor signal + capped human contributors for one repo (spec §8).","tags":["repositories"],"method":"get","type":"path","servers":[],"path":"/api/v1/repositories/{repo_id}/ownership","baseUrlOptions":[],"title":"Bus-factor signal + capped human contributors for one repo (spec §8).","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"319ba467-6dfc-45a1-a1a6-dd3c2173e452":{"in":"path","name":"repo_id","required":true,"schema":{"format":"uuid","title":"Repo Id","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"30b4e0b7-60f2-4e26-aa4a-8293fd3ce140":{"description":"Maximum items to return.","in":"query","name":"limit","required":false,"schema":{"default":100,"description":"Maximum items to return.","maximum":500,"minimum":1,"title":"Limit","type":"integer","isRequired":false,"uniqueKey":"","typeLabel":"integer"}},"391ddd7c-37e1-4d46-b6b4-9dff50e52f8b":{"description":"Items to skip.","in":"query","name":"offset","required":false,"schema":{"default":0,"description":"Items to skip.","minimum":0,"title":"Offset","type":"integer","isRequired":false,"uniqueKey":"","typeLabel":"integer"}},"dd634c7b-96ff-48ec-8bf8-1848999ea7d7":{"in":"header","name":"X-Workspace-Id","required":false,"schema":{"oneOf":[{"type":"string","title":"X-Workspace-Id","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"X-Workspace-Id","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}},"fa0f5a69-7cfc-4877-b42d-b54e6704dbcf":{"in":"cookie","name":"riftmap_access","required":false,"schema":{"oneOf":[{"type":"string","title":"Riftmap Access","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Riftmap Access","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}}},"responses":{"1e2a744b-9945-4d76-8034-30f966d4133d":{"content":{"application/json":{"schema":{"description":"Per-repo ownership signal + capped human contributors (spec §8).\n\nReturns the signal computed at the latest completed scan of the repo's\nconnected org. When no signal row exists yet (``OWNERSHIP_SIGNAL_ENABLED``\nis off, or the scan ran before backfill), all numeric fields are 0,\n``top_author``/``window``/``computed_at`` are null, and ``contributors``\nis empty — endpoints stay callable so agents do not need to special-case\n\"ownership not enabled yet\".","properties":{"bus_factor":{"title":"Bus Factor","type":"integer","isRequired":true,"uniqueKey":"bus_factor","typeLabel":"integer"},"contributors":{"items":{"description":"One human contributor's commit rollup for a repo+scan.\n\nBots are filtered out upstream; ``is_bot`` is always ``False`` here and\nis retained for shape stability so a future iteration can expose bot\ncontributors without a breaking response shape.","properties":{"commit_count":{"title":"Commit Count","type":"integer","isRequired":true,"uniqueKey":"contributors.items.[INDEX].commit_count","typeLabel":"integer"},"name":{"title":"Name","type":"string","isRequired":true,"uniqueKey":"contributors.items.[INDEX].name","typeLabel":"string"},"share":{"title":"Share","type":"number","isRequired":true,"uniqueKey":"contributors.items.[INDEX].share","typeLabel":"number"},"is_bot":{"default":false,"title":"Is Bot","type":"boolean","uniqueKey":"contributors.items.[INDEX].is_bot","typeLabel":"boolean"}},"required":["name","commit_count","share"],"title":"ContributorEntry","type":"object","uniqueKey":"contributors.items.[INDEX]","typeLabel":"ContributorEntry · object"},"title":"Contributors","type":"array","isRequired":true,"uniqueKey":"contributors","typeLabel":"ContributorEntry · object[]"},"contributors_total":{"title":"Contributors Total","type":"integer","isRequired":true,"uniqueKey":"contributors_total","typeLabel":"integer"},"human_author_count":{"title":"Human Author Count","type":"integer","isRequired":true,"uniqueKey":"human_author_count","typeLabel":"integer"},"top_author_share":{"title":"Top Author Share","type":"number","isRequired":true,"uniqueKey":"top_author_share","typeLabel":"number"},"computed_at":{"oneOf":[{"type":"string","title":"Computed At","format":"date-time","uniqueKey":"computed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Computed At","uniqueKey":"computed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"computed_at","typeLabel":"string\u003cdate-time> | null"},"top_author":{"oneOf":[{"type":"object","title":"TopAuthor","description":"Name + share of the single top contributor (humans only).","required":["name","share"],"properties":{"name":{"title":"Name","type":"string","isRequired":true,"uniqueKey":"top_author.oneOf.0.name","typeLabel":"string"},"share":{"title":"Share","type":"number","isRequired":true,"uniqueKey":"top_author.oneOf.0.share","typeLabel":"number"}},"uniqueKey":"top_author.oneOf.0","typeLabel":"TopAuthor · object"},{"type":"null","uniqueKey":"top_author.oneOf.1","typeLabel":"null"}],"uniqueKey":"top_author","typeLabel":"TopAuthor · object | null"},"window":{"oneOf":[{"type":"object","title":"OwnershipWindow","description":"The trailing window the signal was computed over.","required":["start","end"],"properties":{"end":{"format":"date-time","title":"End","type":"string","isRequired":true,"uniqueKey":"window.oneOf.0.end","typeLabel":"string\u003cdate-time>"},"start":{"format":"date-time","title":"Start","type":"string","isRequired":true,"uniqueKey":"window.oneOf.0.start","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"window.oneOf.0","typeLabel":"OwnershipWindow · object"},{"type":"null","uniqueKey":"window.oneOf.1","typeLabel":"null"}],"uniqueKey":"window","typeLabel":"OwnershipWindow · object | null"}},"required":["bus_factor","top_author_share","human_author_count","contributors","contributors_total"],"title":"RepositoryOwnershipResponse","type":"object","uniqueKey":"","typeLabel":"RepositoryOwnershipResponse · object"},"examples":{"Example":{"title":"Example","value":{"bus_factor":123,"contributors":[{"commit_count":123,"name":"\u003cstring>","share":123,"is_bot":false}],"contributors_total":123,"human_author_count":123,"top_author_share":123,"computed_at":"2023-11-07T05:31:56Z","top_author":{"name":"\u003cstring>","share":123},"window":{"end":"2023-11-07T05:31:56Z","start":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"description":"Successful Response","exampleType":"generated"},"0efab143-e101-48b2-97c1-dfa1f73c9048":{"content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"title":"Location","type":"array","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"title":"Error Type","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"ctx":{"title":"Context","type":"object","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"title":"Detail","type":"array","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"title":"HTTPValidationError","type":"object","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","ctx":{},"input":"\u003cunknown>"}]}}},"exampleType":"generated"}},"description":"Validation Error","exampleType":"generated"}},"security":{"266f5fa7-c0f4-4cde-b76c-8b12d574f32c":{"APIKeyHeader":{"in":"header","name":"X-API-Key","type":"apiKey","scopes":[]}},"a2c40c4d-7fe4-4fae-8fd2-7ad53deee0f6":{"HTTPBearer":{"description":"API key as Bearer token (rfm_live_... prefix)","scheme":"bearer","type":"http","scopes":[]}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"in":"header","name":"X-API-Key","type":"apiKey","scopes":[]},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"X-API-Key"}],"title":"APIKeyHeader"},{"schemes":[{"scheme":{"description":"API key as Bearer token (rfm_live_... prefix)","scheme":"bearer","type":"http","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key as Bearer token (rfm_live_... prefix)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"HTTPBearer","name":"Authorization"}],"title":"HTTPBearer"}]},"originalFileLocation":"openapi.json"},"subdomain":"westgaardtechnologies","siteName":"Riftmap","title":"Bus-factor signal + capped human contributors for one repo (spec §8). - Riftmap","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-27T12:47:01.663Z","originalFileLocation":"api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Return the ownership signal for one repo, scoped to the latest scan of its org. Contributors are humans only, ordered by commit_count DESC. Returns 200 with zeros / null / empty arrays when no signal exists yet (the feature flag OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the endpoint stays callable without agents needing a \u0026quot;flag-off\u0026quot; branch. Paginated via limit / offset; X-Total-Count carries the full human contributor count. Raw emails are never returned (PII contract).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Riftmap\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bus-factor signal + capped human contributors for one repo (spec §8). - Riftmap\">\u003cmeta data-mint-head property=\"og:description\" content=\"Return the ownership signal for one repo, scoped to the latest scan of its org. Contributors are humans only, ordered by commit_count DESC. Returns 200 with zeros / null / empty arrays when no signal exists yet (the feature flag OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the endpoint stays callable without agents needing a \u0026quot;flag-off\u0026quot; branch. Paginated via limit / offset; X-Total-Count carries the full human contributor count. Raw emails are never returned (PII contract).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Riftmap Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://westgaardtechnologies.mintlify.site/_mintlify/api/og/v2?division=repositories\u0026amp;title=Bus-factor+signal+%2B+capped+human+contributors+for+one+repo+%28spec+%C2%A78%29.\u0026amp;description=Return+the+ownership+signal+for+one+repo%2C+scoped+to+the+latest+scan+of+its+org.%0A%0AContributors+are+humans+only%2C+ordered+by+%60%60commit_count+DESC%60%60.+Returns+200%0Awit\u0026amp;theme=868fc54aab183060d84a05a1\u0026amp;signature=e007c9a839f68563ea5807c13fa06ee0835546e3ed609cb277cd87d72b8a18d2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Bus-factor signal + capped human contributors for one repo (spec §8). - Riftmap\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Return the ownership signal for one repo, scoped to the latest scan of its org. Contributors are humans only, ordered by commit_count DESC. Returns 200 with zeros / null / empty arrays when no signal exists yet (the feature flag OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the endpoint stays callable without agents needing a \u0026quot;flag-off\u0026quot; branch. Paginated via limit / offset; X-Total-Count carries the full human contributor count. Raw emails are never returned (PII contract).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://westgaardtechnologies.mintlify.site/_mintlify/api/og/v2?division=repositories\u0026amp;title=Bus-factor+signal+%2B+capped+human+contributors+for+one+repo+%28spec+%C2%A78%29.\u0026amp;description=Return+the+ownership+signal+for+one+repo%2C+scoped+to+the+latest+scan+of+its+org.%0A%0AContributors+are+humans+only%2C+ordered+by+%60%60commit_count+DESC%60%60.+Returns+200%0Awit\u0026amp;theme=868fc54aab183060d84a05a1\u0026amp;signature=e007c9a839f68563ea5807c13fa06ee0835546e3ed609cb277cd87d72b8a18d2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/westgaardtechnologies/R6ltIliKa1Ys7Brf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Riftmap\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7B61FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/repositories/bus-factor-signal-%2B-capped-human-contributors-for-one-repo-spec-%C2%A78.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.riftmap.dev/#organization\",\"name\":\"Riftmap\",\"url\":\"https://docs.riftmap.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/westgaardtechnologies/3NKuoQH-GCYzbIwS/logo.png?fit=max\u0026auto=format\u0026n=3NKuoQH-GCYzbIwS\u0026q=85\u0026s=ca82ef4bbabdfd659799823771bad0ec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.riftmap.dev#website\",\"name\":\"Riftmap\",\"url\":\"https://docs.riftmap.dev\",\"publisher\":{\"@id\":\"https://docs.riftmap.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78#webpage\",\"url\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78\",\"name\":\"Bus-factor signal + capped human contributors for one repo (spec §8).\",\"description\":\"Return the ownership signal for one repo, scoped to the latest scan of its org. Contributors are humans only, ordered by commit_count DESC. Returns 200 with zeros / null / empty arrays when no signal exists yet (the feature flag OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the endpoint stays callable without agents needing a \\\"flag-off\\\" branch. Paginated via limit / offset; X-Total-Count carries the full human contributor count. Raw emails are never returned (PII contract).\",\"dateModified\":\"2026-09-27T12:47:01.663Z\",\"isPartOf\":{\"@id\":\"https://docs.riftmap.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.riftmap.dev/api-reference/artifacts/get-a-single-artifact-by-id-with-consumer-count-and-orphan-flag\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"repositories\",\"item\":\"https://docs.riftmap.dev/api-reference/repositories/list-repositories-discovered-in-a-connected-org\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bus-factor signal + capped human contributors for one repo (spec §8).\",\"item\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78#apireference\",\"headline\":\"Bus-factor signal + capped human contributors for one repo (spec §8).\",\"name\":\"Bus-factor signal + capped human contributors for one repo (spec §8).\",\"description\":\"Return the ownership signal for one repo, scoped to the latest scan of its org. Contributors are humans only, ordered by commit_count DESC. Returns 200 with zeros / null / empty arrays when no signal exists yet (the feature flag OWNERSHIP_SIGNAL_ENABLED is off, or the scan ran before backfill) — the endpoint stays callable without agents needing a \\\"flag-off\\\" branch. Paginated via limit / offset; X-Total-Count carries the full human contributor count. Raw emails are never returned (PII contract).\",\"url\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78\",\"mainEntityOfPage\":{\"@id\":\"https://docs.riftmap.dev/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-%C2%A78#webpage\"},\"dateModified\":\"2026-09-27T12:47:01.663Z\",\"publisher\":{\"@id\":\"https://docs.riftmap.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.riftmap.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Riftmap\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Riftmap","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"artifacts","pages":[{"title":"Get a single artifact by ID, with consumer count and orphan flag.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/artifacts/{artifact_id}","href":"/api-reference/artifacts/get-a-single-artifact-by-id-with-consumer-count-and-orphan-flag"},{"title":"List repositories consuming this artifact, with pinned versions.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/artifacts/{artifact_id}/consumers","href":"/api-reference/artifacts/list-repositories-consuming-this-artifact-with-pinned-versions"},{"title":"List all versions of this artifact seen across the org, with consumer counts.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/artifacts/{artifact_id}/versions","href":"/api-reference/artifacts/list-all-versions-of-this-artifact-seen-across-the-org-with-consumer-counts"},{"title":"List artifacts (Docker images, packages, modules) produced in a connected org.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/artifacts","href":"/api-reference/artifacts/list-artifacts-docker-images-packages-modules-produced-in-a-connected-org"}]},{"group":"auth","pages":[{"title":"Accept Tos","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/accept-tos","href":"/api-reference/auth/accept-tos"},{"title":"Cancel Account Deletion","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/account/cancel-deletion","href":"/api-reference/auth/cancel-account-deletion"},{"title":"Delete Account","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/account/delete","href":"/api-reference/auth/delete-account"},{"title":"Verify Email","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/email/verify","href":"/api-reference/auth/verify-email"},{"title":"Resend Verification Email","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/email/verify/resend","href":"/api-reference/auth/resend-verification-email"},{"title":"Login","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/login","href":"/api-reference/auth/login"},{"title":"Logout","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/logout","href":"/api-reference/auth/logout"},{"title":"Get Me","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/auth/me","href":"/api-reference/auth/get-me"},{"title":"Update Me","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/auth/me","href":"/api-reference/auth/update-me"},{"title":"Oauth Callback","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/auth/oauth/{provider}/callback","href":"/api-reference/auth/oauth-callback"},{"title":"Oauth Start","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/auth/oauth/{provider}/start","href":"/api-reference/auth/oauth-start"},{"title":"Change Password","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/password/change","href":"/api-reference/auth/change-password"},{"title":"Confirm Password Reset","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/password/reset/confirm","href":"/api-reference/auth/confirm-password-reset"},{"title":"Request Password Reset","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/password/reset/request","href":"/api-reference/auth/request-password-reset"},{"title":"Set Password","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/password/set","href":"/api-reference/auth/set-password"},{"title":"List Providers","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/auth/providers","href":"/api-reference/auth/list-providers"},{"title":"Refresh Token","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/refresh","href":"/api-reference/auth/refresh-token"},{"title":"Register","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/register","href":"/api-reference/auth/register"}]},{"group":"billing","pages":[{"title":"Get Plan Catalog","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/billing/plans","href":"/api-reference/billing/get-plan-catalog"},{"title":"Stripe Webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks/stripe","href":"/api-reference/billing/stripe-webhook"},{"title":"Get Billing Status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing","href":"/api-reference/billing/get-billing-status"},{"title":"Cancel Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/cancel","href":"/api-reference/billing/cancel-subscription"},{"title":"Preview pending charges that will bill on the final invoice if not waived","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/cancel/preview","href":"/api-reference/billing/preview-pending-charges-that-will-bill-on-the-final-invoice-if-not-waived"},{"title":"Change Plan","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/change-plan","href":"/api-reference/billing/change-plan"},{"title":"Preview Change Plan","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/change-plan/preview","href":"/api-reference/billing/preview-change-plan"},{"title":"Create Checkout Session","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/checkout","href":"/api-reference/billing/create-checkout-session"},{"title":"Get Billing History","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/history","href":"/api-reference/billing/get-billing-history"},{"title":"Get Payment Info","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/payment-info","href":"/api-reference/billing/get-payment-info"},{"title":"Attach Payment Method","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/payment-methods","href":"/api-reference/billing/attach-payment-method"},{"title":"Create Setup Intent","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/payment-methods/setup-intent","href":"/api-reference/billing/create-setup-intent"},{"title":"Create Portal Session","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/portal","href":"/api-reference/billing/create-portal-session"},{"title":"Resume Subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/resume","href":"/api-reference/billing/resume-subscription"},{"title":"Add Seats","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/billing/seats","href":"/api-reference/billing/add-seats"},{"title":"Remove Seats","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workspaces/{workspace_id}/billing/seats","href":"/api-reference/billing/remove-seats"},{"title":"Preview Seat Change","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/seats/preview","href":"/api-reference/billing/preview-seat-change"},{"title":"Get Billing Usage","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/billing/usage","href":"/api-reference/billing/get-billing-usage"}]},{"group":"connected-orgs","pages":[{"title":"List Connected Orgs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs","href":"/api-reference/connected-orgs/list-connected-orgs"},{"title":"Create Connected Org","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connected-orgs","href":"/api-reference/connected-orgs/create-connected-org"},{"title":"Get Connected Org","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}","href":"/api-reference/connected-orgs/get-connected-org"},{"title":"Update Connected Org","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/connected-orgs/{connected_org_id}","href":"/api-reference/connected-orgs/update-connected-org"},{"title":"Delete Connected Org","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connected-orgs/{connected_org_id}","href":"/api-reference/connected-orgs/delete-connected-org"},{"title":"Ranked findings feed: high-fan-in repos with low bus factor (spec §8). Shares and counts are computed over a trailing window (default 365 days), excluding merge commits, with bot identities stripped; each item carries the `window` (start/end) and `computed_at` it was computed for.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/ownership-risk","href":"/api-reference/connected-orgs/ranked-findings-feed:-high-fan-in-repos-with-low-bus-factor-spec-§8-shares-and-counts-are-computed-over-a-trailing-window-default-365-days-excluding-merge-commits-with-bot-identities-stripped;-each-item-carries-the-`window`-startend-and-`computed_at`-it-was-computed-for"},{"title":"Get Connected Org Stats","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/stats","href":"/api-reference/connected-orgs/get-connected-org-stats"}]},{"group":"graph","pages":[{"title":"Get the dependency graph (full org or subgraph anchored at a repo).","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/graph","href":"/api-reference/graph/get-the-dependency-graph-full-org-or-subgraph-anchored-at-a-repo"}]},{"group":"repositories","pages":[{"title":"List repositories discovered in a connected org.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/repositories","href":"/api-reference/repositories/list-repositories-discovered-in-a-connected-org"},{"title":"Resolve a clone URL or org/repo slug to a repository (pass exactly one of `url` or `full_path`).","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/lookup","href":"/api-reference/repositories/resolve-a-clone-url-or-orgrepo-slug-to-a-repository-pass-exactly-one-of-`url`-or-`full_path`"},{"title":"Get a single repository by ID, including freshness fields.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}","href":"/api-reference/repositories/get-a-single-repository-by-id-including-freshness-fields"},{"title":"Recommended first hydration call after `/lookup`: repo + capped deps + capped dependents + artifacts in one round-trip.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/context","href":"/api-reference/repositories/recommended-first-hydration-call-after-`lookup`:-repo-+-capped-deps-+-capped-dependents-+-artifacts-in-one-round-trip"},{"title":"List the dependency declarations this repository makes.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/dependencies","href":"/api-reference/repositories/list-the-dependency-declarations-this-repository-makes"},{"title":"List the repositories that directly depend on this repository.","description":"Get the declarations in other repositories that resolve to this repository, one row per declaration.\n\nEach row is one use: the consuming repository is ``target_repository_id`` /\n``target_repository_name`` (count distinct values of it for the number of\ndependent repositories), and ``source_file`` / ``source_line`` locate the use in\nit. Rows are deduplicated at read time on declaration identity — consumer\nrepository, dependency type, version constraint, source file, raw reference and\nsource line — so a consumer that calls several GitHub Actions or reusable\nworkflows of this repository, or the same one on several lines, appears once per\nuse. Group by ``lower(raw_reference)`` to list consumers per action, workflow or\npackage: for GitHub Actions it is the full ``uses:`` path, such as\n``grafana/shared-workflows/actions/send-slack-message``. A row whose consumer was\nlast scanned before v1.25.0 carries only the bare ``owner/repo`` there.\n\nPaginated via ``limit`` / ``offset`` (default 100, max 500). ``X-Total-Count``\ncarries the post-dedup total of these declarations, not of repositories.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/dependents","href":"/api-reference/repositories/list-the-repositories-that-directly-depend-on-this-repository"},{"title":"Bus-factor signal + capped human contributors for one repo (spec §8).","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/ownership","href":"/api-reference/repositories/bus-factor-signal-+-capped-human-contributors-for-one-repo-spec-§8"}]},{"group":"scans","pages":[{"title":"List Scans","description":"List all scans for a connected org, newest first.\n\nPaginated via ``limit`` / ``offset`` query params (default 100, max 500).\n``X-Total-Count`` response header carries the unfiltered row count.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connected-orgs/{connected_org_id}/scans","href":"/api-reference/scans/list-scans"},{"title":"Trigger Scan","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connected-orgs/{connected_org_id}/scans","href":"/api-reference/scans/trigger-scan"},{"title":"Get Scan","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scans/{scan_id}","href":"/api-reference/scans/get-scan"},{"title":"Cancel Scan","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scans/{scan_id}/cancel","href":"/api-reference/scans/cancel-scan"}]},{"group":"invitations","pages":[{"title":"Preview Invitation","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/invitations/{token}","href":"/api-reference/invitations/preview-invitation"},{"title":"Accept Invitation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/invitations/{token}/accept","href":"/api-reference/invitations/accept-invitation"},{"title":"List Invitations","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/invitations","href":"/api-reference/invitations/list-invitations"},{"title":"Create Invitation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/invitations","href":"/api-reference/invitations/create-invitation"},{"title":"Revoke Invitation","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workspaces/{workspace_id}/invitations/{invitation_id}","href":"/api-reference/invitations/revoke-invitation"}]},{"group":"impact","pages":[{"title":"Transitive downstream blast radius (repo-level BFS). NOT file-path scoped — accepts only `max_depth` + `min_confidence`.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/repositories/{repo_id}/impact","href":"/api-reference/impact/transitive-downstream-blast-radius-repo-level-bfs-not-file-path-scoped-—-accepts-only-`max_depth`-+-`min_confidence`"}]},{"group":"workspaces","pages":[{"title":"List Workspaces","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces","href":"/api-reference/workspaces/list-workspaces"},{"title":"Create Workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces","href":"/api-reference/workspaces/create-workspace"},{"title":"Create Workspace With Checkout","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/create-with-checkout","href":"/api-reference/workspaces/create-workspace-with-checkout"},{"title":"Get Workspace","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}","href":"/api-reference/workspaces/get-workspace"},{"title":"Update Workspace","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/workspaces/{workspace_id}","href":"/api-reference/workspaces/update-workspace"},{"title":"Delete Workspace","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workspaces/{workspace_id}","href":"/api-reference/workspaces/delete-workspace"},{"title":"Regenerate Api Key","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/api-key/regenerate","href":"/api-reference/workspaces/regenerate-api-key"},{"title":"Read the workspace's plan entitlements (any member)","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/entitlements","href":"/api-reference/workspaces/read-the-workspaces-plan-entitlements-any-member"},{"title":"Export Workspace","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/export","href":"/api-reference/workspaces/export-workspace"},{"title":"List Oauth Orgs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/oauth-orgs/{provider}","href":"/api-reference/workspaces/list-oauth-orgs"},{"title":"Get Workspace Stats","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/stats","href":"/api-reference/workspaces/get-workspace-stats"},{"title":"Transfer Ownership","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/transfer","href":"/api-reference/workspaces/transfer-ownership"}]},{"group":"api-keys","pages":[{"title":"List Api Keys","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create Api Key","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Revoke Api Key","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workspaces/{workspace_id}/api-keys/{key_id}","href":"/api-reference/api-keys/revoke-api-key"}]},{"group":"memberships","pages":[{"title":"Leave Workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workspaces/{workspace_id}/leave","href":"/api-reference/memberships/leave-workspace"},{"title":"List Members","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workspaces/{workspace_id}/members","href":"/api-reference/memberships/list-members"},{"title":"Remove Member","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workspaces/{workspace_id}/members/{user_id}","href":"/api-reference/memberships/remove-member"},{"title":"Update Member Role","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/workspaces/{workspace_id}/members/{user_id}","href":"/api-reference/memberships/update-member-role"}]},{"group":"meta","pages":[{"title":"Health","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/meta/health"},{"title":"Health Detailed","deprecated":null,"version":null,"openapi":"/openapi.json get /health/detailed","href":"/api-reference/meta/health-detailed"},{"title":"Ready","deprecated":null,"version":null,"openapi":"/openapi.json get /ready","href":"/api-reference/meta/ready"}]}]}]}]},"basePath":"","title":"Bus-factor signal + capped human contributors for one repo (spec §8). - Riftmap","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}