mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Add push to remote mirror repository (#15157)
* Added push mirror model. * Integrated push mirror into queue. * Moved methods into own file. * Added basic implementation. * Mirror wiki too. * Removed duplicated method. * Get url for different remotes. * Added migration. * Unified remote url access. * Add/Remove push mirror remotes. * Prevent hangs with missing credentials. * Moved code between files. * Changed sanitizer interface. * Added push mirror backend methods. * Only update the mirror remote. * Limit refs on push. * Added UI part. * Added missing table. * Delete mirror if repository gets removed. * Changed signature. Handle object errors. * Added upload method. * Added "upload" unit tests. * Added transfer adapter unit tests. * Send correct headers. * Added pushing of LFS objects. * Added more logging. * Simpler body handling. * Process files in batches to reduce HTTP calls. * Added created timestamp. * Fixed invalid column name. * Changed name to prevent xorm auto setting. * Remove table header im empty. * Strip exit code from error message. * Added docs page about mirroring. * Fixed date. * Fixed merge errors. * Moved test to integrations. * Added push mirror test. * Added test.
This commit is contained in:
		| @@ -216,12 +216,13 @@ type Repository struct { | ||||
| 	NumClosedProjects   int `xorm:"NOT NULL DEFAULT 0"` | ||||
| 	NumOpenProjects     int `xorm:"-"` | ||||
|  | ||||
| 	IsPrivate  bool `xorm:"INDEX"` | ||||
| 	IsEmpty    bool `xorm:"INDEX"` | ||||
| 	IsArchived bool `xorm:"INDEX"` | ||||
| 	IsMirror   bool `xorm:"INDEX"` | ||||
| 	*Mirror    `xorm:"-"` | ||||
| 	Status     RepositoryStatus `xorm:"NOT NULL DEFAULT 0"` | ||||
| 	IsPrivate   bool `xorm:"INDEX"` | ||||
| 	IsEmpty     bool `xorm:"INDEX"` | ||||
| 	IsArchived  bool `xorm:"INDEX"` | ||||
| 	IsMirror    bool `xorm:"INDEX"` | ||||
| 	*Mirror     `xorm:"-"` | ||||
| 	PushMirrors []*PushMirror    `xorm:"-"` | ||||
| 	Status      RepositoryStatus `xorm:"NOT NULL DEFAULT 0"` | ||||
|  | ||||
| 	RenderingMetas         map[string]string `xorm:"-"` | ||||
| 	DocumentRenderingMetas map[string]string `xorm:"-"` | ||||
| @@ -255,7 +256,12 @@ func (repo *Repository) SanitizedOriginalURL() string { | ||||
| 	if repo.OriginalURL == "" { | ||||
| 		return "" | ||||
| 	} | ||||
| 	return util.SanitizeURLCredentials(repo.OriginalURL, false) | ||||
| 	u, err := url.Parse(repo.OriginalURL) | ||||
| 	if err != nil { | ||||
| 		return "" | ||||
| 	} | ||||
| 	u.User = nil | ||||
| 	return u.String() | ||||
| } | ||||
|  | ||||
| // ColorFormat returns a colored string to represent this repo | ||||
| @@ -657,6 +663,12 @@ func (repo *Repository) GetMirror() (err error) { | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| // LoadPushMirrors populates the repository push mirrors. | ||||
| func (repo *Repository) LoadPushMirrors() (err error) { | ||||
| 	repo.PushMirrors, err = GetPushMirrorsByRepoID(repo.ID) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| // GetBaseRepo populates repo.BaseRepo for a fork repository and | ||||
| // returns an error on failure (NOTE: no error is returned for | ||||
| // non-fork repositories, and BaseRepo will be left untouched) | ||||
| @@ -1487,6 +1499,7 @@ func DeleteRepository(doer *User, uid, repoID int64) error { | ||||
| 		&Notification{RepoID: repoID}, | ||||
| 		&ProtectedBranch{RepoID: repoID}, | ||||
| 		&PullRequest{BaseRepoID: repoID}, | ||||
| 		&PushMirror{RepoID: repoID}, | ||||
| 		&Release{RepoID: repoID}, | ||||
| 		&RepoIndexerStatus{RepoID: repoID}, | ||||
| 		&RepoRedirect{RedirectRepoID: repoID}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user