Configuration / Sources

Sources

Repositories mirrored onto their destinations.

<.link href="#source-form" class="gs-button">Add a source

Mirror directory

Configured sources

{length(@sources)} configured

Nothing is being mirrored yet.

<.link href={~p"/sources/#{source}"}>{source.repo}

{source.connection.base_url}

{if(source.enabled, do: "Enabled", else: "Disabled")} Every {source.interval_seconds}s
<.link href={~p"/sources/#{source}"} class="gs-button-secondary" aria-label={"Manage source #{source.repo}"} > Manage source

Destinations / {length(source.destinations)}

No destinations configured.

  • {destination.repo} on {destination.connection.base_url} {if(destination.enabled, do: "Enabled", else: "Disabled")}

Configuration

Add a source

<.form for={@form} id="source-form" action={~p"/sources"} class="gs-panel">

Choose a source repository and its first destination.

01 / Source repository
<.forge_field field={@form[:connection_id]} label="Source forge" options={@connection_options} />
<.repo_field id="source-repo-field" field={@form[:repo]} label="Source repository" repos={@source_repos} />
02 / First destination
<.forge_field field={@destination_form[:connection_id]} label="Destination forge" options={@connection_options} />
<.repo_field id="destination-repo-field" field={@destination_form[:repo]} label="Destination repository" repos={@destination_repos} />
<.input field={@form[:interval_seconds]} type="number" label="Interval in seconds" />
<.button id="add-source" type="submit" class="gs-button">Add source

You can add more destinations after creating the source.