pkg

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2023 License: Apache-2.0

README

common

This is a shared repository for tooling for interacting with Git.

This is alpha code, just extracted from another project for reuse.

updater

This provides functionality for updating YAML files with a single call, including updating the file and optionally opening a PR for the change.

package main

import (
	"context"
	"log"

	"github.com/gitops-tools/common/pkg/client"
	"github.com/gitops-tools/common/pkg/updater"
	"github.com/jenkins-x/go-scm/scm/factory"
	"go.uber.org/zap"
)

func main() {
	cli, err := factory.NewClientFromEnvironment()
	if err != nil {
		log.Fatal(err)
	}

	scmClient := client.New(cli)

	logger, _ := zap.NewProduction()
	sugar := logger.Sugar()

	u := updater.New(sugar, scmClient)

	input := updater.Input{
		Repo:               "my-org/my-repo",
		Filename:           "service/deployment.yaml",
		Branch:             "main",
		Key:                "metadata.annotations.reviewed",
		NewValue:           "test-user",
		BranchGenerateName: "test-branch-",
		CommitMessage:      "testing a common component library",
		PullRequest: updater.PullRequestInput{
			Title: "This is a test",
			Body:  "No, really, this is just a test",
		},
	}

	pr, err := u.UpdateYAML(context.Background(), &input)
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("pr.Link = %s", pr.Link)
}

Directories

Path Synopsis
Package kubeconfig provides functionality for parsing Kubernetes secret with a KubeConfig in a key into a client.
Package kubeconfig provides functionality for parsing Kubernetes secret with a KubeConfig in a key into a client.
This is an implementation of the k8s util sets package using Go 1.18 generics.
This is an implementation of the k8s util sets package using Go 1.18 generics.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL