blob: 490772f028fd95de9ac83973aec98883de4aa558 [file] [view] [edit]
# Rest API
The @PLUGIN@ exposes a Rest API endpoint to list the owners associated with each file that
needs approval (`files`), is approved (`files_approved`), is approved through
`auto-owners-approved` (`files_auto_approved`) and, for each owner, its current labels and
votes (`owners_labels`):
```bash
GET /changes/{change-id}/revisions/{revision-id}/owners~files-owners
{
"files": {
"AJavaFile.java":[
{ "name":"John", "id": 1000002 },
{ "name":"Bob", "id": 1000001 }
],
"Aptyhonfileroot.py":[
{ "name":"John", "id": 1000002 },
{ "name":"Bob", "id": 1000001 },
{ "name":"Jack", "id": 1000003 }
]
},
"files_approved": {
"NewBuild.build":[
{ "name":"John", "id": 1000004 },
{ "name":"Release Engineer", "id": 1000001 }
]
},
"files_auto_approved": {
"Repository.java":[
{ "name":"John", "id": 1000004 },
{ "name":"Release Engineer", "id": 1000001 }
]
},
"owners_labels" : {
"1000002": {
"Verified": 1,
"Code-Review": 0
},
"1000001": {
"Code-Review": -2
}
}
}
```
`files_auto_approved` contains the files whose approval on the current patch set comes from a vote
that was copied forward because the `auto-owners-approved` logic applies.
See [the relevant section](./copy-conditions.md#auto-owners-approved) for more details on this.
`files_auto_approved` and `files_approved` are mutually exclusive. A file that is auto-approved is
returned only in `files_auto_approved`, and both sections return the full owner set for each file.
If a file also has a sufficient explicit owner vote on the current patch set, it is treated as
explicitly approved and returned only in `files_approved`.
> __NOTE__: The API does not work in the case when custom label is in
> rules.pl configuration as described in [the config.md docs](https://gerrit.googlesource.com/plugins/owners/+/refs/heads/stable-3.4/owners/src/main/resources/Documentation/config.md#example-3-owners-file-without-matchers-and-custom-owner_approves-label)