mirror of https://gitlab.com/gitlab-org/cli.git
docs: add linting and checks to documentation
This commit is contained in:
parent
74f5004d57
commit
f95b6ea90c
|
@ -16,6 +16,7 @@ default:
|
||||||
image: golang:1.18
|
image: golang:1.18
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- review-docs
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
@ -37,6 +38,15 @@ include:
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- .go/pkg/mod/
|
- .go/pkg/mod/
|
||||||
|
|
||||||
|
check_docs_markdown:
|
||||||
|
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.16-vale-2.20.1-markdownlint-0.32.2
|
||||||
|
stage: review-docs
|
||||||
|
script:
|
||||||
|
# Lint prose
|
||||||
|
- vale --minAlertLevel error docs README.md
|
||||||
|
# Lint Markdown
|
||||||
|
- markdownlint --config .markdownlint.yml 'docs/**/*.md' README.md
|
||||||
|
|
||||||
code_navigation:
|
code_navigation:
|
||||||
stage: test
|
stage: test
|
||||||
|
|
|
@ -0,0 +1,153 @@
|
||||||
|
---
|
||||||
|
# Base Markdownlint configuration
|
||||||
|
# Extended Markdownlint configuration in doc/.markdownlint/
|
||||||
|
default: true
|
||||||
|
first-header-h1: true
|
||||||
|
header-style:
|
||||||
|
style: "atx"
|
||||||
|
ul-style:
|
||||||
|
style: "dash"
|
||||||
|
no-trailing-spaces: false
|
||||||
|
line-length: false
|
||||||
|
no-duplicate-header:
|
||||||
|
allow_different_nesting: true
|
||||||
|
no-trailing-punctuation:
|
||||||
|
punctuation: ".,;:!。,;:!?"
|
||||||
|
ol-prefix:
|
||||||
|
style: "one"
|
||||||
|
no-inline-html: false
|
||||||
|
hr-style:
|
||||||
|
style: "---"
|
||||||
|
no-emphasis-as-heading: false
|
||||||
|
first-line-h1: false
|
||||||
|
code-block-style:
|
||||||
|
style: "fenced"
|
||||||
|
emphasis-style: false
|
||||||
|
link-fragments: false
|
||||||
|
reference-links-images: false
|
||||||
|
proper-names:
|
||||||
|
names: [
|
||||||
|
"Akismet",
|
||||||
|
"Alertmanager",
|
||||||
|
"AlmaLinux",
|
||||||
|
"API",
|
||||||
|
"Asana",
|
||||||
|
"Auth0",
|
||||||
|
"Authentiq",
|
||||||
|
"Azure",
|
||||||
|
"Bamboo",
|
||||||
|
"Bitbucket",
|
||||||
|
"Bugzilla",
|
||||||
|
"CAS",
|
||||||
|
"CentOS",
|
||||||
|
"Consul",
|
||||||
|
"Debian",
|
||||||
|
"DevOps",
|
||||||
|
"Docker",
|
||||||
|
"DockerSlim",
|
||||||
|
"Elasticsearch",
|
||||||
|
"Facebook",
|
||||||
|
"fastlane",
|
||||||
|
"fluent-plugin-redis-slowlog",
|
||||||
|
"GDK",
|
||||||
|
"Geo",
|
||||||
|
"Git LFS",
|
||||||
|
"git-annex",
|
||||||
|
"git-credential",
|
||||||
|
"git-sizer",
|
||||||
|
"Git",
|
||||||
|
"Gitaly",
|
||||||
|
"GitHub",
|
||||||
|
"GitLab Geo",
|
||||||
|
"GitLab Monitor",
|
||||||
|
"GitLab Operator",
|
||||||
|
"GitLab Pages",
|
||||||
|
"GitLab Rails",
|
||||||
|
"GitLab Runner",
|
||||||
|
"GitLab Shell",
|
||||||
|
"GitLab Workhorse",
|
||||||
|
"GitLab",
|
||||||
|
"Gitleaks",
|
||||||
|
"Gmail",
|
||||||
|
"Google",
|
||||||
|
"Grafana",
|
||||||
|
"Gzip",
|
||||||
|
"Helm",
|
||||||
|
"HipChat",
|
||||||
|
"ID",
|
||||||
|
"Ingress",
|
||||||
|
"jasmine-jquery",
|
||||||
|
"JavaScript",
|
||||||
|
"Jaeger",
|
||||||
|
"Jenkins",
|
||||||
|
"Jira",
|
||||||
|
"Jira Cloud",
|
||||||
|
"Jira Server",
|
||||||
|
"jQuery",
|
||||||
|
"JSON",
|
||||||
|
"JupyterHub",
|
||||||
|
"Karma",
|
||||||
|
"Kerberos",
|
||||||
|
"Knative",
|
||||||
|
"Kubernetes",
|
||||||
|
"LDAP",
|
||||||
|
"Let's Encrypt",
|
||||||
|
"Markdown",
|
||||||
|
"markdownlint",
|
||||||
|
"Mattermost",
|
||||||
|
"Microsoft",
|
||||||
|
"minikube",
|
||||||
|
"MinIO",
|
||||||
|
"ModSecurity",
|
||||||
|
"NGINX Ingress",
|
||||||
|
"NGINX",
|
||||||
|
"OAuth",
|
||||||
|
"OAuth 2",
|
||||||
|
"OmniAuth",
|
||||||
|
"Omnibus GitLab",
|
||||||
|
"OpenID",
|
||||||
|
"OpenShift",
|
||||||
|
"PgBouncer",
|
||||||
|
"Postfix",
|
||||||
|
"PostgreSQL",
|
||||||
|
"Praefect",
|
||||||
|
"Prometheus",
|
||||||
|
"Puma",
|
||||||
|
"puma-worker-killer",
|
||||||
|
"Python",
|
||||||
|
"Rake",
|
||||||
|
"Redis",
|
||||||
|
"Redmine",
|
||||||
|
"reCAPTCHA",
|
||||||
|
"Ruby",
|
||||||
|
"runit",
|
||||||
|
"Salesforce",
|
||||||
|
"SAML",
|
||||||
|
"Sendmail",
|
||||||
|
"Sentry",
|
||||||
|
"Service Desk",
|
||||||
|
"Sidekiq",
|
||||||
|
"Shibboleth",
|
||||||
|
"Slack",
|
||||||
|
"SMTP",
|
||||||
|
"SpotBugs",
|
||||||
|
"ssh-key",
|
||||||
|
"SSH",
|
||||||
|
"Tiller",
|
||||||
|
"TOML",
|
||||||
|
"Trello",
|
||||||
|
"Trello Power-Ups",
|
||||||
|
"TypeScript",
|
||||||
|
"Twitter",
|
||||||
|
"Ubuntu",
|
||||||
|
"Ultra Auth",
|
||||||
|
"Unicorn",
|
||||||
|
"unicorn-worker-killer",
|
||||||
|
"URL",
|
||||||
|
"WebdriverIO",
|
||||||
|
"Workload Identity Pool",
|
||||||
|
"Workload Identity Provider",
|
||||||
|
"YAML",
|
||||||
|
"YouTrack"
|
||||||
|
]
|
||||||
|
code_blocks: false
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Vale configuration file.
|
||||||
|
#
|
||||||
|
# For more information, see https://errata-ai.gitbook.io/vale/getting-started/configuration.
|
||||||
|
|
||||||
|
StylesPath = docs/.vale
|
||||||
|
MinAlertLevel = suggestion
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
BasedOnStyles = gitlab
|
||||||
|
|
||||||
|
# Ignore SVG markup
|
||||||
|
TokenIgnores = (\*\*\{\w*\}\*\*)
|
95
README.md
95
README.md
|
@ -15,38 +15,38 @@ GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to
|
||||||
|
|
||||||
## Table of contents
|
## Table of contents
|
||||||
|
|
||||||
* [Usage](#usage)
|
- [Usage](#usage)
|
||||||
* [Demo](#demo)
|
- [Demo](#demo)
|
||||||
* [Documentation](#documentation)
|
- [Documentation](#documentation)
|
||||||
* [Installation](#installation)
|
- [Installation](#installation)
|
||||||
* [Quick Install](#quick-install)
|
- [Quick Install](#quick-install)
|
||||||
* [Windows](#windows)
|
- [Windows](#windows)
|
||||||
* [WinGet](#winget)
|
- [WinGet](#winget)
|
||||||
* [Scoop](#scoop)
|
- [Scoop](#scoop)
|
||||||
* [EXE Installer](#exe-installer)
|
- [EXE Installer](#exe-installer)
|
||||||
* [Linux](#linux)
|
- [Linux](#linux)
|
||||||
* [Linuxbrew (Homebrew)](#linuxbrew-homebrew)
|
- [Linuxbrew (Homebrew)](#linuxbrew-homebrew)
|
||||||
* [Snapcraft](#snapcraft)
|
- [Snapcraft](#snapcraft)
|
||||||
* [Arch Linux](#arch-linux)
|
- [Arch Linux](#arch-linux)
|
||||||
* [KISS Linux](#kiss-linux)
|
- [KISS Linux](#kiss-linux)
|
||||||
* [Alpine Linux](#alpine-linux)
|
- [Alpine Linux](#alpine-linux)
|
||||||
* [Install a pinned version from edge](#install-a-pinned-version-from-edge)
|
- [Install a pinned version from edge](#install-a-pinned-version-from-edge)
|
||||||
* [Alpine Linux Docker-way](#alpine-linux-docker-way)
|
- [Alpine Linux Docker-way](#alpine-linux-docker-way)
|
||||||
* [Nix/NixOS](#nixnixos)
|
- [Nix/NixOS](#nixnixos)
|
||||||
* [MPR (Debian/Ubuntu)](#mpr-debianubuntu)
|
- [MPR (Debian/Ubuntu)](#mpr-debianubuntu)
|
||||||
* [Prebuilt-MPR](#prebuilt-mpr)
|
- [Prebuilt-MPR](#prebuilt-mpr)
|
||||||
* [Spack](#spack)
|
- [Spack](#spack)
|
||||||
* [macOS](#macos)
|
- [macOS](#macos)
|
||||||
* [Homebrew](#homebrew)
|
- [Homebrew](#homebrew)
|
||||||
* [MacPorts](#macports)
|
- [MacPorts](#macports)
|
||||||
* [Building From Source](#building-from-source)
|
- [Building From Source](#building-from-source)
|
||||||
* [Prerequisites](#prerequisites-for-building-from-source-are)
|
- [Prerequisites](#prerequisites-for-building-from-source-are)
|
||||||
* [Authentication](#authentication)
|
- [Authentication](#authentication)
|
||||||
* [Configuration](#configuration)
|
- [Configuration](#configuration)
|
||||||
* [Environment Variables](#environment-variables)
|
- [Environment Variables](#environment-variables)
|
||||||
* [What about lab](#what-about-lab)
|
- [What about lab](#what-about-lab)
|
||||||
* [Issues](#issues)
|
- [Issues](#issues)
|
||||||
* [Contributing](#contributing)
|
- [Contributing](#contributing)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ brew upgrade glab
|
||||||
Alternatively, you can install `glab` by shell script:
|
Alternatively, you can install `glab` by shell script:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl -s https://gitlab.com/gitlab-org/cli/-/raw/main/scripts/install.sh | sudo sh
|
curl -s "https://gitlab.com/gitlab-org/cli/-/raw/main/scripts/install.sh" | sudo sh
|
||||||
```
|
```
|
||||||
|
|
||||||
*Installs into `usr/bin`*
|
*Installs into `usr/bin`*
|
||||||
|
@ -146,7 +146,7 @@ brew upgrade glab
|
||||||
|
|
||||||
1. Make sure you have [snap installed on your Linux distribution](https://snapcraft.io/docs/installing-snapd).
|
1. Make sure you have [snap installed on your Linux distribution](https://snapcraft.io/docs/installing-snapd).
|
||||||
1. `sudo snap install --edge glab`
|
1. `sudo snap install --edge glab`
|
||||||
1. `sudo snap connect glab:ssh-keys` to grant ssh access
|
1. `sudo snap connect glab:ssh-keys` to grant SSH access
|
||||||
|
|
||||||
#### Arch Linux
|
#### Arch Linux
|
||||||
|
|
||||||
|
@ -158,7 +158,8 @@ pacman -S glab
|
||||||
|
|
||||||
#### KISS Linux
|
#### KISS Linux
|
||||||
|
|
||||||
> WARNING: It seems that KISS Linux may no longer be actively maintained, so links to its web domain have been removed from this README.
|
WARNING:
|
||||||
|
It seems that KISS Linux may no longer be actively maintained, so links to its web domain have been removed from this README.
|
||||||
|
|
||||||
`glab` is available on the [KISS Linux Community Repository](https://github.com/kisslinux/community) as `gitlab-glab`.
|
`glab` is available on the [KISS Linux Community Repository](https://github.com/kisslinux/community) as `gitlab-glab`.
|
||||||
If you already have the community repository configured in your `KISS_PATH` you can install `glab` through your terminal.
|
If you already have the community repository configured in your `KISS_PATH` you can install `glab` through your terminal.
|
||||||
|
@ -285,8 +286,8 @@ If a supported binary for your OS is not found at the [releases page](https://gi
|
||||||
|
|
||||||
#### Prerequisites for building from source
|
#### Prerequisites for building from source
|
||||||
|
|
||||||
* `make`
|
- `make`
|
||||||
* Go 1.13+
|
- Go 1.13+
|
||||||
|
|
||||||
1. Verify that you have Go 1.13+ installed
|
1. Verify that you have Go 1.13+ installed
|
||||||
|
|
||||||
|
@ -322,25 +323,25 @@ If a supported binary for your OS is not found at the [releases page](https://gi
|
||||||
|
|
||||||
Get a GitLab access token at <https://gitlab.com/-/profile/personal_access_tokens> or <https://gitlab.example.com/-/profile/personal_access_tokens> if self-managed:
|
Get a GitLab access token at <https://gitlab.com/-/profile/personal_access_tokens> or <https://gitlab.example.com/-/profile/personal_access_tokens> if self-managed:
|
||||||
|
|
||||||
* Start interactive setup:
|
- Start interactive setup:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab auth login
|
glab auth login
|
||||||
```
|
```
|
||||||
|
|
||||||
* Authenticate against `gitlab.com` by reading the token from a file:
|
- Authenticate against `gitlab.com` by reading the token from a file:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab auth login --stdin < myaccesstoken.txt
|
glab auth login --stdin < myaccesstoken.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
* Authenticate against a self-managed GitLab instance by reading from a file:
|
- Authenticate against a self-managed GitLab instance by reading from a file:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab auth login --hostname salsa.debian.org --stdin < myaccesstoken.txt
|
glab auth login --hostname salsa.debian.org --stdin < myaccesstoken.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
* Authenticate with token and hostname. Not recommended for shared environments:
|
- Authenticate with token and hostname. Not recommended for shared environments:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab auth login --hostname gitlab.example.org --token xxxxx
|
glab auth login --hostname gitlab.example.org --token xxxxx
|
||||||
|
@ -350,23 +351,23 @@ Get a GitLab access token at <https://gitlab.com/-/profile/personal_access_token
|
||||||
|
|
||||||
By default, `glab` follows the XDG Base Directory [Spec](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html):
|
By default, `glab` follows the XDG Base Directory [Spec](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html):
|
||||||
|
|
||||||
* The global configuration file is saved at `~/.config/glab-cli`.
|
- The global configuration file is saved at `~/.config/glab-cli`.
|
||||||
* The local configuration file is saved at `.git/glab-cli` in the current working Git directory.
|
- The local configuration file is saved at `.git/glab-cli` in the current working Git directory.
|
||||||
* Advanced workflows may override the location of the global configuration by setting the `GLAB_CONFIG_DIR` environment variable.
|
- Advanced workflows may override the location of the global configuration by setting the `GLAB_CONFIG_DIR` environment variable.
|
||||||
|
|
||||||
* **To set configuration globally**
|
- **To set configuration globally**
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab config set --global editor vim
|
glab config set --global editor vim
|
||||||
```
|
```
|
||||||
|
|
||||||
* **To set configuration for current directory (must be a git repository)**
|
- **To set configuration for current directory (must be a Git repository)**
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
glab config set editor vim
|
glab config set editor vim
|
||||||
```
|
```
|
||||||
|
|
||||||
* **To set configuration for a specific host**
|
- **To set configuration for a specific host**
|
||||||
|
|
||||||
Use the `--host` flag to set configuration for a specific host. This configuration is always stored in the global configuration file, with or without the `global` flag.
|
Use the `--host` flag to set configuration for a specific host. This configuration is always stored in the global configuration file, with or without the `global` flag.
|
||||||
|
|
||||||
|
|
|
@ -122,9 +122,8 @@ func printSubcommands(cmd *cobra.Command, buf *bytes.Buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if subcommands != "" {
|
if subcommands != "" {
|
||||||
buf.WriteString("## Subcommands\n\n")
|
buf.WriteString("\n## Subcommands\n\n")
|
||||||
buf.WriteString(subcommands)
|
buf.WriteString(subcommands)
|
||||||
buf.WriteString("\n")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,20 +180,23 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer) error {
|
||||||
buf.WriteString("Please do not edit this file directly, check cmd/gen-docs/docs.go." + "\n")
|
buf.WriteString("Please do not edit this file directly, check cmd/gen-docs/docs.go." + "\n")
|
||||||
buf.WriteString("-->" + "\n\n")
|
buf.WriteString("-->" + "\n\n")
|
||||||
|
|
||||||
buf.WriteString("# " + name + "\n\n")
|
buf.WriteString("# `" + name + "`\n\n")
|
||||||
buf.WriteString(cmd.Short + "\n\n")
|
buf.WriteString(cmd.Short + "\n")
|
||||||
if len(cmd.Long) > 0 {
|
if len(cmd.Long) > 0 {
|
||||||
buf.WriteString("## Synopsis\n\n")
|
// Skipping `help` commands until Long description can be revised
|
||||||
buf.WriteString(cmd.Long + "\n\n")
|
if cmd.Name() != "help" {
|
||||||
|
buf.WriteString("\n## Synopsis\n\n")
|
||||||
|
buf.WriteString(cmd.Long)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.Runnable() {
|
if cmd.Runnable() {
|
||||||
buf.WriteString(fmt.Sprintf("```plaintext\n%s\n```\n\n", cmd.UseLine()))
|
buf.WriteString(fmt.Sprintf("\n```plaintext\n%s\n```\n", cmd.UseLine()))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(cmd.Example) > 0 {
|
if len(cmd.Example) > 0 {
|
||||||
buf.WriteString("## Examples\n\n")
|
buf.WriteString("\n## Examples\n\n")
|
||||||
buf.WriteString(fmt.Sprintf("```plaintext\n%s\n```\n\n", cmd.Example))
|
buf.WriteString(fmt.Sprintf("```plaintext\n%s\n```\n", cmd.Example))
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := printOptions(buf, cmd, name); err != nil {
|
if err := printOptions(buf, cmd, name); err != nil {
|
||||||
|
@ -212,17 +214,17 @@ func printOptions(buf *bytes.Buffer, cmd *cobra.Command, name string) error {
|
||||||
flags := cmd.NonInheritedFlags()
|
flags := cmd.NonInheritedFlags()
|
||||||
flags.SetOutput(buf)
|
flags.SetOutput(buf)
|
||||||
if flags.HasAvailableFlags() {
|
if flags.HasAvailableFlags() {
|
||||||
buf.WriteString("### Options\n\n```plaintext\n")
|
buf.WriteString("\n## Options\n\n```plaintext\n")
|
||||||
flags.PrintDefaults()
|
flags.PrintDefaults()
|
||||||
buf.WriteString("```\n\n")
|
buf.WriteString("```\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
parentFlags := cmd.InheritedFlags()
|
parentFlags := cmd.InheritedFlags()
|
||||||
parentFlags.SetOutput(buf)
|
parentFlags.SetOutput(buf)
|
||||||
if parentFlags.HasAvailableFlags() {
|
if parentFlags.HasAvailableFlags() {
|
||||||
buf.WriteString("### Options inherited from parent commands\n\n```plaintext\n")
|
buf.WriteString("\n## Options inherited from parent commands\n\n```plaintext\n")
|
||||||
parentFlags.PrintDefaults()
|
parentFlags.PrintDefaults()
|
||||||
buf.WriteString("```\n\n")
|
buf.WriteString("```\n")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ func NewCmdSet(f *cmdutils.Factory, runF func(*SetOptions) error) *cobra.Command
|
||||||
arguments, you must explicitly accept them using "$1", "$2", etc., or "$@" to accept all of them.
|
arguments, you must explicitly accept them using "$1", "$2", etc., or "$@" to accept all of them.
|
||||||
|
|
||||||
Platform note: on Windows, shell aliases are executed via "sh" as installed by Git For Windows. If
|
Platform note: on Windows, shell aliases are executed via "sh" as installed by Git For Windows. If
|
||||||
you have installed git on Windows in some other way, shell aliases may not work for you.
|
you have installed Git on Windows in some other way, shell aliases may not work for you.
|
||||||
Quotes must always be used when defining a command as in the examples.
|
Quotes must always be used when defining a command as in the examples.
|
||||||
`),
|
`),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
|
|
|
@ -61,47 +61,50 @@ func NewCmdApi(f *cmdutils.Factory, runF func(*ApiOptions) error) *cobra.Command
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "api <endpoint>",
|
Use: "api <endpoint>",
|
||||||
Short: "Make an authenticated request to GitLab API",
|
Short: "Make an authenticated request to GitLab API",
|
||||||
Long: `Makes an authenticated HTTP request to the GitLab API and prints the response.
|
Long: heredoc.Docf(`
|
||||||
The endpoint argument should either be a path of a GitLab API v4 endpoint, or
|
Makes an authenticated HTTP request to the GitLab API and prints the response.
|
||||||
"graphql" to access the GitLab's GraphQL API.
|
The endpoint argument should either be a path of a GitLab API v4 endpoint, or
|
||||||
|
"graphql" to access the GitLab GraphQL API.
|
||||||
|
|
||||||
GitLab REST API Docs: https://docs.gitlab.com/ce/api/README.html
|
- [GitLab REST API Docs](https://docs.gitlab.com/ee/api/index.html)
|
||||||
GitLab GraphQL Docs: https://docs.gitlab.com/ee/api/graphql/
|
- [GitLab GraphQL Docs](https://docs.gitlab.com/ee/api/graphql/)
|
||||||
|
|
||||||
If the current directory is a git directory, the GitLab authenticated host in the current git
|
If the current directory is a Git directory, the GitLab authenticated host in the current
|
||||||
directory will be used else gitlab.com will be used.
|
directory will be used otherwise %[1]sgitlab.com%[1]s will be used.
|
||||||
Override the GitLab hostname with '--hostname'.
|
Override the GitLab hostname with '--hostname'.
|
||||||
|
|
||||||
Placeholder values ":fullpath" or ":id"", ":user" or ":username", ":group", ":namespace",
|
Placeholder values %[1]s:fullpath%[1]s or %[1]s:id%[1]s, %[1]s:user%[1]s or %[1]s:username%[1]s, %[1]s:group%[1]s, %[1]s:namespace%[1]s,
|
||||||
":repo", and ":branch" in the endpoint argument will get replaced with values from the
|
%[1]s:repo%[1]s, and %[1]s:branch%[1]s in the endpoint argument will get replaced with values from the
|
||||||
repository of the current directory.
|
repository of the current directory.
|
||||||
|
|
||||||
The default HTTP request method is "GET" normally and "POST" if any parameters
|
The default HTTP request method is "GET" normally and "POST" if any parameters
|
||||||
were added. Override the method with '--method'.
|
were added. Override the method with '--method'.
|
||||||
|
|
||||||
Pass one or more '--raw-field' values in "key=value" format to add
|
Pass one or more '--raw-field' values in "key=value" format to add
|
||||||
JSON-encoded string parameters to the POST body.
|
JSON-encoded string parameters to the POST body.
|
||||||
|
|
||||||
The '--field' flag behaves like '--raw-field' with magic type conversion based
|
The '--field' flag behaves like '--raw-field' with magic type conversion based
|
||||||
on the format of the value:
|
on the format of the value:
|
||||||
- literal values "true", "false", "null", and integer numbers get converted to
|
|
||||||
appropriate JSON types;
|
|
||||||
- placeholder values ":namespace", ":repo", and ":branch" get populated with values
|
|
||||||
from the repository of the current directory;
|
|
||||||
- if the value starts with "@", the rest of the value is interpreted as a
|
|
||||||
filename to read the value from. Pass "-" to read from standard input.
|
|
||||||
|
|
||||||
For GraphQL requests, all fields other than "query" and "operationName" are
|
- literal values "true", "false", "null", and integer numbers get converted to
|
||||||
interpreted as GraphQL variables.
|
appropriate JSON types;
|
||||||
|
- placeholder values ":namespace", ":repo", and ":branch" get populated with values
|
||||||
|
from the repository of the current directory;
|
||||||
|
- if the value starts with "@", the rest of the value is interpreted as a
|
||||||
|
filename to read the value from. Pass "-" to read from standard input.
|
||||||
|
|
||||||
Raw request body may be passed from the outside via a file specified by '--input'.
|
For GraphQL requests, all fields other than "query" and "operationName" are
|
||||||
Pass "-" to read from standard input. In this mode, parameters specified via
|
interpreted as GraphQL variables.
|
||||||
'--field' flags are serialized into URL query parameters.
|
|
||||||
|
|
||||||
In '--paginate' mode, all pages of results will sequentially be requested until
|
Raw request body may be passed from the outside via a file specified by '--input'.
|
||||||
there are no more pages of results. For GraphQL requests, this requires that the
|
Pass "-" to read from standard input. In this mode, parameters specified via
|
||||||
original query accepts an '$endCursor: String' variable and that it fetches the
|
'--field' flags are serialized into URL query parameters.
|
||||||
'pageInfo{ hasNextPage, endCursor }' set of fields from a collection.`,
|
|
||||||
|
In '--paginate' mode, all pages of results will sequentially be requested until
|
||||||
|
there are no more pages of results. For GraphQL requests, this requires that the
|
||||||
|
original query accepts an '$endCursor: String' variable and that it fetches the
|
||||||
|
'pageInfo{ hasNextPage, endCursor }' set of fields from a collection.
|
||||||
|
`,"`"),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab api projects/:fullpath/releases
|
$ glab api projects/:fullpath/releases
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ func NewCmdCredential(f *cmdutils.Factory, runF func(*CredentialOptions) error)
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "git-credential",
|
Use: "git-credential",
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
Short: "Implements git credential helper manager",
|
Short: "Implements Git credential helper manager",
|
||||||
Hidden: true,
|
Hidden: true,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
opts.Operation = args[0]
|
opts.Operation = args[0]
|
||||||
|
|
|
@ -48,16 +48,16 @@ func NewCmdLogin(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: heredoc.Docf(`
|
Long: heredoc.Docf(`
|
||||||
Authenticate with a GitLab instance.
|
Authenticate with a GitLab instance.
|
||||||
You can pass in a token on standard input by using %[1]s--stdin%[1]s.
|
You can pass in a token on standard input by using %[1]s--stdin%[1]s.
|
||||||
The minimum required scopes for the token are: "api", "write_repository".
|
The minimum required scopes for the token are: %[1]sapi%[1]s, %[1]swrite_repository%[1]s.
|
||||||
`, "`"),
|
`, "`"),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Docf(`
|
||||||
# start interactive setup
|
# start interactive setup
|
||||||
$ glab auth login
|
$ glab auth login
|
||||||
# authenticate against gitlab.com by reading the token from a file
|
# authenticate against %[1]sgitlab.com%[1]s by reading the token from a file
|
||||||
$ glab auth login --stdin < myaccesstoken.txt
|
$ glab auth login --stdin < myaccesstoken.txt
|
||||||
# authenticate with a self-hosted GitLab instance
|
# authenticate with a self-hosted GitLab instance
|
||||||
$ glab auth login --hostname salsa.debian.org
|
$ glab auth login --hostname salsa.debian.org
|
||||||
`),
|
`, "`"),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
if !opts.IO.PromptEnabled() && !tokenStdin && opts.Token == "" {
|
if !opts.IO.PromptEnabled() && !tokenStdin && opts.Token == "" {
|
||||||
return &cmdutils.FlagError{Err: errors.New("--stdin or --token required when not running interactively")}
|
return &cmdutils.FlagError{Err: errors.New("--stdin or --token required when not running interactively")}
|
||||||
|
|
|
@ -18,8 +18,8 @@ func NewCmdRun(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Download all Artifacts from the last pipeline`,
|
Short: `Download all Artifacts from the last pipeline`,
|
||||||
Aliases: []string{"push"},
|
Aliases: []string{"push"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci artifact main build
|
glab ci artifact main build
|
||||||
$ glab ci artifact main deploy --path="artifacts/"
|
glab ci artifact main deploy --path="artifacts/"
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(2),
|
Args: cobra.ExactArgs(2),
|
||||||
|
|
|
@ -19,8 +19,8 @@ func NewCmdDelete(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "delete <id> [flags]",
|
Use: "delete <id> [flags]",
|
||||||
Short: `Delete a CI pipeline`,
|
Short: `Delete a CI pipeline`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci delete 34
|
glab ci delete 34
|
||||||
$ glab ci delete 12,34,2
|
glab ci delete 12,34,2
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
|
|
|
@ -18,7 +18,7 @@ func NewCmdCI(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "ci <command> [flags]",
|
Use: "ci <command> [flags]",
|
||||||
Short: `Work with GitLab CI pipelines and jobs`,
|
Short: `Work with GitLab CI pipelines and jobs`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab pipeline ci trace
|
glab pipeline ci trace
|
||||||
`),
|
`),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import (
|
||||||
func NewCmdLint(f *cmdutils.Factory) *cobra.Command {
|
func NewCmdLint(f *cmdutils.Factory) *cobra.Command {
|
||||||
var pipelineCILintCmd = &cobra.Command{
|
var pipelineCILintCmd = &cobra.Command{
|
||||||
Use: "lint",
|
Use: "lint",
|
||||||
Short: "Checks if your .gitlab-ci.yml file is valid.",
|
Short: "Checks if your `.gitlab-ci.yml` file is valid.",
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci lint
|
$ glab ci lint
|
||||||
|
|
|
@ -18,8 +18,8 @@ func NewCmdList(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "list [flags]",
|
Use: "list [flags]",
|
||||||
Short: `Get the list of CI pipelines`,
|
Short: `Get the list of CI pipelines`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci list
|
glab ci list
|
||||||
$ glab ci list --status=failed
|
glab ci list --status=failed
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
|
|
|
@ -17,7 +17,7 @@ func NewCmdRetry(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Retry a CI job`,
|
Short: `Retry a CI job`,
|
||||||
Aliases: []string{},
|
Aliases: []string{},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci retry 871528
|
glab ci retry 871528
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
|
|
|
@ -45,10 +45,10 @@ func NewCmdRun(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Create or run a new CI pipeline`,
|
Short: `Create or run a new CI pipeline`,
|
||||||
Aliases: []string{"create"},
|
Aliases: []string{"create"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci run
|
glab ci run
|
||||||
$ glab ci run -b main
|
glab ci run -b main
|
||||||
$ glab ci run -b main --variables MYKEY:some_value
|
glab ci run -b main --variables MYKEY:some_value
|
||||||
$ glab ci run -b main --variables MYKEY:some_value --variables KEY2:another_value
|
glab ci run -b main --variables MYKEY:some_value --variables KEY2:another_value
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
|
|
|
@ -22,10 +22,10 @@ func NewCmdStatus(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `View a running CI pipeline on current or other branch specified`,
|
Short: `View a running CI pipeline on current or other branch specified`,
|
||||||
Aliases: []string{"stats"},
|
Aliases: []string{"stats"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ci status --live
|
glab ci status --live
|
||||||
$ glab ci status --compact // more compact view
|
glab ci status --compact // more compact view
|
||||||
$ glab ci status --branch=master // Get pipeline for master branch
|
glab ci status --branch=master // Get pipeline for master branch
|
||||||
$ glab ci status // Get pipeline for current branch
|
glab ci status // Get pipeline for current branch
|
||||||
`),
|
`),
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
|
|
|
@ -50,13 +50,13 @@ func NewCmdView(f *cmdutils.Factory) *cobra.Command {
|
||||||
'Ctrl+C' to cancel job -- (Quits CI view if selected job isn't running or pending).
|
'Ctrl+C' to cancel job -- (Quits CI view if selected job isn't running or pending).
|
||||||
'Ctrl+Q' to Quit CI View.
|
'Ctrl+Q' to Quit CI View.
|
||||||
'Ctrl+Space' suspend application and view logs (similar to glab pipeline ci trace)
|
'Ctrl+Space' suspend application and view logs (similar to glab pipeline ci trace)
|
||||||
Supports vi style (hjkl,Gg) bindings and arrow keys for navigating jobs and logs.
|
Supports vi style bindings and arrow keys for navigating jobs and logs.
|
||||||
`),
|
`),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab pipeline ci view # Uses current branch
|
glab pipeline ci view # Uses current branch
|
||||||
$ glab pipeline ci view master # Get latest pipeline on master branch
|
glab pipeline ci view master # Get latest pipeline on master branch
|
||||||
$ glab pipeline ci view -b master # just like the second example
|
glab pipeline ci view -b master # just like the second example
|
||||||
$ glab pipeline ci view -b master -R profclems/glab # Get latest pipeline on master branch of profclems/glab repo
|
glab pipeline ci view -b master -R profclems/glab # Get latest pipeline on master branch of profclems/glab repo
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package completion
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/MakeNowJust/heredoc"
|
||||||
"gitlab.com/gitlab-org/cli/pkg/iostreams"
|
"gitlab.com/gitlab-org/cli/pkg/iostreams"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
@ -19,27 +20,33 @@ func NewCmdCompletion(io *iostreams.IOStreams) *cobra.Command {
|
||||||
var completionCmd = &cobra.Command{
|
var completionCmd = &cobra.Command{
|
||||||
Use: "completion",
|
Use: "completion",
|
||||||
Short: "Generate shell completion scripts",
|
Short: "Generate shell completion scripts",
|
||||||
Long: `Generate shell completion scripts for glab commands.
|
Long: heredoc.Docf(`
|
||||||
|
The output of this command will be computer code and is meant to be saved
|
||||||
|
to a file or immediately evaluated by an interactive shell.
|
||||||
|
|
||||||
|
For example, for bash you could add this to your %[1]s~/.bash_profile%[1]s:
|
||||||
|
|
||||||
|
%[2]splaintext
|
||||||
|
eval "$(glab completion -s bash)"
|
||||||
|
%[2]s
|
||||||
|
|
||||||
The output of this command will be computer code and is meant to be saved to a
|
Generate a %[1]s_glab%[1]s completion script and put it somewhere in your %[1]s$fpath%[1]s:
|
||||||
file or immediately evaluated by an interactive shell.
|
|
||||||
|
|
||||||
For example, for bash you could add this to your '~/.bash_profile':
|
%[2]splaintext
|
||||||
|
glab completion -s zsh > /usr/local/share/zsh/site-functions/_glab
|
||||||
|
%[2]s
|
||||||
|
|
||||||
eval "$(glab completion -s bash)"
|
Ensure that the following is present in your %[1]s~/.zshrc%[1]s:
|
||||||
|
|
||||||
Generate a %[1]s_glab%[1]s completion script and put it somewhere in your %[1]s$fpath%[1]s:
|
- %[1]sautoload -U compinit%[1]s
|
||||||
glab completion -s zsh > /usr/local/share/zsh/site-functions/_glab
|
- %[1]scompinit -i%[1]s
|
||||||
Ensure that the following is present in your %[1]s~/.zshrc%[1]s:
|
|
||||||
autoload -U compinit
|
|
||||||
compinit -i
|
|
||||||
|
|
||||||
Zsh version 5.7 or later is recommended.
|
|
||||||
|
|
||||||
When installing glab through a package manager, however, it's possible that
|
Zsh version 5.7 or later is recommended.
|
||||||
no additional shell configuration is necessary to gain completion support.
|
|
||||||
For Homebrew, see <https://docs.brew.sh/Shell-Completion>
|
When installing glab through a package manager, however, it's possible that
|
||||||
`,
|
no additional shell configuration is necessary to gain completion support.
|
||||||
|
For Homebrew, see <https://docs.brew.sh/Shell-Completion>
|
||||||
|
`, "`", "```"),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
out := io.StdOut
|
out := io.StdOut
|
||||||
rootCmd := cmd.Parent()
|
rootCmd := cmd.Parent()
|
||||||
|
|
|
@ -17,18 +17,18 @@ func NewCmdConfig(f *cmdutils.Factory) *cobra.Command {
|
||||||
configCmd := &cobra.Command{
|
configCmd := &cobra.Command{
|
||||||
Use: "config [flags]",
|
Use: "config [flags]",
|
||||||
Short: `Set and get glab settings`,
|
Short: `Set and get glab settings`,
|
||||||
Long: heredoc.Doc(`Get and set key/value strings.
|
Long: heredoc.Docf(`Get and set key/value strings.
|
||||||
|
|
||||||
Current respected settings:
|
Current respected settings:
|
||||||
|
|
||||||
- token: Your gitlab access token, defaults to environment variables
|
- token: Your GitLab access token, defaults to environment variables
|
||||||
- gitlab_uri: if unset, defaults to https://gitlab.com
|
- gitlab_uri: if unset, defaults to %[1]shttps://gitlab.com%[1]s
|
||||||
- browser: if unset, defaults to environment variables
|
- browser: if unset, defaults to environment variables
|
||||||
- editor: if unset, defaults to environment variables.
|
- editor: if unset, defaults to environment variables.
|
||||||
- visual: alternative for editor. if unset, defaults to environment variables.
|
- visual: alternative for editor. if unset, defaults to environment variables.
|
||||||
- glamour_style: Your desired markdown renderer style. Options are dark, light, notty. Custom styles are allowed set a custom style https://github.com/charmbracelet/glamour#styles
|
- glamour_style: Your desired Markdown renderer style. Options are dark, light, notty. Custom styles are allowed using [glamour](https://github.com/charmbracelet/glamour#styles)
|
||||||
- glab_pager: Your desired pager command to use (e.g. less -R)
|
- glab_pager: Your desired pager command to use (e.g. less -R)
|
||||||
`),
|
`, "`"),
|
||||||
Aliases: []string{"conf"},
|
Aliases: []string{"conf"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +49,8 @@ func NewCmdConfigGet(f *cmdutils.Factory) *cobra.Command {
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "get <key>",
|
Use: "get <key>",
|
||||||
Short: "Prints the value of a given configuration key",
|
Short: "Prints the value of a given configuration key.",
|
||||||
Long: `Get the value for a given configuration key.`,
|
Long: ``,
|
||||||
Example: `
|
Example: `
|
||||||
$ glab config get editor
|
$ glab config get editor
|
||||||
vim
|
vim
|
||||||
|
@ -93,8 +93,8 @@ Use glab config set --global if you want to set a global config.
|
||||||
Specifying the --hostname flag also saves in the global config file
|
Specifying the --hostname flag also saves in the global config file
|
||||||
`,
|
`,
|
||||||
Example: `
|
Example: `
|
||||||
$ glab config set editor vim
|
glab config set editor vim
|
||||||
$ glab config set token xxxxx -h gitlab.com
|
glab config set token xxxxx -h gitlab.com
|
||||||
`,
|
`,
|
||||||
Args: cobra.ExactArgs(2),
|
Args: cobra.ExactArgs(2),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
@ -138,11 +138,16 @@ func NewCmdConfigInit(f *cmdutils.Factory) *cobra.Command {
|
||||||
configInitCmd := &cobra.Command{
|
configInitCmd := &cobra.Command{
|
||||||
Use: "init",
|
Use: "init",
|
||||||
Short: "Shows a prompt to set basic glab configuration",
|
Short: "Shows a prompt to set basic glab configuration",
|
||||||
Long: `Update the configuration by setting a key to a value.
|
Long: heredoc.Docf(`
|
||||||
Examples:
|
Update the configuration by setting a key to a value.
|
||||||
$ glab config init
|
|
||||||
? Enter default Gitlab Host (Current Value: https://gitlab.com): |
|
Examples:
|
||||||
`,
|
|
||||||
|
%[1]splaintext
|
||||||
|
$ glab config init
|
||||||
|
? Enter default GitLab Host (Current Value: https://gitlab.com):
|
||||||
|
%[1]s
|
||||||
|
`,"```"),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return configInit(f)
|
return configInit(f)
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,8 +18,8 @@ func NewCmdClose(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Close an issue`,
|
Short: `Close an issue`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue close 123
|
glab issue close 123
|
||||||
$ glab issue close https://gitlab.com/profclems/glab/-/issues/123
|
glab issue close https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -67,11 +67,11 @@ func NewCmdCreate(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"new"},
|
Aliases: []string{"new"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue create
|
glab issue create
|
||||||
$ glab issue new
|
glab issue new
|
||||||
$ glab issue create -m release-2.0.0 -t "we need this feature" --label important
|
glab issue create -m release-2.0.0 -t "we need this feature" --label important
|
||||||
$ glab issue new -t "Fix CVE-YYYY-XXXX" -l security --linked-mr 123
|
glab issue new -t "Fix CVE-YYYY-XXXX" -l security --linked-mr 123
|
||||||
$ glab issue create -m release-1.0.1 -t "security fix" --label security --web
|
glab issue create -m release-1.0.1 -t "security fix" --label security --web
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -18,9 +18,9 @@ func NewCmdDelete(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"del"},
|
Aliases: []string{"del"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue delete 123
|
glab issue delete 123
|
||||||
$ glab issue del 123
|
glab issue del 123
|
||||||
$ glab issue delete https://gitlab.com/profclems/glab/-/issues/123
|
glab issue delete https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -24,10 +24,10 @@ func NewCmdIssue(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Work with GitLab issues`,
|
Short: `Work with GitLab issues`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue list
|
glab issue list
|
||||||
$ glab issue create --label --confidential
|
glab issue create --label --confidential
|
||||||
$ glab issue view --web
|
glab issue view --web
|
||||||
$ glab issue note -m "closing because !123 was merged" <issue number>
|
glab issue note -m "closing because !123 was merged" <issue number>
|
||||||
`),
|
`),
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"help:arguments": heredoc.Doc(`
|
"help:arguments": heredoc.Doc(`
|
||||||
|
|
|
@ -65,10 +65,10 @@ func NewCmdList(f *cmdutils.Factory, runE func(opts *ListOptions) error) *cobra.
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"ls"},
|
Aliases: []string{"ls"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue list --all
|
glab issue list --all
|
||||||
$ glab issue ls --all
|
glab issue ls --all
|
||||||
$ glab issue list --mine
|
glab issue list --mine
|
||||||
$ glab issue list --milestone release-2.0.0 --opened
|
glab issue list --milestone release-2.0.0 --opened
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -19,9 +19,9 @@ func NewCmdReopen(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"open"},
|
Aliases: []string{"open"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue reopen 123
|
glab issue reopen 123
|
||||||
$ glab issue open 123
|
glab issue open 123
|
||||||
$ glab issue reopen https://gitlab.com/profclems/glab/-/issues/123
|
glab issue reopen https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -17,9 +17,9 @@ func NewCmdSubscribe(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"sub"},
|
Aliases: []string{"sub"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue subscribe 123
|
glab issue subscribe 123
|
||||||
$ glab issue sub 123
|
glab issue sub 123
|
||||||
$ glab issue subscribe https://gitlab.com/profclems/glab/-/issues/123
|
glab issue subscribe https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -18,9 +18,9 @@ func NewCmdUnsubscribe(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"unsub"},
|
Aliases: []string{"unsub"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue unsubscribe 123
|
glab issue unsubscribe 123
|
||||||
$ glab issue unsub 123
|
glab issue unsub 123
|
||||||
$ glab issue unsubscribe https://gitlab.com/profclems/glab/-/issues/123
|
glab issue unsubscribe https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -20,8 +20,8 @@ func NewCmdUpdate(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Update issue`,
|
Short: `Update issue`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue update 42 --label ui,ux
|
glab issue update 42 --label ui,ux
|
||||||
$ glab issue update 42 --unlabel working
|
glab issue update 42 --unlabel working
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -42,11 +42,11 @@ func NewCmdView(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"show"},
|
Aliases: []string{"show"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab issue view 123
|
glab issue view 123
|
||||||
$ glab issue show 123
|
glab issue show 123
|
||||||
$ glab issue view --web 123
|
glab issue view --web 123
|
||||||
$ glab issue view --comments 123
|
glab issue view --comments 123
|
||||||
$ glab issue view https://gitlab.com/profclems/glab/-/issues/123
|
glab issue view https://gitlab.com/profclems/glab/-/issues/123
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -18,9 +18,9 @@ func NewCmdCreate(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"new"},
|
Aliases: []string{"new"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab label create
|
glab label create
|
||||||
$ glab label new
|
glab label new
|
||||||
$ glab label create -R owner/repo
|
glab label create -R owner/repo
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -20,9 +20,9 @@ func NewCmdList(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"ls"},
|
Aliases: []string{"ls"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab label list
|
glab label list
|
||||||
$ glab label ls
|
glab label ls
|
||||||
$ glab label list -R owner/repository
|
glab label list -R owner/repository
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -17,11 +17,11 @@ func NewCmdApprove(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Approve merge requests`,
|
Short: `Approve merge requests`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr approve 235
|
glab mr approve 235
|
||||||
$ glab mr approve 123 345
|
glab mr approve 123 345
|
||||||
$ glab mr approve branch-1
|
glab mr approve branch-1
|
||||||
$ glab mr approve branch-2 branch-3
|
glab mr approve branch-2 branch-3
|
||||||
$ glab mr approve # Finds open merge request from current branch
|
glab mr approve # Finds open merge request from current branch
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -29,11 +29,11 @@ func NewCmdCheckout(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: "Checkout to an open merge request",
|
Short: "Checkout to an open merge request",
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr checkout 1
|
glab mr checkout 1
|
||||||
$ glab mr checkout branch --track
|
glab mr checkout branch --track
|
||||||
$ glab mr checkout 12 --branch todo-fix
|
glab mr checkout 12 --branch todo-fix
|
||||||
$ glab mr checkout new-feature --set-upstream-to=upstream/main
|
glab mr checkout new-feature --set-upstream-to=upstream/main
|
||||||
$ glab mr checkout # use checked out branch
|
glab mr checkout # use checked out branch
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -18,12 +18,12 @@ func NewCmdClose(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Close merge requests`,
|
Short: `Close merge requests`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr close 1
|
glab mr close 1
|
||||||
$ glab mr close 1 2 3 4 # close multiple branches at once
|
glab mr close 1 2 3 4 # close multiple branches at once
|
||||||
$ glab mr close # use checked out branch
|
glab mr close # use checked out branch
|
||||||
$ glab mr close branch
|
glab mr close branch
|
||||||
$ glab mr close username:branch
|
glab mr close username:branch
|
||||||
$ glab mr close branch -R another/repo
|
glab mr close branch -R another/repo
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -89,11 +89,11 @@ func NewCmdCreate(f *cmdutils.Factory, runE func(opts *CreateOpts) error) *cobra
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"new"},
|
Aliases: []string{"new"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr new
|
glab mr new
|
||||||
$ glab mr create -a username -t "fix annoying bug"
|
glab mr create -a username -t "fix annoying bug"
|
||||||
$ glab mr create -f --draft --label RFC
|
glab mr create -f --draft --label RFC
|
||||||
$ glab mr create --fill --yes --web
|
glab mr create --fill --yes --web
|
||||||
$ glab mr create --fill --fill-commit-body --yes
|
glab mr create --fill --fill-commit-body --yes
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
PreRun: func(cmd *cobra.Command, args []string) {
|
PreRun: func(cmd *cobra.Command, args []string) {
|
||||||
|
|
|
@ -18,11 +18,11 @@ func NewCmdDelete(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"del"},
|
Aliases: []string{"del"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr delete 123
|
glab mr delete 123
|
||||||
$ glab mr delete 123 branch-name 789 # close multiple branches
|
glab mr delete 123 branch-name 789 # close multiple branches
|
||||||
$ glab mr delete 1,2,branch-related-to-mr-3,4,5 # close MRs !1,!2,!3,!4,!5
|
glab mr delete 1,2,branch-related-to-mr-3,4,5 # close MRs !1,!2,!3,!4,!5
|
||||||
$ glab mr del 123
|
glab mr del 123
|
||||||
$ glab mr delete branch
|
glab mr delete branch
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
c := f.IO.Color()
|
c := f.IO.Color()
|
||||||
|
|
|
@ -39,10 +39,10 @@ func NewCmdDiff(f *cmdutils.Factory, runF func(*DiffOptions) error) *cobra.Comma
|
||||||
Use: "diff [<id> | <branch>]",
|
Use: "diff [<id> | <branch>]",
|
||||||
Short: "View changes in a merge request",
|
Short: "View changes in a merge request",
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr diff 123
|
glab mr diff 123
|
||||||
$ glab mr diff branch
|
glab mr diff branch
|
||||||
$ glab mr diff # get from current branch
|
glab mr diff # get from current branch
|
||||||
$ glab mr diff 123 --color=never
|
glab mr diff 123 --color=never
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -23,10 +23,10 @@ func NewCmdFor(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"new-for", "create-for", "for-issue"},
|
Aliases: []string{"new-for", "create-for", "for-issue"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr for 34 # Create mr for issue 34
|
glab mr for 34 # Create mr for issue 34
|
||||||
$ glab mr for 34 --wip # Create mr and mark as work in progress
|
glab mr for 34 --wip # Create mr and mark as work in progress
|
||||||
$ glab mr new-for 34
|
glab mr new-for 34
|
||||||
$ glab mr create-for 34
|
glab mr create-for 34
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -22,9 +22,9 @@ func NewCmdIssues(f *cmdutils.Factory) *cobra.Command {
|
||||||
Aliases: []string{"issue"},
|
Aliases: []string{"issue"},
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr issues 46
|
glab mr issues 46
|
||||||
$ glab mr issues branch
|
glab mr issues branch
|
||||||
$ glab mr issues # use checked out branch
|
glab mr issues # use checked out branch
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -63,16 +63,16 @@ func NewCmdList(f *cmdutils.Factory, runE func(opts *ListOptions) error) *cobra.
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"ls"},
|
Aliases: []string{"ls"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr list --all
|
glab mr list --all
|
||||||
$ glab mr ls -a
|
glab mr ls -a
|
||||||
$ glab mr list --assignee=@me
|
glab mr list --assignee=@me
|
||||||
$ glab mr list --reviewer=@me
|
glab mr list --reviewer=@me
|
||||||
$ glab mr list --source-branch=new-feature
|
glab mr list --source-branch=new-feature
|
||||||
$ glab mr list --target-branch=main
|
glab mr list --target-branch=main
|
||||||
$ glab mr list --search "this adds feature X"
|
glab mr list --search "this adds feature X"
|
||||||
$ glab mr list --label needs-review
|
glab mr list --label needs-review
|
||||||
$ glab mr list --not-label waiting-maintainer-feedback,subsystem-x
|
glab mr list --not-label waiting-maintainer-feedback,subsystem-x
|
||||||
$ glab mr list -M --per-page 10
|
glab mr list -M --per-page 10
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -52,9 +52,9 @@ func NewCmdMerge(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"accept"},
|
Aliases: []string{"accept"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr merge 235
|
glab mr merge 235
|
||||||
$ glab mr accept 235
|
glab mr accept 235
|
||||||
$ glab mr merge # Finds open merge request from current branch
|
glab mr merge # Finds open merge request from current branch
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -33,9 +33,9 @@ func NewCmdMR(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Create, view and manage merge requests`,
|
Short: `Create, view and manage merge requests`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr create --fill --label bugfix
|
glab mr create --fill --label bugfix
|
||||||
$ glab mr merge 123
|
glab mr merge 123
|
||||||
$ glab mr note -m "needs to do X before it can be merged" branch-foo
|
glab mr note -m "needs to do X before it can be merged" branch-foo
|
||||||
`),
|
`),
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"help:arguments": heredoc.Doc(`
|
"help:arguments": heredoc.Doc(`
|
||||||
|
|
|
@ -12,11 +12,12 @@ func NewCmdRebase(f *cmdutils.Factory) *cobra.Command {
|
||||||
var mrRebaseCmd = &cobra.Command{
|
var mrRebaseCmd = &cobra.Command{
|
||||||
Use: "rebase [<id> | <branch>] [flags]",
|
Use: "rebase [<id> | <branch>] [flags]",
|
||||||
Short: `Automatically rebase the source_branch of the merge request against its target_branch.`,
|
Short: `Automatically rebase the source_branch of the merge request against its target_branch.`,
|
||||||
Long: `If you don’t have permissions to push to the merge request’s source branch - you’ll get a 403 Forbidden response.`,
|
Long: heredoc.Doc(`If you don't have permissions to push to the merge request's source branch - you'll get a 403 Forbidden response.
|
||||||
|
`),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr rebase 123
|
glab mr rebase 123
|
||||||
$ glab mr rebase # get from current branch
|
glab mr rebase # get from current branch
|
||||||
$ glab mr rebase branch
|
glab mr rebase branch
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -17,10 +17,10 @@ func NewCmdReopen(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "reopen [<id>... | <branch>...]",
|
Use: "reopen [<id>... | <branch>...]",
|
||||||
Short: `Reopen merge requests`,
|
Short: `Reopen merge requests`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr reopen 123
|
glab mr reopen 123
|
||||||
$ glab mr reopen 123 456 789
|
glab mr reopen 123 456 789
|
||||||
$ glab mr reopen branch-1 branch-2
|
glab mr reopen branch-1 branch-2
|
||||||
$ glab mr reopen # use checked out branch
|
glab mr reopen # use checked out branch
|
||||||
`),
|
`),
|
||||||
Aliases: []string{"open"},
|
Aliases: []string{"open"},
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -14,15 +14,15 @@ import (
|
||||||
func NewCmdRevoke(f *cmdutils.Factory) *cobra.Command {
|
func NewCmdRevoke(f *cmdutils.Factory) *cobra.Command {
|
||||||
var mrRevokeCmd = &cobra.Command{
|
var mrRevokeCmd = &cobra.Command{
|
||||||
Use: "revoke [<id> | <branch>]",
|
Use: "revoke [<id> | <branch>]",
|
||||||
Short: `Revoke approval on a merge request <id>`,
|
Short: `Revoke approval on a merge request`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"unapprove"},
|
Aliases: []string{"unapprove"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr revoke 123
|
glab mr revoke 123
|
||||||
$ glab mr unapprove 123
|
glab mr unapprove 123
|
||||||
$ glab mr revoke branch
|
glab mr revoke branch
|
||||||
$ glab mr revoke # use checked out branch
|
glab mr revoke # use checked out branch
|
||||||
$ glab mr revoke 123 branch 456
|
glab mr revoke 123 branch 456
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -18,10 +18,10 @@ func NewCmdSubscribe(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"sub"},
|
Aliases: []string{"sub"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr subscribe 123
|
glab mr subscribe 123
|
||||||
$ glab mr sub 123
|
glab mr sub 123
|
||||||
$ glab mr subscribe branch
|
glab mr subscribe branch
|
||||||
$ glab mr subscribe 123 branch # subscribe to multiple MRs
|
glab mr subscribe 123 branch # subscribe to multiple MRs
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -18,10 +18,10 @@ func NewCmdUnsubscribe(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"unsub"},
|
Aliases: []string{"unsub"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr unsubscribe 123
|
glab mr unsubscribe 123
|
||||||
$ glab mr unsub 123
|
glab mr unsub 123
|
||||||
$ glab mr unsubscribe branch
|
glab mr unsubscribe branch
|
||||||
$ glab mr unsubscribe 123 branch # unsubscribe from multiple MRs
|
glab mr unsubscribe 123 branch # unsubscribe from multiple MRs
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -20,9 +20,9 @@ func NewCmdUpdate(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Update merge requests`,
|
Short: `Update merge requests`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab mr update 23 --ready
|
glab mr update 23 --ready
|
||||||
$ glab mr update 23 --draft
|
glab mr update 23 --draft
|
||||||
$ glab mr update --draft # Updates MR related to current branch
|
glab mr update --draft # Updates MR related to current branch
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -20,13 +20,14 @@ func NewCmdArchive(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "archive <command> [flags]",
|
Use: "archive <command> [flags]",
|
||||||
Short: `Get an archive of the repository.`,
|
Short: `Get an archive of the repository.`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab repo archive profclems/glab
|
glab repo archive profclems/glab
|
||||||
$ glab repo archive # Downloads zip file of current repository
|
glab repo archive # Downloads zip file of current repository
|
||||||
$ glab repo archive profclems/glab mydirectory # Downloads repo zip file into mydirectory
|
glab repo archive profclems/glab mydirectory # Downloads repo zip file into mydirectory
|
||||||
$ glab repo archive profclems/glab --format=zip # Finds repo for current user and download in zip format
|
glab repo archive profclems/glab --format=zip # Finds repo for current user and download in zip format
|
||||||
`),
|
`),
|
||||||
Long: heredoc.Doc(`
|
Long: heredoc.Doc(`
|
||||||
Clone supports these shorthands
|
Clone supports these shorthands
|
||||||
|
|
||||||
- repo
|
- repo
|
||||||
- namespace/repo
|
- namespace/repo
|
||||||
- namespace/group/repo
|
- namespace/group/repo
|
||||||
|
|
|
@ -62,7 +62,7 @@ func NewCmdClone(f *cmdutils.Factory, runE func(*CloneOptions, *ContextOpts) err
|
||||||
|
|
||||||
var repoCloneCmd = &cobra.Command{
|
var repoCloneCmd = &cobra.Command{
|
||||||
Use: "clone <repo> [<dir>] [-- [<gitflags>...]]",
|
Use: "clone <repo> [<dir>] [-- [<gitflags>...]]",
|
||||||
Short: `Clone a Gitlab repository/project`,
|
Short: `Clone a GitLab repository/project`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab repo clone profclems/glab
|
$ glab repo clone profclems/glab
|
||||||
|
|
||||||
|
@ -81,13 +81,12 @@ func NewCmdClone(f *cmdutils.Factory, runE func(*CloneOptions, *ContextOpts) err
|
||||||
$ GITLAB_HOST=salsa.debian.org glab repo clone myrepo
|
$ GITLAB_HOST=salsa.debian.org glab repo clone myrepo
|
||||||
`),
|
`),
|
||||||
Long: heredoc.Doc(`
|
Long: heredoc.Doc(`
|
||||||
Clone a GitLab repository/project
|
Clone supports these shorthands
|
||||||
|
|
||||||
Clone supports these shorthands
|
- repo
|
||||||
- repo
|
- namespace/repo
|
||||||
- namespace/repo
|
- org/group/repo
|
||||||
- org/group/repo
|
- project ID
|
||||||
- project ID
|
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
if nArgs := len(args); nArgs > 0 {
|
if nArgs := len(args); nArgs > 0 {
|
||||||
|
|
|
@ -23,8 +23,8 @@ import (
|
||||||
func NewCmdCreate(f *cmdutils.Factory) *cobra.Command {
|
func NewCmdCreate(f *cmdutils.Factory) *cobra.Command {
|
||||||
var projectCreateCmd = &cobra.Command{
|
var projectCreateCmd = &cobra.Command{
|
||||||
Use: "create [path] [flags]",
|
Use: "create [path] [flags]",
|
||||||
Short: `Create a new GitLab project/repository`,
|
Short: `Create a new GitLab project/repository.`,
|
||||||
Long: `Create a new GitLab repository.`,
|
Long: ``,
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
return runCreateProject(cmd, args, f)
|
return runCreateProject(cmd, args, f)
|
||||||
|
|
|
@ -34,8 +34,8 @@ func NewCmdDelete(f *cmdutils.Factory) *cobra.Command {
|
||||||
|
|
||||||
var projectCreateCmd = &cobra.Command{
|
var projectCreateCmd = &cobra.Command{
|
||||||
Use: "delete [<NAMESPACE>/]<NAME>",
|
Use: "delete [<NAMESPACE>/]<NAME>",
|
||||||
Short: `Delete an existing repository on GitLab`,
|
Short: `Delete an existing repository on GitLab.`,
|
||||||
Long: `Delete an existing repository on GitLab`,
|
Long: ``,
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
opts.Args = args
|
opts.Args = args
|
||||||
|
|
|
@ -55,9 +55,9 @@ func NewCmdFork(f *cmdutils.Factory, runE func(*cmdutils.Factory) error) *cobra.
|
||||||
Use: "fork <repo>",
|
Use: "fork <repo>",
|
||||||
Short: "Create a fork of a GitLab repository",
|
Short: "Create a fork of a GitLab repository",
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab repo fork
|
glab repo fork
|
||||||
$ glab repo fork namespace/repo
|
glab repo fork namespace/repo
|
||||||
$ glab repo fork namespace/repo --clone
|
glab repo fork namespace/repo --clone
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ func NewCmdList(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "list",
|
Use: "list",
|
||||||
Short: `Get list of repositories.`,
|
Short: `Get list of repositories.`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab repo list
|
glab repo list
|
||||||
`),
|
`),
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
Aliases: []string{"users"},
|
Aliases: []string{"users"},
|
||||||
|
|
|
@ -34,8 +34,8 @@ func NewCmdMirror(f *cmdutils.Factory) *cobra.Command {
|
||||||
|
|
||||||
var projectMirrorCmd = &cobra.Command{
|
var projectMirrorCmd = &cobra.Command{
|
||||||
Use: "mirror [ID | URL | PATH] [flags]",
|
Use: "mirror [ID | URL | PATH] [flags]",
|
||||||
Short: "Mirror a project/repository",
|
Short: "Mirror a project/repository to the specified location using pull or push method.",
|
||||||
Long: `Mirrors a project/repository to the specified location using pull or push method.`,
|
Long: ``,
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -21,10 +21,10 @@ func NewCmdSearch(f *cmdutils.Factory) *cobra.Command {
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
Aliases: []string{"find", "lookup"},
|
Aliases: []string{"find", "lookup"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab project search title
|
glab project search title
|
||||||
$ glab repo search title
|
glab repo search title
|
||||||
$ glab project find title
|
glab project find title
|
||||||
$ glab project lookup title
|
glab project lookup title
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -14,7 +14,7 @@ func NewCmdTransfer(f *cmdutils.Factory) *cobra.Command {
|
||||||
Use: "transfer [repo] [flags]",
|
Use: "transfer [repo] [flags]",
|
||||||
Short: `Transfer a repository to a new namespace.`,
|
Short: `Transfer a repository to a new namespace.`,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab repo transfer profclems/glab --target-namespace notprofclems
|
glab repo transfer profclems/glab --target-namespace notprofclems
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -35,7 +35,8 @@ func NewCmdView(f *cmdutils.Factory) *cobra.Command {
|
||||||
var projectViewCmd = &cobra.Command{
|
var projectViewCmd = &cobra.Command{
|
||||||
Use: "view [repository] [flags]",
|
Use: "view [repository] [flags]",
|
||||||
Short: "View a project/repository",
|
Short: "View a project/repository",
|
||||||
Long: `Display the description and README of a project or open it in the browser.`,
|
Long: heredoc.Doc(`Display the description and README of a project or open it in the browser.
|
||||||
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
# view project information for the current directory
|
# view project information for the current directory
|
||||||
|
|
|
@ -65,16 +65,16 @@ func NewCmdCreate(f *cmdutils.Factory, runE func(opts *CreateOpts) error) *cobra
|
||||||
|
|
||||||
If the release already exists, glab updates the release with the new info provided.
|
If the release already exists, glab updates the release with the new info provided.
|
||||||
|
|
||||||
If a git tag specified does not yet exist, the release will automatically get created
|
If a Git tag specified does not yet exist, the release will automatically get created
|
||||||
from the latest state of the default branch and tagged with the specified tag name.
|
from the latest state of the default branch and tagged with the specified tag name.
|
||||||
Use %[1]s--ref%[1]s to override this.
|
Use %[1]s--ref%[1]s to override this.
|
||||||
The %[1]sref%[1]s can be a commit SHA, another tag name, or a branch name.
|
The %[1]sref%[1]s can be a commit SHA, another tag name, or a branch name.
|
||||||
To fetch the new tag locally after the release, do %[1]sgit fetch --tags origin%[1]s.
|
To fetch the new tag locally after the release, do %[1]sgit fetch --tags origin%[1]s.
|
||||||
|
|
||||||
To create a release from an annotated git tag, first create one locally with
|
To create a release from an annotated Git tag, first create one locally with
|
||||||
git, push the tag to GitLab, then run this command.
|
Git, push the tag to GitLab, then run this command.
|
||||||
|
|
||||||
NB: Developer level access to the project is required to create a release.
|
Developer level access to the project is required to create a release.
|
||||||
`, "`"),
|
`, "`"),
|
||||||
Args: cmdutils.MinimumArgs(1, "no tag name provided"),
|
Args: cmdutils.MinimumArgs(1, "no tag name provided"),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
|
@ -101,14 +101,14 @@ func NewCmdCreate(f *cmdutils.Factory, runE func(opts *CreateOpts) error) *cobra
|
||||||
|
|
||||||
Create a release with assets specified as JSON object
|
Create a release with assets specified as JSON object
|
||||||
$ glab release create v1.0.1 --assets-links='
|
$ glab release create v1.0.1 --assets-links='
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Asset1",
|
"name": "Asset1",
|
||||||
"url":"https://<domain>/some/location/1",
|
"url":"https://<domain>/some/location/1",
|
||||||
"link_type": "other",
|
"link_type": "other",
|
||||||
"filepath": "path/to/file"
|
"filepath": "path/to/file"
|
||||||
}
|
}
|
||||||
]'
|
]'
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -36,7 +36,7 @@ func NewCmdDelete(f *cmdutils.Factory, runE func(opts *DeleteOpts) error) *cobra
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "delete <tag>",
|
Use: "delete <tag>",
|
||||||
Short: "Delete a GitLab Release",
|
Short: "Delete a GitLab Release",
|
||||||
Long: heredoc.Docf(`Delete release assets to GitLab Release
|
Long: heredoc.Docf(`Delete release assets to GitLab Release
|
||||||
|
|
||||||
Deleting a release does not delete the associated tag unless %[1]s--with-tag%[1]s is specified.
|
Deleting a release does not delete the associated tag unless %[1]s--with-tag%[1]s is specified.
|
||||||
|
|
|
@ -70,14 +70,14 @@ func NewCmdUpload(f *cmdutils.Factory, runE func(opts *UploadOpts) error) *cobra
|
||||||
|
|
||||||
Upload release assets links specified as JSON string
|
Upload release assets links specified as JSON string
|
||||||
$ glab release upload v1.0.1 --assets-links='
|
$ glab release upload v1.0.1 --assets-links='
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Asset1",
|
"name": "Asset1",
|
||||||
"url":"https://<domain>/some/location/1",
|
"url":"https://<domain>/some/location/1",
|
||||||
"link_type": "other",
|
"link_type": "other",
|
||||||
"filepath": "path/to/file"
|
"filepath": "path/to/file"
|
||||||
}
|
}
|
||||||
]'
|
]'
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
|
@ -35,10 +35,10 @@ func NewCmdView(f *cmdutils.Factory, runE func(opts *ViewOpts) error) *cobra.Com
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "view <tag>",
|
Use: "view <tag>",
|
||||||
Short: "View information about a GitLab Release",
|
Short: "View information about a GitLab Release",
|
||||||
Long: heredoc.Docf(`View information about a GitLab Release.
|
Long: heredoc.Doc(`View information about a GitLab Release.
|
||||||
|
|
||||||
Without an explicit tag name argument, the latest release in the project is shown.
|
Without an explicit tag name argument, the latest release in the project is shown.
|
||||||
`, "`"),
|
`,),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
View the latest release of a GitLab repository
|
View the latest release of a GitLab repository
|
||||||
$ glab release view
|
$ glab release view
|
||||||
|
|
|
@ -41,9 +41,9 @@ func NewCmdCreate(f *cmdutils.Factory) *cobra.Command {
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Aliases: []string{"new"},
|
Aliases: []string{"new"},
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab snippet create script.py --title "Title of the snippet"
|
glab snippet create script.py --title "Title of the snippet"
|
||||||
$ echo "package main" | glab snippet new --title "Title of the snippet" --filename "main.go"
|
echo "package main" | glab snippet new --title "Title of the snippet" --filename "main.go"
|
||||||
$ glab snippet create main.go -t Title -f "different.go" -d Description
|
glab snippet create main.go -t Title -f "different.go" -d Description
|
||||||
`),
|
`),
|
||||||
PreRunE: func(cmd *cobra.Command, args []string) error {
|
PreRunE: func(cmd *cobra.Command, args []string) error {
|
||||||
opts.IO = f.IO
|
opts.IO = f.IO
|
||||||
|
|
|
@ -13,7 +13,7 @@ func NewCmdSnippet(f *cmdutils.Factory) *cobra.Command {
|
||||||
Short: `Create, view and manage snippets`,
|
Short: `Create, view and manage snippets`,
|
||||||
Long: ``,
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab snippet create --title "Title of the snippet" --filename "main.go"
|
glab snippet create --title "Title of the snippet" --filename "main.go"
|
||||||
`),
|
`),
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
"help:arguments": heredoc.Doc(`
|
"help:arguments": heredoc.Doc(`
|
||||||
|
|
|
@ -28,8 +28,8 @@ func NewCmdGet(f *cmdutils.Factory, runE func(*GetOpts) error) *cobra.Command {
|
||||||
}
|
}
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "get <key-id>",
|
Use: "get <key-id>",
|
||||||
Short: "Gets a single key",
|
Short: "Returns a single SSH key specified by the ID.",
|
||||||
Long: "Returns a single SSH key specified by the ID",
|
Long: ``,
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
# Get ssh key with ID as argument
|
# Get ssh key with ID as argument
|
||||||
$ glab ssh-key get 7750633
|
$ glab ssh-key get 7750633
|
||||||
|
|
|
@ -25,10 +25,10 @@ func NewCmdList(f *cmdutils.Factory, runE func(*ListOpts) error) *cobra.Command
|
||||||
}
|
}
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "list",
|
Use: "list",
|
||||||
Short: "Lists currently authenticated user’s SSH keys",
|
Short: "Get a list of currently authenticated user's SSH keys.",
|
||||||
Long: "Get a list of currently authenticated user’s SSH keys",
|
Long: "",
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab ssh-key list
|
glab ssh-key list
|
||||||
`),
|
`),
|
||||||
Args: cobra.MaximumNArgs(1),
|
Args: cobra.MaximumNArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
func NewCmdSSHKey(f *cmdutils.Factory) *cobra.Command {
|
func NewCmdSSHKey(f *cmdutils.Factory) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "ssh-key <command>",
|
Use: "ssh-key <command>",
|
||||||
Short: "Manage SSH keys",
|
Short: "Manage SSH keys registered with your GitLab account.",
|
||||||
Long: "Manage SSH keys registered with your GitLab account",
|
Long: "",
|
||||||
}
|
}
|
||||||
|
|
||||||
cmdutils.EnableRepoOverride(cmd, f)
|
cmdutils.EnableRepoOverride(cmd, f)
|
||||||
|
|
|
@ -37,9 +37,9 @@ func NewCmdSet(f *cmdutils.Factory, runE func(opts *DeleteOpts) error) *cobra.Co
|
||||||
Aliases: []string{"remove"},
|
Aliases: []string{"remove"},
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab variable delete VAR_NAME
|
glab variable delete VAR_NAME
|
||||||
$ glab variable delete VAR_NAME --scope=prod
|
glab variable delete VAR_NAME --scope=prod
|
||||||
$ glab variable delete VARNAME -g mygroup
|
glab variable delete VARNAME -g mygroup
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
opts.HTTPClient = f.HttpClient
|
opts.HTTPClient = f.HttpClient
|
||||||
|
|
|
@ -32,8 +32,8 @@ func NewCmdSet(f *cmdutils.Factory, runE func(opts *GetOps) error) *cobra.Comman
|
||||||
Short: "get a project or group variable",
|
Short: "get a project or group variable",
|
||||||
Args: cobra.RangeArgs(1, 1),
|
Args: cobra.RangeArgs(1, 1),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab variable get VAR_KEY
|
glab variable get VAR_KEY
|
||||||
$ glab variable get -g GROUP VAR_KEY
|
glab variable get -g GROUP VAR_KEY
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ func NewCmdSet(f *cmdutils.Factory, runE func(opts *ListOpts) error) *cobra.Comm
|
||||||
Aliases: []string{"new", "create"},
|
Aliases: []string{"new", "create"},
|
||||||
Args: cobra.ExactArgs(0),
|
Args: cobra.ExactArgs(0),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab variable list
|
glab variable list
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
// Supports repo override
|
// Supports repo override
|
||||||
|
|
|
@ -40,13 +40,13 @@ func NewCmdSet(f *cmdutils.Factory, runE func(opts *SetOpts) error) *cobra.Comma
|
||||||
Aliases: []string{"new", "create"},
|
Aliases: []string{"new", "create"},
|
||||||
Args: cobra.RangeArgs(1, 2),
|
Args: cobra.RangeArgs(1, 2),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab variable set WITH_ARG "some value"
|
glab variable set WITH_ARG "some value"
|
||||||
$ glab variable set FROM_FLAG -v "some value"
|
glab variable set FROM_FLAG -v "some value"
|
||||||
$ glab variable set FROM_ENV_WITH_ARG "${ENV_VAR}"
|
glab variable set FROM_ENV_WITH_ARG "${ENV_VAR}"
|
||||||
$ glab variable set FROM_ENV_WITH_FLAG -v"${ENV_VAR}"
|
glab variable set FROM_ENV_WITH_FLAG -v"${ENV_VAR}"
|
||||||
$ glab variable set FROM_FILE < secret.txt
|
glab variable set FROM_FILE < secret.txt
|
||||||
$ cat file.txt | glab variable set SERVER_TOKEN
|
cat file.txt | glab variable set SERVER_TOKEN
|
||||||
$ cat token.txt | glab variable set GROUP_TOKEN -g mygroup --scope=prod
|
cat token.txt | glab variable set GROUP_TOKEN -g mygroup --scope=prod
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
// Supports repo override
|
// Supports repo override
|
||||||
|
|
|
@ -39,13 +39,13 @@ func NewCmdSet(f *cmdutils.Factory, runE func(opts *UpdateOpts) error) *cobra.Co
|
||||||
Short: "Update an existing project or group variable",
|
Short: "Update an existing project or group variable",
|
||||||
Args: cobra.RangeArgs(1, 2),
|
Args: cobra.RangeArgs(1, 2),
|
||||||
Example: heredoc.Doc(`
|
Example: heredoc.Doc(`
|
||||||
$ glab variable update WITH_ARG "some value"
|
glab variable update WITH_ARG "some value"
|
||||||
$ glab variable update FROM_FLAG -v "some value"
|
glab variable update FROM_FLAG -v "some value"
|
||||||
$ glab variable update FROM_ENV_WITH_ARG "${ENV_VAR}"
|
glab variable update FROM_ENV_WITH_ARG "${ENV_VAR}"
|
||||||
$ glab variable update FROM_ENV_WITH_FLAG -v"${ENV_VAR}"
|
glab variable update FROM_ENV_WITH_FLAG -v"${ENV_VAR}"
|
||||||
$ glab variable update FROM_FILE < secret.txt
|
glab variable update FROM_FILE < secret.txt
|
||||||
$ cat file.txt | glab variable update SERVER_TOKEN
|
cat file.txt | glab variable update SERVER_TOKEN
|
||||||
$ cat token.txt | glab variable update GROUP_TOKEN -g mygroup --scope=prod
|
cat token.txt | glab variable update GROUP_TOKEN -g mygroup --scope=prod
|
||||||
`),
|
`),
|
||||||
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
RunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||||
// Supports repo override
|
// Supports repo override
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.Admin
|
||||||
|
#
|
||||||
|
# Checks for "admin" and recommends using the full word instead. "Admin Area" is OK.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Verify this use of the word "admin". Can it be updated to "administration", "administrator", "administer", or "Admin Area"?'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: false
|
||||||
|
swap:
|
||||||
|
'[Aa]dmin ?\w*': '(?:Admin( Area| Mode)?|[Aa]dminist(ration|rator|rators|er|rative|ering|ered))'
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.AlertBoxStyle
|
||||||
|
#
|
||||||
|
# Makes sure alert boxes are used with block quotes. Checks for 3 formatting issues:
|
||||||
|
#
|
||||||
|
# - Alert boxes inside a block quote (">")
|
||||||
|
# - Alert boxes with the note text on the same line
|
||||||
|
# - Alert boxes using words other than "NOTE" or "WARNING"
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Alert box "%s" must use the formatting in the style guide.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#alert-boxes
|
||||||
|
level: error
|
||||||
|
nonword: true
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '(\n *\> *(?:NOTE|WARNING)|'
|
||||||
|
- '\n\n(NOTE|WARNING):[^\n]|'
|
||||||
|
- '\n\n *(?:> )?\**(Note|note|TIP|Tip|tip|CAUTION|Caution|caution|DANGER|Danger|danger|Warning|warning):.*)'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.BadPlurals
|
||||||
|
#
|
||||||
|
# Don't write plural words with the '(s)' construction. "HTTP(S)" is acceptable.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://docs.errata.ai/vale/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Rewrite "%s" to be plural, without parentheses.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#s
|
||||||
|
level: warning
|
||||||
|
ignorecase: true
|
||||||
|
raw:
|
||||||
|
- '\b\w+\(s\)(?<!http\(s\))'
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.BadgeCapitalization
|
||||||
|
#
|
||||||
|
# Verifies that badges are not mixed case, which won't render properly.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Badge "%s" must be capitalized.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '(?!\*\*\((FREE|PREMIUM|ULTIMATE)( (SELF|SAAS))?\)\*\*)'
|
||||||
|
- '(?i)\*\*\((free|premium|ultimate)( (self|saas))?\)\*\*'
|
|
@ -0,0 +1,120 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.British
|
||||||
|
#
|
||||||
|
# Checks that US spelling is used instead of British spelling.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Use the US spelling "%s" instead of the British "%s".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
|
||||||
|
level: error
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
aeon: eon
|
||||||
|
aeroplane: airplane
|
||||||
|
ageing: aging
|
||||||
|
aluminium: aluminum
|
||||||
|
anaemia: anemia
|
||||||
|
anaesthesia: anesthesia
|
||||||
|
analyse: analyze
|
||||||
|
annexe: annex
|
||||||
|
apologise: apologize
|
||||||
|
authorise: authorize
|
||||||
|
authorised: authorized
|
||||||
|
authorisation: authorization
|
||||||
|
authorising: authorizing
|
||||||
|
behaviour: behavior
|
||||||
|
busses: buses
|
||||||
|
calibre: caliber
|
||||||
|
categorise: categorize
|
||||||
|
categorised: categorized
|
||||||
|
categorises: categorizes
|
||||||
|
categorising: categorizing
|
||||||
|
centre: center
|
||||||
|
cheque: check
|
||||||
|
civilisation: civilization
|
||||||
|
civilise: civilize
|
||||||
|
colour: color
|
||||||
|
cosy: cozy
|
||||||
|
cypher: cipher
|
||||||
|
dependant: dependent
|
||||||
|
defence: defense
|
||||||
|
distil: distill
|
||||||
|
draught: draft
|
||||||
|
encyclopaedia: encyclopedia
|
||||||
|
enquiry: inquiry
|
||||||
|
enrol: enroll
|
||||||
|
enrolment: enrollment
|
||||||
|
enthral: enthrall
|
||||||
|
# equalled: equaled // Under discussion
|
||||||
|
# equalling: equaling // Under discussion
|
||||||
|
favourite: favorite
|
||||||
|
fibre: fiber
|
||||||
|
fillet: filet
|
||||||
|
flavour: flavor
|
||||||
|
furore: furor
|
||||||
|
fulfil: fulfill
|
||||||
|
gaol: jail
|
||||||
|
grey: gray
|
||||||
|
humour: humor
|
||||||
|
honour: honor
|
||||||
|
initialled: initialed
|
||||||
|
initialling: initialing
|
||||||
|
instil: instill
|
||||||
|
jewellery: jewelry
|
||||||
|
labelling: labeling
|
||||||
|
labelled: labeled
|
||||||
|
labour: labor
|
||||||
|
libellous: libelous
|
||||||
|
licence: license
|
||||||
|
likeable: likable
|
||||||
|
liveable: livable
|
||||||
|
lustre: luster
|
||||||
|
manoeuvre: maneuver
|
||||||
|
marvellous: marvelous
|
||||||
|
matt: matte
|
||||||
|
meagre: meager
|
||||||
|
metre: meter
|
||||||
|
modelling: modeling
|
||||||
|
moustache: mustache
|
||||||
|
neighbour: neighbor
|
||||||
|
normalise: normalize
|
||||||
|
offence: offense
|
||||||
|
optimise: optimize
|
||||||
|
optimised: optimized
|
||||||
|
optimising: optimizing
|
||||||
|
organise: organize
|
||||||
|
orientated: oriented
|
||||||
|
paralyse: paralyze
|
||||||
|
plough: plow
|
||||||
|
pretence: pretense
|
||||||
|
programme: program
|
||||||
|
pyjamas: pajamas
|
||||||
|
rateable: ratable
|
||||||
|
realise: realize
|
||||||
|
recognise: recognize
|
||||||
|
reconnoitre: reconnoiter
|
||||||
|
rumour: rumor
|
||||||
|
sabre: saber
|
||||||
|
saleable: salable
|
||||||
|
saltpetre: saltpeter
|
||||||
|
sceptic: skeptic
|
||||||
|
sepulchre: sepulcher
|
||||||
|
signalling: signaling
|
||||||
|
sizeable: sizable
|
||||||
|
skilful: skillful
|
||||||
|
sombre: somber
|
||||||
|
smoulder: smolder
|
||||||
|
speciality: specialty
|
||||||
|
spectre: specter
|
||||||
|
splendour: splendor
|
||||||
|
standardise: standardize
|
||||||
|
standardised: standardized
|
||||||
|
sulphur: sulfur
|
||||||
|
theatre: theater
|
||||||
|
travelled: traveled
|
||||||
|
traveller: traveler
|
||||||
|
travelling: traveling
|
||||||
|
unshakeable: unshakable
|
||||||
|
wilful: willful
|
||||||
|
yoghurt: yogurt
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.CIConfigFile
|
||||||
|
#
|
||||||
|
# Checks that the `.gitlab-ci.yml` file is referenced properly.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'The CI/CD configuration file should be exactly: `.gitlab-ci.yml`'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/versions.html
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '(`gitlab-ci.yml`|'
|
||||||
|
- '`gitlabci.yml`|'
|
||||||
|
- '`gitlab.ci.yml`|'
|
||||||
|
- '`.gitlab.ci-yml`|'
|
||||||
|
- '`.gitlab-ci.yaml`)'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.CodeblockFences
|
||||||
|
#
|
||||||
|
# Ensures all codeblock language tags use the full name, not aliases.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Syntax highlighting hint "%s" must be one of: yaml, ruby, plaintext, markdown, javascript, shell, golang, python, dockerfile, or typescript.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#code-blocks
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '\`\`\`(yml|rb|text|md|bash|sh\n|js\n|go\n|py\n|docker\n|ts)'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.CurlStringsQuoted
|
||||||
|
#
|
||||||
|
# Ensures all code blocks using `curl` wrap URL strings in quotation marks.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'For consistency across all cURL examples, always wrap the URL in double quotes ("): %s'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/restful_api_styleguide.html#curl-commands
|
||||||
|
level: error
|
||||||
|
scope: code
|
||||||
|
raw:
|
||||||
|
- 'curl [^"]+://.*'
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.CurrentStatus
|
||||||
|
#
|
||||||
|
# Checks for words that indicate a product or feature may change in the future.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Avoid words like "%s" when you write about future features. Our documentation is about the current state of the product.'
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: true
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/#promising-features-in-future-versions
|
||||||
|
tokens:
|
||||||
|
- currently
|
||||||
|
- yet
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.DefaultBranch
|
||||||
|
#
|
||||||
|
# Do not refer to the default branch as the "master" branch, if possible.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Use "default branch" or `main` instead of `master`, when possible.'
|
||||||
|
level: warning
|
||||||
|
ignorecase: true
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '\`master\`'
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.Dropdown
|
||||||
|
#
|
||||||
|
# Catches many ways the phrase 'dropdown list' can be fumbled.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.github.io/vale/styles/
|
||||||
|
extends: existence
|
||||||
|
message: 'Use "dropdown list".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/word_list.html#dropdown-list
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: true
|
||||||
|
tokens:
|
||||||
|
- drop-down( [\w]*)?
|
||||||
|
- dropdown(?! list)
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.EOLWhitespace
|
||||||
|
#
|
||||||
|
# Checks that there is no useless whitespace at the end of lines.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Lines should not end with whitespace characters.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/versions.html
|
||||||
|
level: warning
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- ' +\n'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.ElementDescriptors
|
||||||
|
#
|
||||||
|
# Suggests the correct way to describe elements in a form.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.github.io/vale/styles/
|
||||||
|
extends: substitution
|
||||||
|
message: 'When describing elements, %s "%s".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#language
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
button: 'if possible, rewrite to remove'
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.FirstPerson
|
||||||
|
#
|
||||||
|
# Checks for use of first person pronouns.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: '"%s" is a first-person pronoun. Use second- or third-person pronouns (like we, you, us, one) instead.'
|
||||||
|
level: warning
|
||||||
|
ignorecase: true
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
|
||||||
|
tokens:
|
||||||
|
- '\bI[ ,;:?!"]|\bI\x27.{1,2}'
|
||||||
|
- me
|
||||||
|
- myself
|
||||||
|
- mine
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.FutureTense
|
||||||
|
#
|
||||||
|
# Checks for use of future tense in sentences. Present tense is strongly preferred.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Avoid using future tense: "%s". Use present tense instead.'
|
||||||
|
ignorecase: true
|
||||||
|
level: warning
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
|
||||||
|
raw:
|
||||||
|
- "(going to( |\n|[[:punct:]])[a-zA-Z]*|"
|
||||||
|
- "will( |\n|[[:punct:]])[a-zA-Z]*|"
|
||||||
|
- "won't( |\n|[[:punct:]])[a-zA-Z]*|"
|
||||||
|
- "[a-zA-Z]*'ll( |\n|[[:punct:]])[a-zA-Z]*)"
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.HeadingContent
|
||||||
|
#
|
||||||
|
# Checks for generic, unhelpful subheadings.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Rename the subheading "%s", or re-purpose the content elsewhere.'
|
||||||
|
level: warning
|
||||||
|
scope: heading
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/#headings-1
|
||||||
|
ignorecase: false
|
||||||
|
tokens:
|
||||||
|
- How it works
|
||||||
|
- Limitations
|
||||||
|
- Overview
|
||||||
|
- Use cases?
|
||||||
|
- Important notes?
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.HeadingDepth
|
||||||
|
#
|
||||||
|
# Checks that there are no headings greater than 3 levels
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://vale.sh/docs/topics/styles/
|
||||||
|
extends: existence
|
||||||
|
message: 'The subheading "%s" is nested too deeply. Headings deeper than H5 suggest the section or page should be refactored.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#headings-in-markdown
|
||||||
|
level: warning
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '(?<=\n)#{5,}\s.*'
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.InclusionAbleism
|
||||||
|
#
|
||||||
|
# Suggests alternatives for words that foster ableism.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Use inclusive language. Consider "%s" instead of "%s".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
sanity (?:check|test): check for completeness
|
||||||
|
dummy: placeholder, sample, fake
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.InclusionCultural
|
||||||
|
#
|
||||||
|
# Suggests alternatives for words that are culturally inappropriate.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Use inclusive language. Consider "%s" instead of "%s".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
|
||||||
|
level: warning
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
blacklist(?:ed|ing|s)?: denylist
|
||||||
|
whitelist(?:ed|ing|s)?: allowlist
|
||||||
|
master: primary, main
|
||||||
|
slave: secondary
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
# Suggestion: gitlab.InclusionGender
|
||||||
|
#
|
||||||
|
# Suggests alternatives for words that are gender-specific.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Use inclusive language. Consider "%s" instead of "%s".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#inclusive-language
|
||||||
|
level: suggestion
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
mankind: humanity, people
|
||||||
|
manpower: GitLab team members
|
||||||
|
he: they
|
||||||
|
his: their
|
||||||
|
she: they
|
||||||
|
hers: their
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.InternalLinkCase
|
||||||
|
#
|
||||||
|
# Checks that anchor fragments on internal links are in lower-case.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Links to subheadings in GitLab docs must be in lower-case: "%s"'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '[^\`]\[[^\[\]]+\]\((https?:){0}[\w\/\.]*?#[^\s]*?[A-Z][^\) ]*\)[^\`]'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.InternalLinkExtension
|
||||||
|
#
|
||||||
|
# Checks that internal links have .md extenstion and not .html extension.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Link "%s" must link directly to a file and use the .md file extension.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '\[[^\]]+\]\([^:\)]+(\/(#[^\)]+)?\)|\.html(#.+)?\))'
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.InternalLinkFormat
|
||||||
|
#
|
||||||
|
# Checks that internal link paths don't start with "./", which is not needed.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Link "%s" must not start with "./".'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#links-to-internal-documentation
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '\[.+\]\(\.\/.*?\)'
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.LatinTerms
|
||||||
|
#
|
||||||
|
# Checks for use of Latin terms.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: substitution
|
||||||
|
message: 'Use "%s" instead of "%s", but consider rewriting the sentence.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#usage-list
|
||||||
|
level: warning
|
||||||
|
nonword: true
|
||||||
|
ignorecase: true
|
||||||
|
swap:
|
||||||
|
e\.g\.: for example
|
||||||
|
e\. g\.: for example
|
||||||
|
i\.e\.: that is
|
||||||
|
i\. e\.: that is
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.Markdown_emoji
|
||||||
|
#
|
||||||
|
# Check for use of GLFM emoji syntax (https://docs.gitlab.com/ee/user/markdown.html#emojis), which doesn't render correctly in documentation.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'This appears to be GLFM emoji syntax. Replace "%s" with GitLab SVGs or Unicode emojis.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/documentation/styleguide/#gitlab-svg-icons
|
||||||
|
level: warning
|
||||||
|
scope: text
|
||||||
|
raw:
|
||||||
|
- '(?:\s+|^):[a-zA-Z0-9\-_\+]+:(?:\s+|$|\.)'
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
# Warning: gitlab.MeaningfulLinkWords
|
||||||
|
#
|
||||||
|
# Checks for the presence of semantically unhelpful words in link text.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Improve SEO and accessibility by rewriting "%s" in the link text.'
|
||||||
|
level: warning
|
||||||
|
scope: link
|
||||||
|
ignorecase: true
|
||||||
|
link: https://about.gitlab.com/handbook/communication/#writing-style-guidelines
|
||||||
|
tokens:
|
||||||
|
- here
|
||||||
|
- this page
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Error: gitlab.MergeConflictMarkers
|
||||||
|
#
|
||||||
|
# Checks for the presence of merge conflict markers.
|
||||||
|
#
|
||||||
|
# For a list of all options, see https://errata-ai.gitbook.io/vale/getting-started/styles
|
||||||
|
extends: existence
|
||||||
|
message: 'Merge conflict marker "%s" found.'
|
||||||
|
link: https://docs.gitlab.com/ee/development/code_review.html#merging-a-merge-request
|
||||||
|
level: error
|
||||||
|
scope: raw
|
||||||
|
raw:
|
||||||
|
- '\n<<<<<<< .+\n|\n=======\n|\n>>>>>>> .+\n'
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue