[CLI] implement forgejo-cli actions generate-secret
(cherry picked from commit 6f7905c8ecf17d5f74ac9a71a453d6768c212b6d) (cherry picked from commit 2a958031a9dc0b489a8fde85278a1d02ffb3169c) (cherry picked from commit 946d209f4688691e2e030229b1a428338733c086)
This commit is contained in:
parent
52a65b48ea
commit
ef51e4b751
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…
Reference in a new issue