{% include "nav.html" %}
{% if source_workflows %} {% for source_name, wfs in source_workflows.items() %} {% set src_cfg = source_configs.get(source_name) %} {% set src_disabled = source_name in disabled_sources %}

{{ source_name }}

{% if src_cfg and src_cfg.type == 'git' %} {% set repo_url = src_cfg.url.replace('git@github.com:', 'https://github.com/').replace('git@gitlab.com:', 'https://gitlab.com/').removesuffix('.git') %} {% endif %}
{% set src_status = source_statuses.get(source_name) %}

{% if src_disabled %}Disabled {% elif wfs %}{{ wfs | length }} workflow{{ 's' if wfs | length != 1 }}{% endif %} {% if src_cfg and src_cfg.type == 'git' and src_status and not src_disabled %} {% set repo_url_sub = src_cfg.url.replace('git@github.com:', 'https://github.com/').replace('git@gitlab.com:', 'https://gitlab.com/').removesuffix('.git') %} · {{ src_status.branch }}{% if src_status.last_commit %}@{{ src_status.last_commit[:7] }}{% endif %} {% if src_status.last_commit_date %} {% endif %} {% endif %}

{% if src_status and src_status.error %}

{{ src_status.error }}

{% endif %} {% if src_status and src_status.warnings %} {% for warn in src_status.warnings %}

⚠ {{ warn }}

{% endfor %} {% endif %}
{% if not src_disabled %} {% endif %}
{% if not src_disabled %} {% if wfs %}
{% for wf in wfs %}

{{ wf.title or (wf.filename | replace('.json', '')) }}

Backend:
{% endfor %}
{% else %}

No workflow files found. Add JSON files to .hut/workflows/ and sync.

{% endif %} {% endif %}
{% endfor %} {% endif %} {% if projects %} {% for project in projects %}

{{ project.name }}

{{ project.backend }}

{% if project.description %}

{{ project.description }}

{% endif %} {% set proj_workflows = project_workflows.get(project.name, []) %} {% if proj_workflows %}
{% for wf in proj_workflows %} {% set wf_dir = wf.rsplit('/', 2)[-2] if '/' in wf else '.' %}

{{ wf_dir }}

sflow.json

{% endfor %}
{% else %}

No sflow.json files found. Push a workflow to the repo and refresh.

{% endif %}
{% endfor %} {% endif %} {% if workflows %}

Workflows

{% for wf in workflows %}

{{ wf.name }}

Backend: {{ wf.backend }}

{% if wf.description %}

{{ wf.description }}

{% endif %}

Max concurrent: {{ wf.max_concurrent }}

New Run
{% endfor %}
{% endif %} {% if not source_workflows and not projects and not workflows %}

No sources or workflows configured. Add sources or workflows to your scripthut.yaml.

{% endif %}