├── .dockerignore
├── .eslintrc.js
├── .gitattributes
├── .github
├── CODEOWNERS
├── pull_request_template.md
├── release-drafter.yaml
└── workflows
│ ├── create-release.yaml
│ └── draft-release.yaml
├── .gitignore
├── .nvmrc
├── Dockerfile
├── Dockerfile-debian
├── Dockerfile-debian-rootless
├── Dockerfile-rootless
├── LICENSE
├── README.md
├── __mocks__
├── codefresh.yml
└── requestretry.js
├── brew
└── template.rb
├── check-version.js
├── cli.gif
├── docs
├── archetypes
│ └── default.md
├── config.toml
├── content
│ ├── _header.md
│ ├── _index.md
│ ├── contexts
│ │ └── spec
│ │ │ ├── _index.md
│ │ │ ├── config.md
│ │ │ ├── helm-repository.md
│ │ │ ├── secret-yaml.md
│ │ │ ├── secret.md
│ │ │ └── yaml.md
│ ├── external-resources.md
│ ├── getting-started
│ │ └── _index.md
│ ├── installation
│ │ ├── _index.md
│ │ ├── docker.md
│ │ ├── homebrew.md
│ │ ├── npm.md
│ │ └── yarn.md
│ ├── more
│ │ └── _index.md
│ ├── operate on resources
│ │ └── _index.md
│ └── pipelines
│ │ ├── Run Pipeline.md
│ │ └── spec.md
├── docs.spec.js
├── index.js
├── layouts
│ └── partials
│ │ └── menu-footer.html
└── themes
│ └── docdock
│ ├── LICENSE.md
│ ├── README.md
│ ├── archetypes
│ ├── default.md
│ └── slide.md
│ ├── exampleSite
│ ├── config.toml
│ ├── content
│ │ ├── _index.md
│ │ ├── content-organisation
│ │ │ ├── _index.md
│ │ │ ├── customize-style
│ │ │ │ ├── _index.md
│ │ │ │ ├── disable.md
│ │ │ │ ├── theme-variants.md
│ │ │ │ └── themestyle.md
│ │ │ ├── extramenu.md
│ │ │ └── logo.md
│ │ ├── create-page
│ │ │ ├── _index.md
│ │ │ ├── homepage.md
│ │ │ ├── myslide.md
│ │ │ ├── page-images.md
│ │ │ └── page-slide.md
│ │ ├── credits.md
│ │ ├── getting-start
│ │ │ ├── _index.md
│ │ │ ├── configuration.md
│ │ │ └── installation.md
│ │ ├── search
│ │ │ └── _index.md
│ │ ├── shortcodes
│ │ │ ├── _index.md
│ │ │ ├── alert.md
│ │ │ ├── attachments.files
│ │ │ │ ├── BachGavotteShort.mp3
│ │ │ │ ├── Carroll_AliceAuPaysDesMerveilles.pdf
│ │ │ │ ├── adivorciarsetoca00cape.pdf
│ │ │ │ ├── hugo.png
│ │ │ │ └── movieselectricsheep-flock-244-32500-2.mp4
│ │ │ ├── attachments.md
│ │ │ ├── button.md
│ │ │ ├── children
│ │ │ │ ├── _index.md
│ │ │ │ ├── children-1
│ │ │ │ │ ├── _index.md
│ │ │ │ │ └── children-1-1
│ │ │ │ │ │ ├── _index.md
│ │ │ │ │ │ └── children-1-1-1
│ │ │ │ │ │ ├── _index.md
│ │ │ │ │ │ └── children-1-1-1-1
│ │ │ │ │ │ ├── _index.md
│ │ │ │ │ │ └── children-1-1-1-1-1
│ │ │ │ │ │ └── _index.md
│ │ │ │ ├── children-2
│ │ │ │ │ ├── _index.md
│ │ │ │ │ └── test3.md
│ │ │ │ ├── children-3
│ │ │ │ │ └── _index.md
│ │ │ │ ├── children-4
│ │ │ │ │ └── _index.md
│ │ │ │ └── test.md
│ │ │ ├── excerpt-include.md
│ │ │ ├── excerpt.md
│ │ │ ├── expand.md
│ │ │ ├── icon.md
│ │ │ ├── mermaid.md
│ │ │ ├── notice.md
│ │ │ ├── panel.md
│ │ │ └── revealjs.md
│ │ └── showcase.md
│ ├── layouts
│ │ ├── partials
│ │ │ ├── custom-head.html
│ │ │ └── menu-footer.html
│ │ └── shortcodes
│ │ │ └── ghcontributors.html
│ └── static
│ │ ├── menu-entry-icon.png
│ │ ├── showcase
│ │ ├── bitfan.site.png
│ │ └── invincible.site.png
│ │ ├── style-flex.png
│ │ ├── style-original.png
│ │ ├── variant-gold.png
│ │ ├── variant-gray.png
│ │ └── variant-green.png
│ ├── i18n
│ ├── en.toml
│ ├── es.toml
│ ├── fr.toml
│ └── nb.toml
│ ├── images
│ ├── screenshot.png
│ └── tn.png
│ ├── layouts
│ ├── 404.html
│ ├── _default
│ │ ├── baseof.html
│ │ ├── li.html
│ │ ├── list.html
│ │ └── single.html
│ ├── index.html
│ ├── index.json
│ ├── partials
│ │ ├── breadcrumb.html
│ │ ├── custom-content-footer.html
│ │ ├── custom-footer.html
│ │ ├── custom-head.html
│ │ ├── flex
│ │ │ ├── body-aftercontent.html
│ │ │ ├── body-beforecontent.html
│ │ │ ├── head.html
│ │ │ ├── scripts.html
│ │ │ └── selectnavigation.html
│ │ ├── header.html
│ │ ├── language-selector.html
│ │ ├── menu-footer.html
│ │ ├── menu.html
│ │ ├── next-prev-page.html
│ │ ├── original
│ │ │ ├── body-aftercontent.html
│ │ │ ├── body-beforecontent.html
│ │ │ ├── head.html
│ │ │ └── scripts.html
│ │ └── pagination.html
│ ├── shortcodes
│ │ ├── alert.html
│ │ ├── anchor.html
│ │ ├── anchorlink.html
│ │ ├── attachmentlink.html
│ │ ├── attachments.html
│ │ ├── button.html
│ │ ├── children.html
│ │ ├── code.html
│ │ ├── emoticon.html
│ │ ├── excerpt-include.html
│ │ ├── excerpt.html
│ │ ├── expand.html
│ │ ├── header.html
│ │ ├── icon.html
│ │ ├── image.html
│ │ ├── info.html
│ │ ├── label.html
│ │ ├── mermaid.html
│ │ ├── note.html
│ │ ├── notice.html
│ │ ├── pagelink.html
│ │ ├── pagetreesearch.html
│ │ ├── panel.html
│ │ ├── recently-updated.html
│ │ ├── relref.html
│ │ ├── revealjs.html
│ │ ├── section.html
│ │ ├── task.html
│ │ ├── tasklist.html
│ │ ├── tip.html
│ │ ├── toc.html
│ │ ├── unknow.html
│ │ ├── userlink.html
│ │ ├── viewppt.html
│ │ ├── viewxls.html
│ │ ├── warning.html
│ │ └── well.html
│ └── slide
│ │ └── single.html
│ ├── static
│ ├── css
│ │ ├── auto-complete.css
│ │ ├── bootstrap.min.css
│ │ ├── featherlight.min.css
│ │ ├── font-awesome.min.css
│ │ ├── horsey.css
│ │ ├── hybrid.css
│ │ └── nucleus.css
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── Inconsolata.eot
│ │ ├── Inconsolata.svg
│ │ ├── Inconsolata.ttf
│ │ ├── Inconsolata.woff
│ │ ├── Lato-Bold.ttf
│ │ ├── Lato-Bold.woff2
│ │ ├── Lato-Regular.ttf
│ │ ├── Lato-Regular.woff2
│ │ ├── Novecentosanswide-Normal-webfont.eot
│ │ ├── Novecentosanswide-Normal-webfont.svg
│ │ ├── Novecentosanswide-Normal-webfont.ttf
│ │ ├── Novecentosanswide-Normal-webfont.woff
│ │ ├── Novecentosanswide-Normal-webfont.woff2
│ │ ├── Novecentosanswide-UltraLight-webfont.eot
│ │ ├── Novecentosanswide-UltraLight-webfont.svg
│ │ ├── Novecentosanswide-UltraLight-webfont.ttf
│ │ ├── Novecentosanswide-UltraLight-webfont.woff
│ │ ├── Novecentosanswide-UltraLight-webfont.woff2
│ │ ├── Roboto-Italic.ttf
│ │ ├── Roboto-Medium.ttf
│ │ ├── Roboto-Regular.ttf
│ │ ├── RobotoMono-Medium.ttf
│ │ ├── RobotoMono-Regular.ttf
│ │ ├── Work_Sans_200.eot
│ │ ├── Work_Sans_200.svg
│ │ ├── Work_Sans_200.ttf
│ │ ├── Work_Sans_200.woff
│ │ ├── Work_Sans_200.woff2
│ │ ├── Work_Sans_300.eot
│ │ ├── Work_Sans_300.svg
│ │ ├── Work_Sans_300.ttf
│ │ ├── Work_Sans_300.woff
│ │ ├── Work_Sans_300.woff2
│ │ ├── Work_Sans_500.eot
│ │ ├── Work_Sans_500.svg
│ │ ├── Work_Sans_500.ttf
│ │ ├── Work_Sans_500.woff
│ │ ├── Work_Sans_500.woff2
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── images
│ │ ├── clippy.svg
│ │ ├── favicon.png
│ │ └── gopher-404.jpg
│ ├── js
│ │ ├── auto-complete.js
│ │ ├── clipboard.min.js
│ │ ├── docdock.js
│ │ ├── featherlight.min.js
│ │ ├── highlight.pack.js
│ │ ├── html5shiv-printshiv.min.js
│ │ ├── jquery-2.x.min.js
│ │ ├── lunr.min.js
│ │ ├── modernizr.custom.71422.js
│ │ └── search.js
│ ├── mermaid
│ │ ├── mermaid.css
│ │ ├── mermaid.dark.css
│ │ ├── mermaid.forest.css
│ │ └── mermaid.js
│ ├── none.html
│ ├── revealjs
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Gruntfile.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── css
│ │ │ ├── print
│ │ │ │ ├── paper.css
│ │ │ │ └── pdf.css
│ │ │ ├── reveal.css
│ │ │ ├── reveal.scss
│ │ │ └── theme
│ │ │ │ ├── README.md
│ │ │ │ ├── beige.css
│ │ │ │ ├── black.css
│ │ │ │ ├── blood.css
│ │ │ │ ├── league.css
│ │ │ │ ├── moon.css
│ │ │ │ ├── night.css
│ │ │ │ ├── serif.css
│ │ │ │ ├── simple.css
│ │ │ │ ├── sky.css
│ │ │ │ ├── solarized.css
│ │ │ │ ├── source
│ │ │ │ ├── beige.scss
│ │ │ │ ├── black.scss
│ │ │ │ ├── blood.scss
│ │ │ │ ├── league.scss
│ │ │ │ ├── moon.scss
│ │ │ │ ├── night.scss
│ │ │ │ ├── serif.scss
│ │ │ │ ├── simple.scss
│ │ │ │ ├── sky.scss
│ │ │ │ ├── solarized.scss
│ │ │ │ └── white.scss
│ │ │ │ ├── template
│ │ │ │ ├── mixins.scss
│ │ │ │ ├── settings.scss
│ │ │ │ └── theme.scss
│ │ │ │ └── white.css
│ │ ├── demo.html
│ │ ├── index.html
│ │ ├── js
│ │ │ └── reveal.js
│ │ ├── lib
│ │ │ ├── css
│ │ │ │ └── zenburn.css
│ │ │ ├── font
│ │ │ │ ├── league-gothic
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── league-gothic.css
│ │ │ │ │ ├── league-gothic.eot
│ │ │ │ │ ├── league-gothic.ttf
│ │ │ │ │ └── league-gothic.woff
│ │ │ │ └── source-sans-pro
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ │ └── source-sans-pro.css
│ │ │ └── js
│ │ │ │ ├── classList.js
│ │ │ │ ├── head.min.js
│ │ │ │ └── html5shiv.js
│ │ ├── package.json
│ │ ├── plugin
│ │ │ ├── highlight
│ │ │ │ └── highlight.js
│ │ │ ├── markdown
│ │ │ │ ├── example.html
│ │ │ │ ├── example.md
│ │ │ │ ├── markdown.js
│ │ │ │ └── marked.js
│ │ │ ├── math
│ │ │ │ └── math.js
│ │ │ ├── multiplex
│ │ │ │ ├── client.js
│ │ │ │ ├── index.js
│ │ │ │ ├── master.js
│ │ │ │ └── package.json
│ │ │ ├── notes-server
│ │ │ │ ├── client.js
│ │ │ │ ├── index.js
│ │ │ │ └── notes.html
│ │ │ ├── notes
│ │ │ │ ├── notes.html
│ │ │ │ └── notes.js
│ │ │ ├── print-pdf
│ │ │ │ └── print-pdf.js
│ │ │ ├── search
│ │ │ │ └── search.js
│ │ │ └── zoom-js
│ │ │ │ └── zoom.js
│ │ └── test
│ │ │ ├── examples
│ │ │ ├── assets
│ │ │ │ ├── image1.png
│ │ │ │ └── image2.png
│ │ │ ├── barebones.html
│ │ │ ├── embedded-media.html
│ │ │ ├── math.html
│ │ │ ├── slide-backgrounds.html
│ │ │ └── slide-transitions.html
│ │ │ ├── qunit-1.12.0.css
│ │ │ ├── qunit-1.12.0.js
│ │ │ ├── simple.md
│ │ │ ├── test-markdown-element-attributes.html
│ │ │ ├── test-markdown-element-attributes.js
│ │ │ ├── test-markdown-external.html
│ │ │ ├── test-markdown-external.js
│ │ │ ├── test-markdown-options.html
│ │ │ ├── test-markdown-options.js
│ │ │ ├── test-markdown-slide-attributes.html
│ │ │ ├── test-markdown-slide-attributes.js
│ │ │ ├── test-markdown.html
│ │ │ ├── test-markdown.js
│ │ │ ├── test-pdf.html
│ │ │ ├── test-pdf.js
│ │ │ ├── test.html
│ │ │ └── test.js
│ ├── scss
│ │ ├── flex
│ │ │ ├── article.scss
│ │ │ ├── fonts.scss
│ │ │ ├── footer.scss
│ │ │ ├── header.scss
│ │ │ ├── main.scss
│ │ │ ├── medias.scss
│ │ │ ├── menu.scss
│ │ │ ├── shortcode.children.scss
│ │ │ ├── shortcode.notice.scss
│ │ │ └── style.scss
│ │ └── original
│ │ │ ├── _colours.scss
│ │ │ ├── _functions.scss
│ │ │ ├── _variables.scss
│ │ │ ├── fonts.scss
│ │ │ ├── main.scss
│ │ │ ├── print.scss
│ │ │ ├── responsive.scss
│ │ │ ├── shortcodes.scss
│ │ │ ├── sidebar.scss
│ │ │ └── style.scss
│ ├── theme-flex
│ │ ├── ribbon.png
│ │ ├── script.js
│ │ └── style.css
│ └── theme-original
│ │ ├── script.js
│ │ ├── style.css
│ │ ├── variant-blue.css
│ │ ├── variant-gold.css
│ │ ├── variant-gray.css
│ │ └── variant-green.css
│ └── theme.toml
├── e2e
├── README.md
├── data
│ ├── crud.pip.yaml
│ └── test-run.pip.yaml
├── e2e.spec.sh
├── helpers.sh
└── scenarios
│ ├── agents.sh
│ ├── annotations.sh
│ ├── boards.sh
│ ├── builds.sh
│ ├── clusters.sh
│ ├── compositions.sh
│ ├── contexts.sh
│ ├── environments.sh
│ ├── helm-repo.sh
│ ├── images.sh
│ ├── pipeline-run.sh
│ ├── pipelines.sh
│ ├── projects.sh
│ ├── registry.sh
│ ├── repository.sh
│ ├── runtime-environment.sh
│ ├── step-types.sh
│ ├── system-runtime-environments.sh
│ ├── teams.sh
│ ├── tokens.sh
│ └── triggers.sh
├── lib
├── binary
│ ├── components.js
│ ├── downloader.js
│ ├── index.js
│ └── runner.js
├── interface
│ └── cli
│ │ ├── Command.js
│ │ ├── codefresh
│ │ ├── commad-line-interface.js
│ │ ├── commands
│ │ ├── RuntimeEnvironmentBaseImages
│ │ │ ├── get.cmd.js
│ │ │ └── runtimeEnvironmentsBaseImages.sdk.spec.js
│ │ ├── agent
│ │ │ ├── apply.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── helper.js
│ │ │ ├── install.cmd.js
│ │ │ └── uninstall.cmd.js
│ │ ├── analyzer
│ │ │ ├── analyze.cmd.js
│ │ │ └── analyzer.logic.js
│ │ ├── annotation
│ │ │ ├── annotation.logic.js
│ │ │ ├── annotation.sdk.spec.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ └── get.cmd.js
│ │ ├── app-proxy
│ │ │ ├── helper.js
│ │ │ ├── install.cmd.js
│ │ │ ├── uninstall.cmd.js
│ │ │ └── upgrade.cmd.js
│ │ ├── audit
│ │ │ └── download.cmd.js
│ │ ├── auth
│ │ │ ├── create-context.cmd.js
│ │ │ ├── current-context.cmd.js
│ │ │ ├── get-contexts.cmd.js
│ │ │ └── use-context.cmd.js
│ │ ├── board
│ │ │ ├── apply.cmd.js
│ │ │ ├── board.sdk.spec.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ └── get.cmd.js
│ │ ├── cli-config
│ │ │ ├── cli-config.cmd.js
│ │ │ └── ops
│ │ │ │ ├── get.cmd.js
│ │ │ │ ├── help.cmd.js
│ │ │ │ ├── profile.cmd.js
│ │ │ │ └── set.cmd.js
│ │ ├── cluster
│ │ │ ├── cluster.sdk.spec.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ └── get.cmd.js
│ │ ├── completion
│ │ │ ├── bash.sh.hbs
│ │ │ ├── completion.cmd.js
│ │ │ └── zsh.sh.hbs
│ │ ├── components
│ │ │ ├── download.cmd.js
│ │ │ └── update.cmd.js
│ │ ├── composition
│ │ │ ├── composition.sdk.spec.js
│ │ │ ├── create.cmd.js
│ │ │ ├── create.completion.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── replace.cmd.js
│ │ │ └── replace.completion.js
│ │ ├── context
│ │ │ ├── apply.cmd.js
│ │ │ ├── context.sdk.spec.js
│ │ │ ├── create.cmd.js
│ │ │ ├── create
│ │ │ │ ├── createConfig.cmd.js
│ │ │ │ ├── createSecret.cmd.js
│ │ │ │ ├── createSecretYaml.cmd.js
│ │ │ │ ├── createYaml.cmd.js
│ │ │ │ ├── git
│ │ │ │ │ ├── base.cmd.js
│ │ │ │ │ └── types
│ │ │ │ │ │ ├── bitbucket.cmd.js
│ │ │ │ │ │ ├── github.cmd.js
│ │ │ │ │ │ ├── gitlab.cmd.js
│ │ │ │ │ │ └── stash.cmd.js
│ │ │ │ ├── helm-repo
│ │ │ │ │ ├── base.cmd.js
│ │ │ │ │ └── types
│ │ │ │ │ │ ├── http.cmd.js
│ │ │ │ │ │ └── s3.cmd.js
│ │ │ │ └── secret-store
│ │ │ │ │ ├── base.cmd.js
│ │ │ │ │ └── types
│ │ │ │ │ ├── hashicorp-vault.cmd.js
│ │ │ │ │ ├── kubernetes-runtime.cmd.js
│ │ │ │ │ └── kubernetes.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ └── get.cmd.js
│ │ ├── environment
│ │ │ ├── delete.cmd.js
│ │ │ ├── environment.sdk.spec.js
│ │ │ └── get.cmd.js
│ │ ├── gitops
│ │ │ ├── argocd
│ │ │ │ ├── install.js
│ │ │ │ ├── uninstall.js
│ │ │ │ └── upgrade.js
│ │ │ ├── codefresh
│ │ │ │ ├── install.js
│ │ │ │ ├── uninstall.js
│ │ │ │ └── upgrade.js
│ │ │ ├── common
│ │ │ │ ├── install.js
│ │ │ │ ├── uninstall.js
│ │ │ │ └── upgrade.js
│ │ │ ├── install.cmd.js
│ │ │ ├── install.spec.js
│ │ │ ├── uninstall.cmd.js
│ │ │ └── upgrade.cmd.js
│ │ ├── helm
│ │ │ ├── chart
│ │ │ │ ├── helm-charts.sdk.spec.js
│ │ │ │ ├── install-chart.cmd.js
│ │ │ │ └── promote-chart.cmd.js
│ │ │ ├── helm.sdk.spec.js
│ │ │ ├── release
│ │ │ │ ├── delete-release.cmd.js
│ │ │ │ ├── helm-releases.sdk.spec.js
│ │ │ │ ├── rollback-release.cmd.js
│ │ │ │ ├── test-release.cmd.js
│ │ │ │ └── util.js
│ │ │ ├── repo
│ │ │ │ ├── apply.cmd.js
│ │ │ │ ├── create.cmd.js
│ │ │ │ ├── delete.cmd.js
│ │ │ │ ├── get.cmd.js
│ │ │ │ └── helm-repo.sdk.spec.js
│ │ │ └── set-helm-config.cmd.js
│ │ ├── hybrid
│ │ │ ├── InstallationPlan.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── execute-test-pipeline.cmd.js
│ │ │ ├── helper.js
│ │ │ ├── info.cmd.js
│ │ │ ├── init.cmd.js
│ │ │ ├── installation-process.js
│ │ │ ├── key-helper.js
│ │ │ ├── migration.js
│ │ │ ├── pipeline-helper.js
│ │ │ └── upgrade.cmd.js
│ │ ├── image
│ │ │ ├── annotate.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── image.sdk.spec.js
│ │ │ ├── tag.cmd.js
│ │ │ └── untag.cmd.js
│ │ ├── imagePullSecret
│ │ │ ├── generate.cmd.js
│ │ │ └── imagePullSecret.sdk.spec.js
│ │ ├── monitor
│ │ │ ├── install.cmd.js
│ │ │ └── uninstall.cmd.js
│ │ ├── offline-logs
│ │ │ ├── base.cmd.js
│ │ │ ├── ensure-index.cmd.js
│ │ │ ├── ensure-index.spec.js
│ │ │ ├── offload-to-collection.cmd.js
│ │ │ ├── offload-to-file.cmd.js
│ │ │ ├── offload-to-file.spec.js
│ │ │ └── utils.js
│ │ ├── pipeline
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── get.completion.js
│ │ │ ├── pipeline.sdk.spec.js
│ │ │ ├── run.base.js
│ │ │ ├── run.cf.js
│ │ │ ├── run.cmd.js
│ │ │ ├── run.completion.js
│ │ │ └── run.local.js
│ │ ├── project
│ │ │ ├── apply.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ └── project.sdk.spec.js
│ │ ├── registry
│ │ │ ├── create.cmd.js
│ │ │ ├── create
│ │ │ │ └── create.standard.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ └── registry.sdk.spec.js
│ │ ├── repo
│ │ │ ├── add.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ └── repo.sdk.spec.js
│ │ ├── root
│ │ │ ├── add.cmd.js
│ │ │ ├── annotate.cmd.js
│ │ │ ├── apply.cmd.js
│ │ │ ├── apply.completion.js
│ │ │ ├── assign.cmd.js
│ │ │ ├── auth.cmd.js
│ │ │ ├── components.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── create.completion.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── delete.completion.js
│ │ │ ├── diff.cmd.js
│ │ │ ├── diff.completion.js
│ │ │ ├── download.cmd.js
│ │ │ ├── generate.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── get.completion.js
│ │ │ ├── install.cmd.js
│ │ │ ├── replace.cmd.js
│ │ │ ├── replace.completion.js
│ │ │ ├── root.sdk.spec.js
│ │ │ ├── runner.cmd.js
│ │ │ ├── synchronize.cmd.js
│ │ │ ├── unassign.cmd.js
│ │ │ ├── uninstall.cmd.js
│ │ │ ├── upgrade.cmd.js
│ │ │ ├── validate.cmd.js
│ │ │ ├── validate.completion.js
│ │ │ └── version.cmd.js
│ │ ├── runtimeEnvironments
│ │ │ ├── apply.cmd.js
│ │ │ ├── attach.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── diff.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── install.cmd.js
│ │ │ ├── runtimeEnvironments.sdk.spec.js
│ │ │ └── uninstall.cmd.js
│ │ ├── section
│ │ │ ├── apply.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ └── section.sdk.spec.js
│ │ ├── step
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── get.completion.js
│ │ │ └── step.sdk.spec.js
│ │ ├── systemRuntimeEnvironments
│ │ │ ├── apply.cmd.js
│ │ │ ├── assign.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── diff.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── systemRuntimeEnvironments.sdk.spec.js
│ │ │ └── unassign.cmd.js
│ │ ├── team
│ │ │ ├── add.user.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ ├── remove.user.cmd.js
│ │ │ ├── synchronize.cmd.js
│ │ │ └── team.sdk.spec.js
│ │ ├── tokens
│ │ │ ├── apply.cmd.js
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── get.cmd.js
│ │ │ └── tokens.sdk.spec.js
│ │ ├── trigger
│ │ │ ├── create.cmd.js
│ │ │ ├── delete.cmd.js
│ │ │ ├── event
│ │ │ │ ├── create.cmd.js
│ │ │ │ ├── delete.cmd.js
│ │ │ │ ├── get.cmd.js
│ │ │ │ └── trigger-event.sdk.spec.js
│ │ │ ├── get.cmd.js
│ │ │ ├── trigger.sdk.spec.js
│ │ │ └── type
│ │ │ │ ├── get.cmd.js
│ │ │ │ └── trigger-type.sdk.spec.js
│ │ └── workflow
│ │ │ ├── approve.cmd.js
│ │ │ ├── approve.cmd.spec.js
│ │ │ ├── deny.cmd.js
│ │ │ ├── deny.cmd.spec.js
│ │ │ ├── get.cmd.js
│ │ │ ├── logs.cmd.js
│ │ │ ├── restart.cmd.js
│ │ │ ├── terminate.cmd.js
│ │ │ ├── wait.cmd.js
│ │ │ ├── workflow-data-item
│ │ │ ├── create.cmd.js
│ │ │ └── get.cmd.js
│ │ │ └── workflow.sdk.spec.js
│ │ ├── completion
│ │ ├── completion.spec.js
│ │ ├── generate
│ │ ├── helpers.js
│ │ └── index.js
│ │ ├── defaults.js
│ │ └── helpers
│ │ ├── auth.js
│ │ ├── cli-config.js
│ │ ├── entitiesManifests.js
│ │ ├── general.js
│ │ ├── helm.js
│ │ ├── helpers.sdk.spec.js
│ │ ├── helpers.unit.spec.js
│ │ ├── image.js
│ │ ├── kubernetes.js
│ │ ├── logs.js
│ │ ├── progressEvents.js
│ │ ├── sys-re.js
│ │ └── validation.js
├── logic
│ ├── cli-config
│ │ ├── Manager.js
│ │ ├── Model.js
│ │ ├── errors
│ │ │ ├── MultiplePropertiesError.js
│ │ │ ├── NoPropertyError.js
│ │ │ ├── NotFullPropertyError.js
│ │ │ ├── PipelineValidationError.js
│ │ │ ├── SchemaValidationError.js
│ │ │ ├── awaitTo.js
│ │ │ ├── helpers.js
│ │ │ └── index.js
│ │ ├── manager.spec.js
│ │ └── schema.json
│ ├── entities
│ │ ├── Agent.js
│ │ ├── Annotation.js
│ │ ├── Board.js
│ │ ├── Cluster.js
│ │ ├── CodefreshRepo.js
│ │ ├── Composition.js
│ │ ├── Context.js
│ │ ├── Entity.js
│ │ ├── Environment.js
│ │ ├── GitRepo.js
│ │ ├── HelmRepo.js
│ │ ├── Image.js
│ │ ├── Pipeline.js
│ │ ├── Project.js
│ │ ├── Registry.js
│ │ ├── RuntimeEnvironmentBaseImages.js
│ │ ├── RuntimeEnvironments.js
│ │ ├── Section.js
│ │ ├── StepType.js
│ │ ├── StepTypeVersion.js
│ │ ├── Team.js
│ │ ├── Token.js
│ │ ├── Trigger.js
│ │ ├── TriggerEvent.js
│ │ ├── TriggerType.js
│ │ ├── Workflow.js
│ │ └── WorkflowDataItem.js
│ ├── index.js
│ └── sdk
│ │ └── index.js
└── output
│ ├── Formatter.js
│ ├── Output.js
│ ├── Style.js
│ ├── __mocks__
│ └── Output.js
│ ├── formatters
│ ├── Annotations.formatter.js
│ ├── Board.formatter.js
│ ├── CodefreshRepo.formatter.js
│ ├── Composition.formatter.js
│ ├── Environment.formatter.js
│ ├── GitRepo.formatter.js
│ ├── HelmRepo.formatter.js
│ ├── Image.formatter.js
│ ├── Pipeline.formatter.js
│ ├── Project.formatter.js
│ ├── Registry.formatter.js
│ ├── Section.formatter.js
│ ├── StepType.formatter.js
│ ├── Team.formatter.js
│ ├── Token.formatter.js
│ ├── TriggerEvent.formatter.js
│ ├── TriggerType.formatter.js
│ ├── Workflow.formatter.js
│ └── index.js
│ └── types
│ ├── id.output.js
│ ├── json.output.js
│ ├── name.output.js
│ ├── table.output.js
│ ├── table.output.spec.js
│ └── yaml.output.js
├── openapi.json
├── package.json
├── run-check-version.js
├── test-setup.js
└── yarn.lock
/.dockerignore:
--------------------------------------------------------------------------------
1 | .env
2 | .git
3 | .gitignore
4 | .vscode
5 | coverage
6 | logs
7 | node_modules
8 | *.log
9 | *.md
10 | docker-compose.yml
11 | codefresh.yml
12 | .coveralls.yml
13 | examples
14 | dist
15 | e2e
16 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'plugins': [
3 | 'jest'
4 | ],
5 | 'extends': 'airbnb-base',
6 | 'rules': {
7 | 'indent': ['error', 4, { 'SwitchCase': 1 }],
8 | 'no-underscore-dangle': [0],
9 | 'max-len': ['error', {
10 | 'code': 140,
11 | 'ignoreComments': true
12 | }],
13 | 'no-console': 0,
14 | 'object-curly-newline': 0,
15 | 'no-return-await': 'off',
16 | },
17 | 'env': {
18 | 'jest': true,
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set the default behavior, in case people don't have core.autocrlf set.
2 | * text eol=lf
3 |
4 | # (binary is a macro for -text -diff)
5 | *.png binary
6 | *.jpg binary
7 | *.jpeg binary
8 | *.svg binary
9 | *.gif binary
10 | *.ico binary
11 | *.mov binary
12 | *.mp4 binary
13 | *.mp3 binary
14 | *.flv binary
15 | *.fla binary
16 | *.swf binary
17 | *.gz binary
18 | *.zip binary
19 | *.7z binary
20 | *.ttf binary
21 | *.eot binary
22 | *.otf binary
23 | *.woff binary
24 | *.woff2 binary
25 | *.pyc binary
26 | *.pdf binary
27 | *.ez binary
28 | *.bz2 binary
29 | *.swp binary
30 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * yaroslav@codefresh.io ziv@codefresh.io daniel.soifer@codefresh.io daniel.maizel@codefresh.io
2 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## What
2 |
3 | ## Why
4 |
5 | ## Notes
6 |
--------------------------------------------------------------------------------
/.github/release-drafter.yaml:
--------------------------------------------------------------------------------
1 | name-template: 'v$RESOLVED_VERSION'
2 | tag-template: 'v$RESOLVED_VERSION'
3 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
4 | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
5 | template: |
6 | ## Changes
7 |
8 | $CHANGES
--------------------------------------------------------------------------------
/.github/workflows/create-release.yaml:
--------------------------------------------------------------------------------
1 | ## Reference: https://github.com/release-drafter/release-drafter
2 | name: Create Release
3 |
4 | on:
5 | push:
6 | branches:
7 | - master
8 |
9 | jobs:
10 | create_release:
11 | name: Create Release
12 | runs-on: ubuntu-latest
13 | permissions:
14 | contents: write
15 | pull-requests: write
16 | steps:
17 | - name: Checkout
18 | uses: actions/checkout@v3
19 | with:
20 | fetch-depth: 0
21 |
22 | - name: Set up jq
23 | uses: dcarbone/install-jq-action@v1.0.1
24 |
25 | - name: Get release version from service.yaml
26 | run: |
27 | RELEASE_VERSION=$(jq -r '.version' package.json )
28 | echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
29 |
30 | - uses: release-drafter/release-drafter@v5
31 | env:
32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33 | with:
34 | publish: true
35 | version: ${{ env.RELEASE_VERSION }}
36 | config-name: release-drafter.yaml
37 |
--------------------------------------------------------------------------------
/.github/workflows/draft-release.yaml:
--------------------------------------------------------------------------------
1 | ## Reference: https://github.com/release-drafter/release-drafter
2 | name: Create Release
3 |
4 | on:
5 | push:
6 | branches:
7 | - master
8 |
9 | jobs:
10 | create_release:
11 | name: Create Release
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Checkout
15 | uses: actions/checkout@v3
16 | with:
17 | fetch-depth: 0
18 |
19 | - name: Set up jq
20 | uses: dcarbone/install-jq-action@v1.0.1
21 |
22 | - name: Get release version from service.yaml
23 | run: |
24 | RELEASE_VERSION=$(jq -r '.version' package.json )
25 | echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
26 |
27 | - uses: release-drafter/release-drafter@v5
28 | env:
29 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30 | with:
31 | publish: true
32 | version: ${{ env.RELEASE_VERSION }}
33 | config-name: release-drafter.yaml
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | yarn-error.log
3 | .idea/
4 | .vscode
5 | *.log
6 | coverage
7 | .DS_Store
8 | /dist
9 | *.zip
10 | public
11 | temp
12 | package-lock.json
13 | venonalog.json
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v22.11.0
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Codefresh
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/__mocks__/requestretry.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 |
3 | const DEFAULT_RESPONSE = { statusCode: 200, body: { test: 'test' } };
4 |
5 | let RESPONSE = _.clone(DEFAULT_RESPONSE);
6 |
7 | let QUEUE = [];
8 |
9 | const request = jest.fn(async () => {
10 | if (!_.isEmpty(QUEUE)) {
11 | return QUEUE.shift();
12 | }
13 | return RESPONSE;
14 | });
15 |
16 | request.defaults = () => request;
17 |
18 | request.__setResponse = (response) => {
19 | RESPONSE = response;
20 | };
21 |
22 | request.__reset = () => {
23 | RESPONSE = _.clone(DEFAULT_RESPONSE);
24 | QUEUE = [];
25 | };
26 |
27 | request.__defaultResponse = () => {
28 | return _.clone(DEFAULT_RESPONSE);
29 | };
30 |
31 | request.__queueResponses = (queue) => {
32 | QUEUE = QUEUE.concat(queue);
33 | };
34 |
35 | module.exports = request;
36 |
--------------------------------------------------------------------------------
/brew/template.rb:
--------------------------------------------------------------------------------
1 | class Codefresh < Formula
2 | desc "Codefresh CLI provides a full and flexible interface to interact with Codefresh."
3 | homepage "http://cli.codefresh.io"
4 | url "https://github.com/codefresh-io/cli/releases/download/{{ VERSION }}/codefresh-{{ VERSION }}-macos-x64.tar.gz"
5 | version "{{ VERSION }}"
6 | sha256 "{{ SHA256 }}"
7 |
8 | def install
9 | bin.install "codefresh"
10 | end
11 |
12 | test do
13 | system "#{bin}/codefresh version"
14 | end
15 | end
--------------------------------------------------------------------------------
/check-version.js:
--------------------------------------------------------------------------------
1 | const semver = require('semver');
2 | const { engines } = require('./package.json');
3 |
4 | function checkVersion(version = engines.node) {
5 | if (!semver.satisfies(process.version, version)) {
6 | throw new Error(`Required node version ${version} not satisfied with current version ${process.version}.`);
7 | }
8 | }
9 | // checkVersion();
10 |
11 | module.exports = {
12 | checkVersion,
13 | };
14 |
--------------------------------------------------------------------------------
/cli.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/cli.gif
--------------------------------------------------------------------------------
/docs/archetypes/default.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "{{ replace .TranslationBaseName "-" " " | title }}"
3 | date: {{ .Date }}
4 | draft: false
5 | ---
6 |
7 |
--------------------------------------------------------------------------------
/docs/content/_header.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "header"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | +++
6 | [Codefresh CLI](/cli/)
7 |
--------------------------------------------------------------------------------
/docs/content/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | description = "Codefresh CLI"
3 | date = "2017-04-24T18:36:24+02:00"
4 | weight = 1
5 | +++
6 |
7 | # Codefresh CLI
8 |
9 | Welcome to Codefresh official CLI documentation!
10 |
11 | The Codefresh CLI provides a full and flexible interface to interact with Codefresh.
12 | The CLI can be used to achieve the following:
13 |
14 | Perform any operation you would be able to do through the UI.
15 | Create complex automation from your local machine.
16 | Run complex pipeline use cases by using the CLI inside your pipeline steps.
17 |
18 |
19 | To get started please navigate to the [Getting started](getting-started) page.
20 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Spec"
3 | +++
4 |
5 | A Context needs `.apiVersion`, `.kind`, and `.metadata` fields.
6 |
7 | A Context also needs a `.spec` section.
8 |
9 | ### Owner
10 | A context can be either attached to a user or to an account.
11 | `.owner` can be either `account` or `user`.
12 | The default is `account`.
13 |
14 | ### Type
15 | `.spec.type` should be one of the following:
16 |
17 | [config](config)
18 | [secret](secret)
19 | [yaml](yaml)
20 | [secret-yaml](secret-yaml)
21 | [helm-repository](helm-repository)
22 |
23 |
24 | ### Data
25 | `.spec.data` should be different according to the type of the context
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/config.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Config"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 10
6 | +++
7 |
8 | Config context stores a set of keys and values.
9 |
10 | ### Type
11 | `.spec.type` should be `config`.
12 |
13 | ### Data
14 | `.spec.data` should be an array of keys and values.
15 |
16 | ### Examples
17 |
18 | #### config with two keys
19 | ```yaml
20 | apiVersion: "v1"
21 | kind: "context"
22 | owner: "account"
23 | metadata:
24 | name: "my-config-context"
25 | spec:
26 | type: "config"
27 | data:
28 | dbUrl: "db-url"
29 | sysUrl: "sys-url"
30 | ```
31 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/helm-repository.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Helm Repository"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 50
6 | +++
7 |
8 | Helm-Repository context stores an integration with a helm repository.
9 |
10 | ### Type
11 | `.spec.type` should be `helm-repository`.
12 |
13 | ### Data
14 | `.spec.data` should be an array of keys and values.
15 |
16 | ### Examples
17 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/secret-yaml.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Secret Yaml"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 40
6 | +++
7 |
8 | Secret-Yaml context stores an yaml file encrypted.
9 |
10 | ### Type
11 | `.spec.type` should be `secret-yaml`.
12 |
13 | ### Data
14 | `.spec.data` should be an array of keys and values.
15 |
16 | ### Examples
17 |
18 | #### secret-yaml with two keys
19 | ```yaml
20 | apiVersion: "v1"
21 | kind: "context"
22 | owner: "account"
23 | metadata:
24 | name: "my-secret-yaml-context"
25 | spec:
26 | type: "secret-yaml"
27 | data:
28 | serviceType: "LoadBalancer"
29 | image: "mongo"
30 | type:
31 | - "encrypted"
32 | ```
33 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/secret.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Secret"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 20
6 | +++
7 |
8 | Secret context stores a set of keys and values encrypted.
9 |
10 | ### Type
11 | `.spec.type` should be `secret`.
12 |
13 | ### Data
14 | `.spec.data` should be an array of keys and values.
15 |
16 | ### Examples
17 |
18 | #### secret with two keys
19 | ```yaml
20 | apiVersion: "v1"
21 | kind: "context"
22 | owner: "account"
23 | metadata:
24 | name: "my-secret-context"
25 | spec:
26 | type: "secret"
27 | data:
28 | dbPassword: "secret-db-password"
29 | adminPassword: "secret-admin-password"
30 | ```
31 |
--------------------------------------------------------------------------------
/docs/content/contexts/spec/yaml.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Yaml"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 30
6 | +++
7 |
8 | Yaml context stores an yaml file.
9 |
10 | ### Type
11 | `.spec.type` should be `yaml`.
12 |
13 | ### Data
14 | `.spec.data` should be an array of keys and values.
15 |
16 | ### Examples
17 |
18 | #### yaml with two keys
19 | ```yaml
20 | apiVersion: "v1"
21 | kind: "context"
22 | owner: "account"
23 | metadata:
24 | name: "my-yaml-context"
25 | spec:
26 | type: "yaml"
27 | data:
28 | serviceType: "LoadBalancer"
29 | image: "mongo"
30 | ```
31 |
--------------------------------------------------------------------------------
/docs/content/external-resources.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "External Resources"
3 | description = "Hugo-built Sites with docdock theme"
4 | +++
5 |
6 |
7 | #### [https://codefresh.io/blog/introducing-codefresh-cli/](https://codefresh.io/blog/introducing-codefresh-cli/) by Dan Garfield
8 | 
9 |
--------------------------------------------------------------------------------
/docs/content/getting-started/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Getting Started"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 10
6 | +++
7 |
8 | ## Install
9 | Install the CLI through one of the possible ways described in the [Installation](/cli/installation) page.
10 |
11 | ## Authenticate
12 | In order to start working with the cli you will need to update the authentication configuration.
13 | Updating the authentication configuration is done via an API-KEY you generate from Codefresh.
14 |
15 | If you already have an API-KEY you can just use it.
16 | You can generate a new one from the user settings page.
17 |
18 | Once you have an API key, create a new authentication context: `codefresh auth create-context --api-key {API_KEY}`
19 |
20 | ## Getting Help
21 | To get help and usage instructions run `codefresh [COMMAND]--help`.
22 | A help message will appear in the terminal.
23 |
24 | ## Showing Current Version
25 | Run `codefresh version` to see the current CLI version.
26 |
27 |
28 | #### That's it, you are good to go!
29 |
--------------------------------------------------------------------------------
/docs/content/installation/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Installation"
3 | description = ""
4 | weight = 20
5 | +++
6 |
7 | Codefresh CLI is developed and built with node.js.
8 |
9 | In case you have node.js installed on your machine you can use [NPM](/cli/installation/npm) or [YARN](/cli/installation/yarn) to install it.
10 |
11 | If you don't have node.js installed you can install the CLI by [Downloading](/cli/installation/download) it directly.
12 |
13 | It is also possible to run the CLI using a [Docker image](/cli/installation/docker).
14 |
--------------------------------------------------------------------------------
/docs/content/installation/docker.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Docker Image"
3 | description = "asdsd"
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 30
6 | +++
7 |
8 | You can run the CLI using our official docker image which is published to Dockerhub
9 |
10 | Pull the latest version:
11 | `docker pull codefresh/cli`
12 |
13 | Pull a specific version:
14 | `docker pull codefresh/cli:${VERSION}`
15 |
16 |
--------------------------------------------------------------------------------
/docs/content/installation/homebrew.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "HOMEBREW"
3 | description = "Homebrew install"
4 | date = "2018-01-30T12:00:00+02:00"
5 | weight = 60
6 | +++
7 |
8 | Install Codefresh CLI on macOS with [Homebrew](https://brew.sh).
9 |
10 | ## Install
11 |
12 | ```sh
13 | # tap Codefresh homebrew repo
14 | brew tap codefresh-io/cli
15 | # install Codefresh CLI
16 | brew install codefresh
17 | ```
18 |
19 | ## Update to the latest version
20 |
21 | ```sh
22 | brew upgrade codefresh
23 | ```
24 |
25 | ## Uninstall
26 |
27 | ```sh
28 | brew uninstall codefresh
29 | ```
30 |
--------------------------------------------------------------------------------
/docs/content/installation/npm.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "NPM"
3 | description = "asd"
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 10
6 | +++
7 |
8 | {{% alert theme="warning" %}}the CLI requires node version 8.0.0 or higher{{% /alert %}}
9 |
10 | Codefresh's CLI is available for installation through NPM registry.
11 |
12 | Install:
13 | `npm install -g codefresh`
14 |
15 | Install a specific version:
16 | `npm install -g codefresh@{VERSION}`
17 |
18 | Update to latest version:
19 | `npm install -g codefresh`
20 |
21 | Update to a specific version:
22 | `npm install -g codefresh@${VERSION}`
23 |
--------------------------------------------------------------------------------
/docs/content/installation/yarn.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "YARN"
3 | description = "asd"
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 20
6 | +++
7 |
8 | {{% alert theme="warning" %}}the CLI requires node version 8.0.0 or higher{{% /alert %}}
9 |
10 | Codefresh's CLI is available for installation using YARN.
11 |
12 | Install:
13 | `yarn global add codefresh`
14 |
15 | Install a specific version:
16 | `yarn global add codefresh@{VERSION}`
17 |
18 | Update to latest version:
19 | `yarn global upgrade codefresh`
20 |
21 | Update to a specific version:
22 | `yarn global upgrade codefresh@{VERSION}`
23 |
--------------------------------------------------------------------------------
/docs/content/more/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "More..."
3 | weight = 130
4 | +++
5 |
6 |
7 | {{COMMANDS}}
8 |
--------------------------------------------------------------------------------
/docs/content/operate on resources/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Operate On Resources"
3 | weight = 31
4 | +++
5 |
6 | The CLI supports the ability to work with `spec` files when working with resources.
7 | The supported formats are `yaml` and `json`.
8 | Check each specific resource `spec` for its documentation
9 |
10 | {{COMMANDS}}
11 |
--------------------------------------------------------------------------------
/docs/content/pipelines/Run Pipeline.md:
--------------------------------------------------------------------------------
1 | {{HEADER}}
2 |
3 | {{DESCRIPTION}}
4 |
5 | {{COMMANDS}}
6 |
7 | {{ARGUMENTS}}
8 |
9 | {{OPTIONS}}
10 |
11 | ### variable-file (var-file)
12 | It is possible to pass build variables using a file. (supported format: json and yaml)
13 | The variables file structure should be an array.
14 | The pipeline will be triggered multiple times according to the array length.
15 |
16 | #### Variable yaml file with 2 sets of variables
17 | ```yaml
18 | - key: value
19 | key2: key1
20 | - key: value
21 | key2: key2
22 | ```
23 |
24 | #### Variable json file with 2 sets of variables
25 | ```json
26 | [
27 | {
28 | "key": "value",
29 | "key2": "key1"
30 | },
31 | {
32 | "key": "value",
33 | "key2": "key2"
34 | }
35 | ]
36 | ```
37 |
38 | {{EXAMPLES}}
39 |
--------------------------------------------------------------------------------
/docs/docs.spec.js:
--------------------------------------------------------------------------------
1 | const docs = require('../docs');
2 |
3 | describe('docs generation', () => {
4 | jest.setTimeout(20000);
5 | it('should generate docs', async () => {
6 | return await docs();
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/docs/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Download
4 |
5 |
6 | Star
7 |
8 |
9 | Fork
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/themes/docdock/archetypes/default.md:
--------------------------------------------------------------------------------
1 | +++
2 | title= "{{ replace .TranslationBaseName "-" " " | title }}"
3 | date= {{ .Date }}
4 | description = ""
5 | draft= true
6 | +++
7 |
8 | Lorem Ipsum.
9 | Notice `draft` is set to true.
10 |
--------------------------------------------------------------------------------
/docs/themes/docdock/archetypes/slide.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Slide title"
3 | type="slide"
4 |
5 | theme = "league"
6 | [revealOptions]
7 | transition= 'concave'
8 | controls= true
9 | progress= true
10 | history= true
11 | center= true
12 | +++
13 |
14 | # Slide 1
15 |
16 | ___
17 |
18 | ## Slide 1.1
19 |
20 | - Turn off alarm
21 | - Get out of bed
22 |
23 | ___
24 |
25 | ## Slide 1.2
26 |
27 | - Eat eggs
28 | - Drink coffee
29 |
30 | ---
31 |
32 | # Slide 2
33 |
34 | ___
35 |
36 | ## Slide 2.1
37 |
38 | - Eat spaghetti
39 | - Drink wine
40 |
41 | ___
42 |
43 | ## Slide 2.2
44 |
45 | - Get in bed
46 | - Count sheep
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/content-organisation/customize-style/disable.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Disable features"
3 | +++
4 |
5 | You can disable feature in docdock by changing some params in `config.toml`
6 |
7 |
8 | ## hide Next / Prev Chevrons
9 | ```
10 | [params]
11 | disableNavChevron = true
12 | ```
13 |
14 | ## hide Search box in side menu
15 | ```
16 | [params]
17 | disableSearch = true
18 | ```
19 |
20 | ## hide the {{%icon fa-home%}} icon in side bar
21 | ```
22 | [params]
23 | disableHomeIcon = true
24 | ```
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/content-organisation/customize-style/theme-variants.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Theme variants"
3 | description = "change theme style/colors"
4 | +++
5 |
6 | In site configuration file, you can set a variant name of this theme to load a specific css, with different color specifications.
7 |
8 | add a param `themeVariant = "VARIANT_NAME"` in the `[params]` part of config.toml file.
9 |
10 | {{%info%}}Available variants change only colors at this moment{{%/info%}}
11 |
12 |
13 | ## Variant "gray"
14 | ```
15 | [params]
16 | themeVariant = "gray"
17 | ```
18 |
19 | 
20 |
21 | ## Variant "gold"
22 | ```
23 | [params]
24 | themeVariant = "gold"
25 | ```
26 |
27 | 
28 |
29 | ## Variant "green"
30 | ```
31 | [params]
32 | themeVariant = "green"`
33 | ```
34 |
35 | 
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/content-organisation/customize-style/themestyle.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Theme styles"
3 | description = "change theme style"
4 | +++
5 |
6 | In site configuration file, you can set a subtheme name of this theme to load a specific css.
7 |
8 | add a param `themeStyle = "STYLE_NAME"` in the `[params]` part of config.toml file.
9 |
10 |
11 | ## Style "original"
12 | ```
13 | [params]
14 | themeStyle = "original"
15 | ```
16 |
17 | 
18 |
19 | ## Style "flex" (work in progress)
20 | ```
21 | [params]
22 | themeStyle = "flex"
23 | ```
24 |
25 | 
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/content-organisation/extramenu.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Extra menu entries"
3 | date = "2017-04-29T18:36:24+02:00"
4 | Weight=2
5 | +++
6 |
7 | You can define additional menu entries in the navigation menu without any link to content.
8 |
9 | Edit the website configuration `config.toml` and add a `[[menu.shortcuts]]` entry for each link your want to add.
10 |
11 |
12 | Example from the current website, **note the `pre` param** which allows you to insert HTML code and used here to separate content's menu from this "static" menu
13 |
14 | [[menu.shortcuts]]
15 | pre = "More "
16 | name = " Github repo"
17 | identifier = "ds"
18 | url = "https://github.com/vjeantet/hugo-theme-docdock"
19 | weight = 1
20 |
21 | [[menu.shortcuts]]
22 | name = " Hugo Documentation"
23 | identifier = "hugodoc"
24 | url = "https://gohugo.io/"
25 | weight = 2
26 |
27 |
28 | [{{%icon circle-arrow-right%}} Read more about hugo and menu here](https://gohugo.io/extras/menus/)
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/content-organisation/logo.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Logo placeholder"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | Weight=1
6 | +++
7 |
8 | Create a `_header.md` page in content folder. Its content is what you get in the logo placeholder (top left of the screen).
9 |
10 | {{%alert info%}}**Tip :** you can add a image, a combobox with links to other documentation....{{%/alert%}}
11 |
12 | {{%alert info%}}**Tip 2 :** look at [ extra static menu]({{%relref "extramenu.md"%}}) if you want to add links to other website in this sidebar{{%/alert%}}
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/create-page/homepage.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Home page"
3 | description = ""
4 | date = "2017-04-28T18:36:24+02:00"
5 | tags = ["tag1","tag2"]
6 | +++
7 |
8 | To tell Hugo-theme-docdock to consider a page as homepage's content, just create a content file named `_index.md` in content folder.
9 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/create-page/myslide.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "My Slide ! fullscreen"
3 | date = "2017-04-24T18:36:24+02:00"
4 | type="slide"
5 | hidden=true
6 |
7 | theme = "league"
8 | [revealOptions]
9 | transition= 'concave'
10 | controls= true
11 | progress= true
12 | history= false
13 | center= true
14 | +++
15 |
16 | # In the morning
17 |
18 | ___
19 |
20 | ## Getting up
21 |
22 | - Turn off alarm
23 | - Get out of bed
24 |
25 | ___
26 |
27 | ## Breakfast
28 |
29 | - Eat eggs
30 | - Drink coffee
31 |
32 | ---
33 |
34 | # In the evening
35 |
36 | ___
37 |
38 | ## Dinner
39 |
40 | - Eat spaghetti
41 | - Drink wine
42 |
43 | ___
44 |
45 | ## Going to sleep
46 |
47 | - Get in bed
48 | - Count sheep
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/getting-start/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Getting started"
3 | description = ""
4 | weight = 1
5 | alwaysopen = true
6 | +++
7 |
8 | ## Requirements
9 |
10 | Download [Hugo binary](https://gohugo.io/overview/installing/) for your OS (Windows, Linux, Mac) : it’s that simple
11 |
12 | {{%children style="h2" description="true"%}}
13 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/search/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "About the Search Engine"
3 | description = ""
4 | weight = 40
5 | +++
6 |
7 | {{%excerpt-include filename="getting-start/configuration.md" /%}}
8 |
9 |
10 | Docdock theme uses the last improvement available in hugo version 20+ to generate a json index file ready to be consumed by lunr.js javascript search engine.
11 |
12 |
13 | {{%note%}}hugo generate lunrjs index.json at the root of `public` folder if the site only has one language or within each language subfolder. When you build the site with `hugo server`, hugo generates it internally and of course it don't show up in the filesystem{{%/note%}}
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Shortcodes"
3 | description = ""
4 | date = "2017-04-24T18:36:24+02:00"
5 | weight = 30
6 | +++
7 |
8 | A bunch of Shortcodes are available with this theme :
9 |
10 | {{%children style="card" description="true" %}}
11 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/BachGavotteShort.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/BachGavotteShort.mp3
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/Carroll_AliceAuPaysDesMerveilles.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/Carroll_AliceAuPaysDesMerveilles.pdf
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/adivorciarsetoca00cape.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/adivorciarsetoca00cape.pdf
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/hugo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/hugo.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/movieselectricsheep-flock-244-32500-2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/content/shortcodes/attachments.files/movieselectricsheep-flock-244-32500-2.mp4
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-1/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1"
3 | description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-2/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 2"
3 | description = ""
4 | +++
5 |
6 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
7 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
8 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
9 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
10 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
11 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-2/test3.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test 3"
3 | description = "This is a page test"
4 | +++
5 |
6 | This is a test 3 demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-3/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 3"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/children-4/_index.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 4"
3 | description = "This is a demo child page"
4 | hidden=true
5 | +++
6 |
7 | This is a demo child page, not displayed in the menu
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/children/test.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page test"
3 | description = "This is a page test"
4 | +++
5 |
6 | This is a test demo child page
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/shortcodes/notice.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "notice"
3 | description = "Disclaimers to help you structure your page"
4 | +++
5 |
6 | The notice shortcode shows 4 types of disclaimers to help you structure your page.
7 |
8 |
9 | ## Note
10 |
11 | {{%/* notice note */%}}
12 | A notice disclaimer
13 | {{%/* /notice */%}}
14 |
15 | renders as
16 |
17 | {{% notice note %}}
18 | A notice disclaimer
19 | {{% /notice %}}
20 |
21 |
22 | ## Info
23 |
24 | {{%/* notice info */%}}
25 | An information disclaimer
26 | {{%/* /notice */%}}
27 |
28 | renders as
29 |
30 | {{% notice info %}}
31 | An information disclaimer
32 | {{% /notice %}}
33 |
34 |
35 |
36 | ## Tip
37 |
38 | {{%/* notice tip */%}}
39 | A tip disclaimer
40 | {{%/* /notice */%}}
41 |
42 | renders as
43 |
44 | {{% notice tip %}}
45 | A tip disclaimer
46 | {{% /notice %}}
47 |
48 |
49 |
50 | ## Warning
51 |
52 | {{%/* notice warning */%}}
53 | An warning disclaimer
54 | {{%/* /notice */%}}
55 |
56 | renders as
57 |
58 | {{% notice warning %}}
59 | An warning disclaimer
60 | {{% /notice %}}
61 |
62 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/content/showcase.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Docdock-built Sites"
3 | description = "Hugo-built Sites with docdock theme"
4 | +++
5 |
6 |
7 |
8 |
9 | #### [https://invincible.site/](https://invincible.site/) by [@shazic](https://github.com/shazic)
10 | 
11 |
12 |
13 | #### [https://bitfan.io/](https://bitfan.io) by [@vjeantet](https://github.com/vjeantet)
14 | 
15 |
16 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/layouts/partials/custom-head.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Download
4 |
5 |
6 | Star
7 |
8 |
9 | Fork
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/layouts/shortcodes/ghcontributors.html:
--------------------------------------------------------------------------------
1 |
22 |
23 | {{ $url := .Get 0 }}
24 | {{ range getJSON $url }}
25 |
26 |
27 |
@{{.login}}
28 |
{{.contributions}} commits
29 |
30 | {{ end }}
31 |
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/menu-entry-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/menu-entry-icon.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/showcase/bitfan.site.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/showcase/bitfan.site.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/showcase/invincible.site.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/showcase/invincible.site.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/style-flex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/style-flex.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/style-original.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/style-original.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/variant-gold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/variant-gold.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/variant-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/variant-gray.png
--------------------------------------------------------------------------------
/docs/themes/docdock/exampleSite/static/variant-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/exampleSite/static/variant-green.png
--------------------------------------------------------------------------------
/docs/themes/docdock/i18n/en.toml:
--------------------------------------------------------------------------------
1 | [create-header-md]
2 | other = "Create a content/_header.md to customize this"
3 |
4 | [create-footer-md]
5 | other = "Create a content/_footer.md file to customize the footer content"
6 |
7 | [Search-placeholder]
8 | other = "Search..."
9 |
10 | [Clear-History]
11 | other = "Clear History"
12 |
13 | [Page]
14 | other = "Page"
15 |
16 | [Next-Pages]
17 | other = "Next Pages"
18 |
19 | [Previous-Pages]
20 | other = "Previous Pages"
21 |
22 | [pagination-on]
23 | other = "of"
24 |
25 | [Attachments-label]
26 | other = "Attachments"
27 |
28 | [title-404]
29 | other = "Error"
30 |
31 | [message-404]
32 | other = "Woops. Looks like this page doesn't exist."
33 |
34 | [Go-to-homepage]
35 | other = "Go to homepage"
36 |
37 | [Edit-this-page]
38 | other = "Improve this page"
39 |
40 | [Expand-title]
41 | other = "Expand me..."
42 |
43 | [last-update-on]
44 | other = "Last update on"
45 |
--------------------------------------------------------------------------------
/docs/themes/docdock/i18n/es.toml:
--------------------------------------------------------------------------------
1 | [Search-placeholder]
2 | other = "Buscar..."
3 |
4 | [Clear-History]
5 | other = "Limpiar historial"
6 |
7 | [Attachments-label]
8 | other = "Adjuntos"
9 |
10 | [title-404]
11 | other = "Error"
12 |
13 | [message-404]
14 | other = "Woops. Parece que esta página no existe ¯\\_(ツ)_/¯."
15 |
16 | [Go-to-homepage]
17 | other = "Ir a la home"
18 |
19 | [Edit-this-page]
20 | other = "Edita esta página"
21 |
22 | [Shortcuts-Title]
23 | other = "Más"
24 |
25 | [Expand-title]
26 | other = "Expándeme..."
27 |
--------------------------------------------------------------------------------
/docs/themes/docdock/i18n/fr.toml:
--------------------------------------------------------------------------------
1 | [create-header-md]
2 | other = "Créez un fichier _header.md pour personaliser cet encart"
3 |
4 | [create-footer-md]
5 | other = "Créez un fichier footer.md dans le répertoire content pour personaliser ce pied de page"
6 |
7 | [Search-placeholder]
8 | other = "Rechercher..."
9 |
10 | [Clear-History]
11 | other = "Supprimer historique"
12 |
13 | [Page]
14 | other = "Page"
15 |
16 | [Next-Pages]
17 | other = "Pages suivantes"
18 |
19 | [Previous-Pages]
20 | other = "Pages précédentes"
21 |
22 | [pagination-on]
23 | other = "sur"
24 |
25 | [Attachments-label]
26 | other = "Documents attachés"
27 |
28 | [title-404]
29 | other = "Erreur"
30 |
31 | [message-404]
32 | other = "Woops. Looks like this page doesn't exist."
33 |
34 | [Go-to-homepage]
35 | other = "Vers la page d'accueil"
36 |
37 | [Edit-this-page]
38 | other = "Modifier"
39 |
40 | [Expand-title]
41 | other = "Déroulez-moi..."
42 |
43 | [last-update-on]
44 | other = "Dernière mise à jour le "
45 |
--------------------------------------------------------------------------------
/docs/themes/docdock/i18n/nb.toml:
--------------------------------------------------------------------------------
1 | [create-header-md]
2 | other = "Opprett en _header.md for å tilpasse denne"
3 |
4 | [Search-placeholder]
5 | other = "Søk..."
6 |
7 | [Clear-History]
8 | other = "Fjern historikk"
9 |
10 | [Page]
11 | other = "Side"
12 |
13 | [Next-Pages]
14 | other = "Neste"
15 |
16 | [Previous-Pages]
17 | other = "Forrige"
18 |
19 | [pagination-on]
20 | other = "av"
21 |
22 | [Attachments-label]
23 | other = "Vedlegg"
24 |
25 | [title-404]
26 | other = "Feil"
27 |
28 | [message-404]
29 | other = "Ups... Ser ikke ut som denne siden eksisterer."
30 |
31 | [Go-to-homepage]
32 | other = "Gå til hovedsiden"
33 |
34 | [Edit-this-page]
35 | other = "Editer"
36 |
37 | [Expand-title]
38 | other = "Utvid meg..."
39 |
--------------------------------------------------------------------------------
/docs/themes/docdock/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/images/screenshot.png
--------------------------------------------------------------------------------
/docs/themes/docdock/images/tn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/images/tn.png
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ block "title" . }}{{ .Site.Title }}{{ end }}
5 | {{if .Site.Params.themeStyle}}
6 | {{ partial (printf "%s/head.html" .Site.Params.themeStyle) . }}
7 | {{else}}
8 | {{ partial "flex/head.html" . }}
9 | {{end}}
10 |
11 |
12 | {{if .Site.Params.themeStyle}}
13 | {{ partial (printf "%s/body-beforecontent.html" .Site.Params.themeStyle) . }}
14 | {{else}}
15 | {{ partial "flex/body-beforecontent.html" . }}
16 | {{end}}
17 |
18 | {{ block "main" . }}
19 | {{ end }}
20 |
21 | {{if .Site.Params.themeStyle}}
22 | {{ partial (printf "%s/body-aftercontent.html" .Site.Params.themeStyle) . }}
23 | {{else}}
24 | {{ partial "flex/body-aftercontent.html" . }}
25 | {{ end }}
26 |
27 | {{ block "footer" . }}
28 | {{ end }}
29 |
30 | {{ partial "custom-footer.html" . }}
31 |
32 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/_default/li.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
22 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{if .Content}}
3 | {{ .Content }}
4 | {{else }}
5 | {{ $paginator := .Paginator }}
6 |
7 |
10 |
11 | {{ range $index, $page := $paginator.Pages }}
12 | {{ .Render "li" }}
13 | {{ end }}
14 |
15 |
16 |
17 | {{ partial "pagination.html" $paginator }}
18 |
19 | {{end}}
20 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ .Content }}
3 | {{ end }}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/index.json:
--------------------------------------------------------------------------------
1 | [{{ range $index, $page := .Site.Pages }}
2 | {{- if ne $page.Type "json" -}}
3 | {{- if and $index (gt $index 0) -}},{{- end }}
4 | {
5 | "uri": "{{ $page.Permalink }}",
6 | "title": "{{ htmlEscape $page.Title}}",
7 | "tags": [{{ range $tindex, $tag := $page.Params.tags }}{{ if $tindex }}, {{ end }}"{{ $tag| htmlEscape }}"{{ end }}],
8 | "description": "{{ htmlEscape .Description}}",
9 | "content": {{$page.Plain | jsonify}}
10 | }
11 | {{- end -}}
12 | {{- end -}}]
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/breadcrumb.html:
--------------------------------------------------------------------------------
1 | {{define "breadcrumb"}}
2 | {{ if .page.Parent}}
3 | {{$value := (printf "%s > %s" .page.Parent.URL .page.Parent.Title .value)}}
4 | {{ template "breadcrumb" dict "page" .page.Parent "value" $value }}
5 | {{else}}
6 | {{.value|safeHTML}}
7 | {{end}}
8 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/custom-content-footer.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/custom-footer.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/layouts/partials/custom-footer.html
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/custom-head.html:
--------------------------------------------------------------------------------
1 |
2 | {{ with .Site.Params.author }} {{ end }}
3 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/flex/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ .Hugo.Generator }}
4 | {{ .Title }} :: {{ .Site.Title }}
5 |
6 |
7 |
8 |
9 | {{with .Site.Params.themeVariant}}
10 |
11 | {{end}}
12 |
13 |
14 |
17 | {{ partial "custom-head.html" . }}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/flex/scripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{if eq .Site.Params.highlightClientSide true}}
7 |
8 |
9 | {{end}}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/header.html:
--------------------------------------------------------------------------------
1 | {{ $header := print "_header." .Lang }}
2 | {{ range where .Site.Pages "Source.BaseFileName" $header }}
3 | {{ .Content }}
4 | {{else}}
5 | {{ if .Site.GetPage "page" "_header.md" }}
6 | {{(.Site.GetPage "page" "_header.md").Content}}
7 | {{else}}
8 | {{.Site.Title}}
9 | {{end}}
10 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/language-selector.html:
--------------------------------------------------------------------------------
1 | {{- if and .Site.IsMultiLingual (not .Site.Params.DisableLanguageSwitchingButton)}}
2 |
3 | {{ $siteLanguages := .Site.Languages}}
4 | {{ $pageLang := .Page.Lang}}
5 | {{ range .Page.AllTranslations }}
6 | {{ $translation := .}}
7 | {{ range $siteLanguages }}
8 | {{ if eq $translation.Lang .Lang }}
9 | {{ if eq $pageLang .Lang}}
10 | {{ .LanguageName }}
11 | {{ else }}
12 | {{ .LanguageName }}
13 | {{ end }}
14 | {{ end }}
15 | {{ end }}
16 | {{ end }}
17 |
18 | {{- end }}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/layouts/partials/menu-footer.html
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/original/body-aftercontent.html:
--------------------------------------------------------------------------------
1 | {{ partial "custom-content-footer.html" . }}
2 |
3 |
4 |
5 | {{ partial "next-prev-page.html" . }}
6 |
7 |
8 |
11 |
12 | {{ partial "original/scripts.html" . }}
13 |
14 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/original/scripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{if eq .Site.Params.highlightClientSide true}}
5 |
6 |
7 | {{end}}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/partials/pagination.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/alert.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
7 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/anchor.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/anchorlink.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/attachmentlink.html:
--------------------------------------------------------------------------------
1 | {{range $i, $att := .Page.Params.attachments }}
2 | {{if eq $att.filename ($.Get "filename")}}
3 | {{$.Inner}} ({{$att.nicefilesize}})
4 | {{end}}
5 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/attachments.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{with .Get "title"}}{{.}}{{else}}{{T "Attachments-label"}}{{end}}
5 |
6 | {{if eq .Page.File.BaseFileName "index"}}
7 | {{$.Scratch.Add "filesName" "files"}}
8 | {{else}}
9 | {{$.Scratch.Add "filesName" (printf "%s.files" .Page.File.BaseFileName)}}
10 | {{end}}
11 | {{ range (readDir (printf "./content/%s%s" .Page.File.Dir ($.Scratch.Get "filesName")) ) }}
12 | {{ $fileDir := replace $.Page.File.Dir "\\" "/" }}
13 | {{if ($.Get "pattern")}}
14 | {{if (findRE ($.Get "pattern") .Name)}}
15 |
16 |
17 | {{.Name}}
18 |
19 | ({{div .Size 1024 }} kB)
20 |
21 | {{end}}
22 | {{else}}
23 |
24 |
25 | {{.Name}}
26 |
27 | ({{div .Size 1024 }} kB)
28 |
29 | {{end}}
30 | {{end}}
31 |
32 |
33 | {{.Inner}}
34 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/button.html:
--------------------------------------------------------------------------------
1 |
2 | {{ with .Get "align" }}{{end}}
3 | {{.Inner}}
4 | {{ with .Get "align" }} {{end}}
5 |
6 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/code.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/emoticon.html:
--------------------------------------------------------------------------------
1 | {{ $name := .Get "name"}}
2 |
3 | {{ if eq "smile" $name}}
4 | 😀
5 | {{ else if eq "sad" $name}}
6 | 🙁
7 | {{ else if eq "cheeky" $name}}
8 | 😛
9 | {{ else if eq "laugh" $name}}
10 | 😃
11 | {{ else if eq "wink" $name}}
12 | 😉
13 | {{ else if eq "thumbs-up" $name}}
14 |
15 | {{ else if eq "thumbs-down" $name}}
16 |
17 | {{ else if eq "information" $name}}
18 |
19 | {{ else if eq "tick" $name}}
20 |
21 | {{ else if eq "cross" $name}}
22 |
23 | {{ else if eq "warning" $name}}
24 |
25 | {{else}}
26 | ( Emoticon: {{$name}} )
27 | {{end}}
28 |
29 | {{.Inner}}
30 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/excerpt-include.html:
--------------------------------------------------------------------------------
1 | {{ $excerpt := findRE "(?ms){{%\\s*excerpt[^%]*%}}(.|\n)*?{{%\\s*/excerpt\\s*%}}" ( readFile (printf "./content/%s" (.Get "filename")) ) }}
2 | {{ range $excerpt }}
3 | {{if ($.Get "panel")}}
4 |
5 |
{{$.Get "panel"}}
6 |
7 | {{ (replaceRE "(?ms){{%\\s*excerpt[^%]*%}}(.*){{%\\s*/excerpt\\s*%}}" "$1" .) | safeHTML | markdownify }}
8 |
9 |
10 | {{else}}
11 | {{ (replaceRE "(?ms){{%\\s*excerpt[^%]*%}}(.*){{%\\s*/excerpt\\s*%}}" "$1" .) | safeHTML | markdownify }}
12 | {{ end }}
13 | {{ end }}
14 | {{.Inner}}
15 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/excerpt.html:
--------------------------------------------------------------------------------
1 | {{with .Get "hidden"}}
2 | {{if eq . "false"}}
3 | {{$.Inner}}
4 | {{end}}
5 | {{else}}
6 | {{.Inner}}
7 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/expand.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{$expandMessage := T "Expand-title"}}
6 | {{ if .IsNamedParams }}
7 | {{.Get "default" | default $expandMessage}}
8 | {{else}}
9 | {{.Get 0 | default $expandMessage}}
10 | {{end}}
11 |
12 |
13 |
14 | {{.Inner | safeHTML}}
15 |
16 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/header.html:
--------------------------------------------------------------------------------
1 |
2 |
Résumé
3 | {{.Inner}}
4 |
5 |
Sur cette page
6 | {{.Page.TableOfContents}}
7 |
Pages liées
8 |
9 | {{ range sort .Page.Sections }}
10 | {{ .Title }}
11 | {{ end }}
12 | {{ range sort .Page.Pages }}
13 | {{ .Title }}
14 | {{ end }}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/icon.html:
--------------------------------------------------------------------------------
1 | {{ if .IsNamedParams }}
2 | {{if not (hasPrefix (.Get "name") "fa-") }}
3 |
4 | {{else}}
5 |
6 | {{end}}
7 | {{else}}
8 | {{if not (hasPrefix (.Get 0) "fa-") }}
9 |
10 | {{else}}
11 |
12 | {{end}}
13 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/image.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{.Inner}}
5 |
6 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/info.html:
--------------------------------------------------------------------------------
1 |
2 | {{- if .Get "title" -}}
3 |
4 | {{ with .Get "title" }}
{{htmlUnescape .}}
{{end}}
5 |
{{.Inner}}
6 |
7 | {{- else -}}
8 | {{.Inner}}
9 | {{- end -}}
10 |
11 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/label.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/mermaid.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ safeHTML .Inner }}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/note.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{.Inner}}
4 |
5 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/notice.html:
--------------------------------------------------------------------------------
1 | {{ .Inner }}
2 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/pagelink.html:
--------------------------------------------------------------------------------
1 | {{ if ne (.Get "spacekey") "" }}
2 | {{.Get "pagename" | htmlUnescape}}
3 | {{else}}
4 | {{$pages := where .Site.AllPages "Title" (( $.Get "pagename") | htmlUnescape ) }}
5 | {{ if eq 0 (len $pages) }}
6 | {{.Get "pagename" | htmlUnescape}}
7 | {{else}}
8 | {{ range $pages }}
9 | {{$.Inner}}
10 | {{end}}
11 | {{ end }}
12 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/pagetreesearch.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/panel.html:
--------------------------------------------------------------------------------
1 |
2 | {{ with .Get "header" }}
{{ htmlUnescape . | markdownify}}
{{end}}
3 |
{{.Inner}}
4 | {{ with .Get "footer" }}{{end}}
5 |
6 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/recently-updated.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
2 |
3 | {{- range first 10 .Site.Pages }}
4 |
5 | {{ .Date.Format "02/01/2006" }} - {{ .Title }}
6 |
7 | {{ end }}
8 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/relref.html:
--------------------------------------------------------------------------------
1 | {{- if in (.Get 0) "/_index.md" -}}
2 | {{- $paths := (split (.Get 0) "_index.md") -}}
3 | {{- $pagepath := index $paths 0 -}}
4 | {{- $anchor := index $paths 1 -}}
5 | {{- with .Site.GetPage "section" (trim $pagepath "/") -}}
6 | {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}}
7 | {{- end -}}
8 | {{- else -}}
9 | {{- with .Site.GetPage "section" (.Get 0) }}
10 | {{- .URL -}}
11 | {{- else -}}
12 | {{- .Get 0 | relref .Page -}}
13 | {{- end -}}
14 | {{- end -}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/section.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/task.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{if eq (.Get "completed") "T"}}
4 |
5 | {{else}}
6 |
7 | {{end}}
8 |
9 | {{.Inner}}
10 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/tasklist.html:
--------------------------------------------------------------------------------
1 |
2 | Tasklist
3 | {{.Inner}}
4 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/tip.html:
--------------------------------------------------------------------------------
1 |
2 | {{if .Get "title" }}
3 |
4 | {{ with .Get "title" }}
{{htmlUnescape .}}
{{end}}
5 |
{{.Inner}}
6 |
7 | {{else}}
8 | {{.Inner}}
9 | {{end}}
10 |
11 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/toc.html:
--------------------------------------------------------------------------------
1 | {{ .Page.TableOfContents }}
2 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/unknow.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/userlink.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/viewppt.html:
--------------------------------------------------------------------------------
1 | {{range $i, $att := .Page.Params.attachments }}
2 | {{if eq $att.filename ($.Get "name")}}
3 | {{$.Inner}}
4 | {{end}}
5 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/viewxls.html:
--------------------------------------------------------------------------------
1 | {{range $i, $att := .Page.Params.attachments }}
2 | {{if eq $att.filename ($.Get "name")}}
3 | {{$.Inner}}
4 | {{end}}
5 | {{end}}
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/warning.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{if .Get "title" }}
5 |
6 | {{ with .Get "title" }}
{{htmlUnescape .}}
{{end}}
7 |
{{.Inner}}
8 |
9 | {{else}}
10 | {{.Inner}}
11 | {{end}}
12 |
13 |
--------------------------------------------------------------------------------
/docs/themes/docdock/layouts/shortcodes/well.html:
--------------------------------------------------------------------------------
1 | {{.Inner}}
2 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/css/auto-complete.css:
--------------------------------------------------------------------------------
1 | .autocomplete-suggestions {
2 | text-align: left;
3 | cursor: default;
4 | border: 1px solid #ccc;
5 | border-top: 0;
6 | background: #fff;
7 | box-shadow: 1px 2px 6px;
8 | transition: left 0.1s ease-in-out;
9 |
10 | /* core styles should not be changed */
11 | position: absolute;
12 | display: none;
13 | z-index: 9999;
14 | max-height: 70vh;
15 | width: 265px;
16 | overflow: hidden;
17 | overflow-y: hidden;
18 | box-sizing: border-box;
19 |
20 | }
21 | .autocomplete-suggestion {
22 | position: relative;
23 | cursor: pointer;
24 | padding: 7px;
25 | line-height: 23px;
26 | white-space: nowrap;
27 | overflow: hidden;
28 | text-overflow: ellipsis;
29 | color: #333;
30 | }
31 |
32 | .autocomplete-suggestion b {
33 | font-weight: normal;
34 | color: #1f8dd6;
35 | }
36 |
37 | .autocomplete-suggestion.selected {
38 | background: #333;
39 | color: #fff;
40 | }
41 |
42 | .autocomplete-suggestion:hover {
43 | background: #444;
44 | color: #fff;
45 | }
46 |
47 | .autocomplete-suggestion > .context {
48 | font-size: 12px;
49 | }
50 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/css/horsey.css:
--------------------------------------------------------------------------------
1 | .sey-list {
2 | display: none;
3 | position: absolute;
4 | padding: 0;
5 | margin: 0;
6 | list-style-type: none;
7 | box-shadow: 1px 2px 6px;
8 | background-color: #fff;
9 | color: #333;
10 | transition: left 0.1s ease-in-out;
11 | max-height: 70vh;
12 | overflow: auto;
13 | width: 265px;
14 | }
15 | .sey-show {
16 | display: block;
17 | }
18 | .sey-hide {
19 | display: none;
20 | }
21 | .sey-item {
22 | cursor: pointer;
23 | overflow: hidden;
24 | white-space: nowrap;
25 | text-overflow: ellipsis;
26 | padding: 7px;
27 | }
28 | .sey-item:hover {
29 | background-color: #444;
30 | color: #fff;
31 | }
32 | .sey-selected {
33 | background-color: #333;
34 | color: #fff;
35 | }
36 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Inconsolata.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Inconsolata.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Inconsolata.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Inconsolata.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Inconsolata.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Inconsolata.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Lato-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Lato-Bold.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Lato-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Lato-Bold.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Lato-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Lato-Regular.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Lato-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Lato-Regular.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-Normal-webfont.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Novecentosanswide-UltraLight-webfont.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/RobotoMono-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/RobotoMono-Medium.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/RobotoMono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/RobotoMono-Regular.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_200.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_200.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_200.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_200.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_200.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_200.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_200.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_200.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_300.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_300.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_300.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_300.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_300.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_300.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_300.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_300.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_500.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_500.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_500.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_500.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_500.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_500.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/Work_Sans_500.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/Work_Sans_500.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/docs/themes/docdock/static/images/clippy.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/images/favicon.png
--------------------------------------------------------------------------------
/docs/themes/docdock/static/images/gopher-404.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/images/gopher-404.jpg
--------------------------------------------------------------------------------
/docs/themes/docdock/static/none.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/none.html
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | *.iml
3 | *.iws
4 | *.eml
5 | out/
6 | .DS_Store
7 | .svn
8 | log/*.log
9 | tmp/**
10 | node_modules/
11 | .sass-cache
12 | css/reveal.min.css
13 | js/reveal.min.js
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 4.1.1
4 | before_script:
5 | - npm install -g grunt-cli
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Contributing
2 |
3 | Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**.
4 |
5 |
6 | ### Personal Support
7 | If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
8 |
9 |
10 | ### Bug Reports
11 | When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested.
12 |
13 |
14 | ### Pull Requests
15 | - Should follow the coding style of the file you work in, most importantly:
16 | - Tabs to indent
17 | - Single-quoted strings
18 | - Should be made towards the **dev branch**
19 | - Should be submitted from a feature/topic branch (not your master)
20 |
21 |
22 | ### Plugins
23 | Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines
24 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2017 Hakim El Hattab, http://hakim.se, and reveal.js contributors
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "reveal.js",
3 | "version": "3.6.0",
4 | "main": [
5 | "js/reveal.js",
6 | "css/reveal.css"
7 | ],
8 | "homepage": "http://revealjs.com",
9 | "license": "MIT",
10 | "description": "The HTML Presentation Framework",
11 | "authors": [
12 | "Hakim El Hattab "
13 | ],
14 | "dependencies": {
15 | "headjs": "~1.0.3"
16 | },
17 | "repository": {
18 | "type": "git",
19 | "url": "git://github.com/hakimel/reveal.js.git"
20 | },
21 | "ignore": [
22 | "**/.*",
23 | "node_modules",
24 | "bower_components",
25 | "test"
26 | ]
27 | }
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/css/theme/source/night.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Black theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 |
7 |
8 | // Default mixins and settings -----------------
9 | @import "../template/mixins";
10 | @import "../template/settings";
11 | // ---------------------------------------------
12 |
13 |
14 | // Include theme-specific fonts
15 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700);
16 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
17 |
18 |
19 | // Override theme settings (see ../template/settings.scss)
20 | $backgroundColor: #111;
21 |
22 | $mainFont: 'Open Sans', sans-serif;
23 | $linkColor: #e7ad52;
24 | $linkColorHover: lighten( $linkColor, 20% );
25 | $headingFont: 'Montserrat', Impact, sans-serif;
26 | $headingTextShadow: none;
27 | $headingLetterSpacing: -0.03em;
28 | $headingTextTransform: none;
29 | $selectionBackgroundColor: #e7ad52;
30 |
31 |
32 | // Theme template ------------------------------
33 | @import "../template/theme";
34 | // ---------------------------------------------
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/css/theme/source/serif.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is brown.
4 | *
5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
6 | */
7 |
8 |
9 | // Default mixins and settings -----------------
10 | @import "../template/mixins";
11 | @import "../template/settings";
12 | // ---------------------------------------------
13 |
14 |
15 |
16 | // Override theme settings (see ../template/settings.scss)
17 | $mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
18 | $mainColor: #000;
19 | $headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
20 | $headingColor: #383D3D;
21 | $headingTextShadow: none;
22 | $headingTextTransform: none;
23 | $backgroundColor: #F0F1EB;
24 | $linkColor: #51483D;
25 | $linkColorHover: lighten( $linkColor, 20% );
26 | $selectionBackgroundColor: #26351C;
27 |
28 | .reveal a {
29 | line-height: 1.3em;
30 | }
31 |
32 |
33 | // Theme template ------------------------------
34 | @import "../template/theme";
35 | // ---------------------------------------------
36 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('league-gothic.eot');
4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('league-gothic.woff') format('woff'),
6 | url('league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/lib/js/html5shiv.js:
--------------------------------------------------------------------------------
1 | document.createElement('header');
2 | document.createElement('nav');
3 | document.createElement('section');
4 | document.createElement('article');
5 | document.createElement('aside');
6 | document.createElement('footer');
7 | document.createElement('hgroup');
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/plugin/markdown/example.md:
--------------------------------------------------------------------------------
1 | # Markdown Demo
2 |
3 |
4 |
5 | ## External 1.1
6 |
7 | Content 1.1
8 |
9 | Note: This will only appear in the speaker notes window.
10 |
11 |
12 | ## External 1.2
13 |
14 | Content 1.2
15 |
16 |
17 |
18 | ## External 2
19 |
20 | Content 2.1
21 |
22 |
23 |
24 | ## External 3.1
25 |
26 | Content 3.1
27 |
28 |
29 | ## External 3.2
30 |
31 | Content 3.2
32 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/plugin/multiplex/client.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var multiplex = Reveal.getConfig().multiplex;
3 | var socketId = multiplex.id;
4 | var socket = io.connect(multiplex.url);
5 |
6 | socket.on(multiplex.id, function(data) {
7 | // ignore data from sockets that aren't ours
8 | if (data.socketId !== socketId) { return; }
9 | if( window.location.host === 'localhost:1947' ) return;
10 |
11 | Reveal.setState(data.state);
12 | });
13 | }());
14 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/plugin/multiplex/master.js:
--------------------------------------------------------------------------------
1 | (function() {
2 |
3 | // Don't emit events from inside of notes windows
4 | if ( window.location.search.match( /receiver/gi ) ) { return; }
5 |
6 | var multiplex = Reveal.getConfig().multiplex;
7 |
8 | var socket = io.connect( multiplex.url );
9 |
10 | function post() {
11 |
12 | var messageData = {
13 | state: Reveal.getState(),
14 | secret: multiplex.secret,
15 | socketId: multiplex.id
16 | };
17 |
18 | socket.emit( 'multiplex-statechanged', messageData );
19 |
20 | };
21 |
22 | // post once the page is loaded, so the client follows also on "open URL".
23 | window.addEventListener( 'load', post );
24 |
25 | // Monitor events that trigger a change in state
26 | Reveal.addEventListener( 'slidechanged', post );
27 | Reveal.addEventListener( 'fragmentshown', post );
28 | Reveal.addEventListener( 'fragmenthidden', post );
29 | Reveal.addEventListener( 'overviewhidden', post );
30 | Reveal.addEventListener( 'overviewshown', post );
31 | Reveal.addEventListener( 'paused', post );
32 | Reveal.addEventListener( 'resumed', post );
33 |
34 | }());
35 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/plugin/multiplex/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "reveal-js-multiplex",
3 | "version": "1.0.0",
4 | "description": "reveal.js multiplex server",
5 | "homepage": "http://revealjs.com",
6 | "scripts": {
7 | "start": "node index.js"
8 | },
9 | "engines": {
10 | "node": "~4.1.1"
11 | },
12 | "dependencies": {
13 | "express": "~4.15.5",
14 | "grunt-cli": "~1.3.0",
15 | "mustache": "~2.2.1",
16 | "socket.io": "~1.7.4"
17 | },
18 | "license": "MIT"
19 | }
20 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/examples/assets/image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/test/examples/assets/image1.png
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/examples/assets/image2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/revealjs/test/examples/assets/image2.png
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/examples/barebones.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Barebones
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | Barebones Presentation
20 | This example contains the bare minimum includes and markup required to run a reveal.js presentation.
21 |
22 |
23 |
24 | No Theme
25 | There's no theme included, so it will fall back on browser defaults.
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/examples/embedded-media.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Embedded Media
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Embedded Media Test
23 |
24 |
25 |
28 |
29 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/simple.md:
--------------------------------------------------------------------------------
1 | ## Slide 1.1
2 |
3 | ```js
4 | var a = 1;
5 | ```
6 |
7 |
8 | ## Slide 1.2
9 |
10 |
11 |
12 | ## Slide 2
13 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-markdown-external.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Test Markdown
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-markdown-external.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Reveal.addEventListener( 'ready', function() {
4 |
5 | QUnit.module( 'Markdown' );
6 |
7 | test( 'Vertical separator', function() {
8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
9 | });
10 |
11 | test( 'Horizontal separator', function() {
12 | strictEqual( document.querySelectorAll( '.reveal .slides>section' ).length, 2, 'found two slides' );
13 | });
14 |
15 | test( 'Language highlighter', function() {
16 | strictEqual( document.querySelectorAll( '.hljs-keyword' ).length, 1, 'got rendered highlight tag.' );
17 | strictEqual( document.querySelector( '.hljs-keyword' ).innerHTML, 'var', 'the same keyword: var.' );
18 | });
19 |
20 |
21 | } );
22 |
23 | Reveal.initialize();
24 |
25 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-markdown-options.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js - Test Markdown Options
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-markdown-options.js:
--------------------------------------------------------------------------------
1 | Reveal.addEventListener( 'ready', function() {
2 |
3 | QUnit.module( 'Markdown' );
4 |
5 | test( 'Options are set', function() {
6 | strictEqual( marked.defaults.smartypants, true );
7 | });
8 |
9 | test( 'Smart quotes are activated', function() {
10 | var text = document.querySelector( '.reveal .slides>section>p' ).textContent;
11 |
12 | strictEqual( /['"]/.test( text ), false );
13 | strictEqual( /[“”‘’]/.test( text ), true );
14 | });
15 |
16 | } );
17 |
18 | Reveal.initialize({
19 | dependencies: [
20 | { src: '../plugin/markdown/marked.js' },
21 | { src: '../plugin/markdown/markdown.js' },
22 | ],
23 | markdown: {
24 | smartypants: true
25 | }
26 | });
27 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-markdown.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Reveal.addEventListener( 'ready', function() {
4 |
5 | QUnit.module( 'Markdown' );
6 |
7 | test( 'Vertical separator', function() {
8 | strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
9 | });
10 |
11 |
12 | } );
13 |
14 | Reveal.initialize();
15 |
16 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/revealjs/test/test-pdf.js:
--------------------------------------------------------------------------------
1 |
2 | Reveal.addEventListener( 'ready', function() {
3 |
4 | // Only one test for now, we're mainly ensuring that there
5 | // are no execution errors when running PDF mode
6 |
7 | test( 'Reveal.isReady', function() {
8 | strictEqual( Reveal.isReady(), true, 'returns true' );
9 | });
10 |
11 |
12 | } );
13 |
14 | Reveal.initialize({ pdf: true });
15 |
16 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/flex/footer.scss:
--------------------------------------------------------------------------------
1 | footer {
2 | color: #aaa;
3 | font-size: .95rem;
4 | margin: 0 1rem 0 20rem;
5 | padding: 1rem 4rem;
6 |
7 | p {
8 | margin: 0px;
9 | }
10 |
11 |
12 |
13 | .footline {
14 | /*border-top: 1px solid #e6e6e6;*/
15 | margin: 0rem;
16 | padding: 0;
17 |
18 | font-size: smaller;
19 | display: flex;
20 | flex-direction: row;
21 | justify-content: space-between;
22 | align-items: center;
23 | flex-wrap: wrap;
24 |
25 | .tags {
26 | order: 1;
27 | }
28 |
29 | .tags a:before {
30 | content: "#";
31 | }
32 |
33 | .author {
34 | order: 3;
35 | }
36 |
37 | .github-link {
38 | order: 4;
39 | }
40 |
41 | .date {
42 | order: 3;
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/flex/shortcode.children.scss:
--------------------------------------------------------------------------------
1 | ul.children.children-card {
2 | flex-wrap: wrap;
3 | display: -webkit-box;
4 | display: -ms-flexbox;
5 | display: flex;
6 | -webkit-box-pack: justify;
7 | -ms-flex-pack: justify;
8 | justify-content: space-between;
9 |
10 | >span {
11 | -webkit-box-flex: 1;
12 | -ms-flex: 1 1 auto;
13 | flex: 1 1 auto;
14 | min-width: 0;
15 | min-height: 0;
16 | width: 40%;
17 | min-width: 250px;
18 | margin: 1rem 1rem ;
19 | border: 0.1rem solid #ccc;
20 |
21 | box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
22 | card{
23 | margin: 0px 0px;
24 | display: block;
25 | padding: 1rem;
26 | background-color: #eee;
27 | font-size: 200%;
28 | }
29 |
30 | p{
31 | padding: 0rem 1rem;
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/flex/style.scss:
--------------------------------------------------------------------------------
1 | @import "fonts";
2 |
3 | @import "header";
4 | @import "menu";
5 |
6 | @import "main";
7 |
8 | @import "article";
9 | @import "footer";
10 | @import "shortcode.notice";
11 | @import "shortcode.children";
12 |
13 |
14 | @import "medias" ;
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/original/_colours.scss:
--------------------------------------------------------------------------------
1 | // main: theme.scss
2 |
3 | // == Side ==
4 | $side_back_color: #2053AB;
5 | $side_text_color: #fff;
6 |
7 | // == Main ==
8 | $main_back_color: #fff;
9 | $main_text_color: #323232;
10 |
11 |
12 | // == Code ==
13 | $main_code_inline_back_color: #FFF7DD;
14 | $main_code_block_back_color: #1d1f21;
15 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/original/fonts.scss:
--------------------------------------------------------------------------------
1 | // main: theme.scss
2 |
3 | @font-face {
4 | font-family: 'Novacento Sans Wide';
5 | src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot");
6 | src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-UltraLight-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-UltraLight-webfont.svg#novecento_sans_wideultralight") format("svg");
7 | font-style: normal;
8 | font-weight: 200;
9 | }
10 |
11 | @font-face{
12 | font-family:"Lato";
13 | font-style:normal;
14 | font-weight:400;
15 | src:local("Lato Regular"),local("Lato-Regular"), url(../fonts/Lato-Regular.woff2) format("woff2"), url(../fonts/Lato-Regular.ttf) format("truetype");
16 | }
17 |
18 | @font-face{
19 | font-family:"Lato";
20 | font-style:normal;
21 | font-weight:700;
22 | src:local("Lato Bold"),local("Lato-Bold"), url(../fonts/Lato-Bold.woff2) format("woff2"), url(../fonts/Lato-Bold.ttf) format("truetype");
23 | }
24 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/original/print.scss:
--------------------------------------------------------------------------------
1 | // main: theme.scss
2 |
3 | @media print {
4 | #sidebar, #navigation, #top-bar, .anchor, #sidebar-toggle-span, .copy-to-clipboard {
5 | display:none;
6 | }
7 | #navigation * {
8 | display:none;
9 | visibility: hidden;
10 | }
11 | #body-inner {
12 | margin-bottom: 0px;
13 | }
14 | #footer, .footline{
15 | margin-top: 1px;
16 | }
17 | body, a {
18 | font-size: 120%;
19 | color: black !important;
20 | background: white !important
21 | }
22 | h1, h2, h3, h4, h5, h6 {
23 | color: black !important;
24 | background: white !important
25 | }
26 | #body{
27 | margin-left: 0px;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/original/shortcodes.scss:
--------------------------------------------------------------------------------
1 | // main: theme.scss
2 | /*
3 | Here lives CSS required for shortcodes
4 | */
5 |
6 | // == Children shortcode ==
7 |
8 | .children p {
9 | font-size: small;
10 | margin-top: 0px;
11 | padding-top: 0px;
12 | margin-bottom: 0px;
13 | padding-bottom: 0px;
14 | }
15 |
16 | .children-li p {
17 | font-size: small;
18 | font-style: italic;
19 | }
20 |
21 | .children-h2 p, .children-h3 p {
22 | font-size: small;
23 | margin-top: 0px;
24 | padding-top: 0px;
25 | margin-bottom: 0px;
26 | padding-bottom: 0px;
27 | }
28 |
29 | .children h3,.children h2 {
30 | margin-bottom: 0px;
31 | margin-top: 5px;
32 | }
33 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/scss/original/style.scss:
--------------------------------------------------------------------------------
1 | // compileNested: ../css/$1.css, sourceMap: true
2 | /*
3 | Built with SCSS.
4 | If you would like to explore this CSS,
5 | use source map feature of your browser.
6 | */
7 |
8 | @import "functions";
9 | @import "colours";
10 | @import "fonts";
11 | @import "variables";
12 | @import "main";
13 | @import "sidebar";
14 | @import "shortcodes";
15 | @import "responsive";
16 | @import "print";
17 |
--------------------------------------------------------------------------------
/docs/themes/docdock/static/theme-flex/ribbon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/theme-flex/ribbon.png
--------------------------------------------------------------------------------
/docs/themes/docdock/static/theme-original/variant-blue.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefresh-io/cli/6dc432246557d4bccad5eba09e8fd0566d4d224b/docs/themes/docdock/static/theme-original/variant-blue.css
--------------------------------------------------------------------------------
/docs/themes/docdock/theme.toml:
--------------------------------------------------------------------------------
1 | # theme.toml template for a Hugo theme
2 | # See https://github.com/spf13/hugoThemes#themetoml for an example
3 |
4 | name = "docDock"
5 | license = "MIT"
6 | licenselink = "https://github.com/vjeantet/hugo-theme-docdock/blob/master/LICENSE.md"
7 | description = "Documentation theme for Hugo"
8 | homepage = "https://github.com/vjeantet/hugo-theme-docdock"
9 | repo = "https://github.com/vjeantet/hugo-theme-docdock"
10 | tags = ["documentation", "menu","slide","search"]
11 | features = ["documentation","menu","nested sections","search","slide", "attachments"]
12 | min_version = 0.32
13 |
14 | [author]
15 | name = "Valere JEANTET"
16 | homepage = "http://vjeantet.fr/"
17 |
18 | [original]
19 | name = "Learn"
20 | homepage = "https://matcornic.github.io/hugo-learn-doc/basics/what-is-this-hugo-theme/"
21 | repo = "https://github.com/matcornic/hugo-theme-learn"
22 | licenselink = "https://github.com/matcornic/hugo-theme-learn/blob/master/LICENSE.md"
--------------------------------------------------------------------------------
/e2e/README.md:
--------------------------------------------------------------------------------
1 | # Codefresh Cli E2E
2 |
3 | Account -- codefresh-cli-e2e
4 |
5 | If you want to debug e2e:
6 | 1) enable debug on the `build` pipeline
7 | 2) put breakpoint after `e2e_tests` step
8 | 3) then you can see logs of each test under `/codefresh/volume/cli/e2e/scenarios`
9 |
10 | ##### Note: try to create projects that do not contain same words (like _cli-e2e_ and _cli-e2e_-test)
11 |
--------------------------------------------------------------------------------
/e2e/data/crud.pip.yaml:
--------------------------------------------------------------------------------
1 | version: '1.0'
2 | kind: pipeline
3 | metadata:
4 | name: pipeline-crud/crud
5 | project: pipeline-crud
6 | originalYamlString: |
7 | version: '1.0'
8 | steps:
9 | test:
10 | image: alpine
11 | commands:
12 | - echo test
13 | spec:
14 | triggers: []
15 | stages: []
16 | variables: []
17 | contexts: []
18 | steps:
19 | test:
20 | image: alpine
21 | commands:
22 | - echo test
23 |
24 |
--------------------------------------------------------------------------------
/e2e/data/test-run.pip.yaml:
--------------------------------------------------------------------------------
1 | version: '1.0'
2 | kind: pipeline
3 | metadata:
4 | name: test-run/test-run
5 | project: test-run
6 | originalYamlString: |
7 | version: '1.0'
8 | steps:
9 | test:
10 | image: alpine
11 | commands:
12 | - echo test
13 | spec:
14 | triggers: []
15 | stages: []
16 | variables: []
17 | contexts: []
18 | steps:
19 | test:
20 | image: alpine
21 | commands:
22 | - echo test
23 |
24 |
--------------------------------------------------------------------------------
/e2e/e2e.spec.sh:
--------------------------------------------------------------------------------
1 | # fail if one of the commands returns non-zero code
2 | set -e
3 | set -o pipefail
4 |
5 | export SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
6 | source "$SCRIPT_DIR/helpers.sh"
7 |
8 | codefresh version
9 | echo
10 |
11 | for executable in $SCRIPT_DIR/scenarios/*.sh
12 | do
13 | source $executable > "$executable.log" 2>&1 &
14 | echo "[$!] Executing: $executable"
15 | done
16 | echo
17 |
18 | for job in `jobs -p`
19 | do
20 | echo "Waiting for $job..."
21 | wait $job || exit 1
22 | done
23 |
24 | echo
25 | echo "All tests executed successfully!"
26 |
--------------------------------------------------------------------------------
/e2e/helpers.sh:
--------------------------------------------------------------------------------
1 | CODEFRESH_PATH="$SCRIPT_DIR/../lib/interface/cli/codefresh"
2 |
3 | echo "Using $CODEFRESH_PATH"
4 | function codefresh() {
5 | $CODEFRESH_PATH $@
6 | }
7 |
8 | function exists() {
9 | codefresh get $1 | grep $2 || echo ''
10 | }
11 |
--------------------------------------------------------------------------------
/e2e/scenarios/agents.sh:
--------------------------------------------------------------------------------
1 | codefresh get agents
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/annotations.sh:
--------------------------------------------------------------------------------
1 | echo "Skipping annotation.sh"
2 | #codefresh get annotation
3 |
--------------------------------------------------------------------------------
/e2e/scenarios/boards.sh:
--------------------------------------------------------------------------------
1 | codefresh get boards
2 | echo "Skipping sections.sh"
3 | #codefresh get sections
4 |
--------------------------------------------------------------------------------
/e2e/scenarios/builds.sh:
--------------------------------------------------------------------------------
1 | codefresh get builds
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/clusters.sh:
--------------------------------------------------------------------------------
1 | codefresh get clusters
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/compositions.sh:
--------------------------------------------------------------------------------
1 | codefresh get compositions
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/contexts.sh:
--------------------------------------------------------------------------------
1 | codefresh get contexts
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/environments.sh:
--------------------------------------------------------------------------------
1 | codefresh get environments
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/helm-repo.sh:
--------------------------------------------------------------------------------
1 | codefresh get helm-repo
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/images.sh:
--------------------------------------------------------------------------------
1 | codefresh get images
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/pipeline-run.sh:
--------------------------------------------------------------------------------
1 | project=test-run
2 | pipeline="$project/test-run"
3 | pipeline_file="$SCRIPT_DIR/data/test-run.pip.yaml"
4 |
5 | existing_pipeline=`exists pipeline $pipeline`
6 | existing_project=`exists project $project`
7 |
8 | if [ -z "$existing_project" ]; then
9 | echo "Project does not exist: $project"
10 | echo "Creating project: $project"
11 | codefresh create project $project
12 | else
13 | echo "Project already exists: $project"
14 | fi
15 |
16 | if [ -z "$existing_pipeline" ]; then
17 | echo "Pipeline does not exist: $pipeline"
18 | echo "Creating pipeline: $pipeline"
19 | codefresh create -f $pipeline_file
20 | else
21 | echo "Pipeline already exists: $pipeline"
22 | fi
23 |
24 | codefresh run $pipeline
25 | codefresh delete pipeline $pipeline
26 | codefresh delete project $project
27 |
--------------------------------------------------------------------------------
/e2e/scenarios/pipelines.sh:
--------------------------------------------------------------------------------
1 | project='pipeline-crud'
2 | pipeline="$project/crud"
3 | pipeline_file="$SCRIPT_DIR/data/crud.pip.yaml"
4 |
5 | existing_project=`exists project $project`
6 | existing_pipeline=`exists pipeline $pipeline`
7 |
8 | if [ -z "$existing_project" ]; then
9 | echo "Project does not exist: $project"
10 | echo "Creating project: $project"
11 | codefresh create project $project
12 | else
13 | echo "Project already exists: $project"
14 | fi
15 |
16 | if [ -z "$existing_pipeline" ]; then
17 | echo "Pipeline does not exist: $pipeline"
18 | echo "Creating pipeline: $pipeline"
19 | codefresh create -f $pipeline_file
20 | else
21 | echo "Pipeline already exists: $pipeline"
22 | codefresh delete pipeline $pipeline
23 | codefresh create -f $pipeline_file
24 | fi
25 |
26 | codefresh get pipelines
27 | codefresh get pipeline $pipeline
28 |
29 | codefresh delete pipeline $pipeline
30 | codefresh delete project $project
31 |
32 |
--------------------------------------------------------------------------------
/e2e/scenarios/projects.sh:
--------------------------------------------------------------------------------
1 | project='project-crud'
2 |
3 | existing_project=`exists project $project`
4 |
5 | if [ -z "$existing_project" ]; then
6 | echo "Project does not exist: $project"
7 | echo "Creating project: $project"
8 | codefresh create project $project
9 | else
10 | echo "Project already exists: $project"
11 | codefresh delete project $project
12 | codefresh create project $project
13 | fi
14 |
15 | codefresh get projects
16 | codefresh get project $project
17 | codefresh delete project $project
18 |
--------------------------------------------------------------------------------
/e2e/scenarios/registry.sh:
--------------------------------------------------------------------------------
1 | codefresh get registry
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/repository.sh:
--------------------------------------------------------------------------------
1 | codefresh get repository
2 | codefresh get repository -a
3 |
--------------------------------------------------------------------------------
/e2e/scenarios/runtime-environment.sh:
--------------------------------------------------------------------------------
1 | codefresh get runtime-environments
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/step-types.sh:
--------------------------------------------------------------------------------
1 | codefresh get step-types
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/system-runtime-environments.sh:
--------------------------------------------------------------------------------
1 | codefresh get system-runtime-environments
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/teams.sh:
--------------------------------------------------------------------------------
1 | codefresh get teams
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/tokens.sh:
--------------------------------------------------------------------------------
1 | codefresh get tokens
2 |
--------------------------------------------------------------------------------
/e2e/scenarios/triggers.sh:
--------------------------------------------------------------------------------
1 | codefresh get triggers
2 | codefresh get trigger-events
3 | codefresh get trigger-types
4 |
--------------------------------------------------------------------------------
/lib/binary/index.js:
--------------------------------------------------------------------------------
1 | const components = require('./components');
2 | const { Runner } = require('./runner');
3 | const { Downloader, CommonProgressFormat, CODEFRESH_PATH } = require('./downloader');
4 |
5 | module.exports = {
6 | components,
7 | Runner,
8 | Downloader,
9 | CommonProgressFormat,
10 | CODEFRESH_PATH,
11 | };
12 |
--------------------------------------------------------------------------------
/lib/binary/runner.js:
--------------------------------------------------------------------------------
1 | const { spawn } = require('child_process');
2 | const { join, resolve } = require('path');
3 | const { homedir } = require('os');
4 |
5 | const CODEFRESH_PATH = resolve(homedir(), '.Codefresh');
6 |
7 | class Runner {
8 | constructor(location = CODEFRESH_PATH) {
9 | this.location = location;
10 | }
11 |
12 | async run(component, args) {
13 | const dir = join(this.location, component.local.dir);
14 | const path = component.local.alternateBinary || join(dir, component.local.binary);
15 | const cp = spawn(path, args, {
16 | stdio: [process.stdin, process.stdout, process.stderr],
17 | });
18 | return new Promise((resolveFn, rejectFn) => {
19 | cp.on('exit', (code) => {
20 | if (code !== 0) {
21 | rejectFn(new Error(`Component exited with status code ${code}`));
22 | } else {
23 | resolveFn();
24 | }
25 | });
26 | });
27 | }
28 | }
29 |
30 | module.exports = { Runner };
31 |
--------------------------------------------------------------------------------
/lib/interface/cli/codefresh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const Output = require('../../output/Output');
4 |
5 | process.on('uncaughtException', (err) => {
6 | Output.printError(err);
7 | process.exit(1);
8 | });
9 |
10 | process.on('unhandledRejection', (err) => {
11 | Output.printError(err);
12 | process.exit(1);
13 | });
14 |
15 | if (process.argv.includes('--get-yargs-completions')) {
16 | const completionInterface = require('./completion');
17 | completionInterface().argv; // eslint-disable-line
18 | } else {
19 | const { startCommandLine } = require('./commad-line-interface');
20 | startCommandLine().catch((err) => {
21 | Output.printError(err);
22 | process.exit(1);
23 | });
24 | }
25 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/RuntimeEnvironmentBaseImages/runtimeEnvironmentsBaseImages.sdk.spec.js:
--------------------------------------------------------------------------------
1 | const getCmd = require('./get.cmd').toCommand();
2 |
3 | jest.mock('../../../../logic/entities/RuntimeEnvironments');
4 |
5 | const request = require('requestretry');
6 |
7 | const DEFAULT_RESPONSE = request.__defaultResponse();
8 |
9 | describe('runtime environment commands', () => {
10 | beforeEach(async () => {
11 | request.__reset();
12 | request.mockClear();
13 | await configureSdk(); // eslint-disable-line
14 | });
15 |
16 | describe('get', () => {
17 | it('should handle getting base images', async () => {
18 | const argv = { name: 'some name' };
19 | await getCmd.handler(argv);
20 | await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
21 | });
22 |
23 | it('should throw an error for missing name', async () => {
24 | try {
25 | const argv = {};
26 | await getCmd.handler(argv);
27 | } catch (err) {
28 | expect(err.message).toEqual('Runtime Name must be provided');
29 | }
30 | });
31 | });
32 | });
33 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/agent/helper.js:
--------------------------------------------------------------------------------
1 | const sdk = require('../../../../logic/sdk');
2 | const _ = require('lodash');
3 |
4 | async function getNewAgentName(kubeContextName, kubeNamespace, agents) {
5 | const defaultName = `${kubeContextName}_${kubeNamespace}`;
6 | if (!agents) {
7 | // eslint-disable-next-line no-param-reassign
8 | agents = await sdk.agents.list({ });
9 | }
10 | let name;
11 |
12 | if (!_.isArray(agents) || !_.find(agents, a => a.name === defaultName)) {
13 | name = defaultName; // use the default name if there are no collisions
14 | } else {
15 | const agentsNames = new Set(_.map(agents, a => a.name)); // for fast lookup
16 | let i = 1;
17 | while (agentsNames.has(`${defaultName}_${i}`)) {
18 | i += 1;
19 | }
20 | name = `${defaultName}_${i}`;
21 | }
22 |
23 | return name;
24 | }
25 |
26 | module.exports = {
27 | getNewAgentName,
28 | };
29 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/analyzer/analyzer.logic.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-use-before-define,object-curly-newline,arrow-body-style */
2 |
3 | const { sdk } = require('../../../../logic');
4 |
5 | class AnalyzerLogic {
6 |
7 | static async analyze({ repoOwner, repoName, context }) {
8 |
9 | const repo = {
10 | repoOwner,
11 | repoName,
12 | git: context,
13 | };
14 |
15 | return sdk.pipelines.analyze({
16 | repo,
17 | type: 'git',
18 | source: 'api'
19 | });
20 | }
21 |
22 | }
23 |
24 | module.exports = AnalyzerLogic;
25 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/auth/current-context.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const authRoot = require('../root/auth.cmd');
3 | const { Config } = require('codefresh-sdk');
4 | const { printTableForAuthContexts } = require('../../helpers/auth');
5 |
6 | const command = new Command({
7 | command: 'current-context',
8 | parent: authRoot,
9 | description: 'Get the current activated authentication context',
10 | webDocs: {
11 | category: 'Authentication',
12 | title: 'Get Activated Context',
13 | weight: 30,
14 | },
15 | builder: (yargs) => {
16 | return yargs
17 | .example('codefresh auth current-context', 'Show active authentication context');
18 | },
19 | handler: async (argv) => {
20 | await Config.manager().loadConfig({ configFilePath: argv.cfconfig });
21 | await printTableForAuthContexts({ filter: 'current' });
22 | },
23 | });
24 |
25 | module.exports = command;
26 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/auth/get-contexts.cmd.js:
--------------------------------------------------------------------------------
1 | const debug = require('debug')('codefresh:auth:get-contexts');
2 | const Command = require('../../Command');
3 | const { printTableForAuthContexts } = require('../../helpers/auth');
4 | const { Config } = require('codefresh-sdk');
5 | const authRoot = require('../root/auth.cmd');
6 |
7 | const command = new Command({
8 | command: 'get-contexts',
9 | parent: authRoot,
10 | description: 'Get all possible authentication contexts',
11 | webDocs: {
12 | category: 'Authentication',
13 | title: 'Get Contexts',
14 | weight: 10,
15 | },
16 | builder: (yargs) => {
17 | return yargs
18 | .example('codefresh auth get-contexts', 'List all existing authentication contexts');
19 | },
20 | handler: async (argv) => {
21 | await Config.manager().loadConfig({ configFilePath: argv.cfconfig });
22 | await printTableForAuthContexts({ filter: 'all' });
23 | },
24 | });
25 |
26 |
27 | module.exports = command;
28 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/cluster/get.cmd.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Command = require('../../Command');
3 | const Output = require('../../../../output/Output');
4 | const getRoot = require('../root/get.cmd');
5 | const { sdk } = require('../../../../logic');
6 | const Cluster = require('../../../../logic/entities/Cluster');
7 |
8 |
9 | const command = new Command({
10 | command: 'clusters',
11 | aliases: ['cluster'],
12 | category: 'Clusters',
13 | parent: getRoot,
14 | description: 'Get an array of clusters',
15 | webDocs: {
16 | category: 'Clusters',
17 | title: 'Get Clusters',
18 | },
19 | builder: (yargs) => {
20 | return yargs
21 | .example('codefresh get clusters', 'Get all clusters');
22 | },
23 | handler: async (argv) => {
24 | const clusters = await sdk.clusters.list();
25 | Output.print(_.map(clusters, Cluster.fromResponse));
26 | },
27 | });
28 |
29 | module.exports = command;
30 |
31 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/completion/bash.sh.hbs:
--------------------------------------------------------------------------------
1 | ###-begin-{{app_name}}-completions-###
2 | #
3 | # codefresh command completion script
4 | #
5 | # Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
6 | # or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
7 | #
8 | _codefresh_completions()
9 | {
10 | local cur args type_list
11 |
12 | cur="${COMP_WORDS[COMP_CWORD]}"
13 | args=("${COMP_WORDS[@]}")
14 |
15 | # ask codefresh to generate completions.
16 | type_list=$(codefresh --get-yargs-completions "${args[@]}")
17 |
18 | if [[ ${type_list} == '__files_completion__' ]]; then
19 | _filedir "@(yaml|yml|json)"
20 | else
21 | COMPREPLY=( $(compgen -W "${type_list}" -- ${cur}) )
22 | fi
23 |
24 | return 0
25 | }
26 | complete -F _codefresh_completions {{app_name}}
27 | ###-end-{{app_name}}-completions-###
28 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/completion/zsh.sh.hbs:
--------------------------------------------------------------------------------
1 | ###-begin-{{app_name}}-completions-###
2 | #
3 | # codefresh command completion script
4 | #
5 | # Installation: {{app_name}} {{completion_command}} zsh >> ~/.zshrc
6 | #
7 | _codefresh_completions()
8 | {
9 | type_list=($({{app_path}} --impl-zsh-file-dir --get-yargs-completions "${words[@]}"))
10 |
11 | if [[ ${type_list[1]} == '__files_completion__' ]]; then
12 | compadd -- "${type_list[@]:1}"
13 | else
14 | compadd -- "${type_list[@]}"
15 | fi
16 |
17 | return 0
18 | }
19 | compdef _codefresh_completions {{app_name}}
20 | ###-end-{{app_name}}-completions-###
21 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/components/download.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const componentsRoot = require('../root/components.cmd');
3 | const helper = require('../hybrid/helper');
4 |
5 | const command = new Command({
6 | command: 'download',
7 | parent: componentsRoot,
8 | description: 'Download Codefresh CLI components',
9 | webDocs: {
10 | category: 'Components',
11 | title: 'Download',
12 | },
13 | builder: (yargs) => yargs
14 | .env('CF_ARG_') // this means that every process.env.CF_ARG_* will be passed to argv
15 | .option('location', {
16 | describe: 'Override download folder location. Default: ~/.Codefresh',
17 | })
18 | .option('components', {
19 | describe: 'Components. List of [stevedore, venona, argocd-agent, codefresh]',
20 | }),
21 | handler: async (argv) => {
22 | console.log('Downloading components');
23 | const { location, components } = argv;
24 | await helper.downloadComponents(location, components);
25 | },
26 | });
27 |
28 | module.exports = command;
29 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/composition/create.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['--filename', '-f', '--compose-file', '-c'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/composition/replace.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['--filename', '-f', '--compose-file', '-c'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/context/create.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const createRoot = require('../root/create.cmd');
3 | const yargs = require('yargs');
4 |
5 | const command = new Command({
6 | command: 'context',
7 | aliases: ['ctx'],
8 | parent: createRoot,
9 | description: 'Create a context',
10 | webDocs: {
11 | category: 'Contexts',
12 | title: 'Create Context',
13 | },
14 | builder: (yargs) => {
15 | return yargs;
16 | },
17 | handler: async (argv) => {
18 | yargs.showHelp();
19 | },
20 | });
21 |
22 | module.exports = command;
23 |
24 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/context/create/helm-repo/base.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../../../Command');
2 | const createContext = require('../../create.cmd');
3 | const yargs = require('yargs');
4 |
5 | const command = new Command({
6 | command: 'helm-repository',
7 | parent: createContext,
8 | description: 'Create a helm-repository context [type]',
9 | usage: '',
10 | webDocs: {
11 | category: 'Create Context',
12 | subCategory: 'Helm Repository',
13 | title: 'Create Helm-Repository Context',
14 | },
15 | builder: (yargs) => {
16 | return yargs;
17 | },
18 | handler: async (argv) => {
19 | yargs.showHelp();
20 | },
21 | });
22 |
23 | module.exports = command;
24 |
25 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/context/create/secret-store/base.cmd.js:
--------------------------------------------------------------------------------
1 | const yargs = require('yargs');
2 |
3 | const Command = require('../../../../Command');
4 | const createContext = require('../../create.cmd');
5 |
6 | const usage = 'Secret-Store context are used during pipeline execution as API to resolve variables that are parse of Codefresh';
7 |
8 | const command = new Command({
9 | command: 'secret-store',
10 | parent: createContext,
11 | description: 'Create a secret-store context [type]',
12 | usage,
13 | webDocs: {
14 | category: 'Create Context',
15 | subCategory: 'Secret-Store',
16 | title: 'Create Secret-Store Context',
17 | },
18 | builder: (yargs) => {
19 | yargs
20 | .option('sharing-policy', {
21 | describe: 'Set the sharing policy for secret-store context',
22 | choices: ['AccountAdmins', 'AllUsersInAccount'],
23 | default: 'AccountAdmins',
24 | });
25 | return yargs;
26 | },
27 | handler: async (argv) => {
28 | yargs.showHelp();
29 | },
30 | });
31 |
32 | module.exports = command;
33 |
34 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/environment/delete.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const deleteRoot = require('../root/delete.cmd');
3 | const { sdk } = require('../../../../logic');
4 |
5 | const command = new Command({
6 | command: 'environment ',
7 | aliases: ['env'],
8 | description: 'Delete an environment',
9 | parent: deleteRoot,
10 | webDocs: {
11 | category: 'Environments',
12 | title: 'Delete Environment',
13 | },
14 | builder: (yargs) => {
15 | return yargs
16 | .positional('id', {
17 | describe: 'Environment id',
18 | })
19 | .example('codefresh delete environment ID', 'Delete environment ID');
20 | },
21 | handler: async (argv) => {
22 | const id = argv.id;
23 | await sdk.envs.terminate({ id });
24 | console.log(`Environment: '${id}' deleted`);
25 | },
26 | });
27 |
28 | module.exports = command;
29 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/gitops/argocd/install.js:
--------------------------------------------------------------------------------
1 | const gitopsInstaller = require('../common/install');
2 |
3 | class ArgoCDInstall {
4 | // eslint-disable-next-line class-methods-use-this
5 | async install(argv) {
6 | return gitopsInstaller.install(argv);
7 | }
8 | }
9 | module.exports = new ArgoCDInstall();
10 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/gitops/argocd/uninstall.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const gitopsUninstaller = require('../common/uninstall');
3 |
4 | class ArgoCDInstall {
5 | // eslint-disable-next-line class-methods-use-this
6 | async uninstall(argv) {
7 | const uninstallOptions = _.pick(argv, ['kube-config-path', 'kube-context-name', 'kube-namespace', 'in-cluster']);
8 | return gitopsUninstaller.uninstall(argv.provider, uninstallOptions);
9 | }
10 | }
11 | module.exports = new ArgoCDInstall();
12 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/gitops/argocd/upgrade.js:
--------------------------------------------------------------------------------
1 | const gitopsUpgrader = require('../common/upgrade');
2 |
3 | class ArgoCDUpgrade {
4 | // eslint-disable-next-line class-methods-use-this
5 | async upgrade(argv) {
6 | return gitopsUpgrader.upgrade(argv);
7 | }
8 | }
9 | module.exports = new ArgoCDUpgrade();
10 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/gitops/codefresh/uninstall.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const gitopsUninstaller = require('../common/uninstall');
3 |
4 | class CodefreshInstall {
5 | // eslint-disable-next-line class-methods-use-this
6 | async uninstall(argv) {
7 | const uninstallOptions = _.pick(argv, [
8 | 'kube-config-path', 'kube-context-name', 'kube-namespace', 'install-manifest', 'in-cluster',
9 | ]);
10 | await gitopsUninstaller.uninstall(argv.provider, uninstallOptions);
11 | }
12 | }
13 |
14 | module.exports = new CodefreshInstall();
15 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/gitops/codefresh/upgrade.js:
--------------------------------------------------------------------------------
1 | const gitopsUpgrader = require('../common/upgrade');
2 |
3 | class CodefreshGitopsUpgrade {
4 | // eslint-disable-next-line class-methods-use-this
5 | async upgrade(argv) {
6 | return gitopsUpgrader.upgrade(argv);
7 | }
8 | }
9 | module.exports = new CodefreshGitopsUpgrade();
10 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/helm/release/util.js:
--------------------------------------------------------------------------------
1 | const { sdk } = require('../../../../../logic');
2 |
3 | class HelmUtil {
4 | // eslint-disable-next-line class-methods-use-this
5 | async isHelm3(cluster) {
6 | try {
7 | const config = await sdk.helm['cluster-config'].get({
8 | selector: cluster,
9 | });
10 | return config.helmVersion === 'helm3';
11 | } catch (e) {
12 | return false;
13 | }
14 | }
15 | }
16 | module.exports = new HelmUtil();
17 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/helm/repo/delete.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../../Command');
2 | const deleteRoot = require('../../root/delete.cmd');
3 | const { sdk } = require('../../../../../logic');
4 |
5 |
6 | const command = new Command({
7 | command: 'helm-repo [name]',
8 | aliases: [],
9 | parent: deleteRoot,
10 | description: 'Delete a helm repo',
11 | webDocs: {
12 | category: 'Helm Repos',
13 | title: 'Delete Helm Repo',
14 | },
15 | builder: (yargs) => {
16 | return yargs
17 | .positional('name', {
18 | describe: 'Helm repo name',
19 | required: true,
20 | })
21 | .example('codefresh delete helm-repo my-repo', 'Delete a helm repo.');
22 | },
23 | handler: async (argv) => {
24 | const { name } = argv;
25 |
26 | if (!name) {
27 | throw new Error('Repo name must be provided');
28 | }
29 |
30 | await sdk.helm.repos.delete({ name });
31 | console.log(`Helm repo '${name}' deleted.`);
32 | },
33 | });
34 |
35 |
36 | module.exports = command;
37 |
38 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/hybrid/info.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const runnerRoot = require('../root/runner.cmd');
3 | const getAgents = require('../agent/get.cmd');
4 | const { getTestPipelineLink, INSTALLATION_DEFAULTS } = require('../hybrid/helper');
5 | const colors = require('colors');
6 |
7 |
8 | const command = new Command({
9 | command: 'info',
10 | parent: runnerRoot,
11 | description: 'Get info on your runner installations',
12 | webDocs: {
13 | category: 'Runner',
14 | title: 'Info',
15 | },
16 | handler: async () => {
17 | await getAgents.handler({});
18 | const pipelineLink = await getTestPipelineLink(INSTALLATION_DEFAULTS.DEMO_PIPELINE_NAME, false);
19 | if (pipelineLink) {
20 | // eslint-disable-next-line max-len
21 | console.log(`\nTest pipeline with the name: '${colors.cyan(INSTALLATION_DEFAULTS.DEMO_PIPELINE_NAME)}' exists for this account.` +
22 | `\nWatch it here: ${colors.blue(pipelineLink)}`);
23 | }
24 | },
25 | });
26 |
27 | module.exports = command;
28 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/imagePullSecret/imagePullSecret.sdk.spec.js:
--------------------------------------------------------------------------------
1 | const generateCmd = require('./generate.cmd').toCommand();
2 |
3 | const request = require('requestretry');
4 |
5 | const DEFAULT_RESPONSE = request.__defaultResponse();
6 |
7 | describe('image pull secret commands', () => {
8 | beforeEach(async () => {
9 | request.__reset();
10 | request.mockClear();
11 | await configureSdk(); // eslint-disable-line
12 | });
13 |
14 | describe('generate', () => {
15 | it('should handle generation', async () => {
16 | const argv = { cluster: 'cluster', namespace: 'default', registry: 'reg' };
17 | await generateCmd.handler(argv);
18 | await verifyResponsesReturned([DEFAULT_RESPONSE]); // eslint-disable-line
19 | });
20 | });
21 | });
22 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/offline-logs/base.cmd.js:
--------------------------------------------------------------------------------
1 | const yargs = require("yargs");
2 | const Command = require("../../Command");
3 |
4 | const command = new Command({
5 | command: "offline-logs",
6 | root: true,
7 | description: "Manages offline logs",
8 | webDocs: {
9 | category: "Logs category",
10 | subCategory: "Logs sub category",
11 | title: "Archives old logs to file or collection.",
12 | },
13 | builder: (yargs) => {
14 | // set options which are used in both sub-commands
15 | return yargs
16 | .env("RUNTIME_MONGO")
17 | .option("uri", {
18 | describe:
19 | "Mongodb URI. If not provided, will be parsed from environment variable RUNTIME_MONGO_URI.",
20 | type: "string",
21 | })
22 | .option("db", {
23 | describe:
24 | "Database name. If not provided, will be parsed from environment variable RUNTIME_MONGO_DB.",
25 | type: "string",
26 | });
27 | },
28 | handler: () => {
29 | yargs.showHelp();
30 | },
31 | });
32 |
33 | module.exports = command;
34 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/pipeline/delete.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const deleteRoot = require('../root/delete.cmd');
3 | const { sdk } = require('../../../../logic');
4 |
5 |
6 | const command = new Command({
7 | command: 'pipeline [name]',
8 | aliases: ['pip'],
9 | parent: deleteRoot,
10 | description: 'Delete a pipeline',
11 | webDocs: {
12 | category: 'Pipelines',
13 | title: 'Delete Pipeline',
14 | },
15 | builder: (yargs) => {
16 | return yargs
17 | .positional('name', {
18 | describe: 'Pipeline name',
19 | });
20 | },
21 | handler: async (argv) => {
22 | const { name } = argv;
23 |
24 | await sdk.pipelines.delete({ name });
25 | console.log(`Pipeline '${name}' deleted.`);
26 | },
27 | });
28 |
29 |
30 | module.exports = command;
31 |
32 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/pipeline/get.completion.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const pipelines = () => require('../../../../logic').sdk.pipelines;
3 | const Pipeline = require('../../../../logic/entities/Pipeline');
4 | const { authContextWrapper } = require('../../completion/helpers');
5 |
6 | const positionalHandler = async ({word, argv}) => {
7 | const pips = await pipelines().list({ limit: 25, offset: 0 });
8 | return _.map(_.get(pips, 'docs'), Pipeline.fromResponse).map(p => p.name);
9 | };
10 |
11 | module.exports = {
12 | positionalHandler: authContextWrapper(positionalHandler),
13 | };
14 |
15 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/pipeline/run.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['--variable-file', '--var-file', '--yaml', '-y'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/registry/create.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const createRoot = require('../root/create.cmd');
3 | const yargs = require('yargs');
4 |
5 | const command = new Command({
6 | command: 'registry',
7 | category: 'Registries',
8 | parent: createRoot,
9 | description: 'Integrate Container registry into Codefresh',
10 | webDocs: {
11 | category: 'Registries',
12 | title: 'Create Registry',
13 | },
14 | handler: async () => {
15 | yargs.showHelp();
16 | },
17 | });
18 |
19 | module.exports = command;
20 |
21 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/registry/delete.cmd.js:
--------------------------------------------------------------------------------
1 | const debug = require('debug')('codefresh:cli:get:cluster');
2 | const Command = require('../../Command');
3 | const Output = require('../../../../output/Output');
4 | const deleteCmd = require('../root/delete.cmd');
5 | const yargs = require('yargs');
6 | const { sdk } = require('../../../../logic');
7 |
8 | const command = new Command({
9 | command: 'registry ',
10 | category: 'Registries',
11 | parent: deleteCmd,
12 | description: 'Delete registry from Codefresh',
13 | webDocs: {
14 | category: 'Registries',
15 | title: 'Delete Registry',
16 | },
17 | builder: (y) => {
18 | y.positional('ID', {
19 | describe: 'ID of a registry to delete',
20 | });
21 | return y;
22 | },
23 | handler: async (argv) => {
24 | await sdk.registries.delete({ id: argv.ID });
25 | },
26 | });
27 |
28 | module.exports = command;
29 |
30 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/registry/get.cmd.js:
--------------------------------------------------------------------------------
1 | const debug = require('debug')('codefresh:cli:get:cluster');
2 | const _ = require('lodash');
3 | const Command = require('../../Command');
4 | const Output = require('../../../../output/Output');
5 | const getRoot = require('../root/get.cmd');
6 | const Registry = require('../../../../logic/entities/Registry');
7 | const { sdk } = require('../../../../logic');
8 |
9 |
10 | const command = new Command({
11 | command: 'registry',
12 | category: 'Registries',
13 | parent: getRoot,
14 | description: 'Get an array of accounts registries',
15 | webDocs: {
16 | category: 'Registries',
17 | title: 'Get Registries',
18 | },
19 | builder: (yargs) => {
20 | return yargs
21 | .example('codefresh get registry', 'Get all registries connected to the account');
22 | },
23 | handler: async (argv) => {
24 | const registries = await sdk.registries.list();
25 | Output.print(_.map(registries, Registry.fromResponse));
26 | },
27 | });
28 |
29 | module.exports = command;
30 |
31 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/add.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 | const add = new Command({
4 | root: true,
5 | command: 'add',
6 | description: 'Add a resource',
7 | usage: 'codefresh add --help',
8 | webDocs: {
9 | title: 'Add',
10 | weight: 70,
11 | },
12 | builder: (yargs) => {
13 | return yargs
14 | .demandCommand(1, 'You need at least one command before moving on');
15 | },
16 | });
17 |
18 | module.exports = add;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/annotate.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 | const annotate = new Command({
4 | root: true,
5 | command: 'annotate',
6 | description: 'Annotate a resource with labels',
7 | webDocs: {
8 | title: 'annotate',
9 | weight: 50,
10 | },
11 | builder: (yargs) => {
12 | return yargs
13 | .demandCommand(1, 'You need at least one command before moving on');
14 | },
15 | });
16 |
17 | module.exports = annotate;
18 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/apply.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/assign.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 | const assign = new Command({
4 | root: true,
5 | command: 'assign',
6 | description: 'Assign a resource',
7 | usage: 'codefresh assign --help',
8 | webDocs: {
9 | title: 'Assign',
10 | weight: 70,
11 | },
12 | builder: (yargs) => {
13 | return yargs
14 | .demandCommand(1, 'You need at least one command before moving on');
15 | },
16 | });
17 |
18 | module.exports = assign;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/components.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 |
4 | const install = new Command({
5 | root: true,
6 | command: 'components',
7 | description: 'Manages Codefresh CLI components',
8 | requiresAuthentication: false,
9 | webDocs: {
10 | description: 'Codefresh CLI components',
11 | category: 'Codefresh CLI components',
12 | title: 'components',
13 | weight: 40,
14 | },
15 | });
16 |
17 | module.exports = install;
18 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/create.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/delete.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/diff.cmd.js:
--------------------------------------------------------------------------------
1 | const CFError = require('cf-errors');
2 | const Command = require('../../Command');
3 | const { crudFilenameOption } = require('../../helpers/general');
4 | const DEFAULTS = require('../../defaults');
5 | const yargs = require('yargs');
6 |
7 | const diff = new Command({
8 | root: true,
9 | command: 'diff',
10 | description: 'Show diff between two resources',
11 | usage: 'Supported resources: runtime-environments',
12 | webDocs: {
13 | description: 'Show diff between two resources',
14 | category: 'Operate On Resources',
15 | title: 'Diff',
16 | weight: 100,
17 | },
18 | builder: (yargs) => {
19 | crudFilenameOption(yargs);
20 | return yargs;
21 | },
22 | handler: async (argv) => {
23 | if (!argv.filename) {
24 | yargs.showHelp();
25 | }
26 |
27 | const data = argv.filename;
28 | const entity = data.kind;
29 |
30 | switch (entity) {
31 | default:
32 | throw new CFError(`Entity: ${entity} not supported`);
33 | }
34 |
35 | },
36 | });
37 |
38 | module.exports = diff;
39 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/diff.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/download.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const yargs = require('yargs');
3 |
4 | const download = new Command({
5 | root: true,
6 | command: 'download',
7 | description: 'Download resources',
8 | usage: 'Codefresh download ',
9 | webDocs: {
10 | title: 'Download',
11 | weight: 70,
12 | },
13 | handler: async () => {
14 | yargs.showHelp();
15 | },
16 | });
17 |
18 | module.exports = download;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/generate.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const yargs = require('yargs');
3 |
4 | const generate = new Command({
5 | root: true,
6 | command: 'generate',
7 | description: 'Generate resources as Kubernetes image pull secret and Codefresh Registry token',
8 | usage: 'Codefresh generate --help',
9 | webDocs: {
10 | title: 'generate',
11 | weight: 70,
12 | },
13 | handler: async () => {
14 | yargs.showHelp();
15 | },
16 | });
17 |
18 | module.exports = generate;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/get.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 | const OUTPUT_OPTIONS = ['-o', '--output'];
5 |
6 | function optionHandler({ word, argv, option }) {
7 | if (FILENAME_OPTIONS.includes(option)) {
8 | return fileDir(word);
9 | }
10 | if (OUTPUT_OPTIONS.includes(option)) {
11 | return ['json', 'yaml', 'wide', 'name', 'id'];
12 | }
13 | return [];
14 | }
15 |
16 | module.exports = {
17 | optionHandler: handleOptions([...FILENAME_OPTIONS, ...OUTPUT_OPTIONS], optionHandler),
18 | };
19 |
20 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/install.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 |
4 | const install = new Command({
5 | root: true,
6 | command: 'install',
7 | description: 'Install a resource',
8 | usage: 'Install operation will install codefresh components on kubernetes cluster',
9 | webDocs: {
10 | description: 'Install a resource',
11 | category: 'Install Resources',
12 | title: 'Install',
13 | weight: 40,
14 | },
15 | });
16 |
17 | module.exports = install;
18 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/replace.completion.js:
--------------------------------------------------------------------------------
1 | const { handleOptions, fileDir } = require('../../completion/helpers');
2 |
3 | const FILENAME_OPTIONS = ['-f', '--filename'];
4 |
5 | function optionHandler({ word, argv, option }) {
6 | if (FILENAME_OPTIONS.includes(option)) {
7 | return fileDir(word);
8 | }
9 | return [];
10 | }
11 |
12 | module.exports = {
13 | optionHandler: handleOptions([...FILENAME_OPTIONS], optionHandler),
14 | };
15 |
16 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/runner.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 |
4 | const runner = new Command({
5 | root: true,
6 | command: 'runner',
7 | description: 'Manage runner resources',
8 | requiresAuthentication: argv => argv && !argv.token,
9 | usage: 'Manage codefresh runner solution\'s components on kubernetes cluster',
10 | webDocs: {
11 | description: 'Manage and install runner resources',
12 | category: 'Runner Resources',
13 | title: 'Runner',
14 | weight: 40,
15 | },
16 | });
17 |
18 | module.exports = runner;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/synchronize.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 | const annotate = new Command({
4 | root: true,
5 | command: 'synchronize',
6 | description: 'Synchronize a resource',
7 | webDocs: {
8 | title: 'synchronize',
9 | weight: 100,
10 | },
11 | builder: (yargs) => {
12 | return yargs
13 | .demandCommand(1, 'You need at least one command before moving on');
14 | },
15 | });
16 |
17 | module.exports = annotate;
18 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/unassign.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 | const unassign = new Command({
4 | root: true,
5 | command: 'unassign',
6 | description: 'Unassign a resource',
7 | usage: 'codefresh assign --help',
8 | webDocs: {
9 | title: 'Unassign',
10 | weight: 70,
11 | },
12 | builder: (yargs) => {
13 | return yargs
14 | .demandCommand(1, 'You need at least one command before moving on');
15 | },
16 | });
17 |
18 | module.exports = unassign;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/uninstall.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 |
3 |
4 | const unInstall = new Command({
5 | root: true,
6 | command: 'uninstall',
7 | description: 'Uninstall a resource',
8 | usage: 'Uninstall operation will uninstall codefresh components on kubernetes cluster',
9 | webDocs: {
10 | description: 'Uninstall a resource',
11 | category: 'Uninstall Resources',
12 | title: 'Uninstall',
13 | weight: 40,
14 | },
15 | });
16 |
17 | module.exports = unInstall;
18 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/root/validate.completion.js:
--------------------------------------------------------------------------------
1 | const { fileDir } = require('../../completion/helpers');
2 |
3 | function positionalHandler({ word, argv}) {
4 | return fileDir(word);
5 | }
6 |
7 | module.exports = {
8 | positionalHandler,
9 | };
10 |
11 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/runtimeEnvironments/create.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const createRoot = require('../root/create.cmd');
3 |
4 | const DEPRECATION_MESSAGE = 'Create runtime-environment command has been deprecated.\nUse codefresh install runtime command instead';
5 |
6 | const command = new Command({
7 | command: 'runtime-environments [cluster]',
8 | aliases: ['re', 'runtime-environment'],
9 | parent: createRoot,
10 | description: 'Create a runtime environment',
11 | webDocs: {
12 | category: 'Runtime-Environments',
13 | title: 'Create Runtime-Environments',
14 | weight: 100,
15 | },
16 | handler: async () => {
17 | console.log(`${DEPRECATION_MESSAGE}`);
18 | process.exit(1);
19 | },
20 | });
21 |
22 |
23 | module.exports = command;
24 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/step/delete.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const deleteRoot = require('../root/delete.cmd');
3 | const { sdk } = require('../../../../logic');
4 |
5 |
6 | const command = new Command({
7 | command: 'step-type [name]',
8 | parent: deleteRoot,
9 | description: 'Delete a step-type',
10 | webDocs: {
11 | category: 'Step-types',
12 | title: 'Delete Step-type',
13 | },
14 | builder: (yargs) => {
15 | return yargs
16 | .positional('name', {
17 | describe: 'Step-type name',
18 | });
19 | },
20 | handler: async (argv) => {
21 | const { name } = argv;
22 |
23 | await sdk.steps.delete({ name });
24 | console.log(`Step-type '${name}' deleted.`);
25 | },
26 | });
27 |
28 |
29 | module.exports = command;
30 |
31 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/step/get.completion.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const steps = () => require('../../../../logic').sdk.steps;
3 | const StepType = require('../../../../logic/entities/StepType');
4 | const { authContextWrapper } = require('../../completion/helpers');
5 |
6 | const positionalHandler = async ({word, argv}) => {
7 | const stps = await steps().list({ limit: 25, offset: 0 });
8 | return _.map(_.get(stps, 'docs'), StepType.fromResponse).map(p => p.name);
9 | };
10 |
11 | module.exports = {
12 | positionalHandler: authContextWrapper(positionalHandler),
13 | };
14 |
15 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/team/get.cmd.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Command = require('../../Command');
3 | const Output = require('../../../../output/Output');
4 | const getRoot = require('../root/get.cmd');
5 | const { sdk } = require('../../../../logic');
6 | const Team = require('../../../../logic/entities/Team');
7 |
8 |
9 | const command = new Command({
10 | command: 'teams',
11 | aliases: ['team', 'tm'],
12 | parent: getRoot,
13 | description: 'Get an array of all current user teams',
14 | webDocs: {
15 | category: 'Teams',
16 | title: 'Get Teams',
17 | },
18 | builder: (yargs) => {
19 | return yargs
20 | .example('codefresh get teams', 'Get all teams for current account');
21 | },
22 | handler: async (argv) => {
23 | const teams = await sdk.teams.list();
24 | Output.print(_.map(teams, Team.fromResponse));
25 | },
26 | });
27 |
28 |
29 | module.exports = command;
30 |
31 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/workflow/approve.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const yargs = require('yargs');
3 | const _ = require('lodash');
4 | const { sdk } = require('../../../../logic');
5 |
6 | const approveBuildCmd = new Command({
7 | root: true,
8 | command: 'approve ',
9 | description: 'Approve a pending-approval workflow',
10 | usage: 'approve <$BUILD_ID>',
11 | webDocs: {
12 | category: 'Builds',
13 | title: 'Approve',
14 | weight: 100,
15 | },
16 | builder: (yargs) => {
17 | return yargs
18 | .positional('buildId', {
19 | describe: 'Build\'s id',
20 | required: true,
21 | });
22 | },
23 | handler: async (argv) => {
24 | const { buildId } = argv;
25 | await sdk.workflows.getBuild({ buildId, noAccount: false });
26 | await sdk.workflows.approve({ buildId });
27 | console.log(`Workflow ${buildId} has been approved.`);
28 | },
29 | });
30 |
31 | module.exports = approveBuildCmd;
32 |
--------------------------------------------------------------------------------
/lib/interface/cli/commands/workflow/deny.cmd.js:
--------------------------------------------------------------------------------
1 | const Command = require('../../Command');
2 | const yargs = require('yargs');
3 | const _ = require('lodash');
4 | const { sdk } = require('../../../../logic');
5 |
6 | const denyBuildCmd = new Command({
7 | root: true,
8 | command: 'deny ',
9 | description: 'Deny a pending-approval workflow',
10 | usage: 'deny <$BUILD_ID>',
11 | webDocs: {
12 | category: 'Builds',
13 | title: 'Deny',
14 | weight: 100,
15 | },
16 | builder: (yargs) => {
17 | return yargs
18 | .positional('buildId', {
19 | describe: 'Build\'s id',
20 | required: true,
21 | });
22 | },
23 | handler: async (argv) => {
24 | const { buildId } = argv;
25 | await sdk.workflows.getBuild({ buildId, noAccount: false });
26 | await sdk.workflows.deny({ buildId });
27 | console.log(`Workflow ${buildId} has been denied.`);
28 | },
29 | });
30 |
31 | module.exports = denyBuildCmd;
32 |
--------------------------------------------------------------------------------
/lib/interface/cli/defaults.js:
--------------------------------------------------------------------------------
1 | const { homedir } = require('os');
2 | const path = require('path');
3 |
4 | const DEFAULTS = {
5 | URL: 'https://g.codefresh.io',
6 | CFCONFIG: `${process.env.HOME || process.env.USERPROFILE}/.cfconfig`,
7 | DEBUG_PATTERN: 'codefresh',
8 | GET_LIMIT_RESULTS: 25,
9 | GET_ALL_PIPELINES_LIMIT: 10000,
10 | GET_PAGINATED_PAGE: 1,
11 | INTERNAL_REGISTRY_PREFIX: 'CFCR',
12 | WATCH_INTERVAL_MS: 3000,
13 | MAX_CONSECUTIVE_ERRORS_LIMIT: 10,
14 | CODEFRESH_PATH: path.resolve(homedir(), '.Codefresh'),
15 | ENGINE_IMAGE: process.env.ENGINE_IMAGE || 'codefresh/engine:master',
16 | };
17 |
18 | module.exports = DEFAULTS;
19 |
--------------------------------------------------------------------------------
/lib/interface/cli/helpers/progressEvents.js:
--------------------------------------------------------------------------------
1 | const EventEmitter = require('events');
2 |
3 | class ProgressEvents {
4 | constructor() {
5 | this.emitter = new EventEmitter();
6 | }
7 | onStart(handler) {
8 | this.emitter.addListener('start', (args) => {
9 | handler(args);
10 | });
11 | }
12 | onProgress(handler) {
13 | this.emitter.addListener('progress', (args) => {
14 | handler(args);
15 | });
16 | }
17 | reportStart(args) {
18 | this.emitter.emit('start', args);
19 | }
20 | reportProgress(args) {
21 | this.emitter.emit('progress', args);
22 | }
23 | }
24 |
25 | module.exports = ProgressEvents;
26 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/MultiplePropertiesError.js:
--------------------------------------------------------------------------------
1 | class MultiplePropertiesError extends Error {
2 | constructor(properties) {
3 | super();
4 | this.properties = properties;
5 | }
6 | }
7 |
8 | module.exports = MultiplePropertiesError;
9 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/NoPropertyError.js:
--------------------------------------------------------------------------------
1 | class NoPropertyError extends Error {
2 | constructor(property) {
3 | super();
4 | this.property = property;
5 | }
6 | }
7 |
8 | module.exports = NoPropertyError;
9 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/NotFullPropertyError.js:
--------------------------------------------------------------------------------
1 | class NotFullPropertyError extends Error {
2 | constructor(property) {
3 | super();
4 | this.property = property;
5 | }
6 | }
7 |
8 | module.exports = NotFullPropertyError;
9 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/PipelineValidationError.js:
--------------------------------------------------------------------------------
1 | class PipelineValidationError extends Error {
2 | constructor(message) {
3 | super();
4 | this.message = message;
5 | }
6 |
7 | toString() {
8 | return this.message;
9 | }
10 | }
11 |
12 | module.exports = PipelineValidationError;
13 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/SchemaValidationError.js:
--------------------------------------------------------------------------------
1 | class SchemaValidationError extends Error {
2 | constructor(errors) {
3 | super();
4 | this.errors = errors;
5 | }
6 |
7 | printErrors() {
8 | this.errors.forEach((e) => {
9 | console.log(`Validation error: property "${e.dataPath.replace('.', '')}" ${e.message}`);
10 | });
11 | }
12 | }
13 |
14 | module.exports = SchemaValidationError;
15 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/awaitTo.js:
--------------------------------------------------------------------------------
1 | async function to(fn) {
2 | try {
3 | let res;
4 | if (typeof fn === 'function') {
5 | res = await fn();
6 | } else {
7 | res = await fn;
8 | }
9 | return [null, res];
10 | } catch (err) {
11 | return [err, null];
12 | }
13 | }
14 | module.exports = {
15 | to,
16 | };
17 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/helpers.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 |
3 | function prettyError(error) {
4 | try {
5 | const errMsg = _.get(error, 'message', error);
6 | let errObj = JSON.parse(errMsg);
7 | if (typeof errObj === 'string') {
8 | errObj = JSON.parse(errObj);
9 | }
10 |
11 | if (!errObj.message) {
12 | return error;
13 | }
14 |
15 | return errObj.code ? `${errObj.message} [code: ${errObj.code}]` : errObj.message;
16 | } catch (e) {
17 | return _.get(error, 'message', JSON.stringify(error));
18 | }
19 | }
20 |
21 | module.exports = {
22 | prettyError,
23 | };
24 |
--------------------------------------------------------------------------------
/lib/logic/cli-config/errors/index.js:
--------------------------------------------------------------------------------
1 | const NoPropertyError = require('./NoPropertyError');
2 | const MultiplePropertiesError = require('./MultiplePropertiesError');
3 | const NotFullPropertyError = require('./NotFullPropertyError');
4 | const SchemaValidationError = require('./SchemaValidationError');
5 | const PipelineValidationError = require('./PipelineValidationError');
6 |
7 | module.exports = {
8 | NoPropertyError,
9 | MultiplePropertiesError,
10 | NotFullPropertyError,
11 | SchemaValidationError,
12 | PipelineValidationError,
13 | };
14 |
--------------------------------------------------------------------------------
/lib/logic/entities/Annotation.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Annotation extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'annotation';
8 | this.info = data;
9 | this.id = this.info._id;
10 | this.entity_id = this.info.entityId;
11 | this.entity_type = this.info.entityType;
12 | this.key = this.info.key;
13 | this.value = this.info.value;
14 | this.type = this.info.type;
15 | this.defaultColumns = ['id', 'entity_id', 'entity_type', 'key', 'value'];
16 | this.wideColumns = this.defaultColumns.concat(['type']);
17 | }
18 |
19 | static fromResponse(response) {
20 | return new Annotation(_.pick(response, '_id', 'entityId', 'entityType', 'key', 'value'));
21 | }
22 | }
23 |
24 | module.exports = Annotation;
25 |
--------------------------------------------------------------------------------
/lib/logic/entities/Board.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Board extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'board';
8 | this.info = data;
9 | this.id = this.info._id;
10 | this.name = this.info.name;
11 | this.type = this.info.type;
12 | this.filter = this.info.filter;
13 | this.defaultColumns = ['id', 'name', 'filter'];
14 | this.wideColumns = this.defaultColumns.concat([]);
15 | }
16 |
17 | static fromResponse(response) {
18 | return new Board(_.pick(response, '_id', 'name', 'type', 'filter'));
19 | }
20 | }
21 |
22 | module.exports = Board;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/Cluster.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class Cluster extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'cluster';
7 | this.info = data;
8 | this.defaultColumns = ['id', 'name'];
9 | this.wideColumns = this.defaultColumns.concat(['provider', 'providerAgent']);
10 | }
11 |
12 | static fromResponse(response) {
13 | return new Cluster({
14 | id: response._id,
15 | name: response.selector,
16 | provider: response.provider,
17 | providerAgent: response.providerAgent,
18 | });
19 | }
20 | }
21 |
22 | module.exports = Cluster;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/CodefreshRepo.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class CodefreshRepo extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'codefresh-repo';
7 | this.info = data;
8 | this.defaultColumns = ['git_context', 'owner', 'name', 'name_id'];
9 | this.wideColumns = this.defaultColumns.concat([]);
10 | }
11 |
12 | static fromResponse(response) {
13 | const data = { ...response };
14 | data.name_id = response.serviceName;
15 | data.git_context = response.provider;
16 | data.owner = response.owner.login;
17 | data.repo_shortcut = `${data.owner}/${data.name}`;
18 | return new CodefreshRepo(data);
19 | }
20 | }
21 |
22 | module.exports = CodefreshRepo;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/Composition.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class Composition extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'composition';
7 | this.info = data;
8 | this.defaultColumns = ['id', 'name', 'is_advanced'];
9 | this.wideColumns = ['id', 'name', 'is_advanced', 'created'];
10 | }
11 |
12 | static fromResponse(response) {
13 | return new Composition({
14 | id: response._id,
15 | name: response.name,
16 | is_advanced: response.isAdvanced,
17 | created: response.created ? new Date(response.created) : undefined,
18 | });
19 | }
20 | }
21 |
22 | module.exports = Composition;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/Context.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 | const _ = require('lodash'); // eslint-disable-line
3 |
4 | class Context extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'context';
8 | this.info = data;
9 | this.name = this.info.metadata.name;
10 | this.type = this.info.type;
11 | this.defaultColumns = ['name', 'type'];
12 | this.wideColumns = this.defaultColumns || [];
13 | }
14 |
15 | // get the type of the context from spec.type
16 | getType() {
17 | return this.type;
18 | }
19 |
20 | static fromResponse(response) {
21 | return new Context({
22 | apiVersion: response.apiVersion,
23 | kind: response.kind,
24 | metadata: response.metadata,
25 | type: response.spec.type,
26 | spec: response.spec,
27 | });
28 | }
29 | }
30 |
31 | module.exports = Context;
32 |
--------------------------------------------------------------------------------
/lib/logic/entities/GitRepo.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class GitRepo extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'git-repo';
7 | this.info = data;
8 | this.defaultColumns = ['git_context', 'owner', 'name', 'repo_shortcut'];
9 | this.wideColumns = this.defaultColumns.concat(['private', 'ssh_url']);
10 | }
11 |
12 | static fromResponse(response) {
13 | const data = { ...response };
14 | data.git_context = response.provider;
15 | data.owner = response.owner.login;
16 | data.repo_shortcut = `${data.owner}/${data.name}`;
17 | return new GitRepo(data);
18 | }
19 | }
20 |
21 | module.exports = GitRepo;
22 |
--------------------------------------------------------------------------------
/lib/logic/entities/HelmRepo.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class HelmRepo extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'helm-repo';
8 | this.info = data;
9 | this.name = this.info.Name;
10 | this.created = this.info.CreatedAt ? new Date(this.info.CreatedAt) : undefined;
11 | this.updated = this.info.UpdatedAt ? new Date(this.info.UpdatedAt) : undefined;
12 | this.public = this.info.Public.toString();
13 | this.defaultColumns = ['name', 'public', 'created', 'updated'];
14 | this.wideColumns = this.defaultColumns.concat([]);
15 | }
16 |
17 | static fromResponse(response) {
18 | return new HelmRepo(_.pick(response, 'Name', 'CreatedAt', 'Public', 'UpdatedAt'));
19 | }
20 | }
21 |
22 | module.exports = HelmRepo;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/Image.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class Image extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'image';
7 | this.info = data;
8 | this.defaultColumns = ['id', 'name', 'tag', 'created', 'size', 'sha', 'pull'];
9 | this.wideColumns = this.defaultColumns.concat([]);
10 | }
11 | }
12 |
13 | module.exports = Image;
14 |
--------------------------------------------------------------------------------
/lib/logic/entities/Pipeline.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Pipeline extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'pipeline';
8 | this.info = data;
9 | this.id = this.info.metadata.id;
10 | this.name = this.info.metadata.name;
11 | this.created = this.info.metadata.created_at ? new Date(this.info.metadata.created_at) : undefined;
12 | this.updated = this.info.metadata.updated_at ? new Date(this.info.metadata.updated_at) : undefined;
13 | this.defaultColumns = ['name', 'updated', 'created'];
14 | this.wideColumns = ['id'].concat(this.defaultColumns);
15 | }
16 |
17 | static fromResponse(response) {
18 | return new Pipeline(_.pick(response, 'id', 'version', 'kind', 'metadata', 'spec'));
19 | }
20 | }
21 |
22 | module.exports = Pipeline;
23 |
--------------------------------------------------------------------------------
/lib/logic/entities/Project.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Project extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'project';
8 | this.info = data;
9 | this.id = this.info.id;
10 | this.name = this.info.projectName;
11 | this.tags = this.info.tags;
12 | this.favorite = this.info.favorite;
13 | this.pipelines = this.info.pipelinesNumber;
14 | this.variables = this.info.variables;
15 | this.last_updated = this.info.updatedAt && new Date(this.info.updatedAt);
16 | this.defaultColumns = ['name', 'pipelines', 'last_updated', 'tags'];
17 | this.wideColumns = ['id'].concat(this.defaultColumns);
18 | }
19 |
20 | static fromResponse(response) {
21 | return new Project(_.pick(response, 'id', 'projectName', 'tags', 'variables', 'favorite', 'pipelinesNumber', 'updatedAt'));
22 | }
23 | }
24 |
25 | module.exports = Project;
26 |
--------------------------------------------------------------------------------
/lib/logic/entities/Registry.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 | const _ = require('lodash'); // eslint-disable-line
3 |
4 | class Registry extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'registry';
8 | this.info = data;
9 | this.name = this.info.name;
10 | this.kind = this.info.kind;
11 | this.id = this.info._id;
12 | this.behindFirewall = this.info.behindFirewall;
13 | this.default = this.info.default;
14 | this.provider = this.info.provider;
15 | this.defaultColumns = ['id', 'provider', 'name', 'kind', 'behindFirewall', 'default'];
16 | this.wideColumns = this.defaultColumns || [];
17 | }
18 |
19 | getType() {
20 | return this.type;
21 | }
22 |
23 | static fromResponse(response) {
24 | return new Registry({
25 | provider: response.provider,
26 | name: response.name,
27 | kind: response.kind,
28 | _id: response._id,
29 | behindFirewall: response.behindFirewall,
30 | default: response.default,
31 | });
32 | }
33 | }
34 |
35 | module.exports = Registry;
36 |
--------------------------------------------------------------------------------
/lib/logic/entities/RuntimeEnvironmentBaseImages.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class RuntimeEnvironmentBaseImages extends Entity {
4 | constructor(data) {
5 | super();
6 | this.info = data;
7 | this.entityType = 'RuntimeEnvironmentBaseImages';
8 | this.component = data.component;
9 | this.image = data.image;
10 | this.defaultColumns = ['component', 'image'];
11 | this.wideColumns = this.defaultColumns.concat([]);
12 | }
13 |
14 | static fromResponse(response) {
15 | return new RuntimeEnvironmentBaseImages(response);
16 | }
17 | }
18 | module.exports = RuntimeEnvironmentBaseImages;
19 |
--------------------------------------------------------------------------------
/lib/logic/entities/Section.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Section extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'section';
8 | this.info = data;
9 | this.id = this.info._id;
10 | this.name = this.info.name;
11 | this.board = this.info.boardId;
12 | this.board_id = this.info.boardId;
13 | this.cluster = this.info.section;
14 | this.defaultColumns = ['id', 'name', 'board_id', 'cluster'];
15 | this.wideColumns = this.defaultColumns.concat([]);
16 | }
17 |
18 | static fromResponse(response) {
19 | return new Section(_.pick(response, '_id', 'name', 'boardId', 'section'));
20 | }
21 | }
22 |
23 | module.exports = Section;
24 |
--------------------------------------------------------------------------------
/lib/logic/entities/StepTypeVersion.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class StepTypeVersion extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'step-type-version';
7 | this.info = data;
8 | this.version = this.info;
9 | this.defaultColumns = ['version'];
10 | this.wideColumns = this.defaultColumns;
11 | }
12 |
13 | static fromResponse(response) {
14 | return new StepTypeVersion(response);
15 | }
16 | }
17 |
18 | module.exports = StepTypeVersion;
19 |
--------------------------------------------------------------------------------
/lib/logic/entities/Team.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class Team extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'team';
7 | this.info = data;
8 | this.defaultColumns = ['id', 'name', 'type', 'account', 'tags', 'users'];
9 | this.wideColumns = this.defaultColumns.concat([]);
10 | }
11 |
12 | toDefault() {
13 | const data = super.toDefault();
14 | data.users = data.users.map((user) => user.userName);
15 | return data;
16 | }
17 |
18 | toWide() {
19 | const data = super.toWide();
20 | data.users = data.users.map((user) => user.userName);
21 | return data;
22 | }
23 |
24 | static fromResponse(response) {
25 | return new Team({
26 | id: response._id,
27 | name: response.name,
28 | type: response.type,
29 | account: response.account,
30 | tags: response.tags,
31 | users: response.users.map(({ _id, userName }) => ({ id: _id, userName })),
32 | });
33 | }
34 | }
35 |
36 | module.exports = Team;
37 |
--------------------------------------------------------------------------------
/lib/logic/entities/Token.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Entity = require('./Entity');
3 |
4 | class Token extends Entity {
5 | constructor(data) {
6 | super();
7 | this.entityType = 'token';
8 | this.info = data;
9 | this.defaultColumns = ['id', 'name', 'token_prefix', 'created', 'scopes'];
10 | this.wideColumns = ['id', 'name', 'token_prefix', 'created', 'subject_type', 'subject', 'scopes'];
11 | }
12 |
13 | static fromResponse(response) {
14 | const data = { ...response };
15 | data.id = data._id;
16 | data.token_prefix = response.tokenPrefix;
17 | data.scopes = _.isArray(response.scopes) ? response.scopes : ['any'];
18 | data.created = data.created ? new Date(data.created) : undefined;
19 | data.subject_type = _.get(data, 'subject.type');
20 | data.subject = _.get(data, 'subject.ref');
21 | return new Token(data);
22 | }
23 | }
24 |
25 | module.exports = Token;
26 |
--------------------------------------------------------------------------------
/lib/logic/entities/Trigger.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class Trigger extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'trigger';
7 | this.info = data;
8 | this.defaultColumns = ['event', 'pipeline'];
9 | this.wideColumns = this.defaultColumns.concat([]);
10 | }
11 |
12 | static fromResponse(response) {
13 | return new Trigger({
14 | event: response.event,
15 | pipeline: response.pipeline,
16 | filters: response.filters,
17 | });
18 | }
19 | }
20 |
21 | module.exports = Trigger;
22 |
--------------------------------------------------------------------------------
/lib/logic/entities/TriggerEvent.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class TriggerEvent extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'trigger-event';
7 | this.info = data;
8 | this.defaultColumns = ['uri', 'type', 'kind', 'public', 'status'];
9 | this.wideColumns = this.defaultColumns.concat(['endpoint', 'description']);
10 | }
11 |
12 | static fromResponse(response) {
13 | return new TriggerEvent({
14 | uri: response.uri,
15 | type: response.type,
16 | kind: response.kind,
17 | // [0]{12} - public account ID
18 | public: response.account === '000000000000',
19 | secret: response.secret,
20 | status: response.status,
21 | endpoint: response.endpoint,
22 | description: response.description,
23 | help: response.help,
24 | });
25 | }
26 | }
27 |
28 | module.exports = TriggerEvent;
29 |
--------------------------------------------------------------------------------
/lib/logic/entities/TriggerType.js:
--------------------------------------------------------------------------------
1 | const Entity = require('./Entity');
2 |
3 | class TriggerType extends Entity {
4 | constructor(data) {
5 | super();
6 | this.entityType = 'trigger-type';
7 | this.info = data;
8 | this.defaultColumns = ['type', 'kind', 'uri-template'];
9 | this.wideColumns = this.defaultColumns.concat([]);
10 | }
11 |
12 | static fromResponse(response) {
13 | return new TriggerType({
14 | type: response.type,
15 | kind: response.kind,
16 | 'uri-template': response['uri-template'],
17 | 'uri-regex': response['uri-regex'],
18 | 'help-url': response['help-url'],
19 | config: response.config,
20 | filters: response.filters,
21 | });
22 | }
23 | }
24 |
25 | module.exports = TriggerType;
26 |
--------------------------------------------------------------------------------
/lib/logic/index.js:
--------------------------------------------------------------------------------
1 | const sdk = require('./sdk');
2 |
3 | module.exports = {
4 | sdk,
5 | };
6 |
--------------------------------------------------------------------------------
/lib/logic/sdk/index.js:
--------------------------------------------------------------------------------
1 | const { Codefresh } = require('codefresh-sdk');
2 |
3 | const sdk = new Codefresh();
4 |
5 | module.exports = sdk;
6 |
--------------------------------------------------------------------------------
/lib/output/Formatter.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const Style = require('./Style');
3 |
4 | class Formatter {
5 | constructor(styles) {
6 | this.styles = styles || {};
7 | }
8 |
9 | apply(source) {
10 | const keys = _.keys(source);
11 | if (!keys || !_.keys(this.styles)) {
12 | return source;
13 | }
14 | const obj = Object.assign({}, source);
15 | keys.forEach((key) => {
16 | const prop = obj[key];
17 | obj[key] = this.applyStyles(key, prop);
18 | });
19 | return obj;
20 | }
21 |
22 | style(key, func) {
23 | if (typeof func === 'function') {
24 | this.styles[key] = func;
25 | }
26 | return this;
27 | }
28 |
29 | applyStyles(key, prop) {
30 | const style = this.styles[key] || _.identity;
31 | return style(prop);
32 | }
33 |
34 | static build() {
35 | return new Formatter();
36 | }
37 | }
38 |
39 | module.exports = {
40 | Formatter,
41 | Style,
42 | };
43 |
--------------------------------------------------------------------------------
/lib/output/__mocks__/Output.js:
--------------------------------------------------------------------------------
1 |
2 | const Output = jest.genMockFromModule('../Output');
3 |
4 | Output.printError = (e) => {
5 | throw e;
6 | };
7 |
8 | module.exports = Output;
9 |
--------------------------------------------------------------------------------
/lib/output/formatters/Annotations.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('key', Style.cyan);
6 |
7 | module.exports = FORMATTER;
8 |
--------------------------------------------------------------------------------
/lib/output/formatters/Board.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('name', Style.cyan);
6 |
7 | module.exports = FORMATTER;
8 |
--------------------------------------------------------------------------------
/lib/output/formatters/CodefreshRepo.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style} = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('name_id', Style.cyan);
6 |
7 | module.exports = FORMATTER;
8 |
--------------------------------------------------------------------------------
/lib/output/formatters/Composition.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('name', Style.cyan)
6 | .style('created', Style.datetime);
7 |
8 | module.exports = FORMATTER;
9 |
--------------------------------------------------------------------------------
/lib/output/formatters/Environment.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const CHECK_SIGN = '✓';
4 | const CROSS_SIGN = '✗';
5 | const PROGRESS_SIGN = '«';
6 |
7 |
8 | const STATUS = {
9 | done: Style.green.appendedBy(CHECK_SIGN),
10 | inProgress: Style.yellow.appendedBy(PROGRESS_SIGN),
11 | terminating: Style.red.appendedBy(CROSS_SIGN),
12 | };
13 |
14 | const FORMATTER = Formatter.build()
15 | .style('status', input => (STATUS[input] || Style).bold.uppercase(input));
16 |
17 | module.exports = FORMATTER;
18 |
--------------------------------------------------------------------------------
/lib/output/formatters/GitRepo.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style} = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('repo_shortcut', Style.cyan);
6 |
7 | module.exports = FORMATTER;
8 |
--------------------------------------------------------------------------------
/lib/output/formatters/HelmRepo.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('name', Style.cyan)
6 | .style('created', Style.dateDiff)
7 | .style('updated', Style.dateDiff);
8 |
9 | module.exports = FORMATTER;
10 |
--------------------------------------------------------------------------------
/lib/output/formatters/Image.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const TAG_OPTIIONS = {
4 | '': Style.gray,
5 | master: Style.magenta,
6 | };
7 |
8 | const FORMATTER = Formatter.build()
9 | .style('tag', (input) => (TAG_OPTIIONS[input] || Style.cyan).bold(input))
10 | .style('created', Style.dateDiff);
11 |
12 | module.exports = FORMATTER;
13 |
--------------------------------------------------------------------------------
/lib/output/formatters/Pipeline.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style} = require('../Formatter');
2 |
3 | const FORMATTER = Formatter.build()
4 | .style('name', Style.cyan)
5 | .style('created', Style.dateDiff)
6 | .style('updated', Style.dateDiff);
7 |
8 | module.exports = FORMATTER;
9 |
--------------------------------------------------------------------------------
/lib/output/formatters/Project.formatter.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const { Formatter, Style } = require('../Formatter');
3 |
4 |
5 | const FORMATTER = Formatter.build()
6 | .style('name', Style.cyan)
7 | .style('tags', tags => _.join(tags, ' '))
8 | .style('last_updated', Style.date);
9 |
10 | module.exports = FORMATTER;
11 |
--------------------------------------------------------------------------------
/lib/output/formatters/Registry.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const FORMATTER = Formatter.build()
4 | .style('name', Style.cyan);
5 |
6 |
7 | module.exports = FORMATTER;
8 |
--------------------------------------------------------------------------------
/lib/output/formatters/Section.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 |
4 | const FORMATTER = Formatter.build()
5 | .style('name', Style.cyan)
6 | .style('cluster', Style.cyan);
7 |
8 | module.exports = FORMATTER;
9 |
--------------------------------------------------------------------------------
/lib/output/formatters/StepType.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const FORMATTER = Formatter.build()
4 | .style('name', Style.cyan)
5 | .style('created', Style.dateDiff)
6 | .style('updated', Style.dateDiff);
7 |
8 | module.exports = FORMATTER;
9 |
--------------------------------------------------------------------------------
/lib/output/formatters/Team.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style} = require('../Formatter');
2 |
3 |
4 | const TEAM_TYPE = {
5 | default: Style.green,
6 | admin: Style.magenta,
7 | };
8 |
9 | const FORMATTER = Formatter.build()
10 | .style('type', input => TEAM_TYPE[input] ? TEAM_TYPE[input](input) : input)
11 | .style('name', Style.cyan);
12 |
13 | module.exports = FORMATTER;
14 |
--------------------------------------------------------------------------------
/lib/output/formatters/Token.formatter.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const { Formatter, Style } = require('../Formatter');
3 |
4 |
5 | const FORMATTER = Formatter.build()
6 | .style('token_prefix', val => `${val}**************`)
7 | .style('created', Style.date)
8 | .style('scopes', data => (_.isArray(data) && data.join('\n')) || data)
9 | .style('name', Style.cyan);
10 |
11 | module.exports = FORMATTER;
12 |
--------------------------------------------------------------------------------
/lib/output/formatters/TriggerEvent.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const TYPE = {
4 | registry: Style.cyan.bold,
5 | cron: Style.magenta.bold,
6 | helm: Style.blue.bold,
7 | };
8 |
9 | const FORMATTER = Formatter.build()
10 | .style('type', input => TYPE[input] ? TYPE[input](input) : input);
11 |
12 | module.exports = FORMATTER;
13 |
--------------------------------------------------------------------------------
/lib/output/formatters/TriggerType.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const TYPE = {
4 | registry: Style.cyan.bold,
5 | cron: Style.magenta.bold,
6 | helm: Style.blue.bold,
7 | };
8 |
9 | const FORMATTER = Formatter.build()
10 | .style('type', input => TYPE[input] ? TYPE[input](input) : input);
11 |
12 | module.exports = FORMATTER;
13 |
--------------------------------------------------------------------------------
/lib/output/formatters/Workflow.formatter.js:
--------------------------------------------------------------------------------
1 | const { Formatter, Style } = require('../Formatter');
2 |
3 | const CHECK_SIGN = '✓';
4 | const CROSS_SIGN = '✗';
5 | const PLAY_SIGN = '▸';
6 | const TWO_ARR_DOWN_SIGN = '⇊';
7 | const CIRCLE_SIGN = '◉';
8 | const BRACKET_SIGN = '«';
9 |
10 | const STATUS_CHOICES = {
11 | success: Style.green.appendedBy(CHECK_SIGN),
12 | error: Style.red.appendedBy(CROSS_SIGN),
13 | terminated: Style.red.appendedBy(CROSS_SIGN),
14 | pending: Style.yellow.appendedBy(CIRCLE_SIGN),
15 | 'pending-approval': Style.yellow.appendedBy(CIRCLE_SIGN),
16 | elected: Style.yellow.appendedBy(BRACKET_SIGN),
17 | running: Style.cyan.appendedBy(PLAY_SIGN),
18 | terminating: Style.red.appendedBy(TWO_ARR_DOWN_SIGN),
19 | };
20 |
21 | const FORMATTER = Formatter.build()
22 | .style('status', input => (STATUS_CHOICES[input] || Style).bold.uppercase(input))
23 | .style('created', Style.datetime)
24 | .style('started', Style.datetime)
25 | .style('finished', Style.datetime);
26 |
27 |
28 | module.exports = FORMATTER;
29 |
--------------------------------------------------------------------------------
/lib/output/types/id.output.js:
--------------------------------------------------------------------------------
1 | const CFError = require('cf-errors'); // eslint-disable-line
2 | const Entity = require('../../logic/entities/Entity');
3 | const _ = require('lodash');
4 |
5 |
6 | function output(data) {
7 | const entities = _.isArray(data) ? data : [data];
8 | return entities.map((entity) => {
9 | if (!(entity instanceof Entity)) {
10 | throw new CFError('Cannot extract data for "id" output -- data contains not Entity');
11 | }
12 | return entity.toId();
13 | }).join('\n\r');
14 | }
15 |
16 | module.exports = output;
17 |
--------------------------------------------------------------------------------
/lib/output/types/json.output.js:
--------------------------------------------------------------------------------
1 | const CFError = require('cf-errors'); // eslint-disable-line
2 | const Entity = require('../../logic/entities/Entity');
3 | const _ = require('lodash');
4 |
5 |
6 | function output(data) {
7 | const entities = _.isArray(data) ? data : [data];
8 | const jsonArray = [];
9 | _.forEach(entities, (entity) => {
10 | if (!(entity instanceof Entity)) {
11 | throw new CFError('Cannot extract data for "json" output -- data contains not Entity');
12 | }
13 | jsonArray.push(entity.info);
14 | });
15 |
16 | if (jsonArray.length === 1) {
17 | return JSON.stringify(jsonArray[0], null, '\t');
18 | }
19 | return JSON.stringify(jsonArray, null, '\t');
20 | }
21 |
22 | module.exports = output;
23 |
--------------------------------------------------------------------------------
/lib/output/types/name.output.js:
--------------------------------------------------------------------------------
1 | const CFError = require('cf-errors'); // eslint-disable-line
2 | const Entity = require('../../logic/entities/Entity');
3 | const _ = require('lodash');
4 |
5 |
6 | function output(data) {
7 | const entities = _.isArray(data) ? data : [data];
8 | return entities.map((entity) => {
9 | if (!(entity instanceof Entity)) {
10 | throw new CFError('Cannot extract data for "name" output -- data contains not Entity');
11 | }
12 | return entity.toName();
13 | }).join('\n\r');
14 | }
15 |
16 | module.exports = output;
17 |
--------------------------------------------------------------------------------
/lib/output/types/yaml.output.js:
--------------------------------------------------------------------------------
1 | const CFError = require('cf-errors'); // eslint-disable-line
2 | const Entity = require('../../logic/entities/Entity');
3 | const yaml = require('js-yaml');
4 | const _ = require('lodash');
5 |
6 |
7 | function _isAbsent(value) {
8 | return !value && value !== false;
9 | }
10 |
11 | function output(data) {
12 | const entities = _.isArray(data) ? data : [data];
13 | const yamlArray = {
14 | items: [],
15 | };
16 | _.forEach(entities, (entity) => {
17 | if (!(entity instanceof Entity)) {
18 | throw new CFError('Cannot extract data for "yaml" output -- data contains not Entity');
19 | }
20 | const info = _.mapValues(entity.info, value => _isAbsent(value) ? null : value);
21 | yamlArray.items.push(info);
22 | });
23 |
24 | if (yamlArray.items.length === 1) {
25 | return yaml.safeDump(yamlArray.items[0]);
26 | }
27 | return yaml.safeDump(yamlArray);
28 | }
29 |
30 | module.exports = output;
31 |
--------------------------------------------------------------------------------
/run-check-version.js:
--------------------------------------------------------------------------------
1 | const { checkVersion } = require('./check-version');
2 |
3 | checkVersion();
4 |
--------------------------------------------------------------------------------