+
Skip to content

A FastAPI-based service that provides version-controlled configuration management using GitHub as a backend storage

Notifications You must be signed in to change notification settings

banziyeoh/config-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Config Store

A FastAPI-based service that provides version-controlled configuration management using GitHub as a backend storage.

Features

  • Store and manage configuration files in JSON, YAML, TOML, and XML formats
  • Version control with automatic versioning
  • Project-based organization
  • Full history tracking
  • Version recovery
  • RESTful API interface

Prerequisites

  • Python 3.8+
  • GitHub account and personal access token
  • Git repository for storing configurations

Installation

  1. Clone the repository:
git clone https://github.com/banziyeoh/config-store.git
cd config-store
  1. Install dependencies:
pip install -r requirements.txt
  1. Set up environment variables in .env:
GITHUB_REPO=https://github.com/username/repo
GITHUB_TOKEN=your_github_token

Usage

  1. Start the server:
uvicorn app.main:app --reload
  1. Access the API documentation at http://localhost:8000/docs

API Endpoints

  • GET / - Health check
  • POST /configs/{project}/{config_name} - Create new config
  • GET /configs/{project}/{config_name} - Read config
  • PUT /configs/{project}/{config_name} - Update config
  • DELETE /configs/{project}/{config_name} - Delete config
  • GET /configs/{project} - List all configs in project
  • GET /configs/{project}/{config_name}/versions - List config versions
  • POST /configs/{project}/{config_name}/recover/{version} - Recover specific version

Development

Running Tests

pytest

License

MIT

About

A FastAPI-based service that provides version-controlled configuration management using GitHub as a backend storage

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载