> ## 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_HasRunner

> Runner group exposes a directly assigned self-hosted runner to authorized repositories or workflows

<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

* Traversable: ✅

| Start                                                                                    | Kind          | End                                                                            |
| ---------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------ |
| [GH\_OrgRunnerGroup](/opengraph/extensions/github/nodes/gh_orgrunnergroup)               | GH\_HasRunner | [GH\_OrgRunner](/opengraph/extensions/github/nodes/gh_orgrunner)               |
| [GH\_EnterpriseRunnerGroup](/opengraph/extensions/github/nodes/gh_enterpriserunnergroup) | GH\_HasRunner | [GH\_EnterpriseRunner](/opengraph/extensions/github/nodes/gh_enterpriserunner) |

```mermaid theme={null}
flowchart LR
    GH_EnterpriseRunner["GH_EnterpriseRunner"]
    GH_EnterpriseRunnerGroup["GH_EnterpriseRunnerGroup"]
    GH_OrgRunner["GH_OrgRunner"]
    GH_OrgRunnerGroup["GH_OrgRunnerGroup"]
    GH_EnterpriseRunnerGroup -- GH_HasRunner --> GH_EnterpriseRunner
    GH_OrgRunnerGroup -- GH_HasRunner --> GH_OrgRunner
```

## General Information

The traversable GH\_HasRunner edge represents that a runner group exposes a directly assigned self-hosted runner to repositories or workflows that satisfy the runner group's access policy.

This edge is distinct from [GH\_Contains](/opengraph/extensions/github/edges/gh_contains). [GH\_Contains](/opengraph/extensions/github/edges/gh_contains) records structural membership only, while GH\_HasRunner represents the runner-group-to-runner capability hop used for attack-path composition. This edge is emitted only for direct organization and enterprise runner group memberships; inherited organization runner group access to enterprise runners is modeled as [GH\_Repository](/opengraph/extensions/github/nodes/gh_repository) or [GH\_Branch](/opengraph/extensions/github/nodes/gh_branch) -\[:[GH\_CanUseRunner](/opengraph/extensions/github/edges/gh_canuserunner)]-> [GH\_OrgRunnerGroup](/opengraph/extensions/github/nodes/gh_orgrunnergroup) -\[:[GH\_InheritedFrom](/opengraph/extensions/github/edges/gh_inheritedfrom)]-> [GH\_EnterpriseRunnerGroup](/opengraph/extensions/github/nodes/gh_enterpriserunnergroup) -\[:GH\_HasRunner]-> [GH\_EnterpriseRunner](/opengraph/extensions/github/nodes/gh_enterpriserunner).

## Edge Schema

| Source                                                                                   | Destination                                                                    | Traversable |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ----------- |
| [GH\_EnterpriseRunnerGroup](/opengraph/extensions/github/nodes/gh_enterpriserunnergroup) | [GH\_EnterpriseRunner](/opengraph/extensions/github/nodes/gh_enterpriserunner) | `true`      |
| [GH\_OrgRunnerGroup](/opengraph/extensions/github/nodes/gh_orgrunnergroup)               | [GH\_OrgRunner](/opengraph/extensions/github/nodes/gh_orgrunner)               | `true`      |

## Diagram

```mermaid theme={null}
graph LR
    n0["GH_EnterpriseRunnerGroup"]
    n1["GH_EnterpriseRunner"]
    n2["GH_OrgRunnerGroup"]
    n3["GH_OrgRunner"]
    n0 -->|GH_HasRunner| n1
    n2 -->|GH_HasRunner| n3
```
