diff --git a/docs/modules/configuration/nav.adoc b/docs/modules/configuration/nav.adoc index 89e4fa9..7cb1b10 100644 --- a/docs/modules/configuration/nav.adoc +++ b/docs/modules/configuration/nav.adoc @@ -19,6 +19,7 @@ * xref:distributions.adoc[] * xref:files.adoc[] * xref:announce/index.adoc[] +** xref:announce/discord.adoc[] ** xref:announce/discussions.adoc[] ** xref:announce/gitter.adoc[] ** xref:announce/mail.adoc[] diff --git a/docs/modules/configuration/pages/announce/discord.adoc b/docs/modules/configuration/pages/announce/discord.adoc new file mode 100644 index 0000000..f288fbd --- /dev/null +++ b/docs/modules/configuration/pages/announce/discord.adoc @@ -0,0 +1,255 @@ += Discord + +Posts a message to a link:https://discord.im/[Discord] room. You must create a custom webhook for this announcer to work. + +1. Log into the target discord server. +2. Select the channel you want to integrate to, click on its settings icon. +3. Click on the `Integrations` menu item. +4. Click on Webhooks. +5. Create a new webhook. +6. Copy the generated webhook URL. + +IMPORTANT: Webhooks are not protected, anyone with access to the webhook URI can send messages to the target room. Prefer +setting the `JRELEASER_DISCORD_WEBHOOK` environment variable over explicitly setting a value in the configuration DSL. + +include::partial$legend.adoc[] + +[tabs] +==== +YAML:: ++ +[source,yaml] +[subs="+macros"] +---- +announce: + # icon:dot-circle[] + discord: + + # Enable or disable this announcer. + # Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`]. + # Defaults to `NEVER`. + # icon:dot-circle[] + active: ALWAYS + + # Defines the connection timeout in seconds. + # Defaults to `20`. + # icon:dot-circle[] + connectTimeout: 20 + + # Defines the read timeout in seconds. + # Defaults to `60`. + # icon:dot-circle[] + readTimeout: 6 + + # The webhook associated with a specific Discord room. + # If left unspecified, the `JRELEASER_DISCORD_WEBHOOK` + # environment variable must be defined. + # icon:exclamation-triangle[] icon:eye-slash[] + webhook: __DO_NOT_SET_HERE__ + + # The announcement message. + # Review the available xref:configuration:name-templates.adoc[]. + # icon:dot-circle[] icon:file-alt[] + message: icon:rocket[] {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}} + + # Path to a template file that contains the message. + # Review the available xref:configuration:name-templates.adoc[]. + # Defaults to `src/jreleaser/templates/discord.tpl`. + # icon:dot-circle[] + messageTemplate: path/to/template/discord.tpl +---- +TOML:: ++ +[source,toml] +[subs="+macros"] +---- +# icon:dot-circle[] +[announce.discord] + + # Enable or disable this announcer. + # Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`]. + # Defaults to `NEVER`. + # icon:dot-circle[] + active = "ALWAYS" + + # Defines the connection timeout in seconds. + # Defaults to `20`. + # icon:dot-circle[] + connectTimeout = 20 + + # Defines the read timeout in seconds. + # Defaults to `60`. + # icon:dot-circle[] + readTimeout = 60 + + # The webhook associated with a specific Discord room. + # If left unspecified, the `JRELEASER_DISCORD_WEBHOOK` + # environment variable must be defined. + # icon:exclamation-triangle[] icon:eye-slash[] + webhook = "__DO_NOT_SET_HERE__" + + # The announcement message. + # Review the available xref:configuration:name-templates.adoc[]. + # icon:dot-circle[] icon:file-alt[] + message = "icon:rocket[] {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}" + + # Path to a template file that contains the message. + # Review the available xref:configuration:name-templates.adoc[]. + # Defaults to `src/jreleaser/templates/discord.tpl`. + # icon:dot-circle[] + messageTemplate = "path/to/template/discord.tpl" +---- +JSON:: ++ +[source,json] +[subs="+macros"] +---- +{ + "announce": { + // icon:dot-circle[] + "discord": { + + // Enable or disable this announcer. + // Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`]. + // Defaults to `NEVER`. + // icon:dot-circle[] + "active": "ALWAYS", + + // Defines the connection timeout in seconds. + // Defaults to `20`. + // icon:dot-circle[] + "connectTimeout": 20, + + // Defines the read timeout in seconds. + // Defaults to `60`. + // icon:dot-circle[] + "readTimeout": 60, + + // The webhook associated with a specific Discord room. + // If left unspecified, the `JRELEASER_DISCORD_WEBHOOK` + // environment variable must be defined. + // icon:exclamation-triangle[] icon:eye-slash[] + "webhook": "__DO_NOT_SET_HERE__", + + // The announcement message. + // Review the available xref:configuration:name-templates.adoc[]. + // icon:dot-circle[] icon:file-alt[] + "message": "icon:rocket[] {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}", + + // Path to a template file that contains the message. + // Review the available xref:configuration:name-templates.adoc[]. + // Defaults to `src/jreleaser/templates/discord.tpl`. + // icon:dot-circle[] + "messageTemplate": "path/to/template/discord.tpl", + } + } +} +---- +Maven:: ++ +[source,xml] +[subs="+macros,verbatim"] +---- + + + + + + + ALWAYS + + + 20 + + + 60 + + + __DO_NOT_SET_HERE__ + + + icon:rocket[] {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}} + + + path/to/template/discord.tpl + + + +---- +Gradle:: ++ +[source,groovy] +[subs="+macros"] +---- +jreleaser { + announce { + // icon:dot-circle[] + discord { + + // Enable or disable this announcer. + // Valid values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`]. + // Defaults to `NEVER`. + // icon:dot-circle[] + active = 'ALWAYS' + + // Defines the connection timeout in seconds. + // Defaults to `20`. + // icon:dot-circle[] + connectTimeout = 20 + + // Defines the read timeout in seconds. + // Defaults to `60`. + // icon:dot-circle[] + readTimeout = 60 + + // The webhook associated with a specific Discord room. + // If left unspecified, the `JRELEASER_DISCORD_WEBHOOK` + // environment variable must be defined. + // icon:exclamation-triangle[] icon:eye-slash[] + webhook = '__DO_NOT_SET_HERE__' + + // The announcement message. + // Review the available xref:configuration:name-templates.adoc[]. + // icon:dot-circle[] icon:file-alt[] + message = 'icon:rocket[] {{projectNameCapitalized}} {{projectVersion}} has been released! {{releaseNotesUrl}}' + + // Path to a template file that contains the message. + // Review the available xref:configuration:name-templates.adoc[]. + // Defaults to `src/jreleaser/templates/discord.tpl`. + // icon:dot-circle[] + messageTemplate = 'path/to/template/discord.tpl' + } + } +} +---- +==== + +You may define either `message` or `messageTemplate`, with the former taking precedence over the latter. diff --git a/docs/modules/configuration/pages/environment.adoc b/docs/modules/configuration/pages/environment.adoc index b924228..73c1436 100644 --- a/docs/modules/configuration/pages/environment.adoc +++ b/docs/modules/configuration/pages/environment.adoc @@ -224,6 +224,14 @@ The following key/values may be defined in the properties file or as environment | JRELEASER_SNAP_GITEA_TOKEN | a Gitea personal token |=== +== Discord + +[%header, cols="<1,<1", width="100%"] +|=== +| Key | Description +| JRELEASER_DISCORD_WEBHOOK | the webhook URL +|=== + == Gitter [%header, cols="<1,<1", width="100%"]