> ## Documentation Index
> Fetch the complete documentation index at: https://bloodhound.specterops.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GH_HasBaseRole

> Role inherits permissions from another role

<img noZoom src="https://mintcdn.com/specterops/tTIczgde9H07oLXf/assets/enterprise-AND-community-edition-pill-tag.svg?fit=max&auto=format&n=tTIczgde9H07oLXf&q=85&s=ad49a576589f4d2a8081df77d07fdf56" alt="Applies to BloodHound Enterprise and CE" width="482" height="45" data-path="assets/enterprise-AND-community-edition-pill-tag.svg" />

## Edge Schema

* Source: [GH\_OrgRole](/opengraph/extensions/github/nodes/gh_orgrole), [GH\_RepoRole](/opengraph/extensions/github/nodes/gh_reporole)
* Destination: [GH\_OrgRole](/opengraph/extensions/github/nodes/gh_orgrole), [GH\_RepoRole](/opengraph/extensions/github/nodes/gh_reporole)
* Traversable: ✅

## General Information

The traversable GH\_HasBaseRole edge represents role inheritance within the GitHub permission hierarchy. Org roles inherit down to all-repo roles (e.g., Owners inherits to all\_repo\_admin), and custom roles inherit from their base roles (e.g., a custom\_role inherits from write). This edge is traversable because it extends permissions through the role hierarchy, meaning a principal with a higher-level role implicitly holds all inherited lower-level roles.

```mermaid theme={null}
graph LR
    orgOwners("GH_OrgRole SpecterOps\\Owners")
    orgMembers("GH_OrgRole SpecterOps\\Members")
    allRepoAdmin("GH_RepoRole SpecterOps\\all_repo_admin")
    allRepoRead("GH_RepoRole SpecterOps\\all_repo_read")
    customRole("GH_RepoRole GitHound\\security_reviewer")
    writeRole("GH_RepoRole GitHound\\write")
    orgOwners -- GH_HasBaseRole --> allRepoAdmin
    orgMembers -- GH_HasBaseRole --> allRepoRead
    customRole -- GH_HasBaseRole --> writeRole
```
