feature, bulk importing of repositories #1087

Open
opened 2025-11-02 03:47:53 -06:00 by GiteaMirror · 50 comments
Owner

Originally created by @bradder555 on GitHub (Sep 22, 2017).

Recently i hacked about in the back-end and database to migrate all of our stash repositories and jam these into gitea.

It's not an operation that i'll need to repeat, as far as i can tell in the documentation there's no procedure for doing this sort of thing.

I was thinking, as a feature, it might be handy to have an "upload zip" for migration to facilitate easy migration from other git servers.

I'm sure there're higher priorities, but figured it would make it easier for people to migrate and adopt gitea.

Thanks

Originally created by @bradder555 on GitHub (Sep 22, 2017). Recently i hacked about in the back-end and database to migrate all of our stash repositories and jam these into gitea. It's not an operation that i'll need to repeat, as far as i can tell in the documentation there's no procedure for doing this sort of thing. I was thinking, as a feature, it might be handy to have an "upload zip" for migration to facilitate easy migration from other git servers. I'm sure there're higher priorities, but figured it would make it easier for people to migrate and adopt gitea. Thanks
GiteaMirror added the type/proposalissue/workaround labels 2025-11-02 03:47:53 -06:00
Author
Owner

@lunny commented on GitHub (Sep 22, 2017):

You can do migrations via API. Write some scripts to do that.

@lunny commented on GitHub (Sep 22, 2017): You can do migrations via API. Write some scripts to do that.
Author
Owner

@lafriks commented on GitHub (Sep 22, 2017):

Such migrations should be done in scripts or external tools but should not be part of main gitea repo

@lafriks commented on GitHub (Sep 22, 2017): Such migrations should be done in scripts or external tools but should not be part of main gitea repo
Author
Owner

@tacotexmex commented on GitHub (Jun 9, 2018):

Any pointers to valid Github-to-Gitea scripts? I come up empty.

@tacotexmex commented on GitHub (Jun 9, 2018): Any pointers to valid Github-to-Gitea scripts? I come up empty.
Author
Owner

@techknowlogick commented on GitHub (Jun 9, 2018):

@tacotexmex currently @JonasFranzDEV has a really good one: https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator

@techknowlogick commented on GitHub (Jun 9, 2018): @tacotexmex currently @JonasFranzDEV has a really good one: https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator
Author
Owner

@tacotexmex commented on GitHub (Jun 9, 2018):

Thank you very much @tecknowlogick. * quietly thinking how I could’ve discovered this selfhosted gem without your help, dreaming of a federation of Gitea instances, Mastodon-style *

@tacotexmex commented on GitHub (Jun 9, 2018): Thank you very much @tecknowlogick. * quietly thinking how I could’ve discovered this selfhosted gem without your help, dreaming of a federation of Gitea instances, Mastodon-style *
Author
Owner

@techknowlogick commented on GitHub (Jun 9, 2018):

@tacotexmex you are very welcome. Currently there is a working group that is dedicated to solving the issue of federated services. I actually just spent the morning catching up on discussions from the group. If you want to follow along you can see: https://github.com/git-federation/gitpub/issues/5 Unrelated to federation we have a discord channel where the above tool was posted to.

@techknowlogick commented on GitHub (Jun 9, 2018): @tacotexmex you are very welcome. Currently there is a working group that is dedicated to solving the issue of federated services. I actually just spent the morning catching up on discussions from the group. If you want to follow along you can see: https://github.com/git-federation/gitpub/issues/5 Unrelated to federation we have a discord channel where the above tool was posted to.
Author
Owner

@davidak commented on GitHub (Jul 9, 2018):

Such migrations should be done in scripts or external tools but should not be part of main gitea repo

@lafriks why? i think migration should be as simple as possible.

imagine a workflow like this:

  1. login to gitea with github
  2. click "import from github"
  3. select repos you want to import (all selected by default)
  4. wait some seconds (or minutes) ... migration done

if load on the gitea server could be a problem, a queue could be implemented.

@davidak commented on GitHub (Jul 9, 2018): >Such migrations should be done in scripts or external tools but should not be part of main gitea repo @lafriks why? i think migration should be as simple as possible. imagine a workflow like this: 1. login to gitea with github 1. click "import from github" 1. select repos you want to import (all selected by default) 1. wait some seconds (or minutes) ... migration done if load on the gitea server could be a problem, a queue could be implemented.
Author
Owner

@lafriks commented on GitHub (Jul 11, 2018):

@davidak while I agree that it should be as simple as possible but if we implement imports from github/bitbucket/gitlab etc it will be hard keep up with their api changes. There is example that it can be easily done outside of Gitea main code base - https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator

Of course there are few things that we need to implement in Gitea API to have possibility to import more data but that's other thing

@lafriks commented on GitHub (Jul 11, 2018): @davidak while I agree that it should be as simple as possible but if we implement imports from github/bitbucket/gitlab etc it will be hard keep up with their api changes. There is example that it can be easily done outside of Gitea main code base - https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator Of course there are few things that we need to implement in Gitea API to have possibility to import more data but that's other thing
Author
Owner

@xeddmc commented on GitHub (Sep 10, 2018):

Anyone have a mirror or copy of https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator ? The site is throwing a 500 error when trying to either clone the repo locally or even download the source code.

@xeddmc commented on GitHub (Sep 10, 2018): Anyone have a mirror or copy of https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator ? The site is throwing a 500 error when trying to either clone the repo locally or even download the source code.
Author
Owner

@lafriks commented on GitHub (Sep 10, 2018):

@JonasFranzDev your server has problems ;)

@lafriks commented on GitHub (Sep 10, 2018): @JonasFranzDev your server has problems ;)
Author
Owner

@techknowlogick commented on GitHub (Sep 10, 2018):

Edit, use at your own risk and don't randomly download zips from the internet.

@techknowlogick commented on GitHub (Sep 10, 2018): Edit, use at your own risk and don't randomly download zips from the internet.
Author
Owner

@xeddmc commented on GitHub (Sep 11, 2018):

Cheers guys, thanks 😄

@xeddmc commented on GitHub (Sep 11, 2018): Cheers guys, thanks 😄
Author
Owner

@nodiscc commented on GitHub (Jul 15, 2019):

https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator is back up and states:

This repository got moved to the offical Gitea server and will be developed there. https://gitea.com/gitea/migrator/

I just tested it, it worked flawlessly (Debian 9/10)

apt update
apt install make golang go-dep git make
go get gitea.com/gitea/migrator
cd go/src/gitea.com/gitea/migrator
dep ensure -v
make build

sudo -u gitea ./gitea-github-migrator migrate --gh-repo my/project --gh-token $GITHUB_PERSONAL_TOKEN --url https://example.com/gitea --token $GITEA_API_TOKEN

Edit: limitation: doesn't import pull requests/release notes. Didn't create the project as "mirror" (no automatic pulls in the future).

Repository, issues, tags, wiki were imported correctly. Operation took 11 minutes on a github project with 1300 issues.

