A modern, secure GitHub organization management application built with React, TypeScript, and Azure Functions.
- Modern UI: Built with React 18, TypeScript, and Tailwind CSS
- Glassmorphism Design: Dark mode with beautiful glass-like components
- GitHub OAuth: Secure authentication via GitHub
- Repository Management: View and manage organization repositories
- Copilot Management: Control GitHub Copilot access and usage
- Real-time Activity: Track GitHub activity across organizations
- Responsive Design: Works on desktop, tablet, and mobile
- Node.js 18+
- Azure Functions Core Tools 4.x
- GitHub OAuth App (for authentication)
-
Clone the repository
-
Install dependencies:
npm install
-
Create environment configuration:
cp .env.example .env.local
-
Update
.env.localwith your GitHub OAuth credentials:VITE_GITHUB_CLIENT_ID=your-github-client-id VITE_FUNCTION_APP_URL=http://localhost:7071 VITE_STATIC_WEB_APP_URL=http://localhost:5173 VITE_GITHUB_REDIRECT_URI=http://localhost:7071/api/github-callback
-
Start the development server:
npm run dev
-
Navigate to the API directory:
cd api -
Install dependencies:
npm install
-
Configure local settings in
api/local.settings.json:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "GH_WEB_APP": "your_github_client_id", "GH_WEB_APP_SECRET": "your_github_client_secret", "FRONTEND_URL": "http://localhost:5173" } } -
Start the Azure Functions runtime:
npm start
- Go to GitHub Settings > Developer settings > OAuth Apps
- Create a new OAuth App with:
- Application name: GitSecureOps
- Homepage URL:
http://localhost:5173 - Authorization callback URL:
http://localhost:7071/api/github-callback
- Copy the Client ID and Client Secret to your environment files
- React 18: Modern React with hooks and concurrent features
- TypeScript: Type-safe development
- Vite: Fast build tool and dev server
- Tailwind CSS: Utility-first CSS framework
- Framer Motion: Smooth animations and transitions
- React Router: Client-side routing
- Azure Functions: Serverless functions for API endpoints
- Node.js: JavaScript runtime
- GitHub API: Integration with GitHub services
- AuthContext: Manages user authentication state
- ProtectedRoute: Guards private pages
- OAuth Service: Handles GitHub OAuth flow
- GitHub Service: API wrapper for GitHub operations
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
npm start- Start Azure Functions locallynpm test- Run tests (when available)
-
Build the application:
npm run build
-
Deploy using Azure Static Web Apps CLI or GitHub Actions
-
Configure environment variables in Azure:
VITE_GITHUB_CLIENT_IDVITE_FUNCTION_APP_URLVITE_STATIC_WEB_APP_URL
VITE_GITHUB_CLIENT_ID- GitHub OAuth client IDVITE_FUNCTION_APP_URL- Backend API URLVITE_STATIC_WEB_APP_URL- Frontend URLVITE_GITHUB_REDIRECT_URI- OAuth callback URL
GH_WEB_APP- GitHub OAuth client IDGH_WEB_APP_SECRET- GitHub OAuth client secretFRONTEND_URL- Frontend URL for CORS
- OAuth 2.0: Secure GitHub authentication
- CSRF Protection: State parameter validation
- Token Validation: Server-side token verification
- Secure Headers: Security headers in API responses
- Rate Limiting: GitHub API rate limit handling
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details