A secure web application that generates beautiful release notes from your GitHub repository's commit history. Supports both public and private repositories through GitHub OAuth authentication.
- 🔐 Secure GitHub OAuth authentication via Supabase
- 📝 Automatic commit categorization (features, fixes, breaking changes)
- 🏷️ Support for both tags and branch comparisons
- 🔒 Access to both public and private repositories
- 📋 Copy to clipboard or download as Markdown
- 🎨 Clean, modern UI with dark mode support
- ✨ AI-powered enhancement to make release notes more engaging (OpenAI)
- 🔒 Secure API key handling with server-side processing
Before setting up this project, you'll need:
- Node.js & npm - Install with nvm
- A Supabase account - Sign up for free
- A GitHub account - For creating OAuth App
# Clone the repository
git clone <YOUR_GIT_URL>
# Navigate to the project directory
cd I-am-released
# Install dependencies
npm install
# Copy environment variables template
cp .env.example .env-
Create a new Supabase project
- Go to app.supabase.com
- Click "New project"
- Fill in the project details
-
Get your Supabase credentials
- Go to Project Settings → API
- Copy:
Project URL→VITE_SUPABASE_URLin.envanon publickey →VITE_SUPABASE_ANON_KEYin.env
-
Configure Authentication URLs
- Go to Authentication → URL Configuration
- Add to "Redirect URLs":
http://localhost:8080/auth/callback http://localhost:5173/auth/callback https://your-domain.com/auth/callback - Save changes
-
Create a GitHub OAuth App
- Go to GitHub → Settings → Developer settings → OAuth Apps
- Click "New OAuth App"
- Fill in:
- Application name: "I am Released" (or your choice)
- Homepage URL:
http://localhost:8080(or your domain) - Authorization callback URL:
https://[your-supabase-project-ref].supabase.co/auth/v1/callback- Find your project ref in Supabase project settings
- Click "Register application"
-
Copy OAuth credentials
- Copy the Client ID
- Generate a new Client Secret and copy it
-
Configure Supabase with GitHub OAuth
- In Supabase, go to Authentication → Providers
- Find GitHub and click to configure
- Enable GitHub provider
- Paste your Client ID and Client Secret
- Leave "Authorized domains" empty (Supabase will handle it)
- Save
Edit your .env file:
VITE_SUPABASE_URL=https://[your-project-ref].supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-hereNote: OpenAI API key is now configured server-side for security. See deployment section.
# Start the development server
npm run dev
# The app will be available at http://localhost:8080-
Push your code to GitHub
-
Import project in Vercel
- Go to vercel.com
- Import your GitHub repository
-
Configure environment variables in Vercel
- Add the following environment variables:
Client-side variables (with VITE_ prefix):
VITE_SUPABASE_URL: Your Supabase project URLVITE_SUPABASE_ANON_KEY: Your Supabase anon keyVITE_SITE_URL: Your Vercel app URL (e.g.,https://your-app.vercel.app)
Server-side variables (NO VITE_ prefix - more secure):
OPENAI_API_KEY: Your OpenAI API key (for AI enhancement)SUPABASE_URL: Your Supabase project URL (same as VITE_SUPABASE_URL)SUPABASE_SERVICE_KEY: Your Supabase service role key (from Settings → API)
-
Update Supabase redirect URLs
- Go to Supabase Dashboard → Authentication → URL Configuration
- Add your Vercel domain to "Redirect URLs":
https://your-app.vercel.app/auth/callback
- Save the changes
-
Deploy!
- Visit the application
- Click "Sign in with GitHub"
- Authorize the application to access your repositories
- Click "Select a repository" to browse your repositories
- Search and select from your public and private repositories
- Click "Load Tags" to fetch available tags
- Select start and end references (tags or commits)
- (Optional) Toggle "Enhance with AI" for more engaging release notes
- Click "Generate Release Notes"
- Copy or download your release notes!
- Ensure your GitHub OAuth App callback URL exactly matches:
https://[your-supabase-project-ref].supabase.co/auth/v1/callback - Verify Client ID and Secret are correctly copied to Supabase
- Clear browser cache and cookies
- Ensure you're using an OAuth App, not a GitHub App
- Check that your redirect URLs in Supabase include your exact domain with port
- Verify environment variables are loaded correctly
- Frontend: React, TypeScript, Vite
- UI: Shadcn/ui, Tailwind CSS
- Authentication: Supabase Auth with GitHub OAuth
- API: GitHub REST API via Octokit
src/
├── components/ # React components
├── contexts/ # Auth context
├── lib/ # Utilities and API clients
├── pages/ # Page components
└── types/ # TypeScript types
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production build- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.