Skip to content
GitmoapAPIBeta
Schema

AccessExplanation

Why a principal has the access they have on a group or repository.

Shape

  • effectiveEffectiveAccess
    • The EffectiveAccess schema
    • basisAccessBasisViewgrantsorganization_ownernoneWhere an explained principal's access comes from.
    • permissionsarray of stringEvery permission they hold here, by key.
    • rankAccessLevelguestreporterdevelopermaintainerowneror nulloptional
  • grantsarray of ExplainedGrantEvery grant that bears on them here, and what became of it.
    • The ExplainedGrant schema
    • atAccessScope
    • outcomeGrantOutcomeViewreachesstopped_by_boundaryexpiredWhat became of one grant in an explanation.
    • roleRoleView
      • The RoleView schema
      • namestringThe role's display name: a built-in name such as Developer, or the custom role's name.
      • rankAccessLevelguestreporterdevelopermaintainerownerThe built-in rank the role counts as wherever a rank is compared, such as a protected branch's minimum.
      • builtinAccessLevelguestreporterdevelopermaintainerowneror nulloptionalSet when the role is built in.
      • customRoleId (string · uuid) or nulloptionalSet when the role is one the organization defined.
    • expires_atstring · date-time or nulloptional
  • limitsarray of ExplainedLimitEvery limit that capped them here.
    • The ExplainedLimit schema
    • atAccessScope
    • removedarray of stringPermissions the grants gave that this limit took away, by key.
    • ceilingRoleView or nulloptionalThe most the limit lets its subject hold. Absent when it allows nothing at all.
      • The RoleView schema
      • namestringThe role's display name: a built-in name such as Developer, or the custom role's name.
      • rankAccessLevelguestreporterdevelopermaintainerownerThe built-in rank the role counts as wherever a rank is compared, such as a protected branch's minimum.
      • builtinAccessLevelguestreporterdevelopermaintainerowneror nulloptionalSet when the role is built in.
      • customRoleId (string · uuid) or nulloptionalSet when the role is one the organization defined.
  • organization_ownerboolean
  • principalPrincipalSummary
    • The PrincipalSummary schema
    • idPrincipalId (string · uuid)
    • kindPrincipalKinduserservice_accountagentA person, a service account or an AI organization's agent.
    • usernamestring
    • avatar_urlstring or nulloptional
  • scopeAccessPageScope
    • The AccessPageScope schema
    • full_pathstring
    • idstring
    • inherits_accessbooleanWhether access granted on the groups above reaches it. When it is false, only access granted here — and the organization's owners — reach it.
    • typeScopeTypegrouprepository
  • boundaryAccessScope or nulloptionalThe nearest group or repository that stops access granted above it, if one does.
  • verdictPermissionVerdict or nulloptionalPresent when the request named one permission.
    • The PermissionVerdict schema
    • by_visibilitybooleanWhether the group's or repository's visibility alone lets them do it, without any grant.
    • grantedboolean
    • permissionstring

Example

Synthesized example
{
"effective": {
"basis": "grants",
"permissions": [
"permissions-a135"
],
"rank": "guest"
},
"grants": [
{
"at": {
"full_path": "acme/payments-api",
"id": "id-f410",
"type": "group"
},
"outcome": "reaches",
"role": {
"name": "payments-api",
"rank": "guest"
},
"via": "direct"
},
{
"at": {
"full_path": "acme/payments-api",
"id": "id-0fbb",
"type": "group"
},
"outcome": "reaches",
"role": {
"name": "payments-api",
"rank": "guest"
},
"via": "direct"
}
],
"limits": [
{
"at": {
"full_path": "acme/payments-api",
"id": "id-df46",
"type": "group"
},
"removed": [],
"subject": "principal"
},
{
"at": {
"full_path": "acme/payments-api",
"id": "id-a775",
"type": "group"
},
"removed": [],
"subject": "principal"
}
],
"organization_owner": false,
"principal": {
"id": "58d293b9-3d77-4fa5-bd51-64ccf6730060",
"kind": "user",
"username": "mara",
"avatar_url": "https://gitmoap.example/acme/718d4788"
},
"scope": {
"full_path": "acme/payments-api",
"id": "id-7ba9",
"inherits_access": false,
"type": "group"
},
"boundary": {
"full_path": "acme/payments-api",
"id": "id-4b2b",
"type": "group"
},
"verdict": {
"by_visibility": false,
"granted": false,
"permission": "permission-3658"
}
}

Graph

Used by