Update.
This commit is contained in:
parent
8db6f39046
commit
f8d650567a
@ -1,244 +0,0 @@
|
|||||||
# Snek Git Integration Guide
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Snek provides full Git repository hosting with HTTP/HTTPS support. You can clone, push, pull, and manage repositories directly through the web interface or using standard Git clients.
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
### Creating a Repository
|
|
||||||
|
|
||||||
1. Navigate to **Settings** → **Repositories**
|
|
||||||
2. Click **New Repository**
|
|
||||||
3. Enter a repository name (e.g., `myproject`)
|
|
||||||
4. Choose visibility (Public or Private)
|
|
||||||
5. Click **Create**
|
|
||||||
|
|
||||||
### Cloning Your Repository
|
|
||||||
|
|
||||||
After creating a repository, you'll see a clone URL on the repositories list page. Use this with your Git client:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone http://username:password@your-snek-server.com/git/YOUR_UID/reponame.git
|
|
||||||
```
|
|
||||||
|
|
||||||
Replace:
|
|
||||||
- `username` - Your Snek username
|
|
||||||
- `password` - Your Snek password
|
|
||||||
- `your-snek-server.com` - Your Snek server domain/IP
|
|
||||||
- `YOUR_UID` - Your user ID (shown in the clone URL)
|
|
||||||
- `reponame` - Your repository name
|
|
||||||
|
|
||||||
### Example Workflow
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Clone the repository
|
|
||||||
git clone http://john:mypass@localhost:8081/git/9c1cd9e5-19ce-4038-8637-d378400a4f33/myproject.git
|
|
||||||
|
|
||||||
# Make changes
|
|
||||||
cd myproject
|
|
||||||
echo "# My Project" > README.md
|
|
||||||
git add README.md
|
|
||||||
git commit -m "Initial commit"
|
|
||||||
|
|
||||||
# Push to Snek
|
|
||||||
git push origin main
|
|
||||||
```
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
### Web Interface
|
|
||||||
|
|
||||||
- **Browse Code**: View repository files and directories through the web browser
|
|
||||||
- **Commit History**: See recent commits with author and date information
|
|
||||||
- **Branch Management**: View and switch between branches
|
|
||||||
- **File Viewing**: Read file contents directly in the browser
|
|
||||||
|
|
||||||
### Git Client Support
|
|
||||||
|
|
||||||
Snek supports standard Git HTTP protocol. Any Git client works:
|
|
||||||
- Command-line `git`
|
|
||||||
- GitHub Desktop
|
|
||||||
- GitKraken
|
|
||||||
- VS Code Git integration
|
|
||||||
- IntelliJ IDEA Git plugin
|
|
||||||
|
|
||||||
## Repository URLs
|
|
||||||
|
|
||||||
Snek provides multiple URL formats:
|
|
||||||
|
|
||||||
### Clone URL (for Git clients)
|
|
||||||
```
|
|
||||||
http://username:password@server/git/USER_UID/repository.git
|
|
||||||
```
|
|
||||||
|
|
||||||
### Browse URL (web interface)
|
|
||||||
```
|
|
||||||
http://server/repository/USERNAME/repository
|
|
||||||
```
|
|
||||||
|
|
||||||
## Authentication
|
|
||||||
|
|
||||||
Git operations require HTTP Basic Authentication:
|
|
||||||
- **Username**: Your Snek username
|
|
||||||
- **Password**: Your Snek password
|
|
||||||
|
|
||||||
To avoid entering credentials every time, configure Git credential helper:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Store credentials (Linux/Mac)
|
|
||||||
git config --global credential.helper store
|
|
||||||
|
|
||||||
# After first push/pull, credentials are saved
|
|
||||||
```
|
|
||||||
|
|
||||||
## Permissions
|
|
||||||
|
|
||||||
- **Private repositories**: Only you can access
|
|
||||||
- **Public repositories**: Anyone can read, only you can write
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Authentication Failed
|
|
||||||
|
|
||||||
**Problem**: `fatal: Authentication failed`
|
|
||||||
|
|
||||||
**Solution**:
|
|
||||||
- Verify your username and password are correct
|
|
||||||
- Ensure you're using your Snek credentials, not Git credentials
|
|
||||||
- Check if Basic Auth is properly formatted in URL
|
|
||||||
|
|
||||||
### Repository Not Found
|
|
||||||
|
|
||||||
**Problem**: `fatal: repository not found`
|
|
||||||
|
|
||||||
**Solution**:
|
|
||||||
- Verify the repository exists in your Snek account
|
|
||||||
- Check the UID in the clone URL matches your user ID
|
|
||||||
- Ensure repository name is spelled correctly
|
|
||||||
|
|
||||||
### Push Rejected
|
|
||||||
|
|
||||||
**Problem**: `error: failed to push some refs`
|
|
||||||
|
|
||||||
**Solution**:
|
|
||||||
- Pull latest changes first: `git pull origin main`
|
|
||||||
- Resolve any merge conflicts
|
|
||||||
- Try push again
|
|
||||||
|
|
||||||
### SSL/TLS Errors
|
|
||||||
|
|
||||||
**Problem**: Certificate verification failed
|
|
||||||
|
|
||||||
**Solution**:
|
|
||||||
- If using self-signed certificate, disable SSL verification (development only):
|
|
||||||
```bash
|
|
||||||
git config --global http.sslVerify false
|
|
||||||
```
|
|
||||||
- For production, use proper SSL certificates
|
|
||||||
|
|
||||||
## Advanced Usage
|
|
||||||
|
|
||||||
### Working with Branches
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create a new branch
|
|
||||||
git checkout -b feature-branch
|
|
||||||
|
|
||||||
# Push new branch to Snek
|
|
||||||
git push origin feature-branch
|
|
||||||
|
|
||||||
# Switch branches
|
|
||||||
git checkout main
|
|
||||||
```
|
|
||||||
|
|
||||||
### Viewing Repository Info
|
|
||||||
|
|
||||||
Visit your repository settings page to see:
|
|
||||||
- Clone URL
|
|
||||||
- Repository size
|
|
||||||
- Creation date
|
|
||||||
- Public/Private status
|
|
||||||
|
|
||||||
### Deleting Repositories
|
|
||||||
|
|
||||||
1. Go to **Settings** → **Repositories**
|
|
||||||
2. Find the repository
|
|
||||||
3. Click **Delete**
|
|
||||||
4. Confirm deletion
|
|
||||||
|
|
||||||
**Warning**: This action cannot be undone. All commits and history will be lost.
|
|
||||||
|
|
||||||
## Technical Details
|
|
||||||
|
|
||||||
### Repository Storage
|
|
||||||
|
|
||||||
Repositories are stored as bare Git repositories in:
|
|
||||||
```
|
|
||||||
drive/repositories/USER_UID/repository.git
|
|
||||||
```
|
|
||||||
|
|
||||||
### Supported Git Operations
|
|
||||||
|
|
||||||
- Clone
|
|
||||||
- Pull
|
|
||||||
- Push
|
|
||||||
- Fetch
|
|
||||||
- Branch creation
|
|
||||||
- Tag creation
|
|
||||||
- All standard Git commands
|
|
||||||
|
|
||||||
### Protocol Support
|
|
||||||
|
|
||||||
- HTTP (git-upload-pack, git-receive-pack)
|
|
||||||
- Smart HTTP protocol
|
|
||||||
- Compression supported
|
|
||||||
- Large file support (up to 5GB per request)
|
|
||||||
|
|
||||||
## Security Best Practices
|
|
||||||
|
|
||||||
1. **Use strong passwords** for your Snek account
|
|
||||||
2. **Enable 2FA** if available
|
|
||||||
3. **Use HTTPS** in production (not HTTP)
|
|
||||||
4. **Keep repositories private** unless intended for public access
|
|
||||||
5. **Rotate credentials** periodically
|
|
||||||
6. **Don't commit secrets** (API keys, passwords, etc.)
|
|
||||||
|
|
||||||
## API Usage
|
|
||||||
|
|
||||||
For programmatic access, use the Git HTTP API:
|
|
||||||
|
|
||||||
### Create Repository
|
|
||||||
```bash
|
|
||||||
curl -u username:password -X POST \
|
|
||||||
http://server/git/create/myrepo
|
|
||||||
```
|
|
||||||
|
|
||||||
### Delete Repository
|
|
||||||
```bash
|
|
||||||
curl -u username:password -X DELETE \
|
|
||||||
http://server/git/delete/myrepo
|
|
||||||
```
|
|
||||||
|
|
||||||
### Get Repository Status
|
|
||||||
```bash
|
|
||||||
curl -u username:password \
|
|
||||||
http://server/git/status/myrepo
|
|
||||||
```
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
For issues or questions:
|
|
||||||
1. Check this guide first
|
|
||||||
2. Review error messages carefully
|
|
||||||
3. Check Snek application logs
|
|
||||||
4. Contact your Snek administrator
|
|
||||||
|
|
||||||
## Changelog
|
|
||||||
|
|
||||||
### Version 1.0
|
|
||||||
- Initial Git integration
|
|
||||||
- HTTP protocol support
|
|
||||||
- Web-based repository browser
|
|
||||||
- Basic authentication
|
|
||||||
- Public/Private repositories
|
|
||||||
Loading…
Reference in New Issue
Block a user