[CLI] implement forgejo-cli actions generate-secret
(cherry picked from commit 6f7905c8ec)
			
			
This commit is contained in:
		
							parent
							
								
									b6cfa88c6e
								
							
						
					
					
						commit
						e085d6d273
					
				
					 2 changed files with 31 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -7,6 +7,7 @@ import (
 | 
			
		|||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	actions_model "code.gitea.io/gitea/models/actions"
 | 
			
		||||
	"code.gitea.io/gitea/modules/private"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -18,12 +19,13 @@ func CmdActions(ctx context.Context) cli.Command {
 | 
			
		|||
		Name:  "actions",
 | 
			
		||||
		Usage: "Commands for managing Forgejo Actions",
 | 
			
		||||
		Subcommands: []cli.Command{
 | 
			
		||||
			SubcmdActionsGenRunnerToken(ctx),
 | 
			
		||||
			SubcmdActionsGenerateRunnerToken(ctx),
 | 
			
		||||
			SubcmdActionsGenerateRunnerSecret(ctx),
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SubcmdActionsGenRunnerToken(ctx context.Context) cli.Command {
 | 
			
		||||
func SubcmdActionsGenerateRunnerToken(ctx context.Context) cli.Command {
 | 
			
		||||
	return cli.Command{
 | 
			
		||||
		Name:   "generate-runner-token",
 | 
			
		||||
		Usage:  "Generate a new token for a runner to use to register with the server",
 | 
			
		||||
| 
						 | 
				
			
			@ -38,6 +40,27 @@ func SubcmdActionsGenRunnerToken(ctx context.Context) cli.Command {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SubcmdActionsGenerateRunnerSecret(ctx context.Context) cli.Command {
 | 
			
		||||
	return cli.Command{
 | 
			
		||||
		Name:   "generate-secret",
 | 
			
		||||
		Usage:  "Generate a secret suitable for input to the register subcommand",
 | 
			
		||||
		Action: func(cliCtx *cli.Context) error { return RunGenerateSecret(ctx, cliCtx) },
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RunGenerateSecret(ctx context.Context, cliCtx *cli.Context) error {
 | 
			
		||||
	setting.MustInstalled()
 | 
			
		||||
 | 
			
		||||
	runner := actions_model.ActionRunner{}
 | 
			
		||||
	if err := runner.GenerateToken(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if _, err := fmt.Fprintf(ContextGetStdout(ctx), "%s", runner.Token); err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RunGenerateActionsRunnerToken(ctx context.Context, cliCtx *cli.Context) error {
 | 
			
		||||
	if !ContextGetNoInstallSignals(ctx) {
 | 
			
		||||
		var cancel context.CancelFunc
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,12 @@ func Test_CmdForgejo_Actions(t *testing.T) {
 | 
			
		|||
	onGiteaRun(t, func(*testing.T, *url.URL) {
 | 
			
		||||
		defer test.MockVariable(&setting.Actions.Enabled, true)()
 | 
			
		||||
 | 
			
		||||
		output := cmdForgejoCaptureOutput(t, []string{"forgejo-cli", "actions", "generate-runner-token"})
 | 
			
		||||
		var output string
 | 
			
		||||
 | 
			
		||||
		output = cmdForgejoCaptureOutput(t, []string{"forgejo-cli", "actions", "generate-runner-token"})
 | 
			
		||||
		assert.EqualValues(t, 40, len(output))
 | 
			
		||||
 | 
			
		||||
		output = cmdForgejoCaptureOutput(t, []string{"forgejo-cli", "actions", "generate-secret"})
 | 
			
		||||
		assert.EqualValues(t, 40, len(output))
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue