# plugins

* [upload via api](#upload-via-api)
* [plugins](#plugins)
  * [recommended plugins](#recommended-plugins)
  * [optinal](#optinal)
  * [CloudBees](#cloudbees)

{% hint style="info" %}
> reference:
>
> * [plugin index](https://plugins.jenkins.io/)
> * [Pipeline Syntax](https://www.jenkins.io/doc/book/pipeline/syntax/)
> * [Pipeline Best Practices](https://www.jenkins.io/doc/book/pipeline/pipeline-best-practices/)
> * [jenkinsci/plugin-installation-manager-tool](https://github.com/jenkinsci/plugin-installation-manager-tool)
> * [jenkinsci/docker/install-plugins.sh](https://github.com/jenkinsci/docker/blob/84c43c1a84c2c71da3e96a59b319700ba2dbeddf/install-plugins.sh)
> * [gitops-playground/scripts/jenkins/plugins/download-plugins.sh](https://github.com/cloudogu/gitops-playground/blob/97ed0964cc1713abf0765a9fbe149f07e1f295c2/scripts/jenkins/plugins/download-plugins.sh)
> * [gitops-playground/scripts/jenkins/init-jenkins.sh](https://github.com/cloudogu/gitops-playground/blob/d41094a7927f91cb05aaa40b35b5410719ed1e8b/scripts/jenkins/init-jenkins.sh#L98-L104)
> * [jenkins/core/src/main/java/hudson/PluginManager.java](https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/PluginManager.java)
> * [\* How to Install Jenkins Plugins From Command Line Using the Jenkins CLI](https://www.youtube.com/watch?v=bTFMvXIkNIg)
> * [hoesler/install\_jenkins\_plugin.sh](https://gist.github.com/hoesler/ed289c9c7f18190b2411e3f2286e23c3)
{% endhint %}

### [upload via api](https://stackoverflow.com/a/69014736/2940319)

```bash
$ curl -i -F file=@plugin.hpi http://${JENKINS_URL}/pluginManager/uploadPlugin

# via CLI
$ ssh ${JENKINS_URL} install-plugin https://artifactory.example.com/jenkins/plugins/pipeline-timeline.hpi
Installing a plugin from https://artifactory.example.com/jenkins/plugins/pipeline-timeline.hpi

# via [plugin-installation-manager-tool](https://github.com/jenkinsci/plugin-installation-manager-tool)
$ java -jar jenkins-plugin-manager-$version.jar \
       --plugin-download-directory pluginsFolder \
       --plugin-file plugins.yml \
       --war jenkins.war
```

* other apis
  * [`pluginManager/installNecessaryPlugins`](https://issues.jenkins.io/browse/JENKINS-32793)

### plugins

#### recommended plugins

* [Artifactory](https://plugins.jenkins.io/artifactory/)
* [Git plugin](https://plugins.jenkins.io/git/)
* [Gerrit Code Review plugin](https://plugins.jenkins.io/gerrit-code-review/)
* [Gerrit Trigger](https://plugins.jenkins.io/gerrit-trigger/)
* [Kubernetes](https://plugins.jenkins.io/kubernetes/)
* [Docker Commons Plugin](https://plugins.jenkins.io/docker-commons/)
* [Pipeline](https://plugins.jenkins.io/workflow-aggregator/)
* [Pipeline Utility Steps](https://plugins.jenkins.io/pipeline-utility-steps/)
  * [Step reference](https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/)
  * [Pipeline Steps Reference](https://www.jenkins.io/doc/pipeline/steps/)
* [Blue Ocean](https://plugins.jenkins.io/blueocean/)
* [Copy Artifact](https://plugins.jenkins.io/copyartifact/)
* [JUnit Plugin](https://plugins.jenkins.io/junit/)
* [Build Trigger Badge Plugin](https://plugins.jenkins.io/buildtriggerbadge/)
* [Groovy Postbuild](https://plugins.jenkins.io/groovy-postbuild/)
* [Active Choices Plug-in](https://plugins.jenkins.io/uno-choice/)
* [AnsiColor](https://plugins.jenkins.io/ansicolor/)
* [Build Timestamp Plugin](https://plugins.jenkins.io/build-timestamp/)
* [Docker Pipeline](https://plugins.jenkins.io/docker-workflow/)
* [Email Extension](https://plugins.jenkins.io/email-ext/)
* [Environment Injector Plugin](https://plugins.jenkins.io/envinject/)
* [Green Balls](https://plugins.jenkins.io/greenballs/)
* [Job Configuration History Plugin](https://plugins.jenkins.io/jobConfigHistory/)
* [Lockable Resources plugin](https://plugins.jenkins.io/lockable-resources/)
* [Matrix Authorization Strategy Plugin](https://plugins.jenkins.io/matrix-auth/)
* [Monitoring](https://wiki.jenkins.io/display/JENKINS/Monitoring)
* [Rebuilder](https://plugins.jenkins.io/rebuild/)
* [ThinBackup](https://plugins.jenkins.io/thinBackup/)
* [Sectioned View](https://plugins.jenkins.io/sectioned-view/)
* [Parameterized Scheduler](https://plugins.jenkins.io/parameterized-scheduler/)
* [Metrics](https://plugins.jenkins.io/metrics/)
* [Validating String Parameter](https://plugins.jenkins.io/validating-string-parameter/)
* [Klocwork Analysis](https://plugins.jenkins.io/klocwork/)
* [Strict Crumb Issuer Plugin](https://plugins.jenkins.io/strict-crumb-issuer/)
  * due to [SECURITY-626](https://github.com/marslo/ibook/blob/marslo/docs/jenkins/plugins/crumbIssuer.html#improved-csrf-protection)

#### optinal

* [JobFanIn](https://plugins.jenkins.io/job-fan-in/)
* [Pipeline Aggregator](https://plugins.jenkins.io/pipeline-aggregator-view/)
* [Active Directory plugin](https://plugins.jenkins.io/active-directory/)
* [Delivery Pipeline Plugin](https://plugins.jenkins.io/delivery-pipeline-plugin/)
* [Log Parser Plugin](https://plugins.jenkins.io/log-parser/)
* [httpRequest](https://plugins.jenkins.io/http_request/)
  * [Streamlining Your Workflow With the Jenkins HTTP Request Plugin: A Guide to Replacing CURL in Scripts](https://dzone.com/articles/streamlining-your-workflow-with-the-jenkins-http-r-1)

#### [CloudBees](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/)

* [CloudBees Template plugin](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/template)
* [Folders Plus plugin](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/folders-plus)
* [Jenkins Health Advisor by CloudBees](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/cloudbees-jenkins-advisor)
* [CloudBees Monitoring Plugin](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/monitoring)
* [CloudBees Plugin Usage Analyzer plugin](https://docs.cloudbees.com/docs/admin-resources/latest/plugins/plugin-usage)
