| # 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) |