about summary refs log tree commit diff
path: root/tools/import-gh-to-gitea
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-03-06 06:29:24 -0800
committerFranck Cuny <franck@fcuny.net>2024-03-06 06:29:24 -0800
commit1e4a5aa09c1c8f43722c9c260f011398799a8e8f (patch)
treecd73e0fb8ba53bd21cee6ccf2dcc85639bbbb93f /tools/import-gh-to-gitea
parentset correct git email in the profiles (diff)
downloadworld-1e4a5aa09c1c8f43722c9c260f011398799a8e8f.tar.gz
rename `tools` to `packages` to follow convention
The convention is to use `pkgs` or `packages` for overlays and
definition of custom packages. Since I'm already using `pkg` for go,
I prefer to use `packages` for my scripts.
Diffstat (limited to 'tools/import-gh-to-gitea')
-rw-r--r--tools/import-gh-to-gitea/README.org12
-rwxr-xr-xtools/import-gh-to-gitea/archive-projects.py49
-rwxr-xr-xtools/import-gh-to-gitea/delete-gh-repositories.py84
-rwxr-xr-xtools/import-gh-to-gitea/import-gh-to-gitea.py62
4 files changed, 0 insertions, 207 deletions
diff --git a/tools/import-gh-to-gitea/README.org b/tools/import-gh-to-gitea/README.org
deleted file mode 100644
index 2e26b88..0000000
--- a/tools/import-gh-to-gitea/README.org
+++ /dev/null
@@ -1,12 +0,0 @@
-#+TITLE: Import GitHub repositories to gitea
-
-Scripts to move my repositories from GitHub to my instance of [[https://git.fcuny.net][gitea]].
-
-* import repositories
-#+begin_src sh
-python3.10 import-gh-to-gitea.py -g (pass api/github/terraform|psub) -G (pass api/git.fcuny.net/gh-import|psub)
-#+end_src
-* archiving repositories
-#+begin_src sh
-python3.10 archive-projects.py -t (pass api/git.fcuny.net/gh-import|psub)
-#+end_src
diff --git a/tools/import-gh-to-gitea/archive-projects.py b/tools/import-gh-to-gitea/archive-projects.py
deleted file mode 100755
index 41bd898..0000000
--- a/tools/import-gh-to-gitea/archive-projects.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-
-import requests
-
-
-def main(api_token):
-    s = requests.Session()
-    s.headers.update({"Authorization": f"token {api_token}"})
-    s.headers.update({"Accept": "application/json"})
-    s.headers.update({"Content-Type": "application/json"})
-
-    not_done = True
-    page = 1
-    while not_done:
-        url = f"https://git.fcuny.net/api/v1/user/repos?page={page}&limit=10"
-        res = s.get(
-            url,
-            timeout=5,
-        )
-        res.raise_for_status()
-
-        repos = res.json()
-        if len(repos) == 0:
-            not_done = False
-        else:
-            page = page + 1
-
-        for repo in repos:
-            if repo.get("owner").get("login") == "attic":
-                if repo.get("archived") is False:
-                    name = repo.get("name")
-                    data = {"archived": True}
-                    res = s.patch(
-                        f"https://git.fcuny.net/api/v1/repos/attic/{name}", json=data
-                    )
-                    res.raise_for_status()
-                    print(f"set {name} to archived: {res.status_code}")
-
-
-if __name__ == "__main__":
-    argp = argparse.ArgumentParser()
-    argp.add_argument("-t", "--token-file", nargs=1, type=argparse.FileType("r"))
-
-    args = argp.parse_args()
-    api_token = args.token_file[0].readline().strip()
-
-    main(api_token)
diff --git a/tools/import-gh-to-gitea/delete-gh-repositories.py b/tools/import-gh-to-gitea/delete-gh-repositories.py
deleted file mode 100755
index b87c0f6..0000000
--- a/tools/import-gh-to-gitea/delete-gh-repositories.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python3.10
-
-import argparse
-
-import requests
-
-
-def main(gitea_api_token, gh_api_token):
-    gitea = requests.Session()
-    gitea.headers.update({"Authorization": f"token {gitea_api_token}"})
-    gitea.headers.update({"Accept": "application/json"})
-    gitea.headers.update({"Content-Type": "application/json"})
-
-    not_done = True
-    page = 1
-
-    gitea_repos = []
-    while not_done:
-        url = f"https://git.fcuny.net/api/v1/user/repos?page={page}&limit=10"
-        res = gitea.get(
-            url,
-            timeout=5,
-        )
-        res.raise_for_status()
-
-        repos = res.json()
-        if len(repos) == 0:
-            not_done = False
-        else:
-            page = page + 1
-
-        for repo in repos:
-            name = repo.get("name")
-            gitea_repos.append(name)
-
-    github = requests.Session()
-    github.headers.update({"Authorization": f"token {gh_api_token}"})
-    github.headers.update({"Accept": "application/vnd.github.v3+json"})
-
-    not_done = True
-    page = 1
-    github_repos = []
-    while not_done:
-        url = f"https://api.github.com/user/repos?page={page}&type=all"
-        res = github.get(
-            url,
-            timeout=5,
-        )
-        res.raise_for_status()
-        repos = res.json()
-        if len(repos) == 0:
-            not_done = False
-        else:
-            page = page + 1
-
-        for repo in repos:
-            name = repo.get("name")
-            if (
-                repo.get("owner").get("login") == "fcuny"
-                and repo.get("private") == True
-            ):
-                github_repos.append(name)
-
-    for repo in github_repos:
-        if repo in gitea_repos:
-            url = f"https://api.github.com/repos/fcuny/{repo}"
-            print(f"deleting {url}")
-            res = github.delete(
-                url,
-                timeout=5,
-            )
-            res.raise_for_status()
-
-
-if __name__ == "__main__":
-    argp = argparse.ArgumentParser()
-    argp.add_argument("-t", "--gt-file", nargs=1, type=argparse.FileType("r"))
-    argp.add_argument("-T", "--gh-file", nargs=1, type=argparse.FileType("r"))
-
-    args = argp.parse_args()
-    gitea_api_token = args.gt_file[0].readline().strip()
-    github_api_token = args.gh_file[0].readline().strip()
-
-    main(gitea_api_token, github_api_token)
diff --git a/tools/import-gh-to-gitea/import-gh-to-gitea.py b/tools/import-gh-to-gitea/import-gh-to-gitea.py
deleted file mode 100755
index b59c8eb..0000000
--- a/tools/import-gh-to-gitea/import-gh-to-gitea.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python3
-
-
-import argparse
-
-import requests
-
-
-def main(gh_api_token, gitea_api_token):
-    s = requests.Session()
-    s.headers.update({"Authorization": f"token {gh_api_token}"})
-    s.headers.update({"Accept": "application/vnd.github.v3+json"})
-
-    # hardcoded number of items per page, pagination is not handled.
-    res = s.get("https://api.github.com/user/repos?per_page=200&type=all", timeout=5)
-    res.raise_for_status()
-
-    repos = res.json()
-
-    gts = requests.Session()
-    gts.headers.update({"Accept": "application/json"})
-    gts.headers.update({"Content-Type": "application/json"})
-    gts.headers.update({"Authorization": f"token {gitea_api_token}"})
-    for repo in repos:
-        # archived projects go to the attic.
-        owner = ""
-        if repo.get("archived"):
-            owner = "attic"
-        else:
-            owner = "fcuny"
-
-        data = {
-            "auth_username": "fcuny",
-            "auth_token": gh_api_token,
-            "clone_addr": repo.get("html_url"),
-            "mirror": False,
-            "private": repo.get("private"),
-            "repo_name": repo.get("name"),
-            "repo_owner": owner,
-            "service": "git",
-            "description": repo.get("description"),
-        }
-        print(f"importing {data['repo_name']} from {data['clone_addr']}")
-        res = gts.post(
-            "https://git.fcuny.net/api/v1/repos/migrate",
-            json=data,
-        )
-        try:
-            res.raise_for_status()
-        except Exception as e:
-            print(f"failed for {data['repo_name']} with {e}")
-
-
-if __name__ == "__main__":
-    argp = argparse.ArgumentParser()
-    argp.add_argument("-g", "--gh-token-file", nargs=1, type=argparse.FileType("r"))
-    argp.add_argument("-G", "--gitea-token-file", nargs=1, type=argparse.FileType("r"))
-    args = argp.parse_args()
-
-    gh_api_token = args.gh_token_file[0].readline().strip()
-    gitea_api_token = args.gitea_token_file[0].readline().strip()
-    main(gh_api_token, gitea_api_token)