Bridge GPTs and GitHub Repositories
This FastAPI service enables GPT Actions or external agents to list, read, write, and recursively scan the contents of a GitHub repository using clean OpenAPI definitions and a plugin manifest.
Base URL: https://nomena-gpt.xyz
- ✅ List files in a given path
- ✅ Read the raw content of any file
- ✅ Write/update files with commit messages
- ✅ Recursively scan the repo tree
- ✅ Plugin-compatible via
.well-known/ai-plugin.json - ✅ Fully documented with OpenAPI (3.1)
- OpenAPI:
/openapi.yaml - Plugin Manifest:
/.well-known/ai-plugin.json
To function properly, your GitHub token must have the following scopes:
| GitHub Permission | Required |
|---|---|
Contents |
✅ Yes |
Metadata |
✅ Yes |
Issues |
✅ Optional (for future extension) |
Pull requests |
✅ Optional |
Discussions |
✅ Optional |
Set your token as an environment variable (e.g., in .env):
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxWe use pytest to test API endpoints with FastAPI's built-in TestClient.
- Install dependencies:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install pytest- Run tests:
pytest.
├── actions/ # FastAPI route modules
├── services/ # GitHub API logic
├── .well-known/ # ai-plugin.json for GPT integration
├── openapi.yaml # OpenAPI schema (GPT Action schema)
├── main.py # App entrypoint
└── test_main.py # API test suite
-
Clone this repository:
git clone https://github.com/nomenarkt/gpt-gateway.git cd gpt-gateway -
Set up environment:
- Place your
.envwithGITHUB_TOKENin the root directory.
- Place your
-
Start the FastAPI server:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt uvicorn main:app --host 127.0.0.1 --port 8000 -
(Optional) Use
systemdor Supervisor for production hosting. -
Configure Nginx as a reverse proxy (see
/etc/nginx/sites-available/default).
For feedback or support, email: nomenaarison@gmail.com