add migrate_gt_to_fj.exs
This commit is contained in:
parent
2337190a1b
commit
9cec2e7567
1 changed files with 52 additions and 0 deletions
52
migrate_gt_to_fj.exs
Normal file
52
migrate_gt_to_fj.exs
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
Mix.install([
|
||||||
|
{:req, "~> 0.5.10"}
|
||||||
|
]);
|
||||||
|
|
||||||
|
forgejo_token = System.get_env("FORGEJO_TOKEN")
|
||||||
|
gitea_token = System.get_env("GITEA_TOKEN")
|
||||||
|
gt_host = System.get_env("GITEA_HOST")
|
||||||
|
fj_host = System.get_env("FORGEJO_HOST")
|
||||||
|
gt_uid = System.get_env("GITEA_UID")
|
||||||
|
|
||||||
|
defmodule Forgejo do
|
||||||
|
require Req
|
||||||
|
|
||||||
|
def migrate_all(uid, gt_host, gt_token, fj_host, fj_token) do
|
||||||
|
url = "#{gt_host}/api/v1/repos/search"
|
||||||
|
params = %{"uid" => uid}
|
||||||
|
|
||||||
|
case Req.get!(url, params: params, headers: %{"Authorization" => "bearer #{gt_token}"} ) do
|
||||||
|
%{status: 200, body: body} ->
|
||||||
|
repos = body["data"]
|
||||||
|
for repo <- repos do
|
||||||
|
migrate(repo, host, gt_token, fj_host, fj_token)
|
||||||
|
end
|
||||||
|
|
||||||
|
{:error, error} ->
|
||||||
|
IO.puts("Error fetching repos: #{inspect(error)}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def migrate(repo, gt_token, fj_host, fj_token) do
|
||||||
|
clone = repo["clone_url"]
|
||||||
|
name = repo["name"]
|
||||||
|
private? = repo["private"]
|
||||||
|
|
||||||
|
migration = %{
|
||||||
|
"private" => private?,
|
||||||
|
"clone_addr" => clone,
|
||||||
|
"auth_token" => gt_token,
|
||||||
|
"pull_requests" => true,
|
||||||
|
"lfs" => true,
|
||||||
|
"releases" => true,
|
||||||
|
"repo_name" => name,
|
||||||
|
"repo_owner" => "caleb",
|
||||||
|
"service" => "gitea"
|
||||||
|
} |> :json.encode()
|
||||||
|
|
||||||
|
Req.post!("#{fj_host}/api/v1/repos/migrate", body: migration, headers: %{"Authorization" => "bearer #{fj_token}", "Content-Type" => "application/json"} )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
Forgejo.migrate_all(gt_uid, gt_host, gitea_token, fj_host, forgejo_token)
|
Loading…
Add table
Reference in a new issue