Closed
Description
Description of the problem, including code/CLI snippet
The CLI could do with some formatting refresh. Ideally, the command list could be formatted along with their relevant options to make it easier to read for --help
and provide just the command names for -h
.
A more modest improvement would be to print out (formatted) just the command names, always.
Expected Behavior
Something along the lines
For -h
or in error conditions:
$ gitlab
usage: gitlab [-h] [--version] [-v] [-d] [-c CONFIG_FILE] [-g GITLAB]
[-o {json,legacy,yaml}] [-f FIELDS] COMMAND
COMMAND list
application-settings
broadcast-message
...
project-merge-request-discussion-note
...
user-project
To view options specific to a command, run 'gitlab COMMAND --help'
gitlab: error: too few arguments
For full help (--help
):
$ gitlab --help
usage: gitlab [-h] [--version] [-v] [-d] [-c CONFIG_FILE] [-g GITLAB]
[-o {json,legacy,yaml}] [-f FIELDS] COMMAND
COMMAND list
application-settings
--option option-description
--option option-description
broadcast-message
--option option-description
--option option-description
...
project-merge-request-discussion-note
--option option-description
...
user-project
gitlab: error: too few arguments
Actual Behavior
$ gitlab -h
usage: gitlab [-h] [--version] [-v] [-d] [-c CONFIG_FILE] [-g GITLAB]
[-o {json,legacy,yaml}] [-f FIELDS]
{application-settings,broadcast-message,current-user,current-user-email,current-user-gp-gkey,current-user-key,deploy-key,dockerfile,event,feature,geo-node,gitignore,gitlabciyml,group,group-access-request,group-badge,group-board,group-board-list,group-custom-attribute,group-epic,group-epic-issue,group-issue,group-member,group-milestone,group-notification-settings,group-project,group-subgroup,group-variable,hook,issue,l-da-pgroup,license,namespace,notification-settings,pages-domain,project,project-access-request,project-approval,project-badge,project-board,project-board-list,project-branch,project-commit,project-commit-comment,project-commit-discussion,project-commit-discussion-note,project-commit-status,project-custom-attribute,project-deployment,project-environment,project-event,project-export,project-file,project-fork,project-hook,project-import,project-issue,project-issue-award-emoji,project-issue-discussion,project-issue-discussion-note,project-issue-link,project-issue-note,project-issue-note-award-emoji,project-job,project-key,project-label,project-member,project-merge-request,project-merge-request-approval,project-merge-request-award-emoji,project-merge-request-diff,project-merge-request-discussion,project-merge-request-discussion-note,project-merge-request-note,project-merge-request-note-award-emoji,project-milestone,project-note,project-notification-settings,project-pages-domain,project-pipeline,project-pipeline-job,project-pipeline-schedule,project-pipeline-schedule-variable,project-protected-branch,project-push-rules,project-runner,project-service,project-snippet,project-snippet-award-emoji,project-snippet-discussion,project-snippet-discussion-note,project-snippet-note,project-snippet-note-award-emoji,project-tag,project-trigger,project-user,project-variable,project-wiki,runner,runner-job,snippet,todo,user,user-activities,user-custom-attribute,user-email,user-event,user-gp-gkey,user-impersonation-token,user-key,user-project}
...
GitLab API Command Line Interface
optional arguments:
-h, --help show this help message and exit
--version Display the version.
-v, --verbose, --fancy
Verbose mode (legacy format only)
-d, --debug Debug mode (display HTTP requests)
-c CONFIG_FILE, --config-file CONFIG_FILE
Configuration file to use. Can be used multiple times.
-g GITLAB, --gitlab GITLAB
Which configuration section should be used. If not
defined, the default selection will be used.
-o {json,legacy,yaml}, --output {json,legacy,yaml}
Output format (v4 only): json|legacy|yaml
-f FIELDS, --fields FIELDS
Fields to display in the output (comma separated). Not
used with legacy output
object:
{application-settings,broadcast-message,current-user,current-user-email,current-user-gp-gkey,current-user-key,deploy-key,dockerfile,event,feature,geo-node,gitignore,gitlabciyml,group,group-access-request,group-badge,group-board,group-board-list,group-custom-attribute,group-epic,group-epic-issue,group-issue,group-member,group-milestone,group-notification-settings,group-project,group-subgroup,group-variable,hook,issue,l-da-pgroup,license,namespace,notification-settings,pages-domain,project,project-access-request,project-approval,project-badge,project-board,project-board-list,project-branch,project-commit,project-commit-comment,project-commit-discussion,project-commit-discussion-note,project-commit-status,project-custom-attribute,project-deployment,project-environment,project-event,project-export,project-file,project-fork,project-hook,project-import,project-issue,project-issue-award-emoji,project-issue-discussion,project-issue-discussion-note,project-issue-link,project-issue-note,project-issue-note-award-emoji,project-job,project-key,project-label,project-member,project-merge-request,project-merge-request-approval,project-merge-request-award-emoji,project-merge-request-diff,project-merge-request-discussion,project-merge-request-discussion-note,project-merge-request-note,project-merge-request-note-award-emoji,project-milestone,project-note,project-notification-settings,project-pages-domain,project-pipeline,project-pipeline-job,project-pipeline-schedule,project-pipeline-schedule-variable,project-protected-branch,project-push-rules,project-runner,project-service,project-snippet,project-snippet-award-emoji,project-snippet-discussion,project-snippet-discussion-note,project-snippet-note,project-snippet-note-award-emoji,project-tag,project-trigger,project-user,project-variable,project-wiki,runner,runner-job,snippet,todo,user,user-activities,user-custom-attribute,user-email,user-event,user-gp-gkey,user-impersonation-token,user-key,user-project}
Object to manipulate.
Specifications
- python-gitlab version: 1.5.1
- API version you are using (v3/v4): v4
- Gitlab server version (or gitlab.com): 10.8.3
Metadata
Metadata
Assignees
Labels
No labels