> ## Documentation Index
> Fetch the complete documentation index at: https://specterops-fetch-json-component.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GH_ProtectedBy

> Branch protection rule protects this branch

<img noZoom src="https://mintcdn.com/specterops-fetch-json-component/pkiaFEhjWYPnhxMb/assets/enterprise-AND-community-edition-pill-tag.svg?fit=max&auto=format&n=pkiaFEhjWYPnhxMb&q=85&s=c83d7e4a67c741a979c0e77bf15c1252" 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\_BranchProtectionRule](/opengraph/extensions/githound/reference/nodes/gh_branchprotectionrule)
* Destination: [GH\_Branch](/opengraph/extensions/githound/reference/nodes/gh_branch)
* Traversable: ❌

## General Information

The non-traversable [GH\_ProtectedBy](/opengraph/extensions/githound/reference/edges/gh_protectedby) edge represents that a branch protection rule applies to a specific branch. Created by `Git-HoundBranch` when branch protection rules are collected, this edge links protection rules to the branches they govern. Understanding which protections apply to a branch is critical for determining the effective access model — protections such as required reviews, status checks, and push restrictions directly impact who can modify a branch. This edge is consumed by the computed edge functions (`Compute-GitHoundBranchAccess`) to determine effective push access; the computed [GH\_CanWriteBranch](/opengraph/extensions/githound/reference/edges/gh_canwritebranch) and [GH\_CanEditProtection](/opengraph/extensions/githound/reference/edges/gh_caneditprotection) edges carry traversability instead.

```mermaid theme={null}
graph LR
    node1("GH_Repository GitHound")
    node2("GH_Branch main")
    node3("GH_BranchProtectionRule main-protection")
    node4("GH_Branch develop")
    node5("GH_BranchProtectionRule develop-protection")
    node1 -- GH_HasBranch --> node2
    node1 -- GH_HasBranch --> node4
    node3 -- GH_ProtectedBy --> node2
    node5 -- GH_ProtectedBy --> node4
```
