stackoverflower
stackoverflower

Reputation: 122

Gerrit Checks plugin - How to create/update Checker for a gerrit change with API

My Gerrit server installed Checks plugin and I also try to create many checkers for my repo.

configured_checker

I can get information about Checkers of a gerrit change by admin account (configured Administrate Checkers and password was generated for "HTTP Credentials" in settings menu) with curl command:

url="http://my_gerrit_ip:8081"

curl -k -X GET \
    -u admin:Jy7xK+oJ2tA2yzc+jG5n7yttsFUNmXDNKEDh+PoygQ \
    --header "Content-Type: application/json; charset=UTF-8" \
    --data gerrit-field-content.json \
    $url/changes/66/revisions/1/checks/

The output looks like:

[
  {
    "repository": "test2",
    "change_number": 66,
    "patch_set_id": 1,
    "checker_uuid": "a:a",
    "state": "NOT_STARTED",
    "created": "2020-10-28 02:56:55.000000000",
    "updated": "2020-10-28 02:56:55.000000000",
    "checker_name": "test2",
    "checker_status": "ENABLED",
    "blocking": [
      "STATE_NOT_PASSING"
    ],
    "submit_impact": {
      "required": true
    },
    "checker_description": "test2"
  },
  {
    "repository": "test2",
    "change_number": 66,
    "patch_set_id": 1,
    "checker_uuid": "b:b",
    "state": "NOT_STARTED",
    "created": "2020-10-28 02:56:55.000000000",
    "updated": "2020-10-28 02:56:55.000000000",
    "checker_name": "test2_2",
    "checker_status": "ENABLED",
    "blocking": [],
    "submit_impact": {},
    "checker_description": "test2_2"
  }
]

But now, i want to update the state of a Checker of my gerrit change via curl command too but it throw message "Authentication required".

I tried with:

curl -k -X POST \
    -u admin:Jy7xK+oJ2tA2yzc+jG5n7yttsFUNmXDNKEDh+PoygQ \
    --header "Content-Type: application/json; charset=UTF-8" \
    --data gerrit-field-content.json \
    $url/changes/66/revisions/1/checks/

The gerrit-field-content.json content:

{
    "checker_uuid": "a:a",
    "state": "SUCCESSFUL",
    "url": "",
    "started": ""
}

How can I update state of a checker via api? Or are there any better way to do this? Result of checker state maybe look like a sample in this one https://gerrit-review.googlesource.com/c/gerrit/+/285580

Note: the it's not able update checker when i leave password for admin empty (curl -u admin:) because my Gerrit server is not require password for logging in.

Upvotes: 0

Views: 1066

Answers (1)

DevNull
DevNull

Reputation: 141

Afraid I am just poking around myself, but in the zuul change it says:

* Access control for the `checks` API in Gerrit depends on a single
  global administrative permission, ``administrateCheckers``.  This is
  required in order to use the `checks` API and can not be restricted
  by project.  This means that any system using the `checks` API can
  interfere with any other.

Hope that is helpful, as I deploy this I'll update if I gain any other useful experience

Upvotes: 2

Related Questions