#bitbucket #pull-request #merge #trigger #pr #auto-merge #open

bin+lib crabby-merge

一个轮询打开的 Bitbucket PR 并根据可配置触发器合并它们的工具

6 个版本 (重大变更)

0.6.0 2024年3月5日
0.5.0 2022年6月28日
0.4.1 2022年6月6日
0.4.0 2022年2月21日
0.2.2 2021年5月21日

#819 in 命令行工具

Download history 25/week @ 2024-07-01

每月 123 次下载

Apache-2.0

43KB
868

crabby-merge

build status crates.io Apache 2.0 license

扫描打开的 Bitbucket 拉取请求,查找可配置的触发字符串并将其合并。

这主要是将 polly-merge 从 Rust 同步版本转换为异步 Rust 的复制品。获得了一些速度提升,但这主要只是尝试在 Rust 中使用 async/await 的不创造性的理由 👨🏽‍🎓

安装

通过 Cargo 安装

cargo install crabby-merge

用法

理想情况下,您会定期运行 crabby-merge。要在类似 Unix 的机器上使用 cron 实现此目的,请运行 crontab -e 并添加如下条目

# Schedule crabby-merge to run every two minutes
*/2 * * * * $HOME/.cargo/bin/crabby-merge

配置

TOML

$HOME/.crabby_merge.toml

# base URL of the Bitbucket server to query. Required.
bitbucket_url = "your URL goes here"
# API token for user authentication
bitbucket_api_token = "your token goes here"
# Trigger regex string to look for
merge_trigger = "^:shipit:$"
# Whether to check the pull request description for the trigger
check_description = true
# Whether to check pull request comments for the trigger. Only the user's own comments are searched.
check_comments = false
# Whether to include the user's own pull requests
check_own_prs = true
# Whether to search pull requests the user has approved
check_approved_prs = false

除非另有说明,所有字段都是可选的。显示的值是默认值。

环境变量

上述 TOML 键可以以 CRABBY_MERGE 为前缀,并作为环境变量提供。键不区分大小写。

例如,您可以将 Bitbucket API 令牌传递为 CRABBY_MERGE_API_TOKEN=<your token here>

Jenkins 重建支持

存在对重建失败 Jenkins 构建的实验性支持,这些构建的名称与提供的正则表达式触发器匹配。这是针对易出故障的阻塞测试的悲伤解决方案。这是通过编译时启用的 jenkins 功能控制的,该功能默认启用。

要使用它,请将以下字段添加到配置文件中。如果未提供这些字段,则在运行时将禁用重试功能。

jenkins_username = ""
jenkins_password = ""
# Regex trigger to search against the build name
jenkins_retry_trigger = ""
# Optional. Defaults to 10.
jenkins_retry_limit = ""

依赖关系

~10–27MB
~369K SLoC