Overview
Dependify automatically detects whether you own a repository and adjusts its workflow accordingly. This ensures a smooth experience regardless of whether you’re modernizing your own code or contributing to external projects.Repository Ownership Detection
How It Works
When you submit a repository URL, Dependify performs automatic ownership detection:Dependify compares your authenticated GitHub username with the repository owner to determine ownership. This happens automatically before any code changes are made.
Owned Repositories
When you own the repository:Direct Branch Creation
Direct Branch Creation
- Dependify creates a new branch directly in your repository
- Branch name format:
dependify-{random-id}(e.g.,dependify-a3f2d8c1) - No fork is created
- Changes are pushed to your repository
PR Creation
PR Creation
- Pull request is created within your repository
- PR head is just the branch name (e.g.,
dependify-a3f2d8c1) - You can merge directly without dealing with forks
External Repositories
When you don’t own the repository:Automatic Fork Creation
Automatic Fork Creation
- Dependify creates a temporary staging fork under your account
- Fork serves solely as a staging area for the PR
- If a fork already exists, Dependify uses it
PR from Fork
PR from Fork
- Pull request is created from
your-username:branch-nametooriginal-owner:main - PR clearly indicates it’s from a fork
- Original repository owner receives the PR for review
Required GitHub Permissions
Personal Access Token Scopes
Dependify requires a GitHub Personal Access Token (Classic) with the following scopes:| Scope | Why It’s Needed |
|---|---|
repo | Full repository access - required for creating forks, pushing branches, and creating PRs |
user:email | Read user email (automatically included with OAuth) |
OAuth Permissions
When you authenticate with GitHub OAuth:- Session Duration: 7 days
- Token Storage: Securely stored in backend environment
- Token Usage: Used only for GitHub API operations (fork, clone, push, PR creation)
Public vs Private Repositories
Public Repositories
Full Support
Full Support
- ✅ Can modernize any public repository
- ✅ Fork creation works for all public repos
- ✅ PR creation from fork to original repo
- ✅ No additional permissions needed beyond authentication
Private Repositories
Owned Private Repos
Owned Private Repos
- ✅ Full support for private repos you own
- ✅ Direct branch creation and PR submission
- ⚠️ Requires
reposcope in your GitHub token
External Private Repos
External Private Repos
- ❌ Cannot fork private repositories you don’t have access to
- ✅ Works if you have collaborator access
- ⚠️ Repository owner must grant you appropriate permissions
GitHub’s API prevents forking private repositories unless you have explicit access. For external private repositories, ask the owner to add you as a collaborator first.
Rate Limits and Constraints
GitHub API Rate Limits
| Operation | Rate Limit | Notes |
|---|---|---|
| Authenticated Requests | 5,000/hour | Applies to all GitHub API calls |
| Fork Creation | ~60/hour | GitHub may throttle fork creation |
| PR Creation | No specific limit | Subject to general rate limit |
Repository Size Constraints
File Count
File Count
- Recommended: Up to 500 files
- Maximum: No hard limit, but processing time increases
- Parallel Processing: Modal containers handle 100+ files efficiently
File Size
File Size
- Recommended: Files under 10,000 lines
- AI Processing: Very large files may be skipped or chunked
- GitHub Limits: PRs with 3,000+ changed files may be difficult to review
Clone Time
Clone Time
- Large Repos: Repos with extensive history may take longer to clone
- Timeout: 30 seconds for API operations
- Optimization: Dependify only clones what’s necessary for modernization
Supported Languages
Currently optimized for:- ✅ JavaScript (ES5 → ES6+, modern patterns)
- ✅ TypeScript (class components → functional, type improvements)
- ✅ Python (Python 2 → Python 3, modern syntax)
- 🚧 Other languages: Partial support, expanding in future releases
Workflow Examples
Example 1: Your Own Repository
Example 2: External Public Repository
Example 3: Private Repository (Collaborator)
Best Practices
Before Running Dependify
Before Running Dependify
- Ensure you have proper permissions for private repositories
- Check that your GitHub token has the
reposcope - Verify the repository is not archived or read-only
After PR Creation
After PR Creation
- Review all changes in the “Files changed” tab
- Run your test suite on the PR branch
- For external repos: Delete your fork after the PR is merged/closed
Rate Limit Management
Rate Limit Management
- Avoid processing too many repositories in rapid succession
- If you hit rate limits, wait for the hourly reset
- Consider spacing out large batch operations
Troubleshooting
”Failed to create fork”
Possible Causes
Possible Causes
- You’ve already forked the repository (Dependify will use existing fork)
- Repository is private and you don’t have access
- GitHub API rate limit exceeded
- Token doesn’t have
reposcope
Solutions
Solutions
- Check if fork already exists at
github.com/your-username/repo-name - Verify you have access to the repository
- Wait for rate limit reset
- Regenerate token with proper scopes
”Could not get authenticated user”
Possible Causes
Possible Causes
- GitHub token is invalid or expired
- Token missing required permissions
- Network connectivity issues
Solutions
Solutions
- Re-authenticate with GitHub OAuth
- Generate a new Personal Access Token
- Check your internet connection
”Failed to push to remote”
Possible Causes
Possible Causes
- Token authentication failed
- Repository is archived or protected
- Branch protection rules block push
Solutions
Solutions
- Verify token is correctly configured
- Check repository settings for protections
- Ensure you have write access to the repository
Related Documentation
- Fork Handling Guide - Deep dive into fork creation and cleanup
- Understanding Changelogs - How to read AI-generated PR descriptions
- Best Practices - Tips for effective code modernization