想要將 GitHub 特定的 Repo 批次匯入本地端的 GitLab, 所以了解一下 GitHub 與 GitLab 現有的 API, 應該可以達成這個需求
POST /groups
curl -H "Content-Type: application/json" -H "PRIVATE-TOKEN: QMi2xxxxxxxxxxxx-oaQ" -X POST -d '{"name": "iii-org-app","path": "iii-org-app"}' https://gitlab.iiidevops.org/api/v4/groups/
{ "id":17, "web_url":"http://gitlab.iiidevops.org/groups/iii-org-app", "name":"iii-org-app", "path":"iii-org-app", "description":"", "visibility":"private", : "full_name":"iii-org-app", "full_path":"iii-org-app", "created_at":"2021-02-18T12:51:00.821Z", "parent_id":null, "projects":[], "shared_projects":[] }
GET /orgs/{org}/repos
curl -H "Accept: application/vnd.github.inertia-preview+json" https://api.github.com/orgs/iii-org-app/repos
"id": 336984846, "name": "django-postgresql-todo", "description": "Python+django+postgresql 的 TODO 範例", "created_at": "2021-02-08T06:46:41Z", "updated_at": "2021-02-08T06:47:14Z", "pushed_at": "2021-02-08T06:50:46Z"
POST /import/github
curl --request POST --header "PRIVATE-TOKEN: QMi2xxxxxxxxxxxx-oaQ" \ --data "personal_access_token=de8b68cxxxxxxxxxx3a9&repo_id=336984846&new_name=django-postgresql-todo&target_namespace=iii-org-app" \ https://gitlab.iiidevops.org/api/v4/import/github
{"id":13,"name":"django-postgresql-todo","full_path":"/iii-org-app/django-postgresql-todo","full_name":"iii-org-app / django-postgresql-todo"}