skart Command-Line Interface
Command Line Interface: skart
Command - Object matrix
This is a table/matrix of the existing commands of skart and what they can
do with a specific objects.
Commands:
get
update
set
trigger
invoke-recursive
Objects:
dependency (e.g., libraries or packages)
repository (GitLab repositories)
branch (Git branches within a repository)
sink (Target for a specific dependency)
pipeline (GitLab CI/CD pipelines)
This table lists the various commands available in the skart CLI tool.
Command |
Description |
|---|---|
|
Fetch details about a specific dependency or all dependencies if none is specified. |
|
Update a specific dependency or all dependencies if none is specified. |
|
Set the target |
|
Trigger an operation on a specific |
|
Recursively invoke a shell command across multiple repositories. |
This table outlines the various options available for the skart commands.
Option |
Description |
|---|---|
|
The specific dependency you want to manage (used in |
|
Specify a file listing dependencies (default: |
|
Use this branch instead of automatically detecting the current branch via Git. |
|
Use mode information from the given dependency file for package configuration. |
|
GitLab parameters like |
|
Provide TOML-style direct configuration of dependencies (ignores |
|
Set the number of seconds to wait for GitLab pipelines to finish before proceeding (default: |
|
Interval (in seconds) to re-check pipeline status while waiting (default: |
|
Enable verbose logging for more detailed output during execution. |
Error Handling
When running get or update commands:
If a dependency fails to process (e.g., due to GitLab API errors, authentication issues, or missing artifacts),
skartwill:Log a user-friendly error message indicating which dependency failed and why
Continue processing remaining dependencies
Report a summary of all failed dependencies at the end
Exit with a non-zero exit code (1) to indicate failure
This behavior ensures that temporary issues with one dependency (such as a 403 Forbidden error) don’t prevent other dependencies from being updated.
Example error output:
ERROR: Failed to process dependency 'console-image': 403: 403 Forbidden
ERROR: Failed to process 1 dependencies: console-image
This table summarizes common workflows associated with the skart CLI.
Workflow |
Command Example |
Description |
|---|---|---|
Fetch a specific dependency |
|
Fetches details for the specified dependency. |
Fetch all dependencies |
|
Retrieves details for all dependencies in the |
Update a specific dependency |
|
Updates the specified dependency. |
Update all dependencies |
|
Updates all dependencies listed in the |
Set a dependency |
|
Sets the sink for a dependency with optional key-value pair data. |
Trigger a repository build |
|
Triggers a build for a repository, optionally specifying the branch to use. |
Invoke recursive command |
|
Recursively runs a shell command across multiple repositories. |
Wait for pipelines to complete |
|
Waits for up to 60 seconds for running/pending pipelines to complete before updating dependencies. |
Usage
> skart --help
Manage dependencies between SKA repositories
Usage:
skart [options] get [<dependency>]
skart [options] update [<dependency>]
skart [options] set <dependency> <sink> [<data=value>...]
skart [options] help [<subject>]
skart [options] trigger <repository> [<branch>]
skart [options] invoke-recursive [--] [<command>...]
Options:
<dependency> The specific dependency you want to manage.
--dep-file <file> Specify a file listing dependencies
(default: skart.toml).
--branch <branch> Use this branch instead of auto-detecting
the current branch (default: query using git)
--mode <mode> Use <mode> information from the specified
dependency file.
--gitlab-config=<k=v> Provide GitLab parameters, e.g., private_token=....
--dep-config=<""> TOML-style configuration data for dependencies.
If used, the dependency file (--dep-file) is ignored.
--wait=<N> Time (in seconds) to wait for GitLab pipelines to
finish before proceeding (default: 0).
--requery=<N> Interval (in seconds) to re-check pipeline status
while waiting (default: 5).
-v Enable verbose logging for more detailed output
during execution.