https://github.com/djiit/github-copilot-dust
Demo Copilot Extension that connect to Dust
https://github.com/djiit/github-copilot-dust
copilot-extension dust
Last synced: 2 months ago
JSON representation
Demo Copilot Extension that connect to Dust
- Host: GitHub
- URL: https://github.com/djiit/github-copilot-dust
- Owner: Djiit
- Created: 2024-12-17T08:54:33.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-01-14T16:46:40.000Z (3 months ago)
- Last Synced: 2025-01-14T18:31:22.503Z (3 months ago)
- Topics: copilot-extension, dust
- Language: TypeScript
- Homepage:
- Size: 804 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# GitHub Copilot Extension for Dust
> [!WARNING]
> This is a work in progress and not yet ready for use. Documentation and code may be incomplete or incorrect.This is a GitHub Copilot extension that allows you to send messages to the Dust assistant.
You will need to have an active Dust subscription to use this extension.> [!NOTE]
> This extension is a "skillset". Refer to the [GitHub Copilot documentation](https://docs.github.com/en/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets) for more information.## Usage
Setup up your application: https://docs.github.com/en/copilot/building-copilot-extensions/setting-up-copilot-extensions
You'll need at least 2 skills, as in the screenshot below:

Here is an example of the `dust` skill parameters, that should map to the `/skills/dust` endpoint.
```json
{
"type": "object",
"properties": {
"assistant": {
"type": "string",
"description": "Name of the assistant to talk to."
},
"message": {
"type": "string",
"description": "The message to send to Dust",
"required": "true"
}
}
}
```Copy and adjust the `.env` file:
```sh
cp .env .env.local
```Run the server:
```sh
pnpm run dev
```Optionally expose the server to the internet using e.g. `ngrok` to test it live from GitHub Copilot:
```sh
ngrok http 3000
```## Deployment
### Using Docker
A docker image is available on GitHub Container Registry at `ghcr.io/djiit/github-copilot-dust`.
You can run it with the following command:
```sh
docker run \
-p 3000:3000 \
-e DUST_WORKSPACE_ID=your-workspace-id \
-e DUST_API_KEY=your-api-key \
- OTEL_SERVICE_NAME=github-copilot-dust \ # Optional
ghcr.io/djiit/github-copilot-dust:main
```### Observability
It uses OpenTelemetry for observability. You can disable it by setting `OTEL_SDK_DISABLED=true`.
#### Metrics
It exposes a `/metrics` endpoint for Prometheus monitoring on port `9464`.
#### Traces
You can configure it using any supported [environment variables](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration). E.g. to export traces to a local Jaeger instance listening on default port, set:
```sh
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/json"
```