# Securely ingest private GitHub content using GitHub App authentication

> Knowledge sources now support GitHub App authentication (app_id, installation_id, private_key) in addition to personal access tokens.

- Published: 2026-03-02
- Author: Agno Team
- Category: Changelog
- Canonical: https://agno-com-nine.vercel.app/articles/securely-ingest-private-github-content-using-github-app-authentication
- Markdown: https://agno-com-nine.vercel.app/articles/securely-ingest-private-github-content-using-github-app-authentication.md

Knowledge sources now support GitHub App authentication (`app_id`, `installation_id`, `private_key`) in addition to personal access tokens. This gives platform and security teams a more governed authentication path, with scoped permissions, no personal credentials in the pipeline, and thread-safe token caching that handles expiration automatically. Both sync and async variants are supported.

Details**:**

- Authenticate as a GitHub App for fine-grained, org-managed access to private repositories
- Thread-safe token caching eliminates redundant auth requests and simplifies concurrent workloads
- Personal access tokens continue to work; no migration required

See [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/09_archive/cloud/github.py) for reference
