Giteway is an HTTP Gateway for Git services, providing a standardized interface for fetching Git information and commits from various service providers, including GitHub, GitLab, Bitbucket (soon), and SSH Git (soon).
- Standardized Interface: Giteway exposes a consistent API endpoint for interacting with Git repositories, irrespective of the underlying service provider.
- Multi-Provider Support: Easily fetch Git data from GitHub and GitLab.
- Authentication: Securely handle authentication for different Git service providers, supporting various authentication mechanisms.
- HTTP Gateway: Access Git data through standard HTTP requests, making it easy to integrate into web applications.
- Modular Design: Designed with modularity in mind, making it extensible for adding support for new Git providers.
To get started with Giteway, you can deploy it as a Docker container using the following steps:
-
Pull the Giteway Docker image from the Docker Hub:
docker pull galactiks/giteway:latest
-
Run the Docker container, exposing the necessary ports:
docker run -d -p 5000:5000 galactiks/giteway:latest
This command will start the Giteway container and map port 5000 of the container to port 5000 on your host machine.
-
Verify that Giteway is running by accessing the API endpoint in your browser or using a tool like cURL:
curl http://localhost:5000/repos/github.com/thegalactiks
You should receive a response with the list of public repositories.
-
You can now start using Giteway to interact with Git repositories through the exposed API.
For more detailed information on how to use Giteway and its API, refer to the API Documentation.
Giteway can be configured using environment variables to customize its behavior. The following environment variables are supported:
Variable Name | Description | Default Value |
---|---|---|
GITEWAY_SERVE_BASE_URL |
The base URL at which Giteway is served. | |
GITEWAY_SERVE_PORT |
The port at which Giteway is served. | 5000 |
GITEWAY_SERVE_CORS_ENABLED |
Indicates whether CORS is enabled for Giteway. | false |
GITEWAY_SERVE_CORS_ALLOW_ORIGINS |
The list of allowed origins for CORS. | * |
GITEWAY_SERVE_CORS_ALLOWED_METHODS |
The list of allowed HTTP methods for CORS. | GET,POST |
GITEWAY_SERVE_CORS_ALLOW_HEADERS |
The list of allowed headers for CORS. | Authorization, Content-Type, Cookie |
GITEWAY_SERVE_CORS_EXPOSE_HEADERS |
The list of exposed headers for CORS. | Content-Type, Set-Cookie |
GITEWAY_SERVE_CORS_ALLOW_CREDENTIALS |
Indicates whether CORS allows credentials. | true |
GITEWAY_SERVE_TIMEOUT |
The timeout duration for Giteway requests. | 5000 |
GITEWAY_LOGGING_LEVEL |
The logging level for Giteway. | -1 |
GITEWAY_LOGGING_ENCODING |
The encoding format for Giteway logs. | console |
GITEWAY_LOGGING_DEVELOPMENT |
Indicates whether Giteway is in development mode. | true |
GITEWAY_GITHUB_PRIVATE_KEY_PATH |
The file path to the private key for GitHub authentication. | |
GITEWAY_GITHUB_APP_ID |
The ID of the GitHub app. | |
GITEWAY_GITHUB_INSTALLATIONS |
The map of GitHub installations. |
Documentation for the Giteway API can be found here.
This project is licensed under the MIT License @ Galactiks.