@nodiscc commented on GitHub (Jul 15, 2019): https://git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator is back up and states: > This repository got moved to the offical Gitea server and will be developed there. https://gitea.com/gitea/migrator/ I just tested it, it worked flawlessly (Debian 9/10) ``` apt update apt install make golang go-dep git make go get gitea.com/gitea/migrator cd go/src/gitea.com/gitea/migrator dep ensure -v make build sudo -u gitea ./gitea-github-migrator migrate --gh-repo my/project --gh-token $GITHUB_PERSONAL_TOKEN --url https://example.com/gitea --token $GITEA_API_TOKEN ``` Edit: limitation: doesn't import pull requests/release notes. Didn't create the project as "mirror" (no automatic pulls in the future). Repository, issues, tags, wiki were imported correctly. Operation took 11 minutes on a github project with 1300 issues.
Author
Owner

@techknowlogick commented on GitHub (Jul 15, 2019):

For others coming to this issue, the migration functionality is now built into gitea itself.

@techknowlogick commented on GitHub (Jul 15, 2019): For others coming to this issue, the migration functionality is now built into gitea itself.
Author
Owner

@nodiscc commented on GitHub (Jul 15, 2019):

@techknowlogick you mean using the + New migration action?

This doesn't import issues/wiki for me, only the git repository.

@nodiscc commented on GitHub (Jul 15, 2019): @techknowlogick you mean using the `+ New migration` action? This doesn't import issues/wiki for me, only the git repository.
Author
Owner

@lunny commented on GitHub (Jul 16, 2019):

@nodiscc @techknowlogick is right. You can migrate almost all things from github.

When you input a github URL on migration UI, and put a username/password or token/, then you will find some migrations options displayed, you can check issues/wiki/pull requests/milestones/labels .

Of course you have to have v1.9 or above.

@lunny commented on GitHub (Jul 16, 2019): @nodiscc @techknowlogick is right. You can migrate almost all things from github. When you input a github URL on migration UI, and put a username/password or token/<blank>, then you will find some migrations options displayed, you can check issues/wiki/pull requests/milestones/labels . Of course you have to have v1.9 or above.
Author
Owner

@nodiscc commented on GitHub (Jul 17, 2019):

@lunny my bad, I'm on 1.8.0, still have to upgrade. I will definitely try this (my gripe was it didn't set up the repository as mirror and there was no way to change it after the fact).

By the way, thank you and all contributors for the hard work on Gitea. I'm in the process of moving all my projects to a self-hosted Gitea instance (with automatic Github/Gitlab mirrors through hooks), it has been great so far. You can find my ansible role to install gitea here (inspired from [1], [2]).

@nodiscc commented on GitHub (Jul 17, 2019): @lunny my bad, I'm on 1.8.0, still have to upgrade. I will definitely try this (my gripe was it didn't set up the repository as _mirror_ and there was no way to change it after the fact). By the way, thank you and all contributors for the hard work on Gitea. I'm in the process of moving all my projects to a self-hosted Gitea instance (with automatic Github/Gitlab mirrors through hooks), it has been _great_ so far. You can find my ansible role to install gitea [here](https://gitlab.com/nodiscc/ansible-svr-gitea) (inspired from [[1]](https://github.com/atosatto/ansible-gitea), [[2]](https://github.com/alvaroaleman/ansible-gitea)).
Author
Owner

@nodiscc commented on GitHub (Jul 17, 2019):

I think this issue can be closed as bulk import/migration is perfectly doable using https://gitea.com/gitea/migrator/ (which is linked at https://docs.gitea.io/en-us/third-party-tools/) - or one by one from the web interface.

@nodiscc commented on GitHub (Jul 17, 2019): I think this issue can be closed as bulk import/migration is perfectly doable using https://gitea.com/gitea/migrator/ (which is linked at https://docs.gitea.io/en-us/third-party-tools/) - or one by one from the web interface.
Author
Owner

@nodiscc commented on GitHub (Dec 15, 2019):

@lunny ping

@nodiscc commented on GitHub (Dec 15, 2019): @lunny ping
Author
Owner

@lunny commented on GitHub (Dec 16, 2019):

@nodiscc Currently we can import almost all things of one repository from github, but maybe this issue is importing many repositories on one operation.

@lunny commented on GitHub (Dec 16, 2019): @nodiscc Currently we can import almost all things of one repository from github, but maybe this issue is importing many repositories on one operation.
Author
Owner

@6543 commented on GitHub (Dec 17, 2019):

I would say this is a feature for tea link: https://gitea.com/gitea/tea/issues/22

@6543 commented on GitHub (Dec 17, 2019): I would say this is a feature for **tea** link: https://gitea.com/gitea/tea/issues/22
Author
Owner

@6543 commented on GitHub (Dec 17, 2019):

PS: when tea reaches v1.0 we can add it to gitea docs as tool to automate/do stuff via CLI ...

@6543 commented on GitHub (Dec 17, 2019): PS: when **tea** reaches v1.0 we can add it to gitea docs as tool to automate/do stuff via CLI ...
Author
Owner

@csarn commented on GitHub (Sep 25, 2020):

Currently the suggested "https://gitea.com/gitea/migrator/" shows:

This tool is no longer maintained and got replaced by the migration functionality in Gitea. 
Please use the "New migration" menu to migrate your GitHub repositories including issues, pullrequests etc.

But "new migration" inside gitea does only migrate a single repository, so this does not help much if one has to migrate hundreds of repos.

@csarn commented on GitHub (Sep 25, 2020): Currently the suggested "https://gitea.com/gitea/migrator/" shows: This tool is no longer maintained and got replaced by the migration functionality in Gitea. Please use the "New migration" menu to migrate your GitHub repositories including issues, pullrequests etc. But "new migration" inside gitea does only migrate a single repository, so this does not help much if one has to migrate hundreds of repos.
Author
Owner

@ameeno commented on GitHub (Mar 5, 2021):

@csarn and others. this is true I wanted to bulk migrate repo's but migratory is 1 repo at a time???

what to do?

@ameeno commented on GitHub (Mar 5, 2021): @csarn and others. this is true I wanted to bulk migrate repo's but migratory is 1 repo at a time??? what to do?
Author
Owner

@6543 commented on GitHub (Mar 5, 2021):

@ameeno best way at the moment: use API via go-sdk or curl ... script

@6543 commented on GitHub (Mar 5, 2021): @ameeno best way at the moment: use API via go-sdk or curl ... script
Author
Owner

@zeripath commented on GitHub (Mar 5, 2021):

The other option is to use adopt repository if the repositories are in the right place with the correct names.

@zeripath commented on GitHub (Mar 5, 2021): The other option is to use adopt repository if the repositories are in the right place with the correct names.
Author
Owner

@ameeno commented on GitHub (Mar 6, 2021):

anyone have a script ready for batch migration? I found a Chinese one on awesome-gitea but I am having problems with it it only working for orgs.

@ameeno commented on GitHub (Mar 6, 2021): anyone have a script ready for batch migration? I found a Chinese one on awesome-gitea but I am having problems with it it only working for orgs.
Author
Owner

@andreas-bulling commented on GitHub (Oct 30, 2022):

I need to bulk import 80+ repositories from GitLab to Gitea - any pointers for how this could be done? Thanks a lot!

