anchor.diff:              }
           }
       }
  +----
  +
  +==== Signing a plugin
  +
  +The `signPlugin` task is used to sign the plugin archive before publishing to the
  +{uri-jetbrains-plugin-portal}[JetBrains TeamCity Plugin Repository].
  +
  +[source,groovy]
  +.build.gradle
  +----
  +teamcity {
  +    server {
  +        descriptor {
  +            ...
  +        }
  +        sign {
  +            certificateFile = project.file('ca.crt')
  +            privateKeyFile = project.file('private-key.file')
  +            password = findProperty('private-key.password')
  +        }
  +    }
  +}
   ----
   
   ==== Publishing a plugin
  
positive.code: * `serverPlugin` : Builds and packages a TeamCity plugin. The task performs validation of the plugin descriptor
  and outputs a warning if a required value is missing. The plugin zip file is output to the directory
  `build/distributions`.
  * `publishPlugin` : Publishes a plugin to the {uri-jetbrains-plugin-portal}[JetBrains TeamCity Plugin Repository]
  * `generateDescriptor` : If the descriptor is defined in the build script this task is enabled and will
  output the descriptor to the build directory.
  
negative.code: 
  |===
  |Plugin version |Gradle version |Java version |Documentation
  |v1.4-beta-1
  |6.0+
  |Java 8 & later
  |{uri-github-project}/blob/master/README.adoc#using-the-plugin[README]
  |v1.3
  |5.0+
  |Java 8 & later
  