Diff
1diff --git a/plugins/sigstore/README.md b/plugins/sigstore/README.md
2new file mode 100644
3index 0000000000000000000000000000000000000000..00e83c8c246df1eedb935685571621ae8cb4a428
4--- /dev/null
5+++ b/plugins/sigstore/README.md
6@@ -0,0 +1,13 @@
7+# Sigstore plugin
8+
9+This plugin sets up completion for the following [Sigstore](https://sigstore.dev/) CLI tools.
10+
11+- [Cosign](https://docs.sigstore.dev/cosign/overview)
12+- [Sget](https://docs.sigstore.dev/cosign/installation#alpine-linux)
13+- [Rekor](https://docs.sigstore.dev/rekor/overview)
14+
15+To use it, add `sigstore` to the plugins array in your zshrc file:
16+
17+```zsh
18+plugins=(... sigstore)
19+```
20diff --git a/plugins/sigstore/sigstore.plugin.zsh b/plugins/sigstore/sigstore.plugin.zsh
21new file mode 100644
22index 0000000000000000000000000000000000000000..1f9d77c11e2cada1142d1d1f776e0a963d709576
23--- /dev/null
24+++ b/plugins/sigstore/sigstore.plugin.zsh
25@@ -0,0 +1,22 @@
26+function install_autocompletion {
27+ if (( ! $+commands[$1] )); then
28+ return
29+ fi
30+
31+ # If the completion file doesn't exist yet, we need to autoload it and
32+ # bind it to `$1` (cosign, sget, rekor-cli). Otherwise, compinit will
33+ # have already done that
34+ if [[ ! -f "$ZSH_CACHE_DIR/completions/_$1" ]]; then
35+ autoload -Uz _$1
36+ typeset -g -A _comps
37+ _comps[$1]=_$1
38+ fi
39+
40+ $1 completion zsh >| "$ZSH_CACHE_DIR/completions/_$1" &|
41+}
42+
43+install_autocompletion cosign
44+install_autocompletion sget
45+install_autocompletion rekor-cli
46+
47+unfunction install_autocompletion