Create project file

This commit is contained in:
Dmitri Shimanski
2025-07-29 23:37:04 +03:00
commit 2d36a60f5d
38 changed files with 1580 additions and 0 deletions

78
README.md Normal file
View File

@@ -0,0 +1,78 @@
# Aoyo.Taiga
**Aoyo.Taiga** is a lightweight C# application that listens for webhooks from [Taiga](https://taiga.io/) and sends a notification to a specified Discord channel via a bot.
## ✨ Features
- Receives webhook events from Taiga.
- Sends formatted messages to a designated Discord channel.
- Lightweight and easy to run (locally or in a container).
- Supports configuration via `environment variables` or `appsettings.json`.
## ⚙️ Required Configuration
The app requires the following configuration keys to function:
### Environment variables (`ENV`)
- `Discord__Token` your Discord bot token.
- `Discord__Id` target Discord channel ID.
- `Taiga__Key` secret key to validate incoming Taiga webhooks.
### OR `appsettings.json`:
```json
{
"Discord": {
"Token": "your_discord_token",
"Id": "your_channel_id"
},
"Taiga": {
"Key": "your_taiga_webhook_secret"
}
}
```
Only one method of configuration is required. You can choose between env vars or appsettings.json.
🐳 Run with Docker
You can pull and run the prebuilt image from GitHub Container Registry (GHCR):
```bash
docker run -d \
-e Discord__Token=your_token \
-e Discord__Id=your_channel_id \
-e Taiga__Key=your_webhook_key \
-p 8080:80 \
ghcr.io/yawaflua/aoyo.taiga:latest
```
🧪 Run Locally
Make sure you have the .NET SDK installed.
1. Clone the repo
```shell
git clone https://github.com/yawaflua/Aoyo.Taiga.git
```
cd Aoyo.Taiga
2. Configure credentials
Either set env variables or fill in appsettings.json.
3. Run the app
```bash
dotnet run --project Aoyo.Taiga
```
By default, it will listen on http://localhost:8080/aoyo.
🚀 Behavior
Once a webhook is sent from Taiga (with the correct key), the app will verify it and forward a message to the Discord channel defined by the Discord__Id.
📫 Webhook Endpoint
You can point your Taiga webhook to:
`POST https://example.mycooldomain.co.il/aoyo/api/v1/TaigaWebHook/post`
Make sure to include the Taiga__Key as a query parameter or in the header to pass validation.
Project can be used under [Apache 2.0](LICENCE)