Skip to main content

signaloid-cli repos

Manage GitHub repositories connected to Signaloid Cloud Compute Engine.

Synopsis

signaloid-cli repos <command> [options]

Description

The repos command group allows you to connect GitHub repositories to Signaloid, manage their settings, and create builds from them. Connected repositories can be built on Signaloid's specialized compute cores.

Commands

  • list - List all connected repositories
  • get - Get details about a specific repository
  • connect - Connect a new GitHub repository to Signaloid
  • update - Update repository settings
  • disconnect - Disconnect a connected repository
  • builds - List builds for a specific repository

Complete Workflow Example

#!/bin/bash

# 1. Connect repository
echo "Connecting repository..."
REPO_RESPONSE=$(signaloid-cli repos connect \
--url https://github.com/signaloid/Signaloid-Demo-C-Template \
--branch main \
--dir src)

REPO_ID=$(echo $REPO_RESPONSE | jq -r '.RepositoryID')
echo "✓ Repository connected: $REPO_ID"

# 2. Verify connection
echo "Fetching repository details..."
signaloid-cli repos get --repo-id $REPO_ID

# 3. Create a build (see builds manual)
echo "Creating build..."
BUILD_RESPONSE=$(signaloid-cli builds create:repo --repo-id $REPO_ID)
BUILD_ID=$(echo $BUILD_RESPONSE | jq -r '.BuildID')
echo "✓ Build created: $BUILD_ID"

# 4. List builds for this repository
echo "Listing builds..."
signaloid-cli repos builds --repo-id $REPO_ID --limit 5

# 5. Update repository settings (if needed)
# signaloid-cli repos update --repo-id $REPO_ID --branch develop

# 6. Clean up (optional)
# signaloid-cli repos disconnect --repo-id $REPO_ID

GitHub Integration

Prerequisites

Before connecting repositories, ensure:

  1. Your GitHub account is connected to Signaloid
  2. You have access to the repository
  3. For private repos, GitHub OAuth is configured

Connecting GitHub Account

  1. Log in to signaloid.io
  2. Navigate to Settings → Integrations
  3. Connect your GitHub account
  4. Authorize Signaloid to access your repositories

Repository Requirements

Your repository should:

  • Contain C/C++ or Fortran source code
  • Have a valid build directory (default: src/)
  • Include necessary build files (Makefile, CMakeLists.txt, etc.)
  • Be accessible to your Signaloid account

Exit Codes

CodeDescription
0Success
1Error (authentication, invalid input, API error)

Configuration

Core IDs

Available core IDs can be listed with:

signaloid-cli cores list

Tips & Tricks

Extract and Use Repository IDs

# Get all repository IDs
REPO_IDS=$(signaloid-cli repos list | jq -r '.Repositories[].RepositoryID')

# Process each repository
for REPO_ID in $REPO_IDS; do
echo "Repository: $REPO_ID"
signaloid-cli repos builds --repo-id $REPO_ID --limit 1
done

Monitor Repository Builds

# Get latest build status for a repository
LATEST_BUILD=$(signaloid-cli repos builds --repo-id $REPO_ID --limit 1 | \
jq -r '.Builds[0]')

BUILD_ID=$(echo $LATEST_BUILD | jq -r '.BuildID')
STATUS=$(echo $LATEST_BUILD | jq -r '.Status')

echo "Latest build: $BUILD_ID (Status: $STATUS)"

Automated Repository Updates

#!/bin/bash

REPO_ID="rep_abc123"
BRANCH="main"

# Get current commit from GitHub
LATEST_COMMIT=$(git ls-remote https://github.com/user/project.git $BRANCH | cut -f1)

# Update repository to latest commit
signaloid-cli repos update \
--repo-id $REPO_ID \
--commit $LATEST_COMMIT \
--branch $BRANCH

echo "Repository updated to commit: $LATEST_COMMIT"

# Trigger new build
BUILD_ID=$(signaloid-cli builds create:repo --repo-id $REPO_ID | \
jq -r '.BuildID')
echo "New build created: $BUILD_ID"

See Also

Learn More