@andreas-bulling commented on GitHub (Oct 30, 2022): I need to bulk import 80+ repositories from GitLab to Gitea - any pointers for how this could be done? Thanks a lot!
Author
Owner

@lunny commented on GitHub (Oct 31, 2022):

I need to bulk import 80+ repositories from GitLab to Gitea - any pointers for how this could be done? Thanks a lot!

You can do it via some scripts with migration API.

@lunny commented on GitHub (Oct 31, 2022): > I need to bulk import 80+ repositories from GitLab to Gitea - any pointers for how this could be done? Thanks a lot! You can do it via some scripts with migration API.
Author
Owner

@andreas-bulling commented on GitHub (Oct 31, 2022):

sure, I know this is possible. Has anybody written any such script? I couldn't find one... :/

@andreas-bulling commented on GitHub (Oct 31, 2022): sure, I know this is possible. Has anybody written any such script? I couldn't find one... :/
Author
Owner

@MTRNord commented on GitHub (Feb 4, 2023):

Hi any update on it?

I have like 300 repos I want to migrate and doing this one by one isnt an issue. the only script I found was at dev.to which doesnt support migration of public vs not or multiple repos. does someone have a github to gitea script for that? :/

@MTRNord commented on GitHub (Feb 4, 2023): Hi any update on it? I have like 300 repos I want to migrate and doing this one by one isnt an issue. the only script I found was at dev.to which doesnt support migration of public vs not or multiple repos. does someone have a github to gitea script for that? :/
Author
Owner

@timmb commented on GitHub (May 14, 2023):

Try something like this (assumes you have Github cli installed - on Mac you can brew install gh)

#! /usr/bin/env bash

GITEA_DOMAIN=http://myserver
GITHUB_TOKEN=
GITEA_TOKEN=
GITHUB_USERNAME=
GITEA_USERNAME=

REPOS=$(gh repo list -L 1000 | awk -F '\t' '{print $1}')

for REPO_NAME in $REPOS; do
	echo $REPO_NAME
	curl -X POST "$GITEA_DOMAIN/api/v1/repos/migrate" -u $GITEA_USERNAME:$GITEA_TOKEN -H  "accept: application/json" -H  "Content-Type: application/json" -d "{  \
		\"auth_username\": \"$GITHUB_USERNAME\", \
		\"auth_password\": \"$GITHUB_TOKEN\", \
		\"clone_addr\": \"https://github.com/$GITHUB_USERNAME/$REPO_NAME\", \
		\"description\": \"$(gh repo view ${REPO_NAME} --json description --jq '.description')\", \
		\"mirror\": false, \
		\"private\": true, \
		\"repo_name\": \"$REPO_NAME\", \
		\"repo_owner\": \"$GITEA_USERNAME\", \
		\"service\": \"git\", \
		\"uid\": 0, \
		\"wiki\": true}"
	sleep 2
done

What it doesn't do which I wish it did is set up push forwarding of each repo back to Github so I can use Gitea as my primary and maintain a backup on Github.

@timmb commented on GitHub (May 14, 2023): Try something like this (assumes you have Github cli installed - on Mac you can `brew install gh`) ```bash #! /usr/bin/env bash GITEA_DOMAIN=http://myserver GITHUB_TOKEN= GITEA_TOKEN= GITHUB_USERNAME= GITEA_USERNAME= REPOS=$(gh repo list -L 1000 | awk -F '\t' '{print $1}') for REPO_NAME in $REPOS; do echo $REPO_NAME curl -X POST "$GITEA_DOMAIN/api/v1/repos/migrate" -u $GITEA_USERNAME:$GITEA_TOKEN -H "accept: application/json" -H "Content-Type: application/json" -d "{ \ \"auth_username\": \"$GITHUB_USERNAME\", \ \"auth_password\": \"$GITHUB_TOKEN\", \ \"clone_addr\": \"https://github.com/$GITHUB_USERNAME/$REPO_NAME\", \ \"description\": \"$(gh repo view ${REPO_NAME} --json description --jq '.description')\", \ \"mirror\": false, \ \"private\": true, \ \"repo_name\": \"$REPO_NAME\", \ \"repo_owner\": \"$GITEA_USERNAME\", \ \"service\": \"git\", \ \"uid\": 0, \ \"wiki\": true}" sleep 2 done ``` What it doesn't do which I wish it did is set up push forwarding of each repo back to Github so I can use Gitea as my primary and maintain a backup on Github.
Author
Owner

@CodeShakingSheep commented on GitHub (Jun 18, 2023):

I stumbled across this thread too and didn't find a suitable solution for my usecase. So, I created this gist: https://gist.github.com/CodeShakingSheep/5dc2cf6ac3b6d265218a7214f8f1210b

No access to Github CLI needed and it works for organization and user repos. If you need user repos, just leave GITHUB_ORGANISATION empty.

I also created a script for removing the repos from Gitea in case something went wrong. https://gist.github.com/CodeShakingSheep/65a7f46ab6067a72835e13b8459c0f7d

@CodeShakingSheep commented on GitHub (Jun 18, 2023): I stumbled across this thread too and didn't find a suitable solution for my usecase. So, I created this gist: https://gist.github.com/CodeShakingSheep/5dc2cf6ac3b6d265218a7214f8f1210b No access to Github CLI needed and it works for organization and user repos. If you need user repos, just leave `GITHUB_ORGANISATION` empty. I also created a script for removing the repos from Gitea in case something went wrong. https://gist.github.com/CodeShakingSheep/65a7f46ab6067a72835e13b8459c0f7d
Author
Owner

@paskal007r commented on GitHub (Feb 10, 2024):

+1 on this one, in my case it's gitLab not github that I need to migrate from and needing to study a new scripting language or curl just to get it "the right way" it's a bigger nuissance than migrating 20 repos manually, so I'll be doing that for the next half an hour.

@paskal007r commented on GitHub (Feb 10, 2024): +1 on this one, in my case it's gitLab not github that I need to migrate from and needing to study a new scripting language or curl just to get it "the right way" it's a bigger nuissance than migrating 20 repos manually, so I'll be doing that for the next half an hour.
Author
Owner

@boydaihungst commented on GitHub (Mar 17, 2024):

I stumbled across this thread too and didn't find a suitable solution for my usecase. So, I created this gist: https://gist.github.com/CodeShakingSheep/5dc2cf6ac3b6d265218a7214f8f1210b

No access to Github CLI needed and it works for organization and user repos. If you need user repos, just leave GITHUB_ORGANISATION empty.

I also created a script for removing the repos from Gitea in case something went wrong. https://gist.github.com/CodeShakingSheep/65a7f46ab6067a72835e13b8459c0f7d

Currently, only the first 100 repos are imported. This script will import all repos.
https://gist.github.com/boydaihungst/809861ff696deceefbb89a8a075f6b02

