| Gerrit Code Review - Dashboards |
| =============================== |
| |
| Custom Dashboards |
| ----------------- |
| |
| A custom dashboard is shown in a layout similar to the per-user |
| dashboard, but the sections are entirely configured from the URL. |
| Because of this custom dashboards are stateless on the server side. |
| Users or projects can simply trade URLs using an external system like |
| a project wiki, or site administrators can put the links into the |
| site's `GerritHeader.html` or `GerritFooter.html`. |
| |
| Dashboards are available via URLs like: |
| ---- |
| /#/dashboard/?title=Custom+View&To+Review=reviewer:john.doe@example.com&Pending+In+myproject=project:myproject+is:open |
| ---- |
| This opens a view showing the title "Custom View" with two sections, |
| "To Review" and "Pending in myproject": |
| ---- |
| Custom View |
| |
| To Review |
| |
| Results of `reviewer:john.doe@example.com` |
| |
| Pending In myproject |
| |
| Results of `project:myproject is:open` |
| ---- |
| |
| The dashboard URLs are easy to configure. All keys and values in the |
| URL are encoded as query parameters. Set the page and window title |
| using an optional `title=Text` parameter. |
| |
| Each section's title is defined by the parameter name, the section |
| display order is defined by the order the parameters appear in the |
| URL, and the query results are defined by the parameter value. To |
| limit the number of rows in a query use `limit:N`, otherwise the |
| entire result set will be shown (up to the user's query limit). |
| |
| Parameters may be separated from each other using any of the following |
| characters, as some users may find one more readable than another: |
| `&` or `;` or `,` |
| |
| The special `foreach=...` parameter is designed to facilitate |
| more easily writing similar queries in a dashboard. The value of the |
| foreach parameter will be used in every query in the dashboard by |
| appending it to their ends with a space (ANDing it with the queries). |
| |
| Example custom dashboard using foreach to constrain a dashboard |
| to changes for the current user: |
| |
| ---- |
| /#/dashboard/?title=Mine&foreach=owner:self&My+Pending=is:open&My+Merged=is:merged |
| ---- |
| |
| |
| [[project-dashboards]] |
| Project Dashboards |
| ------------------ |
| |
| It is possible to share custom dashboards at a project level. To do |
| this define the dashboards in a `refs/meta/dashboards/*` branch of the |
| project. For each dashboard create a config file. The file path/name |
| will be used as name (equivalent to a title in a custom dashboard) for |
| the dashboard. |
| |
| Example of a dashboard config file: |
| |
| ---- |
| [dashboard] |
| description = Most recent open and merged changes. |
| [section "Open Changes"] |
| query = status:open project:myProject limit:15 |
| [section "Merged Changes"] |
| query = status:merged project:myProject limit:15 |
| ---- |
| |
| Once defined, project dashboards are accessible using stable URLs by |
| using the project name, refname and pathname of the dashboard via URLs |
| , e.g. create a dashboard config file named `Main` and push it |
| to `refs/meta/dashboards/Site` branch of All-Projects, then access it |
| like: |
| ---- |
| /#/projects/All-Projects,dashboards/Site:Main |
| ---- |
| |
| Project dashboards are inherited from ancestor projects unless |
| overridden by dashboards with the same ref and name. This makes |
| it easy to define common dashboards for every project by simply |
| defining project dashboards on the All-Projects project. |
| |
| Token `${project}` |
| ~~~~~~~~~~~~~~~~~~ |
| |
| Project dashboard queries may contain the special `${project}` token |
| which will be replaced with the name of the project to which the |
| dashboard is being applied. This is useful for defining dashboards |
| designed to be inherited. With this token, it is possible to cause a |
| query in a project dashboard to be restricted to only changes for the |
| project in which an inherited dashboard is being applied by simply |
| adding `project:${project}` to the query in the dashboard. |
| |
| The `${project}` token can also be used in the link:#dashboard.title[ |
| dashboard title] and in the link:#dashboard.description[dashboard |
| description]. |
| |
| Section `dashboard` |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| [[dashboard.title]]dashboard.title:: |
| + |
| The title of the dashboard. |
| + |
| If not specified the path of the dashboard config file is used as |
| title. |
| |
| [[dashboard.description]]dashboard.description:: |
| + |
| The description of the dashboard. |
| |
| dashboard.foreach:: |
| + |
| The value of the foreach parameter gets appended to every query in the |
| dashboard. |
| + |
| Example dashboard config section to constrain the entire dashboard to |
| the project to which it is applied: |
| + |
| ---- |
| [dashboard] |
| foreach = project:${project} |
| ---- |
| |
| |
| Section `section` |
| ~~~~~~~~~~~~~~~~~ |
| |
| section.<name>.query:: |
| + |
| The change query that should be used to populate the section with the |
| given name. |
| |
| [[project-default-dashboard]] |
| Project Default Dashboard |
| ------------------------- |
| |
| It is possible to define a default dashboard for a project in the |
| projects `project.config` file in the `refs/meta/config` branch: |
| |
| ---- |
| [dashboard] |
| default = refs/meta/dashboards/main:default |
| ---- |
| |
| The dashboard set as the default dashboard will be inherited as the |
| default dashboard by child projects if they do not define their own |
| default dashboard. The `local-default` entry makes it possible to |
| define a different default dashboard that is only used by this project |
| but not inherited to the child projects. |
| |
| ---- |
| [dashboard] |
| default = refs/meta/dashboards/main:default |
| local-default = refs/meta/dashboards/main:local |
| ---- |
| |
| GERRIT |
| ------ |
| Part of link:index.html[Gerrit Code Review] |