An open API service indexing awesome lists of open source software.

https://github.com/wesleyscholl/repose

๐Ÿ’ซ Repose helps you compose your next repo โ€” AI-crafted names, descriptions, topics, and READMEs in one command. Build smarter, faster, and cooler. ๐Ÿง ๐Ÿ’ป๐Ÿ”ฅ
https://github.com/wesleyscholl/repose

ai ai-assistant automation cli-tool code-generation developer-tools devops github github-api llm machine-learning openai productivity project-automation project-scaffolding prompt-engineering repo-generator repose repository-management ruby

Last synced: 16 days ago
JSON representation

๐Ÿ’ซ Repose helps you compose your next repo โ€” AI-crafted names, descriptions, topics, and READMEs in one command. Build smarter, faster, and cooler. ๐Ÿง ๐Ÿ’ป๐Ÿ”ฅ

Awesome Lists containing this project

README

          

# Reposer ๐ŸŽฏ

**Status**: Production-ready Ruby gem for AI-powered repository creation - intelligent automation of GitHub project setup and documentation generation.

> **AI-powered GitHub repository creation and management tool**

[![Gem Version](https://badge.fury.io/rb/reposer.svg)](https://badge.fury.io/rb/reposer)
[![CI](https://github.com/wesleyscholl/repose/actions/workflows/ci.yml/badge.svg)](https://github.com/wesleyscholl/repose/actions/workflows/ci.yml)
[![Test Coverage](https://img.shields.io/badge/coverage-96.63%25-brightgreen.svg)](https://github.com/wesleyscholl/repose)
[![Ruby Version](https://img.shields.io/badge/ruby-3.0%2B-red.svg)](https://ruby-lang.org)

Reposer is an intelligent CLI tool that uses AI to create GitHub repositories with smart descriptions, relevant topics, comprehensive READMEs, and proper project structure. No more staring at blank repository forms!

## โœจ Features

- **๐Ÿค– AI-Generated Content**: Multiple AI providers (Gemini, Ollama) or template-based fallback
- **๐ŸŽฏ Smart Context Awareness**: Understands project purpose from name, language, and framework
- **๐Ÿ”ง Interactive CLI**: Guided prompts for missing information with beautiful UI
- **๐Ÿ“ Professional READMEs**: Creates comprehensive, well-structured documentation with emojis
- **๐Ÿท๏ธ 20 Intelligent Topics**: Generates up to 20 relevant tags and topics automatically
- **๐Ÿ˜Š Emoji Support**: Automatic emoji inclusion in descriptions and READMEs for visual appeal
- **๐Ÿ“„ License Selection**: Interactive license picker (MIT, Apache, GPL, BSD, MPL, Unlicense)
- **๐Ÿข Organization Support**: Choose to create repos under your personal account or any GitHub org you belong to
- **๐Ÿ—‚๏ธ Language-Specific Project Files**: Auto-generates boilerplate files (go.mod, package.json, requirements.txt, etc.)
- **๐Ÿ‘๏ธ Preview Mode**: See generated content before creating repository
- **๐Ÿ” Secure Configuration**: Encrypted storage of API keys and tokens
- **โšก Multi-Language Support**: Built-in support for 15+ programming languages
- **๐ŸŽจ Framework Intelligence**: Recognizes and suggests popular frameworks
- **๐Ÿค– Flexible AI Integration**: Choose between Gemini, Ollama, or template-based generation
- **๐Ÿงช 90%+ Test Coverage**: Production-ready with comprehensive testing

## ๐Ÿค– AI Provider Options

Repose supports multiple AI providers for intelligent content generation:

### Gemini (Google AI)
```bash
export GEMINI_API_KEY='your-api-key'
repose create my-project # Auto-detects Gemini
```

### Ollama (Local AI)
```bash
# Install and start Ollama
brew install ollama
ollama serve
ollama pull mistral

# Configure (optional)
export OLLAMA_ENDPOINT='http://localhost:11434'
export OLLAMA_MODEL='mistral'

repose create my-project # Auto-detects Ollama
```

### Template-Based (No AI Required)
Works out of the box with intelligent templates - no AI configuration needed!

### Auto-Detection
Repose automatically selects the best available provider:
1. **Gemini** (if `GEMINI_API_KEY` is set)
2. **Ollama** (if service is running)
3. **Template-based** (always available as fallback)

## ๐Ÿš€ Quick Start

### Installation

```bash
gem install repo-composer
```

### Setup

Configure your credentials (one-time setup):

```bash
repo-composer configure
```

You'll need:
- **GitHub Personal Access Token** (with repo permissions) - **Required**
- **Gemini API Key** (optional, for AI-powered generation)
- **Ollama** (optional, for local AI - `brew install ollama && ollama serve`)

### Create Your First Repository

```bash
reposer create my-awesome-project
```

That's it! Reposer will intelligently guide you through the process.

## ๐ŸŽจ Usage Examples

### Basic Usage
```bash
# Interactive mode - Reposer guides you
reposer create my-project

# Quick creation with language
reposer create web-scraper --language ruby

# Full specification
reposer create api-server --language go --framework gin --private
```

### Advanced Usage
```bash
# Preview before creating
reposer create ai-chatbot --language python --framework fastapi --dry-run

# Specify license type
reposer create api-server --language go --framework gin --license apache-2.0

# Create under a GitHub organization
reposer create team-tool --language ruby --org my-company

# Create under an org with full options
reposer create infra-scripts --language python --org devops-team --private --license mit

# Custom description and topics
reposer create data-processor \
--language python \
--description "High-performance data processing pipeline" \
--topics ml,data,etl,python

# Framework-specific project with custom license
reposer create blog-api --language ruby --framework rails --license gpl-3.0 --private
```

### Interactive Experience
```bash
$ reposer create awesome-api
๐ŸŽฏ Reposer - AI Repository Creator
========================================
Create repository under: yourusername (personal)
Primary programming language: ruby
Framework/Library: Rails
Choose a license: MIT License (Permissive, most popular)
What will this project do? A REST API for user management

๐Ÿ“‹ Generated Repository Content
----------------------------------------
Destination: yourusername/awesome-api
Name: awesome-api
Description: ๐Ÿš€ A Ruby Rails REST API for user management ๐Ÿ’Ž
Topics: ruby, rails, api, rest, web, backend, database, authentication,
mvc, ruby-on-rails, sinatra, bundler, gem, postgresql, redis,
jwt, oauth, microservices, docker, kubernetes

README Preview:
# ๐Ÿ’Ž Awesome Api

๐Ÿš€ A Ruby Rails project for user management with comprehensive
API endpoints and authentication.

## โœจ Features
- ๐Ÿ› ๏ธ User authentication and authorization
- ๐ŸŒ RESTful API design
- ๐Ÿ“Š Database integration
- โœ… Comprehensive test coverage

Create repository? (Y/n) y
โœ… Repository created successfully!
๐Ÿ”— https://github.com/yourusername/awesome-api
```

## ๐Ÿ› ๏ธ Configuration

### Initial Setup
```bash
reposer configure
```

### Configuration File
Located at `~/.reposer.yml`:

```yaml
github_token: "your_github_token"
gemini_api_key: "your_gemini_key" # Optional
default_topics: ["opensource", "ruby"]
default_language: "ruby"
```

### Environment Variables
```bash
export GITHUB_TOKEN="your_token"
export GEMINI_API_KEY="your_key" # Optional for AI features
export OLLAMA_ENDPOINT="http://localhost:11434" # Optional for Ollama
export OLLAMA_MODEL="mistral" # Optional, defaults to mistral
```

## ๐ŸŒ Supported Languages & Frameworks

| Language | Frameworks |
|----------|------------|
| **Ruby** | Rails, Sinatra, Hanami, Roda |
| **JavaScript/TypeScript** | React, Vue, Express, Next.js, Nuxt, Angular |
| **Python** | Django, Flask, FastAPI, Streamlit |
| **Go** | Gin, Echo, Fiber, Chi |
| **Java** | Spring Boot, Quarkus, Micronaut |
| **Rust** | Actix, Axum, Warp, Rocket |
| **Swift** | Vapor, Perfect, Kitura |
| **PHP** | Laravel, Symfony, CodeIgniter |
| **Kotlin** | Spring Boot, Ktor |
| **And more...** | Extensible architecture |

## ๐Ÿ“š Command Reference

### `repose create [NAME]`
Create a new repository with AI assistance.

**Options:**
- `--language LANG` - Primary programming language
- `--framework FRAMEWORK` - Framework or library to use
- `--description TEXT` - Custom description override
- `--license LICENSE` - License type (mit, apache-2.0, gpl-3.0, bsd-3-clause, mpl-2.0, unlicense)
- `--org ORG` - GitHub organization or user login to create the repository under (skips interactive selection)
- `--private` - Create private repository (default: public)
- `--topics TOPIC1,TOPIC2` - Custom topics/tags (up to 20)
- `--dry-run` - Preview without creating
- `--template URL` - Use repository template

**Examples:**
```bash
reposer create web-app --language typescript --framework react
reposer create microservice --language go --license apache-2.0 --private
reposer create ml-model --language python --topics ml,ai,data-science --dry-run
reposer create api-server --language ruby --framework rails --license gpl-3.0
reposer create team-tool --language python --org my-company
```

### `repose configure`
Setup or update configuration settings.

**Interactive prompts for:**
- GitHub Personal Access Token
- Gemini API Key (optional)
- Default topics
- Default language

### `repose version`
Display version information.

## ๐Ÿ—๏ธ Project Structure

```
repose/
โ”œโ”€โ”€ lib/
โ”‚ โ””โ”€โ”€ repose/
โ”‚ โ”œโ”€โ”€ cli.rb # Command-line interface
โ”‚ โ”œโ”€โ”€ github_client.rb # GitHub API integration
โ”‚ โ”œโ”€โ”€ ai_generator.rb # Content generation
โ”‚ โ”œโ”€โ”€ config.rb # Configuration management
โ”‚ โ”œโ”€โ”€ errors.rb # Error definitions
โ”‚ โ””โ”€โ”€ version.rb # Version information
โ”œโ”€โ”€ exe/
โ”‚ โ””โ”€โ”€ repose # Executable
โ”œโ”€โ”€ spec/ # Comprehensive test suite
โ”‚ โ”œโ”€โ”€ repose/ # Unit tests
โ”‚ โ”œโ”€โ”€ integration_spec.rb # Integration tests
โ”‚ โ””โ”€โ”€ spec_helper.rb # Test configuration
โ””โ”€โ”€ .github/
โ””โ”€โ”€ workflows/
โ””โ”€โ”€ ci.yml # GitHub Actions CI
```

## ๐Ÿงช Development & Testing

### Setup Development Environment
```bash
git clone https://github.com/wesleyscholl/repose.git
cd repose
bundle install
```

### Run Tests
```bash
# Run all tests
bundle exec rspec

# Run with coverage
bundle exec rspec --format documentation

# Run specific test file
bundle exec rspec spec/repose/cli_spec.rb

# Run linting
bundle exec rubocop
```

### Test Coverage
Current test coverage: **96.63%** (373/386 lines)

- **Unit Tests**: Individual class and method testing
- **Integration Tests**: End-to-end workflow validation
- **Error Handling Tests**: Comprehensive error scenarios
- **Mock Tests**: External API interaction testing
- **Configuration Tests**: Secure file handling

### Development Tasks
```bash
# Install gem locally
rake install

# Run console with repose loaded
rake console

# Build and test
rake default # Runs tests + rubocop

# Release (maintainers only)
rake release
```

## ๐Ÿ”’ Security & Privacy

### Data Handling
- **Local Storage**: API keys stored locally with secure permissions (600)
- **No Data Collection**: No telemetry or usage tracking
- **API Communication**: Direct communication with GitHub/OpenAI APIs
- **Input Sanitization**: All user inputs validated and sanitized

### API Key Security
```bash
# Configuration file permissions
chmod 600 ~/.repose.yml

# Environment variable approach (more secure)
export GITHUB_TOKEN="your_token"
export OPENAI_API_KEY="your_key"
```

### Required Permissions
- **GitHub Token**: `repo` scope for repository creation
- **Gemini Key**: Standard API access (optional, for AI features)
- **Ollama**: Local service (optional, for privacy-focused AI)

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

### Development Workflow
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes with tests
4. Ensure tests pass (`bundle exec rspec`)
5. Lint your code (`bundle exec rubocop`)
6. Commit your changes (`git commit -m 'Add amazing feature'`)
7. Push to the branch (`git push origin feature/amazing-feature`)
8. Open a Pull Request

### Code Quality Standards
- **98%+ Test Coverage**: All new features must include comprehensive tests
- **RuboCop Compliance**: Code must pass all linting checks
- **Documentation**: Public methods and complex logic must be documented
- **Performance**: Consider performance implications of changes

## ๐Ÿ“Š Project Status

**Current State:** Production-ready AI-powered development tool with enterprise-grade reliability
**Tech Stack:** Ruby 3.0+, GitHub API integration, OpenAI AI generation, comprehensive CLI framework
**Achievement:** Intelligent repository management with 98.39% test coverage and production deployment

Repose represents the future of intelligent development tooling, combining AI-powered content generation with robust software engineering practices. This project showcases advanced API integration, secure configuration management, and comprehensive testing methodologies.

### Technical Achievements

- โœ… **Production-Ready Quality:** 96.63% test coverage with 181 comprehensive test examples across unit and integration testing
- โœ… **AI Content Generation:** Intelligent repository creation with context-aware descriptions, topics, and documentation
- โœ… **Multi-Language Support:** Built-in intelligence for 10+ programming languages and their popular frameworks
- โœ… **Secure Configuration:** Encrypted API key storage with industry-standard security practices
- โœ… **Beautiful CLI Experience:** Interactive prompts with preview capabilities and error handling

### Performance Metrics

- **Test Coverage:** 96.63% (373/386 lines) with comprehensive edge case coverage
- **API Response Time:** Sub-second repository creation with optimized GitHub API usage
- **Security Score:** Full compliance with secure credential management best practices
- **Framework Support:** 25+ frameworks across multiple programming languages
- **User Experience:** Interactive CLI with intelligent defaults and preview capabilities

### Recent Innovations

- ๐Ÿค– **Advanced AI Integration:** Multi-model content generation with context-aware improvements
- ๐Ÿ” **Security-First Design:** Encrypted configuration with environment variable support
- ๐ŸŽฏ **Framework Intelligence:** Automatic detection and suggestion of relevant project frameworks
- โšก **Performance Optimization:** Efficient API usage with intelligent caching and batching

### 2026-2027 Development Roadmap

**Q1 2026 โ€“ Advanced AI Capabilities**
- Multi-modal repository analysis with code pattern recognition
- Intelligent project structure generation based on language and framework
- AI-powered code quality assessment and improvement suggestions
- Advanced template engine with customizable project scaffolding

**Q2 2026 โ€“ Team Collaboration Features**
- Team workspace management with shared configuration profiles
- Collaborative repository templates with organization-wide standards
- Advanced permission management and role-based access control
- Integration with enterprise GitHub and GitLab instances

**Q3 2026 โ€“ DevOps Integration Suite**
- CI/CD pipeline generation with intelligent workflow recommendations
- Container and deployment configuration automation
- Cloud platform integration (AWS, GCP, Azure) with infrastructure-as-code
- Advanced monitoring and observability setup automation

**Q4 2026 โ€“ Enterprise Platform**
- Web-based repository management dashboard with team analytics
- API service for programmatic repository creation and management
- Advanced compliance and security scanning integration
- Custom plugin system for enterprise-specific workflows

**2027+ โ€“ AI-Driven Development Ecosystem**
- Predictive development assistance with project success metrics
- Automated code review and quality improvement suggestions
- Cross-platform development with unified project management
- Research collaboration for next-generation development tooling

### Next Steps

**For Individual Developers:**
1. Use Repose to streamline new project creation and reduce setup overhead
2. Leverage AI-generated documentation to improve project discoverability
3. Explore framework-specific templates to accelerate development workflows
4. Contribute custom templates and framework support for community benefit

**For Development Teams:**
- Standardize repository creation across team members with shared configurations
- Integrate with existing development workflows and CI/CD pipelines
- Use preview mode for reviewing generated content before repository creation
- Contribute organization-specific templates and customization options

**For DevOps Engineers:**
- Study secure configuration management patterns for credential handling
- Integrate repository creation into automated development environment setup
- Contribute to CI/CD pipeline generation and infrastructure automation features
- Research advanced security scanning and compliance automation capabilities

### Why Repose Leads Intelligent Development Tooling?

**AI-First Approach:** First comprehensive tool to combine intelligent content generation with robust software engineering practices.

**Production Quality:** Industry-standard testing coverage and security practices demonstrate enterprise-ready reliability.

**Developer Experience:** Beautiful CLI interface with intelligent defaults reduces cognitive load and accelerates development.

**Extensible Architecture:** Modular design enables easy addition of new languages, frameworks, and AI capabilities.

## ๐Ÿ› Troubleshooting

### Common Issues

**Q: "GitHub API error: Bad credentials"**
A: Check your GitHub token has `repo` permissions and is correctly configured.

**Q: "Command not found: repose"**
A: Ensure gem is installed: `gem install repose` and gem bin path is in $PATH.

**Q: "YAML parsing error"**
A: Check `~/.repose.yml` syntax. Delete file and run `repose configure` to recreate.

**Q: "Repository already exists"**
A: Choose a different repository name or check existing repositories.

### Debug Mode
```bash
# Enable verbose output
REPOSE_DEBUG=1 repose create my-project

# Check configuration
repose configure --show
```

### Getting Help
- ๐Ÿ“– [Documentation](https://github.com/wesleyscholl/repose/wiki)
- ๐Ÿ› [Issues](https://github.com/wesleyscholl/repose/issues)
- ๐Ÿ’ฌ [Discussions](https://github.com/wesleyscholl/repose/discussions)

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- **GitHub** for the excellent Octokit library and API
- **Ruby Community** for amazing gems that made this possible
- **TTY Toolkit** for beautiful CLI components
- **RSpec Team** for comprehensive testing framework
- **Contributors** who help improve Repose

## ๐Ÿท๏ธ Version History

- **v1.2.0** (2025-11-21): Major upgrade with emoji support, 20-topic generation, license selection, and improved GitHub authentication
- **v1.1.0** (2025-01-20): Published as `repo-composer` (gem name change), AI provider integration (Gemini + Ollama) with 96.63% test coverage
- **v1.0.0** (2025-11-07): Production release with 98.39% test coverage (as `repose`)
- **v0.1.0** (2024-11-07): Initial release with core functionality

---

**Made with โค๏ธ by [Wesley Scholl](https://github.com/wesleyscholl)**

*Repose: Where repositories compose themselves* โœจ

[Install](https://rubygems.org/gems/repose) โ€ข [Documentation](https://github.com/wesleyscholl/repose/wiki) โ€ข [GitHub](https://github.com/wesleyscholl/repose) โ€ข [Issues](https://github.com/wesleyscholl/repose/issues)