跳转到主要内容

自动分配gitlab/heptapod上的审查

项目描述

该项目旨在自动将未分配的挂起合并请求分配到gitlab/heptapod实例上。

项目的每个成员都可以随机分配到待处理的合并请求中。

Assignbot根据用户的偏好分配审查任务,这些偏好存储在简单的yaml文件中。分配的历史记录存储在CSV文件中,位于S3存储中。

偏好文件

用户在偏好文件中定义他们的“审查偏好”,格式为yaml。

“偏好文件”是一个按以下方式构建的yaml文件:

username_1:
    max_auto_review_per_week: XXX
    max_auto_review_per_day: YYY
username_2:
    max_auto_review_per_week: ZZZ
    max_auto_review_per_day: WWW

其中 username_1 是gitlab用户的用户名,而 max_auto_review_per_weekmax_auto_review_per_day)是每周(每天)自动分配的审查的最大数量。

S3存储

Assignbot使用CSV文件来跟踪用户的分配。此CSV文件存储在S3存储中。当您执行该机器人时,您必须提供以下环境变量

  • AWS_ACCESS_KEY_ID:您的S3密钥ID

  • AWS_SECRET_ACCESS_KEY:您的S3秘密访问密钥

  • S3_ENDPOINT_URL:您的S3端点URL

  • S3_BUCKET_NAME:要使用的S3存储桶

执行机器人

安装assignbot后,您可以按以下方式运行它:

$ GITLAB_URL="https://your.forge.org" \
  GITLAB_TOKEN="XXX-an-api-token" \
  S3_ENDPOINT_URL="https://your.s3.storage.fr" \
  S3_BUCKET_NAME="you_bucket_name" \
  AWS_SECRET_ACCESS_KEY="your_secret_access_key" \
  AWS_ACCESS_KEY_ID="your_access_key_id" \
  python3 -m assignbot ./users_preferences.yml

然后,机器人应该开始将合并请求分配给用户。

用例示例

要使用此机器人,您可以在您的 forge 上添加一个新的存储库,并使用以下 .gitlab-ci.yml

assign:
  stage: assign
  only:
    - schedules
  variables:
      # there is a gitlab bug in the validation of AWS variables. We work
      # around it while waiting for the correction.
      # see: https://gitlab.com/gitlab-org/gitlab/-/issues/215927
      AWS_ACCESS_KEY_ID: "$_AWS_ACCESS_KEY_ID"
      AWS_SECRET_ACCESS_KEY: "$_AWS_SECRET_ACCESS_KEY"
  script:
    - pip install assignbot
    - python -m assignbot ./users_preferences.yml

此作业假定您已定义了适当的环境变量,并且在此存储库的根目录中有一个 users_preferences.yml 文件。

然后,您可以在gitlab中创建一个新的“定时任务”,以定期调用此任务。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

assignbot-2.2.2.tar.gz (12.3 kB 查看哈希值)

上传时间 源代码

构建分发

assignbot-2.2.2-py3-none-any.whl (14.2 kB 查看哈希值)

上传时间 Python 3

支持者