@boydaihungst commented on GitHub (Mar 17, 2024): > I stumbled across this thread too and didn't find a suitable solution for my usecase. So, I created this gist: https://gist.github.com/CodeShakingSheep/5dc2cf6ac3b6d265218a7214f8f1210b > > No access to Github CLI needed and it works for organization and user repos. If you need user repos, just leave `GITHUB_ORGANISATION` empty. > > I also created a script for removing the repos from Gitea in case something went wrong. https://gist.github.com/CodeShakingSheep/65a7f46ab6067a72835e13b8459c0f7d Currently, only the first 100 repos are imported. This script will import all repos. https://gist.github.com/boydaihungst/809861ff696deceefbb89a8a075f6b02
Author
Owner

@aneurinprice commented on GitHub (Sep 2, 2024):

I have made some slight tweaks to @boydaihungst 's gist and now it includes setting the org fullname,avatar,link and description (if set). This will also set them to be a mirror by default, behaviour can be changed at the bottom of the script.

how-to
./import-org go-gitea

#!/bin/bash
set -x

GITHUB_USERNAME=aneurinprice
GITHUB_TOKEN=<redacted>
GITHUB_ORGANISATION=$1
GITHUB_API_CALL=

GITEA_USERNAME=archive
GITEA_TOKEN=<redacted>
GITEA_DOMAIN=http://<redacted>.local:3000
GITEA_REPO_OWNER=$GITHUB_ORGANISATION

if [ -z "$GITHUB_ORGANISATION" ]
then
      echo "\$GITHUB_ORGANISATION is empty"
      GITHUB_API_CALL="https://api.github.com/user/repos?per_page=100"
else
      echo "\$GITHUB_ORGANISATION is NOT empty"
      GITHUB_API_CALL="https://api.github.com/orgs/$GITHUB_ORGANISATION/repos?per_page=200&type=all" 
fi 

GET_REPOS=$(curl -H 'Accept: application/vnd.github.v3+json' -H "Authorization: token $GITHUB_TOKEN" $GITHUB_API_CALL | jq -r '.[].html_url')


ORG_DATA=$(curl -H 'Accept: application/vnd.github.v3+json' -H "X-GitHub-Api-Version: 2022-11-28" -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/orgs/$GITHUB_ORGANISATION) 

curl -X POST "$GITEA_DOMAIN/api/v1/orgs" -H  "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H  "Content-Type: application/json" -d "{  \
  \"username\": \"$(jq -r '.login' <<< $ORG_DATA)\",
  \"description\": \"$(jq -r '.description' <<< $ORG_DATA)\",
  \"full_name\": \"$(jq -r '.name' <<< $ORG_DATA)\",
  \"website\": \"$(jq -r '.html_url' <<< $ORG_DATA)\",
  \"visibility\": \"public\"}"

curl "$(jq -r '.avatar_url' <<< $ORG_DATA)" --output logo
ORG_AVATAR_B64=$(base64 -i logo)

curl -X POST "$GITEA_DOMAIN/api/v1/orgs/${GITHUB_ORGANISATION}/avatar" -H  "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H  "Content-Type: application/json" -d "{  \
\"image\": \"$ORG_AVATAR_B64\"}"	

rm logo








for URL in $GET_REPOS; do
    REPO_NAME=$(echo $URL | sed 's#.*/##')
    echo "Found $REPO_NAME, importing..."

    curl -X POST "$GITEA_DOMAIN/api/v1/repos/migrate" -H  "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H  "Content-Type: application/json" -d "{  \
    \"auth_username\": \"$GITHUB_USERNAME\", \
    \"auth_password\": \"$GITHUB_TOKEN\", \
    \"clone_addr\": \"$URL\", \
    \"mirror\": true, \
    \"private\": false, \
    \"repo_name\": \"$REPO_NAME\", \
    \"repo_owner\": \"$GITEA_REPO_OWNER\", \
    \"service\": \"git\", \
    \"uid\": 0, \
    \"wiki\": true}"

done
@aneurinprice commented on GitHub (Sep 2, 2024): I have made some slight tweaks to @boydaihungst 's gist and now it includes setting the org fullname,avatar,link and description (if set). This will also set them to be a mirror by default, behaviour can be changed at the bottom of the script. how-to `./import-org go-gitea` ``` #!/bin/bash set -x GITHUB_USERNAME=aneurinprice GITHUB_TOKEN=<redacted> GITHUB_ORGANISATION=$1 GITHUB_API_CALL= GITEA_USERNAME=archive GITEA_TOKEN=<redacted> GITEA_DOMAIN=http://<redacted>.local:3000 GITEA_REPO_OWNER=$GITHUB_ORGANISATION if [ -z "$GITHUB_ORGANISATION" ] then echo "\$GITHUB_ORGANISATION is empty" GITHUB_API_CALL="https://api.github.com/user/repos?per_page=100" else echo "\$GITHUB_ORGANISATION is NOT empty" GITHUB_API_CALL="https://api.github.com/orgs/$GITHUB_ORGANISATION/repos?per_page=200&type=all" fi GET_REPOS=$(curl -H 'Accept: application/vnd.github.v3+json' -H "Authorization: token $GITHUB_TOKEN" $GITHUB_API_CALL | jq -r '.[].html_url') ORG_DATA=$(curl -H 'Accept: application/vnd.github.v3+json' -H "X-GitHub-Api-Version: 2022-11-28" -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/orgs/$GITHUB_ORGANISATION) curl -X POST "$GITEA_DOMAIN/api/v1/orgs" -H "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" -d "{ \ \"username\": \"$(jq -r '.login' <<< $ORG_DATA)\", \"description\": \"$(jq -r '.description' <<< $ORG_DATA)\", \"full_name\": \"$(jq -r '.name' <<< $ORG_DATA)\", \"website\": \"$(jq -r '.html_url' <<< $ORG_DATA)\", \"visibility\": \"public\"}" curl "$(jq -r '.avatar_url' <<< $ORG_DATA)" --output logo ORG_AVATAR_B64=$(base64 -i logo) curl -X POST "$GITEA_DOMAIN/api/v1/orgs/${GITHUB_ORGANISATION}/avatar" -H "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" -d "{ \ \"image\": \"$ORG_AVATAR_B64\"}" rm logo for URL in $GET_REPOS; do REPO_NAME=$(echo $URL | sed 's#.*/##') echo "Found $REPO_NAME, importing..." curl -X POST "$GITEA_DOMAIN/api/v1/repos/migrate" -H "accept: application/json" -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" -d "{ \ \"auth_username\": \"$GITHUB_USERNAME\", \ \"auth_password\": \"$GITHUB_TOKEN\", \ \"clone_addr\": \"$URL\", \ \"mirror\": true, \ \"private\": false, \ \"repo_name\": \"$REPO_NAME\", \ \"repo_owner\": \"$GITEA_REPO_OWNER\", \ \"service\": \"git\", \ \"uid\": 0, \ \"wiki\": true}" done ```
Author
Owner

@aneurinprice commented on GitHub (Sep 2, 2024):

If I get the time, I might create a dedicated tool for stuff like this

@aneurinprice commented on GitHub (Sep 2, 2024): If I get the time, I might create a dedicated tool for stuff like this
Author
Owner

@aneurinprice commented on GitHub (Sep 4, 2024):

If anyone cares, I have a basic prototype up and running. Import orgs or users along with their github avatars. Work in progress, but it works.

https://gitlab.nyeprice.space/aneurinprice/gitea-bulk-exporter

image

Edit: Add screenshot

@aneurinprice commented on GitHub (Sep 4, 2024): If anyone cares, I have a basic prototype up and running. Import orgs or users along with their github avatars. Work in progress, but it works. https://gitlab.nyeprice.space/aneurinprice/gitea-bulk-exporter ![image](https://github.com/user-attachments/assets/7fd441d2-487f-4598-afe6-ec35f43bce89) Edit: Add screenshot
Author
Owner

@Shinmera commented on GitHub (Oct 6, 2024):

@aneurinprice Looks like your link got 404d?

@Shinmera commented on GitHub (Oct 6, 2024): @aneurinprice Looks like your link got 404d?
Author
Owner

@aneurinprice commented on GitHub (Oct 6, 2024):

@Shinmera Updated link, Will provide documentation soon, but if you are at all familiar with golang then you'll probably be able to figure it out.

https://github.com/aneurinprice/gitea-bulk-importer

@aneurinprice commented on GitHub (Oct 6, 2024): @Shinmera Updated link, Will provide documentation soon, but if you are at all familiar with golang then you'll probably be able to figure it out. https://github.com/aneurinprice/gitea-bulk-importer
Author
Owner

@aneurinprice commented on GitHub (Oct 6, 2024):

@Shinmera credentials should go gitea-bulk-exporter/internal/types.go for now. Once again, will fix when I have the time. The logging is somewhat verbose and not always helpful, but if it breaks, you will certainly know :)

@aneurinprice commented on GitHub (Oct 6, 2024): @Shinmera credentials should go `gitea-bulk-exporter/internal/types.go` for now. Once again, will fix when I have the time. The logging is somewhat verbose and not always helpful, but if it breaks, you will certainly know :)
Author
Owner

@Shinmera commented on GitHub (Oct 8, 2024):

Cool, worked well, though it seems like the DryRun and Verbose arguments don't do anything. Not a big deal in my case, but yeah.

@Shinmera commented on GitHub (Oct 8, 2024): Cool, worked well, though it seems like the DryRun and Verbose arguments don't do anything. Not a big deal in my case, but yeah.
Author
Owner

@aneurinprice commented on GitHub (Oct 8, 2024):

seems like the DryRun and Verbose arguments don't do anything

Currently they do not do anything, you are quite right. They are on my list of things to fix when I have time. Glad it was useful! Is there any functionality you wish it had? Did the user/org avatars import correctly?

Thank you :)

