An open API service indexing awesome lists of open source software.

https://github.com/721806280/lark-notice-plugin

Lark Notice Plugin is a lightweight Jenkins plugin that automatically pushes build progress and results to collaboration platforms — including Lark, Feishu, and DingTalk.
https://github.com/721806280/lark-notice-plugin

dingtalk feishu lark

Last synced: about 2 months ago
JSON representation

Lark Notice Plugin is a lightweight Jenkins plugin that automatically pushes build progress and results to collaboration platforms — including Lark, Feishu, and DingTalk.

Awesome Lists containing this project

README

          




logo



JDK
License
License
Author



Typing SVG


## 🌐 Plugin Introduction

`lark-notice-plugin` is a `build notification robot` notification plug-in for `Jenkins`, which can push the `Jenkins`
build process and result notifications to the `Lark`、`Feishu` and `DingTalk` collaboration platforms.
Multiple notification timings can be configured,
including `when the build starts`, `build interruption`, `build failure`, `when the build succeeds`,
`build instability`,
etc.
Supports many different types of messages,
including `text messages`, `picture messages`, `group business card messages`, `rich text messages`, `card messages`;
At the same time, the plug-in also provides the functions of `custom template` and `variables', allowing you to
customize the content and format of notification messages according to your own needs.

## 📝 Using documentation

> Please refer to [official document](https://721806280.github.io/lark-notice-plugin-doc)

## 🔁 Retry Configuration

The plugin can retry failed webhook sends. Retries are disabled by default.

- `enabled`: whether to enable retry
- `maxAttempts`: total attempts including the first one
- `initialDelayMs`: initial delay before the first retry
- `maxDelayMs`: maximum delay between retries
- `backoffMultiplier`: exponential backoff multiplier
- `jitterRatio`: random jitter ratio applied to delays

Default values: `enabled=false`, `maxAttempts=1`, `initialDelayMs=500`, `maxDelayMs=5000`,
`backoffMultiplier=2.0`, `jitterRatio=0.2`.

Retry settings are configured per robot under robot settings.

## 🧑‍💻 Development Services

### Test commands

- Fast test suite: `mvn test`
- Full suite including JenkinsRule page and integration tests: `mvn test failsafe:integration-test failsafe:verify -Pjenkins-rule-tests`

Add `hpi:run` to the startup configuration in the `maven` control panel on the right side of `IDEA`:

### Remote debugging (Remote JVM DEBUG)

#### 1. Command line mode start

> 1. `set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5005,suspend=n`
> 2. `mvn hpi:run -Djetty.port=8080`

#### 2. IDEA starts

> 1. Open the `maven` panel in `idea`, the `hpi` plugin under `Plugins`
> 2. Right click on `hpi:run` and select `Modify Run Configuration..` to set
> 3. Click `Modify Options` and select `Add VM Options` option
> 4. Input at `VM options`: `-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5005,suspend=n`
> 5. Click the Run button to start executing the `maven` command (do not run in `Debug` mode)

#### 3. Remote JVM DEBUG

> 1. Open `Run/Debug Configurations` and click `Add New Configuration` and select `Remote JVM DEBUG`
> 2. After configuring the port, `Run` runs the debugger
> 3. The console prints information after startup: `Listening for transport dt_socket at address: 5005`

## ✅ Development Agreement

1. Use [Alibaba Java Coding Guidelines](https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines/)
Verify code specifications.
2. Use the [Google Style Guide](https://github.com/google/styleguide) to unify the code style.

> `IDEA`
>
download [intellij-java-google-style.xml](https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml)
> Import via `Settings` -> `Editor` `Code Style`.

## 🔍️ Related Links

- [Plugin tutorial](https://wiki.jenkins.io/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingUpEnvironment)
- [Jenkins plug-in development journey: from idea to release in two days (Part 1)](https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/)
- [Jenkins plug-in development journey: from idea to release in two days (Part 2)](https://jenkins-zh.github.io/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/)

## ⭐ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=721806280/lark-notice-plugin&type=Date)](https://www.star-history.com/#721806280/lark-notice-plugin&Date)