mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	(cherry picked from commit481d813539) address oliverpool comments (cherry picked from commitd8f313f9e2) s/Printf/Print/ (cherry picked from commit6621b04458) do not run initDB within integration tests (cherry picked from commit5a0428ede3) (cherry picked from commitd3ebc9449c) (cherry picked from commit411bc5ac69) (cherry picked from commit9de9a916a6) (cherry picked from commitbffa551ac9)
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"errors"
 | 
						|
	"fmt"
 | 
						|
	"log"
 | 
						|
 | 
						|
	actions_model "code.gitea.io/gitea/models/actions"
 | 
						|
	"code.gitea.io/gitea/modules/setting"
 | 
						|
	"code.gitea.io/gitea/modules/util"
 | 
						|
 | 
						|
	"github.com/urfave/cli"
 | 
						|
)
 | 
						|
 | 
						|
// CmdActions represents the available actions sub-command.
 | 
						|
var CmdActions = cli.Command{
 | 
						|
	Name:        "actions",
 | 
						|
	Usage:       "Actions",
 | 
						|
	Description: "Actions",
 | 
						|
	Action:      runActions,
 | 
						|
	Flags: []cli.Flag{
 | 
						|
		cli.BoolFlag{
 | 
						|
			Name:  "registration-token-admin",
 | 
						|
			Usage: "Show the runner registration admin token",
 | 
						|
		},
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
func maybeInitDB(stdCtx context.Context) error {
 | 
						|
	if setting.Database.Type == "" {
 | 
						|
		if err := initDB(stdCtx); err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func runActions(ctx *cli.Context) error {
 | 
						|
	stdCtx := context.Background()
 | 
						|
 | 
						|
	if err := maybeInitDB(stdCtx); err != nil {
 | 
						|
		log.Fatalf("maybeInitDB %v", err)
 | 
						|
	}
 | 
						|
 | 
						|
	if ctx.Bool("registration-token-admin") {
 | 
						|
		// ownid=0,repo_id=0,means this token is used for global
 | 
						|
		return runActionsRegistrationToken(stdCtx, 0, 0)
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
func runActionsRegistrationToken(stdCtx context.Context, ownerID, repoID int64) error {
 | 
						|
	var token *actions_model.ActionRunnerToken
 | 
						|
	token, err := actions_model.GetUnactivatedRunnerToken(stdCtx, ownerID, repoID)
 | 
						|
	if errors.Is(err, util.ErrNotExist) {
 | 
						|
		token, err = actions_model.NewRunnerToken(stdCtx, ownerID, repoID)
 | 
						|
		if err != nil {
 | 
						|
			log.Fatalf("CreateRunnerToken %v", err)
 | 
						|
		}
 | 
						|
	} else if err != nil {
 | 
						|
		log.Fatalf("GetUnactivatedRunnerToken %v", err)
 | 
						|
	}
 | 
						|
	fmt.Print(token.Token)
 | 
						|
	return nil
 | 
						|
}
 |