On 8 Oct 2024, at 11:14, Yukari Hafner @.***> wrote:

Cool, worked well, though it seems like the DryRun and Verbose arguments don't do anything. Not a big deal in my case, but yeah.


Reply to this email directly, view it on GitHub https://github.com/go-gitea/gitea/issues/2569#issuecomment-2399439015, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALGJJOB2EOL3P5TFWGZ6CNTZ2OV7VAVCNFSM4D4A4MJ2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMZZHE2DGOJQGE2Q.
You are receiving this because you were mentioned.

@aneurinprice commented on GitHub (Oct 8, 2024): > seems like the DryRun and Verbose arguments don't do anything Currently they do not do anything, you are quite right. They are on my list of things to fix when I have time. Glad it was useful! Is there any functionality you wish it had? Did the user/org avatars import correctly? Thank you :) > On 8 Oct 2024, at 11:14, Yukari Hafner ***@***.***> wrote: > > > Cool, worked well, though it seems like the DryRun and Verbose arguments don't do anything. Not a big deal in my case, but yeah. > > — > Reply to this email directly, view it on GitHub <https://github.com/go-gitea/gitea/issues/2569#issuecomment-2399439015>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ALGJJOB2EOL3P5TFWGZ6CNTZ2OV7VAVCNFSM4D4A4MJ2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMZZHE2DGOJQGE2Q>. > You are receiving this because you were mentioned. >
Author
Owner

@Shinmera commented on GitHub (Oct 8, 2024):

I didn't import any users and the org already existed, so I can't comment on that, sorry!

As for features, it would be very good if we could "redirect" which user the repos end up at. After all, it's just a happy circumstance that they are named the same in my case, but they might very well not be. It would also be nice if we could exclude repositories, ideally even by repo type so that forks can be skipped. I have a few trash forks that I should delete now.

Wrt docs it would be good if it was described which permissions are needed for the access keys. I kinda guessed with that.

@Shinmera commented on GitHub (Oct 8, 2024): I didn't import any users and the org already existed, so I can't comment on that, sorry! As for features, it would be very good if we could "redirect" which user the repos end up at. After all, it's just a happy circumstance that they are named the same in my case, but they might very well not be. It would also be nice if we could exclude repositories, ideally even by repo type so that forks can be skipped. I have a few trash forks that I should delete now. Wrt docs it would be good if it was described which permissions are needed for the access keys. I kinda guessed with that.
Author
Owner

@aneurinprice commented on GitHub (Oct 8, 2024):

As per the repository types, this is something I'm already working on. As I, like yourself have loads of old forks. Thank you for your feedback, I'll do my best to get all of these features in :)On 8 Oct 2024, at 11:42, Yukari Hafner @.***> wrote:
I didn't import any users and the org already existed, so I can't comment on that, sorry!
As for features, it would be very good if we could "redirect" which user the repos end up at. After all, it's just a happy circumstance that they are named the same in my case, but they might very well not be. It would also be nice if we could exclude repositories, ideally even by repo type so that forks can be skipped. I have a few trash forks that I should delete now.
Wrt docs it would be good if it was described which permissions are needed for the access keys. I kinda guessed with that.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

@aneurinprice commented on GitHub (Oct 8, 2024): As per the repository types, this is something I'm already working on. As I, like yourself have loads of old forks. Thank you for your feedback, I'll do my best to get all of these features in :)On 8 Oct 2024, at 11:42, Yukari Hafner ***@***.***> wrote: I didn't import any users and the org already existed, so I can't comment on that, sorry! As for features, it would be very good if we could "redirect" which user the repos end up at. After all, it's just a happy circumstance that they are named the same in my case, but they might very well not be. It would also be nice if we could exclude repositories, ideally even by repo type so that forks can be skipped. I have a few trash forks that I should delete now. Wrt docs it would be good if it was described which permissions are needed for the access keys. I kinda guessed with that. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
Author
Owner

@aneurinprice commented on GitHub (Oct 9, 2024):

@lunny Both features currently mostly working on my laptop, will get this tidied up and pushed tomorrow.

Just finding a nice way to handle users/orgs with lots of repos.

