Add cli commands to regen hooks & keys (#3979)
* Add cli commands to regen hooks & keys * make fmt * Allow passing path to config as an option * add docs
This commit is contained in:
		
							parent
							
								
									ecfc401eaa
								
							
						
					
					
						commit
						8176345c0e
					
				
					 2 changed files with 65 additions and 0 deletions
				
			
		
							
								
								
									
										58
									
								
								cmd/admin.go
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								cmd/admin.go
									
									
									
									
									
								
							|  | @ -25,6 +25,7 @@ var ( | |||
| 			subcmdCreateUser, | ||||
| 			subcmdChangePassword, | ||||
| 			subcmdRepoSyncReleases, | ||||
| 			subcmdRegenerate, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
|  | @ -80,6 +81,41 @@ var ( | |||
| 		Usage:  "Synchronize repository releases with tags", | ||||
| 		Action: runRepoSyncReleases, | ||||
| 	} | ||||
| 
 | ||||
| 	subcmdRegenerate = cli.Command{ | ||||
| 		Name:  "regenerate", | ||||
| 		Usage: "Regenerate specific files", | ||||
| 		Subcommands: []cli.Command{ | ||||
| 			microcmdRegenHooks, | ||||
| 			microcmdRegenKeys, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	microcmdRegenHooks = cli.Command{ | ||||
| 		Name:   "hooks", | ||||
| 		Usage:  "Regenerate git-hooks", | ||||
| 		Action: runRegenerateHooks, | ||||
| 		Flags: []cli.Flag{ | ||||
| 			cli.StringFlag{ | ||||
| 				Name:  "config, c", | ||||
| 				Value: "custom/conf/app.ini", | ||||
| 				Usage: "Custom configuration file path", | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	microcmdRegenKeys = cli.Command{ | ||||
| 		Name:   "keys", | ||||
| 		Usage:  "Regenerate authorized_keys file", | ||||
| 		Action: runRegenerateKeys, | ||||
| 		Flags: []cli.Flag{ | ||||
| 			cli.StringFlag{ | ||||
| 				Name:  "config, c", | ||||
| 				Value: "custom/conf/app.ini", | ||||
| 				Usage: "Custom configuration file path", | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| func runChangePassword(c *cli.Context) error { | ||||
|  | @ -195,3 +231,25 @@ func getReleaseCount(id int64) (int64, error) { | |||
| 		}, | ||||
| 	) | ||||
| } | ||||
| 
 | ||||
| func runRegenerateHooks(c *cli.Context) error { | ||||
| 	if c.IsSet("config") { | ||||
| 		setting.CustomConf = c.String("config") | ||||
| 	} | ||||
| 
 | ||||
| 	if err := initDB(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return models.SyncRepositoryHooks() | ||||
| } | ||||
| 
 | ||||
| func runRegenerateKeys(c *cli.Context) error { | ||||
| 	if c.IsSet("config") { | ||||
| 		setting.CustomConf = c.String("config") | ||||
| 	} | ||||
| 
 | ||||
| 	if err := initDB(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return models.RewriteAllPublicKeys() | ||||
| } | ||||
|  |  | |||
|  | @ -64,6 +64,13 @@ Admin operations: | |||
|             - `--password value`, `-p value`: New password. Required. | ||||
|         - Examples: | ||||
|             - `gitea admin change-password --username myname --password asecurepassword` | ||||
|     - `regenerate` | ||||
|         - Options: | ||||
|             - `hooks`: Regenerate git-hooks for all repositories | ||||
|             - `keys`: Regenerate authorized_keys file | ||||
|         - Examples: | ||||
|             - `gitea admin regenerate hooks` | ||||
|             - `gitea admin regenerate keys` | ||||
| 
 | ||||
| #### cert | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue