switch to metadialer

This commit is contained in:
eyedeekay
2025-05-01 18:53:28 -04:00
parent 528e14eb05
commit 710e18811b
5 changed files with 19 additions and 37 deletions

5
.gitignore vendored
View File

@ -29,4 +29,7 @@ go.work.sum
/migration_state.json
/bin
log.log
err.log
err.log
i2pkeys
onionkeys
tlskeys

View File

@ -4,7 +4,13 @@ Go-based tool for migrating GitLab repositories, users, groups, issues and relat
More-or-less a port of [gitlab-to-gitea](https://git.autonomic.zone/kawaiipunk/gitlab-to-gitea) from python to Go because *fixing* python appears to be a thing I just can't get my mind around, but *rewriting* it? I'm actually OK at that.
Also includes: `cmd/forkfix`, for fixing fork relationships between migrated repositories by manipulating the gitea mysql database, `cmd/unmigrate` to delete everything from a gitea instance except for the admin users, and `cmd/johnconnor` which is a super-dangerous script for eliminating spam accounts from gitlab instances.
Also includes:
- `cmd/forkfix`, for fixing fork relationships between migrated repositories by manipulating the gitea sql database
- `cmd/unmigrate` to delete everything from a gitea instance except for the admin users
- `cmd/mirror` to set up a mirror from github to gitea
- `cmd/orgfix` to establish an organization's repositories as the "parent fork" by manipulating the gitea sql database
- `cmd/namefix` to discover repositories that have identical initial commit hashes but different names
- `cmd/johnconnor` which is a super-dangerous script for eliminating spam accounts from gitlab instances.
## Core Functionality
@ -18,7 +24,7 @@ Also includes: `cmd/forkfix`, for fixing fork relationships between migrated rep
- Modular package structure instead of monolithic script
- Configuration via environment variables rather than hardcoded values
- Added utility tools (`forkfix`, `unmigrate`, `johnconnor`)
- Added utility tools (`forkfix`, `unmigrate`, `johnconnor`, `mirror`, `orgfix`, `namefix`)
- Database connectivity for commit action imports
- Improved error handling with recovery mechanisms
- Separation of API client code from migration logic

View File

@ -3,46 +3,16 @@ package gitlab
import (
"net"
"net/http"
"net/url"
"strings"
"time"
"github.com/go-i2p/onramp"
)
var (
Garlic, GarlicErr = onramp.NewGarlic("git-looseleaf", "127.0.0.1:7656", onramp.OPT_WIDE)
Onion, OnionErr = onramp.NewOnion("git-looseleaf")
metadialer "github.com/go-i2p/go-meta-dialer"
)
func Dial(network, addr string) (net.Conn, error) {
// convert the addr to a URL
url, err := url.Parse(addr)
if err != nil {
return nil, err
}
// get the domain name
domain := url.Hostname()
// get the top-level domain
fr := strings.Split(domain, ".")
tld := fr[len(fr)-1]
switch tld {
case "i2p":
if GarlicErr != nil {
return nil, GarlicErr
}
// I2P is a special case, we need to use the garlic dialer
return Garlic.Dial("i2p", addr)
case "onion":
if OnionErr != nil {
return nil, OnionErr
}
// Onion is a special case, we need to use the onion dialer
return Onion.Dial("onion", addr)
default:
// For everything else, we can use the default dialer
return net.Dial(network, addr)
if metadialer.ANON {
metadialer.ANON = false
}
return metadialer.Dial(network, addr)
}
func init() {

1
go.mod
View File

@ -3,6 +3,7 @@ module github.com/go-i2p/gitlab-to-gitea
go 1.24.2
require (
github.com/go-i2p/go-meta-dialer v0.0.0-20250501024057-715e91be3cfe
github.com/go-i2p/onramp v0.33.92
github.com/go-sql-driver/mysql v1.9.2
github.com/google/go-github/v57 v57.0.0

2
go.sum
View File

@ -7,6 +7,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/go-i2p/go-meta-dialer v0.0.0-20250501024057-715e91be3cfe h1:9Rxw2KtMCRKZHI4WavUAaatzKmc64V6kiYvcyTMHjeU=
github.com/go-i2p/go-meta-dialer v0.0.0-20250501024057-715e91be3cfe/go.mod h1:++xHSOvnGymRSyFbi9A9hztcfwKfU6/nJAtVxrNo8Zo=
github.com/go-i2p/i2pkeys v0.0.0-20241108200332-e4f5ccdff8c4/go.mod h1:m5TlHjPZrU5KbTd7Lr+I2rljyC6aJ88HdkeMQXV0U0E=
github.com/go-i2p/i2pkeys v0.33.10-0.20241113193422-e10de5e60708 h1:Tiy9IBwi21maNpK74yCdHursJJMkyH7w87tX1nXGWzg=
github.com/go-i2p/i2pkeys v0.33.10-0.20241113193422-e10de5e60708/go.mod h1:m5TlHjPZrU5KbTd7Lr+I2rljyC6aJ88HdkeMQXV0U0E=