> For the complete documentation index, see [llms.txt](https://docs.balkan.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.balkan.id/getting-started/entitlement-data-discovery/credentials-discovery/github-credentials.md).

# Github: Credentials

### Overview

BalkanID supports discovery and governance of credentials within Github as part of **IGA for Non-Human Identities (NHI)**.&#x20;

All credentials are normalized into the BalkanID data model and surfaced in the Credentials tab, along with their associated identities, access relationships, and risk insights.

The associated credentials can also be seen under the specific application integration (Github) page.

<figure><img src="/files/FoOKfztpqaNRazH6m5Jt" alt=""><figcaption></figcaption></figure>

### Required Github scopes for Credential Discovery

To enable full credential discovery, please refer to the [Permissions](/getting-started/setting-up-your-tenant/application-integrations/direct-application-integration/github-application-integration-setup.md#option-1-fine-grained-personal-access-token-recommended) section [GitHub Application Integration Setup](/getting-started/setting-up-your-tenant/application-integrations/direct-application-integration/github-application-integration-setup.md) page.

These APIs allow BalkanID to build a complete view of credential inventory, access, and usage across the GitHub organization.

### Credential Types Supported

BalkanID tracks the following GitHub credential types:

{% hint style="info" %}
Note: The credential types listed below are examples and do not represent the full set of supported GitHub credentials.
{% endhint %}

* Personal Access Tokens (Classic & Fine-grained)
* SSH Keys (User)
* Deploy Keys
* GPG Keys
* OAuth Authorizations
* Installed GitHub Apps

### Common risks associated with Github Credentials include:

* Stale and Dormant Credentials: Personal access tokens, SSH keys, or deploy keys that remain active despite being unused for 90+ days.
* Unmonitored Orphaned Credentials: Active PATs, SSH keys, or deploy keys that have never been used, creating untracked access paths.
* Credentials Not Rotated for 90+ Days: PATs, SSH keys, or deploy keys older than 90 days that have not been rotated, increasing exposure if compromised.
* Extremely Old Credentials (180+ Days): PATs, SSH keys, deploy keys, or GPG keys older than 180 days that have never been rotated.
* Expired Credentials Retained in Inventory: Expired PATs or GPG keys that remain associated with user accounts, reducing visibility into active credentials.
* Overprivileged GitHub App Installations: GitHub Apps granted admin-level organization permissions across repositories and organizational settings.
* MFA Not Enforced on Privileged Accounts: Organization owners or admins without two-factor authentication enabled.

This ensures visibility and governance of programmatic access in GitHub, forming a critical part of IGA for Non-Human Identities.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.balkan.id/getting-started/entitlement-data-discovery/credentials-discovery/github-credentials.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
