DevAsign streamlines open-source workflows with AI-powered PR review, intelligent contributor feedback, and automatic bounty payouts via the Stellar blockchain. It integrates directly with GitHub as a GitHub App, providing a seamless experience for project maintainers and contributors.
- AI-Powered PR Analysis — Automated pull request reviews using Google Gemini, with intelligent context from indexed repositories.
- X402 Payment Protocol — Pay-per-use PR analysis for public repos via the X402 HTTP payment standard on the Stellar network.
- Bounty Management — Create tasks from GitHub issues, fund bounties with USDC via Soroban smart contracts, and automatically pay contributors on merge.
- Stellar Wallet Integration — Built-in wallet management with GCP KMS-encrypted secrets, USDC/XLM swaps, withdrawals, and top-up tracking.
- GitHub Webhook Processing — Real-time processing of
installation,push,pull_request, andissue_commentevents via Google Cloud Tasks for async execution. - Feature Flags — Runtime feature gating with Statsig.
- Real-Time Updates — WebSocket support via Socket.IO for live task and activity feeds.
| Layer | Technology |
|---|---|
| Runtime | Node.js 20, TypeScript (ESM via NodeNext) |
| Framework | Express.js |
| Database | PostgreSQL via Prisma ORM (Prisma Accelerate for production) |
| Authentication | Firebase Admin SDK |
| AI | Google Gemini (gemini-3.1-pro-preview) |
| Blockchain | Stellar SDK, Soroban smart contracts, x402 payment protocol |
| Cloud | Google Cloud Run, Cloud Tasks, Cloud KMS |
| Testing | Vitest, Supertest |
| Feature Flags | Statsig |
| Containerization | Docker (multi-stage Alpine build) |
- Node.js (v20+)
- npm (v8+)
- Git
- Docker (v20+) & Docker Compose (v2+)
- Google Cloud SDK — for KMS and Cloud Tasks
- Antigravity or preferred IDE
- Firebase — Authentication (GitHub sign-in)
- GitHub App — Repository integration & webhook events
- PostgreSQL — Local or cloud-hosted (Prisma Accelerate for production)
- Google Cloud Platform — KMS encryption, Cloud Run, Cloud Tasks
- Stellar Account — Testnet or mainnet master wallet
- Statsig — Feature flag management
git clone https://github.com/devasignhq/devasign-api.git
cd devasign-apinpm installcp .env.example .envConfigure your .env file — see .env.example for all required variables:
# Local PostgreSQL via Docker
docker run --name postgres-database -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=devasign_db -p 5433:5432 -d postgres
# Generate Prisma client
npm run prisma-gen
# Run database migrations
npx prisma migrate dev --name initial_migrationnpm run dev
# Server runs at http://localhost:5000 (development)git clone https://github.com/devasignhq/devasign-api.git
cd devasign-api
cp .env.docker .env
# Edit .env with your credentialsdocker build -t devasign-api .
docker run -d --name devasign-api -p 8080:8080 --env-file .env devasign-apiThe production Docker image uses a multi-stage build (Node.js 20 Alpine) with a non-root user for security.
- Create a project at Firebase Console
- Enable Authentication with GitHub sign-in
- Generate a service account key: Project Settings > Service Accounts > Generate new private key
- Extract
FIREBASE_PROJECT_ID,FIREBASE_PRIVATE_KEY, andFIREBASE_CLIENT_EMAILinto.env
- Go to GitHub Developer Settings > GitHub Apps > New GitHub App
- Configure:
- Webhook URL:
https://your-domain.com/webhook/github - Webhook Events:
installation,installation_repositories,pull_request,push,issue_comment - Repository Permissions: Read & Write (pull requests, issues, contents)
- Organization Permissions: Read (members)
- Webhook URL:
- Generate a webhook secret and private key
- Set
GITHUB_APP_ID,GITHUB_APP_PRIVATE_KEY, andGITHUB_WEBHOOK_SECRETin.env
- Create a Stellar account:
- Testnet: Use Stellar Laboratory
- Mainnet: Use a Stellar wallet like StellarTerm
- Fund your testnet account using the Friendbot
- Set
STELLAR_MASTER_PUBLIC_KEY,STELLAR_MASTER_SECRET_KEY, and contract IDs in.env
- Create a project in Google Cloud Console
- Enable Cloud Key Management Service (KMS) API
- Create a Key Ring and Key
- Install Google Cloud SDK and authenticate:
gcloud auth login gcloud config set project your-project-id - Set
GCP_PROJECT_ID,GCP_LOCATION_ID,GCP_KEY_RING_ID,GCP_KEY_IDin.env
Tests use Vitest with unit and integration test suites:
# Run all tests
npm test --fileParallelism=false
# Run in watch mode
npm run test:watch --fileParallelism=false
# Run specific test file
npm test -- integration/api/user/index.api.test.ts
# Run with coverage
npm run test:coverage --fileParallelism=falseThis project is licensed under the Apache 2.0 License. See LICENSE for more details.
- DevAsign Project Maintainer App — Frontend for project maintainers
- DevAsign Contributor App — Frontend for contributors
- Soroban Task Escrow Contract — Task escrow smart contract on Stellar