repobuilder

package
v0.0.0-...-ea07d1b Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: EUPL-1.2 Imports: 8 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const DefaultBranchName = "main"

Variables

This section is empty.

Functions

func Build

func Build(ops ...OperationFunc) (*git.Repository, error)
Example
package main

import (
	"fmt"

	"github.com/go-git/go-git/v5"
	"github.com/go-git/go-git/v5/plumbing/object"

	"codeberg.org/somebadcode/commit-tool/internal/repobuilder"
)

func main() {
	commitOpts := git.CommitOptions{
		AllowEmptyCommits: true,
		Author: &object.Signature{
			Name:  "Gopher",
			Email: "gopher@example.com",
		},
	}

	repo, err := repobuilder.Build(
		repobuilder.Commit("initial commit", commitOpts),
		repobuilder.Tag("0.1.0", &git.CreateTagOptions{
			Tagger:  commitOpts.Author,
			Message: "Release 0.1.0",
		}),
		repobuilder.CheckoutBranch("test"),
		repobuilder.Commit("test: something", commitOpts),
		repobuilder.Commit("fix: foo is bar", commitOpts),
		repobuilder.Commit("feat: add bar", commitOpts),
	)
	if err != nil {
		// Do not panic!
		panic(err)
	}

	var iter object.CommitIter
	iter, err = repo.Log(&git.LogOptions{
		Order: git.LogOrderBSF,
	})
	if err != nil {
		// Do not panic!
		panic(err)
	}
	defer iter.Close()

	err = iter.ForEach(func(commit *object.Commit) error {
		fmt.Println(commit.Message)
		return nil
	})
	if err != nil {
		// Do not panic!
		panic(err)
	}

}
Output:
feat: add bar
fix: foo is bar
test: something
initial commit

Types

type OperationFunc

type OperationFunc func(repo *git.Repository, tree *git.Worktree) error

func CheckoutBranch

func CheckoutBranch(name string) OperationFunc

func Commit

func Commit(message string, options git.CommitOptions) OperationFunc

func Tag

func Tag(tag string, options *git.CreateTagOptions) OperationFunc

Jump to

Keyboard shortcuts

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