From e40e7cc88b70aa8a6fffc1a76a834ed936565e05 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 21:57:14 +0200 Subject: [PATCH 1/6] with actions repo --- cmd/kraken/commands/process.go | 2 +- internal/actions/action_creator.go | 11 +++---- internal/api/process_command.go | 3 ++ internal/commands/process_repos.go | 15 +++++----- internal/services/providers/git.go | 48 ++++++++++++++++++++++-------- roadmap.md | 10 +++---- 6 files changed, 55 insertions(+), 34 deletions(-) diff --git a/cmd/kraken/commands/process.go b/cmd/kraken/commands/process.go index 6ed29ee..193c085 100644 --- a/cmd/kraken/commands/process.go +++ b/cmd/kraken/commands/process.go @@ -23,7 +23,7 @@ func CreateKrakenProcessCmd() *cobra.Command { }{ Repository: "git@git.front.kjuulh.io:kjuulh/kraken.git", Branch: "v0.1", - Path: "_examples/actions/write_a_readme/kraken.yml", + Path: "_examples/actions/write_a_readme/", }) if err != nil { panic(err) diff --git a/internal/actions/action_creator.go b/internal/actions/action_creator.go index ebdebd3..c26517c 100644 --- a/internal/actions/action_creator.go +++ b/internal/actions/action_creator.go @@ -47,18 +47,13 @@ func (ac *ActionCreator) Prepare(ctx context.Context, ops *ActionCreatorOps) (*A return nil, err } - cloneCtx, _ := context.WithTimeout(ctx, time.Second*5) - repo, err := ac.git.Clone(cloneCtx, area, ops.RepositoryUrl) + cloneCtx, _ := context.WithTimeout(ctx, time.Second*10) + _, err = ac.git.CloneBranch(cloneCtx, area, ops.RepositoryUrl, ops.Branch) if err != nil { ac.logger.Error("could not clone repo", zap.Error(err)) return nil, err } - err = ac.git.Checkout(ctx, repo, ops.Branch) - if err != nil { - return nil, err - } - executorUrl := path.Join(area.Path, ops.Path) if _, err = os.Stat(executorUrl); os.IsNotExist(err) { return nil, fmt.Errorf("path is invalid: %s", ops.Path) @@ -74,6 +69,8 @@ func (ac *ActionCreator) Prepare(ctx context.Context, ops *ActionCreatorOps) (*A return nil, err } + ac.logger.Debug("Action creator done") + return &Action{ Schema: krakenSchema, }, nil diff --git a/internal/api/process_command.go b/internal/api/process_command.go index 549a678..2e852b5 100644 --- a/internal/api/process_command.go +++ b/internal/api/process_command.go @@ -34,6 +34,9 @@ func CommandRoute(logger *zap.Logger, app *gin.Engine, deps *serverdeps.ServerDe ctx := context.WithValue(context.Background(), jobs.JobId{}, jobId) processRepos := commands.NewProcessRepos(logger, deps) err = processRepos.Process(ctx, repository, branch, path) + if err != nil { + logger.Error("could not process repo", zap.Error(err)) + } }(request.Repository, request.Branch, request.Path, jobId) c.Status(http.StatusAccepted) diff --git a/internal/commands/process_repos.go b/internal/commands/process_repos.go index 6b0bdf0..d29a30b 100644 --- a/internal/commands/process_repos.go +++ b/internal/commands/process_repos.go @@ -48,7 +48,7 @@ func (pr *ProcessRepos) Process(ctx context.Context, repository string, branch s return err } - repositoryUrls := make([]string, 0) + repositoryUrls := action.Schema.Select.Repositories wg := sync.WaitGroup{} wg.Add(len(repositoryUrls)) @@ -60,7 +60,6 @@ func (pr *ProcessRepos) Process(ctx context.Context, repository string, branch s }() err := pr.processRepo(ctx, repoUrl, action) if err != nil { - pr.logger.Error("could not process repo", zap.Error(err)) errChan <- err } }(ctx, repoUrl) @@ -113,7 +112,6 @@ func (pr *ProcessRepos) prepareAction( pr.logger.Debug("Creating area") area, err := pr.storage.CreateArea(ctx) if err != nil { - pr.logger.Error("failed to allocate area", zap.Error(err)) return nil, nil, err } @@ -133,13 +131,11 @@ func (pr *ProcessRepos) clone(ctx context.Context, area *storage.Area, repoUrl s cloneCtx, _ := context.WithTimeout(ctx, time.Second*5) repo, err := pr.git.Clone(cloneCtx, area, repoUrl) if err != nil { - pr.logger.Error("could not clone repo", zap.Error(err)) return nil, err } err = pr.git.CreateBranch(ctx, repo) if err != nil { - pr.logger.Error("could not create branch", zap.Error(err)) return nil, err } @@ -157,9 +153,12 @@ func (pr *ProcessRepos) commit(ctx context.Context, area *storage.Area, repo *pr return fmt.Errorf("could not get diff: %w", err) } - err = pr.git.Push(ctx, repo) - if err != nil { - return fmt.Errorf("could not push to repo: %w", err) + dryrun := true + if !dryrun { + err = pr.git.Push(ctx, repo) + if err != nil { + return fmt.Errorf("could not push to repo: %w", err) + } } return nil } diff --git a/internal/services/providers/git.go b/internal/services/providers/git.go index 4a19e57..4a91121 100644 --- a/internal/services/providers/git.go +++ b/internal/services/providers/git.go @@ -53,7 +53,7 @@ func NewGit(logger *zap.Logger, gitConfig *GitConfig, openPGP *signer.OpenPGP) * return &Git{logger: logger, gitConfig: gitConfig, openPGP: openPGP} } -func (g *Git) Clone(ctx context.Context, storageArea *storage.Area, repoUrl string) (*GitRepo, error) { +func (g *Git) CloneBranch(ctx context.Context, storageArea *storage.Area, repoUrl string, branch string) (*GitRepo, error) { g.logger.Debug( "cloning repository", zap.String("repoUrl", repoUrl), @@ -69,8 +69,8 @@ func (g *Git) Clone(ctx context.Context, storageArea *storage.Area, repoUrl stri URL: repoUrl, Auth: auth, RemoteName: "origin", - ReferenceName: "refs/heads/main", - SingleBranch: false, + ReferenceName: plumbing.NewBranchReferenceName(branch), + SingleBranch: true, NoCheckout: false, Depth: 1, RecurseSubmodules: 1, @@ -90,19 +90,41 @@ func (g *Git) Clone(ctx context.Context, storageArea *storage.Area, repoUrl stri return &GitRepo{repo: repo}, nil } -func (g *Git) Checkout(ctx context.Context, gitRepo *GitRepo, branch string) error { - wt, err := gitRepo.repo.Worktree() +func (g *Git) Clone(ctx context.Context, storageArea *storage.Area, repoUrl string) (*GitRepo, error) { + g.logger.Debug( + "cloning repository", + zap.String("repoUrl", repoUrl), + zap.String("path", storageArea.Path), + ) + + auth, err := g.GetAuth() if err != nil { - return err + return nil, err } - return wt.Checkout(&git.CheckoutOptions{ - Hash: [20]byte{}, - Branch: plumbing.NewBranchReferenceName(branch), - Create: false, - Force: false, - Keep: false, - }) + cloneOptions := git.CloneOptions{ + URL: repoUrl, + Auth: auth, + RemoteName: "origin", + ReferenceName: "refs/heads/main", + SingleBranch: true, + NoCheckout: false, + Depth: 1, + RecurseSubmodules: 1, + Progress: g.getProgressWriter(), + Tags: 0, + InsecureSkipTLS: false, + CABundle: []byte{}, + } + + repo, err := git.PlainCloneContext(ctx, storageArea.Path, false, &cloneOptions) + if err != nil { + return nil, err + } + + g.logger.Debug("done cloning repo") + + return &GitRepo{repo: repo}, nil } func (g *Git) getProgressWriter() *zapio.Writer { diff --git a/roadmap.md b/roadmap.md index ba55870..2990ff0 100644 --- a/roadmap.md +++ b/roadmap.md @@ -11,14 +11,14 @@ ### Not in scope -- [ ] Pooled runners -- [ ] CLI with options -- [ ] Server app -- [ ] Git hosting providers +- Pooled runners +- CLI with options +- Server app +- Git hosting providers ## Version 0.1 -- [ ] Setup a way to choose actions and predicates +- [x] Setup a way to choose actions and predicates - [ ] Allow instantiation of actions, kraken template repo etc. - [ ] Create pr for gitea provider - [ ] Think about some sort of isolation -- 2.45.2 From 4daa687479109b83e1cadcdf98912b3874af96d7 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 22:45:05 +0200 Subject: [PATCH 2/6] with another format --- _examples/actions/write_a_readme/kraken.yml | 3 ++- internal/schema/kraken.go | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/_examples/actions/write_a_readme/kraken.yml b/_examples/actions/write_a_readme/kraken.yml index 0b7f7ae..d37ca53 100644 --- a/_examples/actions/write_a_readme/kraken.yml +++ b/_examples/actions/write_a_readme/kraken.yml @@ -7,4 +7,5 @@ select: - gitea: git.front.kjuulh.io/kraken organisation: "kraken" actions: - - "go run main.go" + - type: go + entry: "main.go" diff --git a/internal/schema/kraken.go b/internal/schema/kraken.go index 13881bf..fb7d75e 100644 --- a/internal/schema/kraken.go +++ b/internal/schema/kraken.go @@ -12,7 +12,10 @@ type KrakenSchema struct { Organisation string `yaml:"organisation"` } `yaml:"providers"` } `yaml:"select"` - Actions []string `yaml:"actions"` + Actions []struct { + Type string `yaml:"type"` + Entry string `yaml:"entry"` + } `yaml:"actions"` } func Unmarshal(raw string) (*KrakenSchema, error) { -- 2.45.2 From 896b28188b858c1465d0ca1ede786ff9f9c46f78 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 23:29:54 +0200 Subject: [PATCH 3/6] with action executor --- _examples/actions/write_a_readme/main.go | 5 ++- cmd/kraken/commands/process.go | 4 +-- cmd/server/server.go | 2 ++ internal/actions/action.go | 20 ++++++++++- internal/actions/action_creator.go | 4 +-- internal/actions/builders/go.go | 46 ++++++++++++++++++++++++ 6 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 internal/actions/builders/go.go diff --git a/_examples/actions/write_a_readme/main.go b/_examples/actions/write_a_readme/main.go index a5bd52f..5c24133 100644 --- a/_examples/actions/write_a_readme/main.go +++ b/_examples/actions/write_a_readme/main.go @@ -3,7 +3,10 @@ package main import "github.com/bitfield/script" func main() { - script. + _, err := script. Echo("# Readme"). WriteFile("README.md") + if err != nil { + panic(err) + } } diff --git a/cmd/kraken/commands/process.go b/cmd/kraken/commands/process.go index 193c085..274b299 100644 --- a/cmd/kraken/commands/process.go +++ b/cmd/kraken/commands/process.go @@ -11,7 +11,7 @@ import ( func CreateKrakenProcessCmd() *cobra.Command { cmd := &cobra.Command{ Use: "process", - Run: func(cmd *cobra.Command, args []string) { + Run: func(cmd *cobra.Command, _ []string) { client := http.Client{} var buf bytes.Buffer @@ -22,7 +22,7 @@ func CreateKrakenProcessCmd() *cobra.Command { Path string `json:"path"` }{ Repository: "git@git.front.kjuulh.io:kjuulh/kraken.git", - Branch: "v0.1", + Branch: "feature/add-actions", Path: "_examples/actions/write_a_readme/", }) if err != nil { diff --git a/cmd/server/server.go b/cmd/server/server.go index 49b713c..5c835ec 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -15,6 +15,8 @@ func main() { } _ = logger.Sync() + zap.ReplaceGlobals(logger) + Execute(logger) } diff --git a/internal/actions/action.go b/internal/actions/action.go index 3d7e6aa..277b790 100644 --- a/internal/actions/action.go +++ b/internal/actions/action.go @@ -2,15 +2,33 @@ package actions import ( "context" + "errors" + "git.front.kjuulh.io/kjuulh/kraken/internal/actions/builders" "git.front.kjuulh.io/kjuulh/kraken/internal/schema" "git.front.kjuulh.io/kjuulh/kraken/internal/services/storage" + "go.uber.org/zap" ) type Action struct { - Schema *schema.KrakenSchema + Schema *schema.KrakenSchema + SchemaPath string } func (a *Action) Execute(ctx context.Context, area *storage.Area) error { + for _, action := range a.Schema.Actions { + switch action.Type { + case "go": + exe, err := builders.NewGo(zap.L()).Build(ctx, a.SchemaPath, action.Entry) + if err != nil { + return err + } + exe(ctx, area.Path) + + default: + return errors.New("could not determine action type") + } + } + return nil } diff --git a/internal/actions/action_creator.go b/internal/actions/action_creator.go index c26517c..b731519 100644 --- a/internal/actions/action_creator.go +++ b/internal/actions/action_creator.go @@ -70,9 +70,9 @@ func (ac *ActionCreator) Prepare(ctx context.Context, ops *ActionCreatorOps) (*A } ac.logger.Debug("Action creator done") - return &Action{ - Schema: krakenSchema, + Schema: krakenSchema, + SchemaPath: executorUrl, }, nil } diff --git a/internal/actions/builders/go.go b/internal/actions/builders/go.go new file mode 100644 index 0000000..508eb94 --- /dev/null +++ b/internal/actions/builders/go.go @@ -0,0 +1,46 @@ +package builders + +import ( + "context" + "errors" + "fmt" + "os" + "os/exec" + + "go.uber.org/zap" +) + +type Go struct { + logger *zap.Logger +} + +func NewGo(logger *zap.Logger) *Go { + return &Go{logger: logger} +} + +type GoExecutable func(ctx context.Context, victimPath string) error + +func (g *Go) Build(ctx context.Context, modulePath, entryPath string) (GoExecutable, error) { + g.logger.Debug("Building go binary", zap.String("actiondir", modulePath), zap.String("entry", entryPath)) + + if _, err := os.Stat(fmt.Sprintf("%s/%s", modulePath, entryPath)); os.IsNotExist(err) { + return nil, errors.New("could not find entry") + } + + err := exec.CommandContext( + ctx, + "/bin/bash", + "-c", + fmt.Sprintf("(cd %s; go build -o main %s)", modulePath, entryPath), + ).Run() + if err != nil { + return nil, err + } + + g.logger.Debug("Go binary built!") + + return func(ctx context.Context, victimPath string) error { + g.logger.Debug("Executing script", zap.String("victim", victimPath)) + return exec.CommandContext(ctx, fmt.Sprintf("(cd %s; %s/main)", victimPath, modulePath)).Run() + }, nil +} -- 2.45.2 From 6af0ecec33c3ac3f0c633067e8f72683bd90a739 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 23:34:45 +0200 Subject: [PATCH 4/6] with lots of repos --- _examples/actions/write_a_readme/kraken.yml | 26 +++++++++++++++++++++ internal/actions/action.go | 7 +++++- internal/actions/builders/go.go | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/_examples/actions/write_a_readme/kraken.yml b/_examples/actions/write_a_readme/kraken.yml index d37ca53..e3168f1 100644 --- a/_examples/actions/write_a_readme/kraken.yml +++ b/_examples/actions/write_a_readme/kraken.yml @@ -3,6 +3,32 @@ name: write-a-readme select: repositories: - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git providers: - gitea: git.front.kjuulh.io/kraken organisation: "kraken" diff --git a/internal/actions/action.go b/internal/actions/action.go index 277b790..3c6416e 100644 --- a/internal/actions/action.go +++ b/internal/actions/action.go @@ -23,7 +23,12 @@ func (a *Action) Execute(ctx context.Context, area *storage.Area) error { if err != nil { return err } - exe(ctx, area.Path) + err = exe(ctx, area.Path) + if err != nil { + return err + } + + zap.L().Debug("Execution done") default: return errors.New("could not determine action type") diff --git a/internal/actions/builders/go.go b/internal/actions/builders/go.go index 508eb94..6d828ee 100644 --- a/internal/actions/builders/go.go +++ b/internal/actions/builders/go.go @@ -41,6 +41,6 @@ func (g *Go) Build(ctx context.Context, modulePath, entryPath string) (GoExecuta return func(ctx context.Context, victimPath string) error { g.logger.Debug("Executing script", zap.String("victim", victimPath)) - return exec.CommandContext(ctx, fmt.Sprintf("(cd %s; %s/main)", victimPath, modulePath)).Run() + return exec.CommandContext(ctx, "/bin/bash", "-c", fmt.Sprintf("(cd %s; %s/main)", victimPath, modulePath)).Run() }, nil } -- 2.45.2 From 62175c9b25be7bb5968c68b007a218ec01d37b51 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 23:36:26 +0200 Subject: [PATCH 5/6] Many more --- _examples/actions/write_a_readme/kraken.yml | 108 ++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/_examples/actions/write_a_readme/kraken.yml b/_examples/actions/write_a_readme/kraken.yml index e3168f1..77db45b 100644 --- a/_examples/actions/write_a_readme/kraken.yml +++ b/_examples/actions/write_a_readme/kraken.yml @@ -29,6 +29,114 @@ select: - git@git.front.kjuulh.io:kjuulh/kraken-test.git - git@git.front.kjuulh.io:kjuulh/kraken-test.git - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git + - git@git.front.kjuulh.io:kjuulh/kraken-test.git providers: - gitea: git.front.kjuulh.io/kraken organisation: "kraken" -- 2.45.2 From 726af47c628d4464a60ae7091abeececf3ccc50f Mon Sep 17 00:00:00 2001 From: kjuulh Date: Wed, 14 Sep 2022 23:40:40 +0200 Subject: [PATCH 6/6] clear roadmap item --- roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roadmap.md b/roadmap.md index 2990ff0..dbb3f3e 100644 --- a/roadmap.md +++ b/roadmap.md @@ -19,7 +19,7 @@ ## Version 0.1 - [x] Setup a way to choose actions and predicates -- [ ] Allow instantiation of actions, kraken template repo etc. +- [x] Allow instantiation of actions, kraken template repo etc. - [ ] Create pr for gitea provider - [ ] Think about some sort of isolation - [ ] Create CLI to trigger action -- 2.45.2