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_xxxxxxxxxxxxxxxxxxxxx
We 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
.env
withGITHUB_TOKEN
in 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
systemd
or Supervisor for production hosting. -
Configure Nginx as a reverse proxy (see
/etc/nginx/sites-available/default
).
For feedback or support, email: [email protected]