<sectionclass="panel"id="backups"><h2>Backups</h2><pclass="small">Copy every repository {{ org.name }} owns, with its issues, proposals and wiki, hourly to a bucket or directory you control. <aclass="go small"href="/orgs/{{ org.name }}/settings/backups">Set up backups</a></p></section>
<labelfor="default_role">Members' default role on the organisation's repositories</label>
31
<selectid="default_role"name="default_role">{% for r in ["none", "read", "triage", "write", "maintain", "admin"] %}<optionvalue="{{ r }}"{% iforg.default_role.as_str() == *r %} selected{% endif %}>{{ r }}</option>{% endfor %}</select>
<pclass="small">Runners take higher levels first; within a level, repositories take turns. A repository may set its own level, and a maintainer can expedite one run.</p>
<pclass="small mute">Where the organisation's new repositories may live. Repositories that exist stay where they are.</p>
75
<labelclass="check"><inputtype="checkbox"name="require_bucket"value="1"{% ifpolicy.require_bucket %} checked{% endif %}> Keep every new repository in a bucket, not on this server's disk</label>
76
<labelfor="allowed">Buckets allowed, one store URL prefix per line (empty: any bucket)</label>
<p><strong>{{ t.name }}</strong>: {% for a in ms %}{{ a.username }}{% if !loop.last %}, {% endif %}{% endfor %}{% if ms.is_empty() %}<spanclass="mute">nobody yet</span>{% endif %}
<pclass="small">The OxygenFlow runners that may take this organisation's jobs: the site's, the organisation's, and those of its repositories.</p>
97
{% if let Some(t) = runner_token %}<pclass="note">Register a runner for the organisation with:</p><preclass="snippet">flow runner register {{ shell.base_url }} --token {{ t }} --name NAME</pre>{% endif %}
98
{% if runners.is_empty() %}<pclass="mute small">None yet: runs wait until a runner that serves them is added.</p>{% else %}
<formmethod="post"action="/orgs/{{ org.name }}/settings/runners/token"><inputtype="hidden"name="_csrf"value="{{ shell.csrf }}"><buttontype="submit">Add a runner for the organisation</button></form>
{% call w::panel("/orgs/" ~ org.name ~ "/settings", hooks, shell.csrf, "These hear every repository of the organisation, as well as each repository's own webhooks.") %}
{% call va::panel("/orgs/" ~ org.name ~ "/settings", variables, shell.csrf, "Jobs of every repository of the organisation get these, beside the site's and each repository's own.") %}
{% call se::panel("/orgs/" ~ org.name ~ "/settings", secrets, shell.csrf, "Jobs of every repository of the organisation may use these, beside the site's and each repository's own.") %}
{% call ai::panel("/orgs/" ~ org.name ~ "/settings", assistants, shell.csrf, "Every repository of the organisation may ask these, beside the site's and its own.") %}