MacBookPro:gitea-bulk-exporter aneurinprice$ go run cmd/gitea-bulk-importer/main.go -t user --forks=False Shinmera --rename=foobar
INFO[0003] Adding repo: Shinmera/.awesome               
INFO[0003] Adding repo: Shinmera/.emacs                 
INFO[0003] Adding repo: Shinmera/.github                
INFO[0003] Adding repo: Shinmera/.i3                    
INFO[0003] Skipping forked repo: Shinmera/3b-bmfont     
INFO[0003] Skipping forked repo: Shinmera/3bmd          
INFO[0003] Skipping forked repo: Shinmera/3bz           
INFO[0003] Adding repo: Shinmera/3d-math                
INFO[0003] Adding repo: Shinmera/3d-matrices            
INFO[0003] Adding repo: Shinmera/3d-quaternions         
INFO[0003] Adding repo: Shinmera/3d-transforms          
INFO[0003] Adding repo: Shinmera/3d-vectors             
INFO[0003] Adding repo: Shinmera/abcd                   
INFO[0003] Adding repo: Shinmera/action-list            
INFO[0003] Adding repo: Shinmera/array-utils            
INFO[0003] Adding repo: Shinmera/aspell                 
INFO[0003] Adding repo: Shinmera/aspell-dicts           
INFO[0003] Adding repo: Shinmera/atomics                
INFO[0003] Adding repo: Shinmera/autobuild              
INFO[0003] Adding repo: Shinmera/autosplitter           
INFO[0003] Skipping forked repo: Shinmera/awesome-cl    
INFO[0003] Skipping forked repo: Shinmera/awesome-lisp-companies 
INFO[0003] Adding repo: Shinmera/awful-avatar-cropper   
INFO[0003] Skipping forked repo: Shinmera/babel         
INFO[0003] Adding repo: Shinmera/beamer                 
INFO[0003] Adding repo: Shinmera/binary-structures      
INFO[0003] Adding repo: Shinmera/bsc-thesis             
INFO[0003] Adding repo: Shinmera/cari3s                 
INFO[0003] Skipping forked repo: Shinmera/cffi          
INFO[0003] Adding repo: Shinmera/chatter                
INFO[0003] Adding repo: Shinmera/chirp                  
INFO[0003] Adding repo: Shinmera/cl-all                 
INFO[0003] Adding repo: Shinmera/cl-bmp                 
INFO[0003] Adding repo: Shinmera/cl-gog-galaxy          
INFO[0003] Adding repo: Shinmera/cl-gpio                
INFO[0003] Adding repo: Shinmera/cl-graphql             
INFO[0003] Adding repo: Shinmera/cl-k8055               
INFO[0003] Adding repo: Shinmera/cl-ktx                 
INFO[0003] Adding repo: Shinmera/cl-modio               
INFO[0003] Skipping forked repo: Shinmera/cl-opengl     
INFO[0003] Adding repo: Shinmera/cl-qoa                 
INFO[0003] Skipping forked repo: Shinmera/cl-soil       
INFO[0003] Adding repo: Shinmera/cl-spidev              
INFO[0003] Skipping forked repo: Shinmera/cl-sqlite     
INFO[0003] Adding repo: Shinmera/cl-steamworks          
INFO[0003] Adding repo: Shinmera/cl-wiki                
INFO[0003] Adding repo: Shinmera/classowary             
INFO[0003] Adding repo: Shinmera/clip                   
INFO[0003] Adding repo: Shinmera/clohost                
INFO[0003] Skipping forked repo: Shinmera/CLOS-MOP-HTML 
INFO[0003] Adding repo: Shinmera/CLSS                   
INFO[0003] Adding repo: Shinmera/coach                  
INFO[0003] Adding repo: Shinmera/cocoas                 
INFO[0003] Adding repo: Shinmera/codemirror-dist        
INFO[0003] Skipping forked repo: Shinmera/coleslaw      
INFO[0003] Adding repo: Shinmera/colleen                
INFO[0003] Adding repo: Shinmera/colored                
INFO[0003] Adding repo: Shinmera/com-on                 
INFO[0003] Skipping forked repo: Shinmera/commonqt      
INFO[0003] Adding repo: Shinmera/complex                
INFO[0003] Adding repo: Shinmera/crypto-shortcuts       
INFO[0003] Skipping forked repo: Shinmera/cyclone-physics 
INFO[0003] Adding repo: Shinmera/deeds                  
INFO[0003] Adding repo: Shinmera/deferred               
INFO[0003] Adding repo: Shinmera/definitions            
INFO[0003] Adding repo: Shinmera/deploy                 
INFO[0003] Adding repo: Shinmera/depot                  
INFO[0003] Adding repo: Shinmera/dissect                
INFO[0003] Adding repo: Shinmera/dns-client             
INFO[0003] Skipping forked repo: Shinmera/documentation 
INFO[0003] Adding repo: Shinmera/documentation-utils    
INFO[0003] Adding repo: Shinmera/dontstarve-yukari      
INFO[0003] Adding repo: Shinmera/eiffel-faff            
INFO[0003] Adding repo: Shinmera/ethsift                
INFO[0003] Adding repo: Shinmera/ETHZ-Algorithmica      
INFO[0003] Adding repo: Shinmera/ETHZ-Analysis-II-ITET-RW 
INFO[0003] Adding repo: Shinmera/ETHZ-CompilerDesign    
INFO[0003] Adding repo: Shinmera/ETHZ-DigitalCircuits-Lab 
INFO[0003] Adding repo: Shinmera/ETHZ-FunctionalProgramming 
INFO[0003] Adding repo: Shinmera/ETHZ-NetworksAndOperatingSystems 
INFO[0003] Adding repo: Shinmera/ETHZ-NumericalMethods  
INFO[0003] Adding repo: Shinmera/ETHZ-SystemsProgramming 
INFO[0003] Adding repo: Shinmera/factory-reset          
INFO[0003] Adding repo: Shinmera/farey-numbers          
INFO[0003] Adding repo: Shinmera/fasz                   
INFO[0003] Adding repo: Shinmera/feeder                 
INFO[0003] Adding repo: Shinmera/file-attributes        
INFO[0003] Adding repo: Shinmera/file-notify            
INFO[0003] Adding repo: Shinmera/file-select            
INFO[0003] Adding repo: Shinmera/filesystem-utils       
INFO[0003] Adding repo: Shinmera/flare                  
INFO[0003] Adding repo: Shinmera/float-features         
INFO[0003] Adding repo: Shinmera/flow                   
INFO[0003] Adding repo: Shinmera/font-discovery         
INFO[0003] Adding repo: Shinmera/for                    
INFO[0003] Adding repo: Shinmera/forge                  
INFO[0003] Adding repo: Shinmera/form-fiddle            
INFO[0003] Adding repo: Shinmera/foss-governance        
INFO[0003] Adding repo: Shinmera/fuzzy-dates            
INFO[0003] Skipping forked repo: Shinmera/glop          
INFO[0003] Before filtering: 100                        
INFO[0003] Dropped repos: 16                            
INFO[0003] After filtering: 84                          
INFO[0003] Unaccounted for: 0                           
INFO[0003] Importing .awesome                           
INFO[0003] Importing .emacs                             
INFO[0003] Importing .github                            
INFO[0003] Importing .i3                                
INFO[0003] Importing 3d-math                            
INFO[0003] Importing 3d-matrices                        
INFO[0003] Importing 3d-quaternions                     
INFO[0003] Importing 3d-transforms                      
INFO[0003] Importing 3d-vectors                         
INFO[0003] Importing abcd                               
INFO[0003] Importing action-list                        
INFO[0003] Importing array-utils                        
INFO[0003] Importing aspell                             
INFO[0003] Importing aspell-dicts                       
INFO[0003] Importing atomics                            
INFO[0003] Importing autobuild                          
INFO[0003] Importing autosplitter                       
INFO[0003] Importing awful-avatar-cropper               
INFO[0003] Importing beamer                             
INFO[0003] Importing binary-structures                  
INFO[0003] Importing bsc-thesis                         
INFO[0003] Importing cari3s                             
INFO[0003] Importing chatter                            
INFO[0003] Importing chirp                              
INFO[0003] Importing cl-all                             
INFO[0003] Importing cl-bmp                             
INFO[0003] Importing cl-gog-galaxy                      
INFO[0003] Importing cl-gpio                            
INFO[0003] Importing cl-graphql                         
INFO[0003] Importing cl-k8055                           
INFO[0003] Importing cl-ktx                             
INFO[0003] Importing cl-modio                           
INFO[0003] Importing cl-qoa                             
INFO[0003] Importing cl-spidev                          
INFO[0003] Importing cl-steamworks                      
INFO[0003] Importing cl-wiki                            
INFO[0003] Importing classowary                         
INFO[0003] Importing clip                               
INFO[0003] Importing clohost                            
INFO[0003] Importing CLSS                               
INFO[0003] Importing coach                              
INFO[0003] Importing cocoas                             
INFO[0003] Importing codemirror-dist                    
INFO[0003] Importing colleen                            
INFO[0003] Importing colored                            
INFO[0003] Importing com-on                             
INFO[0003] Importing complex                            
INFO[0003] Importing crypto-shortcuts                   
INFO[0003] Importing deeds                              
INFO[0003] Importing deferred                           
INFO[0003] Importing definitions                        
INFO[0003] Importing deploy                             
INFO[0003] Importing depot                              
INFO[0003] Importing dissect                            
INFO[0003] Importing dns-client                         
INFO[0003] Importing documentation-utils                
INFO[0003] Importing dontstarve-yukari                  
INFO[0003] Importing eiffel-faff                        
INFO[0003] Importing ethsift                            
INFO[0003] Importing ETHZ-Algorithmica                  
INFO[0003] Importing ETHZ-Analysis-II-ITET-RW           
INFO[0003] Importing ETHZ-CompilerDesign                
INFO[0003] Importing ETHZ-DigitalCircuits-Lab           
INFO[0003] Importing ETHZ-FunctionalProgramming         
INFO[0003] Importing ETHZ-NetworksAndOperatingSystems   
INFO[0003] Importing ETHZ-NumericalMethods              
INFO[0003] Importing ETHZ-SystemsProgramming            
INFO[0003] Importing factory-reset                      
INFO[0003] Importing farey-numbers                      
INFO[0003] Importing fasz                               
INFO[0003] Importing feeder                             
INFO[0003] Importing file-attributes                    
INFO[0003] Importing file-notify                        
INFO[0003] Importing file-select                        
INFO[0003] Importing filesystem-utils                   
INFO[0003] Importing flare                              
INFO[0003] Importing float-features                     
INFO[0003] Importing flow                               
INFO[0003] Importing font-discovery                     
INFO[0003] Importing for                                
INFO[0003] Importing forge                              
INFO[0003] Importing form-fiddle                        
INFO[0003] Importing foss-governance                    
INFO[0003] Importing fuzzy-dates  
@aneurinprice commented on GitHub (Oct 9, 2024): @lunny Both features currently mostly working on my laptop, will get this tidied up and pushed tomorrow. Just finding a nice way to handle users/orgs with lots of repos. ``` MacBookPro:gitea-bulk-exporter aneurinprice$ go run cmd/gitea-bulk-importer/main.go -t user --forks=False Shinmera --rename=foobar INFO[0003] Adding repo: Shinmera/.awesome INFO[0003] Adding repo: Shinmera/.emacs INFO[0003] Adding repo: Shinmera/.github INFO[0003] Adding repo: Shinmera/.i3 INFO[0003] Skipping forked repo: Shinmera/3b-bmfont INFO[0003] Skipping forked repo: Shinmera/3bmd INFO[0003] Skipping forked repo: Shinmera/3bz INFO[0003] Adding repo: Shinmera/3d-math INFO[0003] Adding repo: Shinmera/3d-matrices INFO[0003] Adding repo: Shinmera/3d-quaternions INFO[0003] Adding repo: Shinmera/3d-transforms INFO[0003] Adding repo: Shinmera/3d-vectors INFO[0003] Adding repo: Shinmera/abcd INFO[0003] Adding repo: Shinmera/action-list INFO[0003] Adding repo: Shinmera/array-utils INFO[0003] Adding repo: Shinmera/aspell INFO[0003] Adding repo: Shinmera/aspell-dicts INFO[0003] Adding repo: Shinmera/atomics INFO[0003] Adding repo: Shinmera/autobuild INFO[0003] Adding repo: Shinmera/autosplitter INFO[0003] Skipping forked repo: Shinmera/awesome-cl INFO[0003] Skipping forked repo: Shinmera/awesome-lisp-companies INFO[0003] Adding repo: Shinmera/awful-avatar-cropper INFO[0003] Skipping forked repo: Shinmera/babel INFO[0003] Adding repo: Shinmera/beamer INFO[0003] Adding repo: Shinmera/binary-structures INFO[0003] Adding repo: Shinmera/bsc-thesis INFO[0003] Adding repo: Shinmera/cari3s INFO[0003] Skipping forked repo: Shinmera/cffi INFO[0003] Adding repo: Shinmera/chatter INFO[0003] Adding repo: Shinmera/chirp INFO[0003] Adding repo: Shinmera/cl-all INFO[0003] Adding repo: Shinmera/cl-bmp INFO[0003] Adding repo: Shinmera/cl-gog-galaxy INFO[0003] Adding repo: Shinmera/cl-gpio INFO[0003] Adding repo: Shinmera/cl-graphql INFO[0003] Adding repo: Shinmera/cl-k8055 INFO[0003] Adding repo: Shinmera/cl-ktx INFO[0003] Adding repo: Shinmera/cl-modio INFO[0003] Skipping forked repo: Shinmera/cl-opengl INFO[0003] Adding repo: Shinmera/cl-qoa INFO[0003] Skipping forked repo: Shinmera/cl-soil INFO[0003] Adding repo: Shinmera/cl-spidev INFO[0003] Skipping forked repo: Shinmera/cl-sqlite INFO[0003] Adding repo: Shinmera/cl-steamworks INFO[0003] Adding repo: Shinmera/cl-wiki INFO[0003] Adding repo: Shinmera/classowary INFO[0003] Adding repo: Shinmera/clip INFO[0003] Adding repo: Shinmera/clohost INFO[0003] Skipping forked repo: Shinmera/CLOS-MOP-HTML INFO[0003] Adding repo: Shinmera/CLSS INFO[0003] Adding repo: Shinmera/coach INFO[0003] Adding repo: Shinmera/cocoas INFO[0003] Adding repo: Shinmera/codemirror-dist INFO[0003] Skipping forked repo: Shinmera/coleslaw INFO[0003] Adding repo: Shinmera/colleen INFO[0003] Adding repo: Shinmera/colored INFO[0003] Adding repo: Shinmera/com-on INFO[0003] Skipping forked repo: Shinmera/commonqt INFO[0003] Adding repo: Shinmera/complex INFO[0003] Adding repo: Shinmera/crypto-shortcuts INFO[0003] Skipping forked repo: Shinmera/cyclone-physics INFO[0003] Adding repo: Shinmera/deeds INFO[0003] Adding repo: Shinmera/deferred INFO[0003] Adding repo: Shinmera/definitions INFO[0003] Adding repo: Shinmera/deploy INFO[0003] Adding repo: Shinmera/depot INFO[0003] Adding repo: Shinmera/dissect INFO[0003] Adding repo: Shinmera/dns-client INFO[0003] Skipping forked repo: Shinmera/documentation INFO[0003] Adding repo: Shinmera/documentation-utils INFO[0003] Adding repo: Shinmera/dontstarve-yukari INFO[0003] Adding repo: Shinmera/eiffel-faff INFO[0003] Adding repo: Shinmera/ethsift INFO[0003] Adding repo: Shinmera/ETHZ-Algorithmica INFO[0003] Adding repo: Shinmera/ETHZ-Analysis-II-ITET-RW INFO[0003] Adding repo: Shinmera/ETHZ-CompilerDesign INFO[0003] Adding repo: Shinmera/ETHZ-DigitalCircuits-Lab INFO[0003] Adding repo: Shinmera/ETHZ-FunctionalProgramming INFO[0003] Adding repo: Shinmera/ETHZ-NetworksAndOperatingSystems INFO[0003] Adding repo: Shinmera/ETHZ-NumericalMethods INFO[0003] Adding repo: Shinmera/ETHZ-SystemsProgramming INFO[0003] Adding repo: Shinmera/factory-reset INFO[0003] Adding repo: Shinmera/farey-numbers INFO[0003] Adding repo: Shinmera/fasz INFO[0003] Adding repo: Shinmera/feeder INFO[0003] Adding repo: Shinmera/file-attributes INFO[0003] Adding repo: Shinmera/file-notify INFO[0003] Adding repo: Shinmera/file-select INFO[0003] Adding repo: Shinmera/filesystem-utils INFO[0003] Adding repo: Shinmera/flare INFO[0003] Adding repo: Shinmera/float-features INFO[0003] Adding repo: Shinmera/flow INFO[0003] Adding repo: Shinmera/font-discovery INFO[0003] Adding repo: Shinmera/for INFO[0003] Adding repo: Shinmera/forge INFO[0003] Adding repo: Shinmera/form-fiddle INFO[0003] Adding repo: Shinmera/foss-governance INFO[0003] Adding repo: Shinmera/fuzzy-dates INFO[0003] Skipping forked repo: Shinmera/glop INFO[0003] Before filtering: 100 INFO[0003] Dropped repos: 16 INFO[0003] After filtering: 84 INFO[0003] Unaccounted for: 0 INFO[0003] Importing .awesome INFO[0003] Importing .emacs INFO[0003] Importing .github INFO[0003] Importing .i3 INFO[0003] Importing 3d-math INFO[0003] Importing 3d-matrices INFO[0003] Importing 3d-quaternions INFO[0003] Importing 3d-transforms INFO[0003] Importing 3d-vectors INFO[0003] Importing abcd INFO[0003] Importing action-list INFO[0003] Importing array-utils INFO[0003] Importing aspell INFO[0003] Importing aspell-dicts INFO[0003] Importing atomics INFO[0003] Importing autobuild INFO[0003] Importing autosplitter INFO[0003] Importing awful-avatar-cropper INFO[0003] Importing beamer INFO[0003] Importing binary-structures INFO[0003] Importing bsc-thesis INFO[0003] Importing cari3s INFO[0003] Importing chatter INFO[0003] Importing chirp INFO[0003] Importing cl-all INFO[0003] Importing cl-bmp INFO[0003] Importing cl-gog-galaxy INFO[0003] Importing cl-gpio INFO[0003] Importing cl-graphql INFO[0003] Importing cl-k8055 INFO[0003] Importing cl-ktx INFO[0003] Importing cl-modio INFO[0003] Importing cl-qoa INFO[0003] Importing cl-spidev INFO[0003] Importing cl-steamworks INFO[0003] Importing cl-wiki INFO[0003] Importing classowary INFO[0003] Importing clip INFO[0003] Importing clohost INFO[0003] Importing CLSS INFO[0003] Importing coach INFO[0003] Importing cocoas INFO[0003] Importing codemirror-dist INFO[0003] Importing colleen INFO[0003] Importing colored INFO[0003] Importing com-on INFO[0003] Importing complex INFO[0003] Importing crypto-shortcuts INFO[0003] Importing deeds INFO[0003] Importing deferred INFO[0003] Importing definitions INFO[0003] Importing deploy INFO[0003] Importing depot INFO[0003] Importing dissect INFO[0003] Importing dns-client INFO[0003] Importing documentation-utils INFO[0003] Importing dontstarve-yukari INFO[0003] Importing eiffel-faff INFO[0003] Importing ethsift INFO[0003] Importing ETHZ-Algorithmica INFO[0003] Importing ETHZ-Analysis-II-ITET-RW INFO[0003] Importing ETHZ-CompilerDesign INFO[0003] Importing ETHZ-DigitalCircuits-Lab INFO[0003] Importing ETHZ-FunctionalProgramming INFO[0003] Importing ETHZ-NetworksAndOperatingSystems INFO[0003] Importing ETHZ-NumericalMethods INFO[0003] Importing ETHZ-SystemsProgramming INFO[0003] Importing factory-reset INFO[0003] Importing farey-numbers INFO[0003] Importing fasz INFO[0003] Importing feeder INFO[0003] Importing file-attributes INFO[0003] Importing file-notify INFO[0003] Importing file-select INFO[0003] Importing filesystem-utils INFO[0003] Importing flare INFO[0003] Importing float-features INFO[0003] Importing flow INFO[0003] Importing font-discovery INFO[0003] Importing for INFO[0003] Importing forge INFO[0003] Importing form-fiddle INFO[0003] Importing foss-governance INFO[0003] Importing fuzzy-dates ```
Author
Owner

@aneurinprice commented on GitHub (Oct 10, 2024):

@Shinmera The above was meant for you

@aneurinprice commented on GitHub (Oct 10, 2024): @Shinmera The above was meant for you
Author
Owner

@Shinmera commented on GitHub (Oct 10, 2024):

Nice! Great job!

@Shinmera commented on GitHub (Oct 10, 2024): Nice! Great job!
Author
Owner

@aneurinprice commented on GitHub (Oct 12, 2024):

https://github.com/aneurinprice/gitea-bulk-importer

@aneurinprice commented on GitHub (Oct 12, 2024): https://github.com/aneurinprice/gitea-bulk-importer
Author
Owner

@Seele0oO commented on GitHub (Feb 4, 2025):

I rewrote a program to complete the migration, available here

https://github.com/Seele0oO/gitea-migrate-scripts

@Seele0oO commented on GitHub (Feb 4, 2025): I rewrote a program to complete the migration, available here https://github.com/Seele0oO/gitea-migrate-scripts
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#1087