{% extends 'base.html' %} {% block title %}Azure DevOps · Brain{% endblock %} {% block body %} {% if snapshot.pending %}

Azure DevOps

Loading…
{% elif not snapshot.configured %}

Azure DevOps

{% if snapshot.config_error %}Azure DevOps config problem: {{ snapshot.config_error }}{% endif %}{% if snapshot.token_error %}{% if snapshot.config_error %} · {% endif %}Azure DevOps token problem: {{ snapshot.token_error }}{% endif %}{% if snapshot.missing %}{% if snapshot.config_error or snapshot.token_error %} · {% endif %}Azure DevOps is not configured: {% if 'token' in snapshot.missing %}no token in ~/.devmem/ado_token{% endif %}{% if 'token' in snapshot.missing and 'config' in snapshot.missing %} and {% endif %}{% if 'config' in snapshot.missing %}no organization/project: create ~/.devmem/ado.json or set DEVMEM_ADO_ORG and DEVMEM_ADO_PROJECT for the panel{% endif %}{% elif snapshot.error %}Azure DevOps error: {{ snapshot.error }}{% endif %}
{% else %} {% macro pr_list(items, empty) -%} {% if items %} {% else %}

{{ empty }}

{% endif %} {%- endmacro %}

Azure DevOps

{{ snapshot.project_active_count }} active PRs in the configured project

Last refresh: {{ (snapshot.refreshed_at | when) or 'not yet' }} {% if snapshot.stale %}stale{% endif %} {% if snapshot.error %}{{ snapshot.error }}{% endif %}

Waiting for me

To review {{ snapshot.to_review|length }}

{{ pr_list(snapshot.to_review, 'No pull requests need your review.') }}

Approved, not completed {{ snapshot.my_approved_not_completed|length }}

{{ pr_list(snapshot.my_approved_not_completed, 'No approved pull requests are waiting to land.') }}

Changes requested {{ snapshot.my_changes_requested|length }}

{{ pr_list(snapshot.my_changes_requested, 'No pull requests have requested changes.') }}

Waiting for others

{{ pr_list(snapshot.my_waiting_on_others, 'No authored pull requests are waiting on reviewers.') }}

My open tasks {{ snapshot.open_tasks|length }}

{% if snapshot.open_tasks_by_state %} {% for state, tasks in snapshot.open_tasks_by_state.items() %}

{{ state }} {{ tasks|length }}

{% endfor %} {% else %}

No open work items assigned to you.

{% endif %} {% endif %} {% endblock %}