signaloid-cli github
Manage GitHub integration with Signaloid.
Synopsis
signaloid-cli github <command> [options]
Description
The github command group allows you to manage GitHub account integration with Signaloid. This integration enables:
- Connecting Signaloid to your GitHub account
- Accessing private repositories
- Building and running code from GitHub repos
- Automated CI/CD workflows
- Repository management through Signaloid
Commands
- status - Display current GitHub integration status
- connect - Create or update GitHub integration
- disconnect - Remove GitHub integration
- proxy - Proxy GitHub API requests
- repos - List accessible GitHub repositories
- branches - List repository branches
GitHub Integration
Authentication
To integrate GitHub with Signaloid, you need:
- GitHub Username - Your GitHub account username
- Personal Access Token (PAT) - A GitHub token with appropriate permissions
Required Permissions
Your GitHub Personal Access Token should have:
repo- Full control of private repositoriesread:org- Read organization membership (if using org repos)
Creating a GitHub PAT
- Go to GitHub Settings → Developer settings → Personal access tokens
- Click "Generate new token"
- Select required scopes (
repo,read:org) - Generate and copy the token
Common Workflows
Initial Setup
# 1. Check current GitHub integration status
signaloid-cli github status
# 2. Connect GitHub account
signaloid-cli github connect \
--username myusername \
--token ghp_abc123xyz...
# 3. Verify connection
signaloid-cli github repos
Repository Integration
# 1. List accessible repos
signaloid-cli github repos
# 2. Connect a repository to Signaloid
signaloid-cli repos connect \
--url https://github.com/myusername/myrepo
# 3. List branches
signaloid-cli github branches \
--owner myusername \
--repo myrepo
# 4. Create build from repository
signaloid-cli builds create:repo \
--repo-id <repo-id> \
--branch main
CI/CD Automation
#!/bin/bash
# Automated build on push
REPO_ID="repo-abc123"
BRANCH="main"
# Get latest commit
COMMIT=$(signaloid-cli github branches \
--owner myusername \
--repo myrepo | \
jq -r '.[] | select(.name == "main") | .commit.sha')
# Create build
BUILD_ID=$(signaloid-cli builds create:repo \
--repo-id $REPO_ID \
--commit $COMMIT | \
jq -r '.BuildID')
# Wait for build
signaloid-cli builds watch --build-id $BUILD_ID
# Run task if build succeeds
if [ $? -eq 0 ]; then
signaloid-cli tasks create --build-id $BUILD_ID
fi
GitHub API Proxy
The proxy command allows you to make GitHub API requests through Signaloid:
# Get user information
signaloid-cli github proxy --path user
# List repositories
signaloid-cli github proxy --path user/repos
# Get repository details
signaloid-cli github proxy --path repos/owner/name
# List branches
signaloid-cli github proxy --path repos/owner/name/branches
Complete Integration Example
#!/bin/bash
# 1. Connect GitHub
echo "Connecting GitHub account..."
signaloid-cli github connect \
--username myusername \
--token $GITHUB_TOKEN
# 2. Verify connection
echo "Verifying connection..."
signaloid-cli github status
# 3. List available repos
echo "Available repositories:"
signaloid-cli github repos | jq -r '.[].full_name'
# 4. Connect specific repo to Signaloid
echo "Connecting repository..."
REPO_RESPONSE=$(signaloid-cli repos connect \
--url https://github.com/myusername/myproject \
--branch main)
REPO_ID=$(echo $REPO_RESPONSE | jq -r '.RepositoryID')
echo "Repository connected: $REPO_ID"
# 5. Create build from repo
echo "Creating build..."
BUILD_ID=$(signaloid-cli builds create:repo \
--repo-id $REPO_ID | jq -r '.BuildID')
# 6. Watch build progress
signaloid-cli builds watch --build-id $BUILD_ID
# 7. Run task
TASK_ID=$(signaloid-cli tasks create \
--build-id $BUILD_ID | jq -r '.TaskID')
# 8. Get results
signaloid-cli tasks watch --task-id $TASK_ID
signaloid-cli tasks output --task-id $TASK_ID
Multiple Accounts
You can manage GitHub integration for different users:
# Check another user's GitHub status (requires permissions)
signaloid-cli github status --user-id user-xyz
# Connect GitHub for specific user
signaloid-cli github connect \
--user-id user-xyz \
--username their-github-username \
--token their-github-token
Security Considerations
Token Storage
- Tokens are securely stored in Signaloid's infrastructure
- Never commit tokens to version control
- Rotate tokens periodically
Token Scope
- Use minimum required permissions
- Create separate tokens for different purposes
- Revoke unused tokens
Best Practices
# Store token in environment variable
export GITHUB_TOKEN="ghp_..."
# Use in command
signaloid-cli github connect \
--username myusername \
--token "$GITHUB_TOKEN"
# Clear token from environment when done
unset GITHUB_TOKEN
Troubleshooting
Connection Issues
# Check current status
signaloid-cli github status
# Reconnect with updated token
signaloid-cli github connect \
--username myusername \
--token $NEW_TOKEN
# Test connection with repo list
signaloid-cli github repos
Repository Access
# Verify repo is accessible
signaloid-cli github proxy \
--path repos/owner/name
# Check if token has correct permissions
signaloid-cli github proxy --path user | jq '.scopes'
Exit Codes
| Code | Description |
|---|---|
0 | Success |
1 | Error (authentication failed, invalid token, API error) |
See Also
- signaloid-cli repos - Repository management
- signaloid-cli builds - Build from repositories
- GitHub Personal Access Tokens - Creating PATs