Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
813863c
Add CLI metadata extractor with import-based resolution
llewellyn-sl Jan 12, 2026
a68b042
Phase 2: Improve CLI annotation descriptions (compute-envs complete)
llewellyn-sl Jan 12, 2026
45737ea
Phase 2: Improve CLI annotation descriptions (all families complete)
llewellyn-sl Jan 12, 2026
bb24911
Update CLI metadata with Phase 2 improvements
llewellyn-sl Jan 12, 2026
c66893d
Update progress.md with Phase 2 completion details
llewellyn-sl Jan 13, 2026
946dc00
Phase 2.5: Fix metadata extractor bug and design OpenAPI mapping stra…
llewellyn-sl Jan 13, 2026
1170fca
Phase 3: Enrich CLI option descriptions with OpenAPI spec
llewellyn-sl Jan 13, 2026
9f7e331
Fix pattern matching to support @CommandLine.Option annotations
llewellyn-sl Jan 13, 2026
2bc6afa
Update LabelsOptionalOptions mixin with enriched description
llewellyn-sl Jan 13, 2026
598379a
Support nested API fields with $ref resolution in enrichment
llewellyn-sl Jan 13, 2026
992f504
Manual descriptions for those missing from OpenAPI spec
llewellyn-sl Jan 13, 2026
0a83b67
Phase 3f: Compute-envs mapping investigation and example enrichment
llewellyn-sl Jan 13, 2026
9cc9f3f
Enrich all compute environment Platform classes with OpenAPI descript…
llewellyn-sl Jan 13, 2026
c5e6c2d
Update progress.md with Phase 3g: Platform Class Enrichment
llewellyn-sl Jan 13, 2026
ef20ab1
Enrich all credential Provider classes with OpenAPI descriptions
llewellyn-sl Jan 13, 2026
36db0df
Phase 3i: Enrich all Runs family command options
llewellyn-sl Jan 13, 2026
8077bf0
Phase 3j: Enrich Organizations, Teams, and Members command options
llewellyn-sl Jan 13, 2026
56f9961
Update progress.md with Phase 3i (Runs) and Phase 3j (Orgs/Teams/Memb…
llewellyn-sl Jan 13, 2026
864be70
Add Claude Code configuration and enrich-cli-help skill for contributors
llewellyn-sl Jan 13, 2026
0c5db81
Add GitHub Actions workflow to trigger docs updates on CLI releases
llewellyn-sl Jan 14, 2026
a83ca34
Update CLI metadata with enriched descriptions from Phases 3g-3j
llewellyn-sl Jan 14, 2026
3e5564d
Phase 4: Add CLI examples extractor with 208 categorized examples
llewellyn-sl Jan 15, 2026
1ba4d69
Clean up PR: Move research to dedicated repo and create concise docs
llewellyn-sl Jan 16, 2026
3c5ea06
Potential fix for code scanning alert no. 9: Workflow does not contai…
llewellyn-sl Jan 16, 2026
3c8f081
feat: Remove Google Life Sciences support (#570)
alberto-miranda Jan 14, 2026
606b7e7
Handle 403 responses with attached message. Modify previous default m…
tcrespog Jan 13, 2026
86c4c68
feat: Add support for single VM compute environments (#567)
alberto-miranda Jan 13, 2026
86176f4
Update CLI metadata with new Cloud compute environment commands
llewellyn-sl Jan 16, 2026
660bfa7
Phase 3k: Enrich Cloud compute environment platform options
llewellyn-sl Jan 16, 2026
11dfdb0
Merge branch 'master' into ll-metadata-extractor-and-docs-automation
llewellyn-sl Jan 16, 2026
766ade1
Update .claude/skills/enrich-cli-help/SKILL.md
llewellyn-sl Jan 22, 2026
2a821a9
Remove automation infrastructure files - moved to ll-cli-docs-automat…
llewellyn-sl Jan 22, 2026
51a53b1
Fix CLI help descriptions to correctly indicate Platform-side defaults
llewellyn-sl Jan 29, 2026
faf7e1f
Apply suggestion from @llewellyn-sl
llewellyn-sl Jan 29, 2026
4cce203
Fix remaining Platform-side defaults and lowercase pipeline references
llewellyn-sl Jan 29, 2026
37d9df0
Address remaining PR 569 review feedback
llewellyn-sl Jan 29, 2026
1677c4d
Merge remote-tracking branch 'origin/master' into ll-metadata-extract…
llewellyn-sl Jan 29, 2026
166173a
Enrich instance-type-size description from PR 573
llewellyn-sl Jan 29, 2026
c80981a
Enrich GoogleBatchPlatform instance template descriptions
llewellyn-sl Jan 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/main/java/io/seqera/tower/cli/Tower.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@

@Command(
name = "tw",
description = "Nextflow Tower CLI.",
description = "Seqera Platform CLI",
subcommands = {
ActionsCmd.class,
CollaboratorsCmd.class,
Expand All @@ -81,19 +81,19 @@ public class Tower extends AbstractCmd {
@Spec
public CommandSpec spec;

@Option(names = {"-t", "--access-token"}, description = "Tower personal access token (TOWER_ACCESS_TOKEN).", defaultValue = "${TOWER_ACCESS_TOKEN}")
@Option(names = {"-t", "--access-token"}, description = "Seqera Platform personal access token (TOWER_ACCESS_TOKEN)", defaultValue = "${TOWER_ACCESS_TOKEN}")
public String token;

@Option(names = {"-u", "--url"}, description = "Tower server API endpoint URL (TOWER_API_ENDPOINT) [default: 'api.cloud.seqera.io'].", defaultValue = "${TOWER_API_ENDPOINT:-https://api.cloud.seqera.io}")
@Option(names = {"-u", "--url"}, description = "Seqera Platform API endpoint URL (TOWER_API_ENDPOINT) [default: 'api.cloud.seqera.io']", defaultValue = "${TOWER_API_ENDPOINT:-https://api.cloud.seqera.io}")
public String url;

@Option(names = {"-o", "--output"}, description = "Show output in defined format (only the 'json' option is available at the moment).", defaultValue = "${TOWER_CLI_OUTPUT_FORMAT:-console}")
@Option(names = {"-o", "--output"}, description = "Show output in defined format (currently supports 'json')", defaultValue = "${TOWER_CLI_OUTPUT_FORMAT:-console}")
public OutputType output;

@Option(names = {"-v", "--verbose"}, description = "Show HTTP request/response logs at stderr.")
public boolean verbose;

@Option(names = {"--insecure"}, description = "Explicitly allow to connect to a non-SSL secured Tower server (this is not recommended).")
@Option(names = {"--insecure"}, description = "Explicitly allow to connect to a non-SSL secured Seqera Platform server (not recommended)")
public boolean insecure;

public Tower() {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/ActionsCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

@CommandLine.Command(
name = "actions",
description = "Manage actions.",
description = "Manage pipeline actions",
subcommands = {
ListCmd.class,
ViewCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

@CommandLine.Command(
name = "collaborators",
description = "Manage organization collaborators.",
description = "Manage organization collaborators",
subcommands = {
ListCmd.class,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

@Command(
name = "compute-envs",
description = "Manage workspace compute environments.",
description = "Manage compute environments.",
subcommands = {
AddCmd.class,
UpdateCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

@Command(
name = "credentials",
description = "Manage workspace credentials.",
description = "Manage workspace credentials",
subcommands = {
AddCmd.class,
UpdateCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

@CommandLine.Command(
name = "data-links",
description = "Manage data-links.",
description = "Manage data links",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

@CommandLine.Command(
name = "datasets",
description = "Manage datasets.",
description = "Manage datasets",
subcommands = {
AddCmd.class,
DeleteCmd.class,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/InfoCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

@CommandLine.Command(
name = "info",
description = "System info and health status."
description = "Show system info and health status"
)
public class InfoCmd extends AbstractRootCmd {
@Override
Expand Down
46 changes: 23 additions & 23 deletions src/main/java/io/seqera/tower/cli/commands/LaunchCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,41 +52,41 @@

@Command(
name = "launch",
description = "Launch a Nextflow pipeline execution."
description = "Launch a pipeline"
)
public class LaunchCmd extends AbstractRootCmd {

@Parameters(index = "0", paramLabel = "PIPELINE_OR_URL", description = "Workspace pipeline name or full pipeline URL.", arity = "1")
@Parameters(index = "0", paramLabel = "PIPELINE_OR_URL", description = "Workspace pipeline name or pipeline URL", arity = "1")
String pipeline;

@CommandLine.Mixin
public WorkspaceOptionalOptions workspace;

@Option(names = {"--params-file"}, description = "Pipeline parameters in either JSON or YML format.")
@Option(names = {"--params-file"}, description = "Pipeline parameters in JSON or YAML format. Provide the path to a file containing the content.")
Path paramsFile;

@Option(names = {"-c", "--compute-env"}, description = "Compute environment name [default: primary compute environment].")
@Option(names = {"-c", "--compute-env"}, description = "Compute environment identifier where the pipeline will run. Defaults to workspace primary compute environment if omitted. Provide the name or identifier.")
Comment thread
llewellyn-sl marked this conversation as resolved.
String computeEnv;

@Option(names = {"-n", "--name"}, description = "Custom workflow run name")
@Option(names = {"-n", "--name"}, description = "Custom run name for the workflow execution.")
String name;

@Option(names = {"--work-dir"}, description = "Path where the pipeline scratch data is stored.")
@Option(names = {"--work-dir"}, description = "Work directory path where workflow intermediate files are stored. Defaults to compute environment work directory if omitted.")
String workDir;

@Option(names = {"-p", "--profile"}, split = ",", description = "Comma-separated list of one or more configuration profile names you want to use for this pipeline execution.")
@Option(names = {"-p", "--profile"}, split = ",", description = "Array of Nextflow configuration profile names to apply.")
List<String> profile;

@Option(names = {"-r", "--revision"}, description = "A valid repository commit Id, tag or branch name.")
@Option(names = {"-r", "--revision"}, description = "Git revision, branch, or tag to use.")
String revision;

@Option(names = {"--wait"}, description = "Wait until given status or fail. Valid options: ${COMPLETION-CANDIDATES}.")
@Option(names = {"--wait"}, description = "Wait until workflow reaches specified status: ${COMPLETION-CANDIDATES}")
Comment thread
llewellyn-sl marked this conversation as resolved.
public WorkflowStatus wait;

@Option(names = {"-l", "--labels"}, split = ",", description = "Comma-separated list of labels for the pipeline. Use 'key=value' format for resource labels.", converter = Label.LabelConverter.class)
@Option(names = {"-l", "--labels"}, split = ",", description = "Labels to assign to each pipeline run. Provide comma-separated label values (use key=value format for resource labels). Labels will be created if they don't exist", converter = Label.LabelConverter.class)
List<Label> labels;

@Option(names = {"--launch-container"}, description = "Container to be used to run the nextflow head job (BETA).")
@Option(names = {"--launch-container"}, description = "Container image to use for the Nextflow launcher.")
String launchContainer;

@ArgGroup(heading = "%nAdvanced options:%n", validate = false)
Expand Down Expand Up @@ -258,43 +258,43 @@ private AdvancedOptions adv() {

public static class AdvancedOptions {

@Option(names = {"--config"}, description = "Additional Nextflow config file.")
@Option(names = {"--config"}, description = "Nextflow configuration as text (overrides config files). Provide the path to a file containing the content.")
public Path config;

@Option(names = {"--pre-run"}, description = "Bash script that is executed in the same environment where Nextflow runs just before the pipeline is launched.")
@Option(names = {"--pre-run"}, description = "Add a script that executes in the nf-launch script prior to invoking Nextflow processes. See: https://docs.seqera.io/platform-cloud/launch/advanced#pre-and-post-run-scripts. Provide the path to a file containing the content.")
public Path preRunScript;

@Option(names = {"--post-run"}, description = "Bash script that is executed in the same environment where Nextflow runs immediately after the pipeline completion.")
@Option(names = {"--post-run"}, description = "Add a script that executes after all Nextflow processes have completed. See: https://docs.seqera.io/platform-cloud/launch/advanced#pre-and-post-run-scripts. Provide the path to a file containing the content.")
public Path postRunScript;

@Option(names = {"--pull-latest"}, description = "Enable Nextflow to pull the latest repository version before running the pipeline.")
@Option(names = {"--pull-latest"}, description = "Pull the latest version of the pipeline from the repository.")
public Boolean pullLatest;

@Option(names = {"--stub-run"}, description = "Execute the workflow replacing process scripts with command stubs.")
@Option(names = {"--stub-run"}, description = "Execute a stub run for testing (processes return dummy results).")
public Boolean stubRun;

@Option(names = {"--main-script"}, description = "Pipeline main script file if different from `main.nf`.")
@Option(names = {"--main-script"}, description = "Alternative main script filename. Default: `main.nf`.")
public String mainScript;

@Option(names = {"--entry-name"}, description = "Main workflow name to be executed when using DLS2 syntax.")
@Option(names = {"--entry-name"}, description = "Workflow entry point name when using Nextflow DSL2.")
public String entryName;

@Option(names = {"--schema-name"}, description = "Schema name.")
@Option(names = {"--schema-name"}, description = "Name of the pipeline schema to use.")
public String schemaName;

@Option(names = {"--user-secrets"}, split = ",", description = "Pipeline Secrets required by the pipeline execution that belong to the launching user personal context. User's secrets will take precedence over workspace secrets with the same name.")
@Option(names = {"--user-secrets"}, split = ",", description = "Array of user secrets to make available to the pipeline.")
public List<String> userSecrets;

@Option(names = {"--workspace-secrets"}, split = ",", description = "Pipeline Secrets required by the pipeline execution. Those secrets must be defined in the launching workspace.")
@Option(names = {"--workspace-secrets"}, split = ",", description = "Array of workspace secrets to make available to the pipeline.")
public List<String> workspaceSecrets;

@Option(names = {"--disable-optimization"}, description = "Turn off the optimization for the pipeline before launching.")
public Boolean disableOptimization;

@Option(names = {"--head-job-cpus"}, description = "The number of CPUs to be allocated for the Nextflow runner job (overrides compute environment setting).")
@Option(names = {"--head-job-cpus"}, description = "Number of CPUs allocated for the Nextflow head job.")
public Integer headJobCpus;

@Option(names = {"--head-job-memory"}, description = "The number of MiB of memory reserved for the Nextflow runner job (overrides compute environment setting).")
@Option(names = {"--head-job-memory"}, description = "Memory allocation for the Nextflow head job in megabytes.")
public Integer headJobMemoryMb;

}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/MembersCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

@CommandLine.Command(
name = "members",
description = "Manage organization members.",
description = "Manage organization members",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

@CommandLine.Command(
name = "organizations",
description = "Manage organizations.",
description = "Manage organizations",
subcommands = {
ListCmd.class,
DeleteCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

@CommandLine.Command(
name = "participants",
description = "Manage workspace participants.",
description = "Manage workspace participants",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

@Command(
name = "pipelines",
description = "Manage workspace pipeline launchpad.",
description = "Manage pipelines",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/RunsCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

@CommandLine.Command(
name = "runs",
description = "Manage workspace pipeline runs.",
description = "Manage pipeline runs",
subcommands = {
ViewCmd.class,
ListCmd.class,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/SecretsCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

@Command(
name = "secrets",
description = "Manage workspace secrets.",
description = "Manage secrets",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/StudiosCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

@CommandLine.Command(
name = "studios",
description = "Manage studios.",
description = "Manage studios",
subcommands = {
ViewCmd.class,
ListCmd.class,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/seqera/tower/cli/commands/TeamsCmd.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

@CommandLine.Command(
name = "teams",
description = "Manage organization teams.",
description = "Manage teams",
subcommands = {
ListCmd.class,
AddCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

@CommandLine.Command(
name = "workspaces",
description = "Manage workspaces.",
description = "Manage workspaces",
subcommands = {
ListCmd.class,
DeleteCmd.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ public class ActionRefOptions {

public static class ActionRef {

@CommandLine.Option(names = {"-i", "--id"}, description = "Action unique id.")
@CommandLine.Option(names = {"-i", "--id"}, description = "Action unique identifier")
public String actionId;

@CommandLine.Option(names = {"-n", "--name"}, description = "Action name.")
@CommandLine.Option(names = {"-n", "--name"}, description = "Action name")
public String actionName;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

@CommandLine.Command(
name = "add",
description = "Add a new Pipeline Action.",
description = "Add a pipeline action",
subcommands = {
AddGitHubCmd.class,
AddTowerCmd.class
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

@CommandLine.Command(
name = "delete",
description = "Delete a Pipeline Action."
description = "Delete a pipeline action"
)
public class DeleteCmd extends AbstractActionsCmd {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import java.io.IOException;
import java.util.Collections;

@CommandLine.Command(name = "labels", description = "Manages labels for actions.")
@CommandLine.Command(name = "labels", description = "Manage pipeline action labels")
public class LabelsCmd extends AbstractActionsCmd {

@CommandLine.Mixin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

@CommandLine.Command(
name = "list",
description = "List the available Pipeline Actions for the authenticated user or given workspace."
description = "List pipeline actions"
)
public class ListCmd extends AbstractActionsCmd {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,17 @@

@CommandLine.Command(
name = "update",
description = "Update a Pipeline Action."
description = "Update a pipeline action"
)
public class UpdateCmd extends AbstractActionsCmd {

@CommandLine.Mixin
ActionRefOptions actionRefOptions;

@CommandLine.Option(names = {"-s", "--status"}, description = "Action status (pause or active).")
@CommandLine.Option(names = {"-s", "--status"}, description = "Action status (pause or active)")
public String status;

@CommandLine.Option(names = {"--new-name"}, description = "Action new name.")
@CommandLine.Option(names = {"--new-name"}, description = "Updated action name. Must be unique per workspace. Names consist of alphanumeric, hyphen, and underscore characters.")
public String newName;

@CommandLine.Mixin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

@CommandLine.Command(
name = "view",
description = "Describe an existing Pipeline Action."
description = "View pipeline action details"
)
public class ViewCmd extends AbstractActionsCmd {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

@CommandLine.Command(
name = "github",
description = "Add a GitHub action."
description = "Add a pipeline action triggered by GitHub events"
)
public class AddGitHubCmd extends AbstractAddCmd {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

@CommandLine.Command(
name = "tower",
description = "Add a Tower action."
description = "Add a pipeline action triggered by Seqera Platform events"
)
public class AddTowerCmd extends AbstractAddCmd {
@Override
Expand Down
Loading