Skip to content

Instantly share code, notes, and snippets.

@jpbetz
Last active January 27, 2025 20:38
Show Gist options
  • Save jpbetz/fb90abbdd73e18fe9b2cf662801e6b79 to your computer and use it in GitHub Desktop.
Save jpbetz/fb90abbdd73e18fe9b2cf662801e6b79 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Check if input file is provided
if [ $# -ne 1 ]; then
echo "Usage: $0 <input-file>"
exit 1
fi
input_file="$1"
# Check if input file exists
if [ ! -f "$input_file" ]; then
echo "Error: Input file '$input_file' does not exist"
exit 1
fi
# Function to process git commit
process_commit() {
local message="$1"
if [ -n "$message" ] && [ ${#files_to_add[@]} -gt 0 ]; then
echo "Creating commit with message:"
echo -e "$message"
echo "Files: ${files_to_add[*]}"
git add "${files_to_add[@]}"
echo -e "$message" | git commit -F -
fi
}
# Initialize variables
current_message=""
files_to_add=()
collecting_files=false
# Read the input file line by line
while IFS= read -r line || [ -n "$line" ]; do
# Skip empty lines
[ -z "$line" ] && continue
# If line starts with #, it's part of a commit message
if [[ $line == \#* ]]; then
# If we were collecting files, this is a new commit block
if [ $collecting_files = true ]; then
process_commit "${current_message}"
current_message=""
files_to_add=()
collecting_files=false
fi
# Remove # and optionally one space after it
new_message_line="${line#\#}"
if [[ $new_message_line == " "* ]]; then
new_message_line="${new_message_line# }"
fi
# Add to current message with newline if not first line
if [ -n "$current_message" ]; then
current_message+=$'\n'"${new_message_line}"
else
current_message="${new_message_line}"
fi
else
# We're now collecting files
collecting_files=true
files_to_add+=("$line")
fi
done < "$input_file"
# Process the last commit
process_commit "${current_message}"
# Bump gengo/v2 to 0359904fc2a6
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
go.mod
go.sum
staging/src/k8s.io/apiextensions-apiserver/go.mod
staging/src/k8s.io/apiextensions-apiserver/go.sum
staging/src/k8s.io/code-generator/go.mod
staging/src/k8s.io/code-generator/go.sum
staging/src/k8s.io/kube-aggregator/go.mod
staging/src/k8s.io/kube-aggregator/go.sum
staging/src/k8s.io/kubectl/go.sum
staging/src/k8s.io/metrics/go.mod
staging/src/k8s.io/metrics/go.sum
staging/src/k8s.io/sample-apiserver/go.mod
staging/src/k8s.io/sample-apiserver/go.sum
staging/src/k8s.io/sample-controller/go.mod
staging/src/k8s.io/sample-controller/go.sum
vendor
# Add validation-gen
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/code-generator/cmd/validation-gen/lint.go
staging/src/k8s.io/code-generator/cmd/validation-gen/lint_test.go
staging/src/k8s.io/code-generator/cmd/validation-gen/main.go
staging/src/k8s.io/code-generator/cmd/validation-gen/targets.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validation.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validation_test.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/common.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/registry.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/validators.go
staging/src/k8s.io/apimachinery/pkg/api/safe
staging/src/k8s.io/apimachinery/pkg/api/operation
# Add validation-gen to codegen scripts
#
hack/update-codegen.sh
staging/src/k8s.io/code-generator/kube_codegen.sh
# Add validation-gen test infrastructure
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/code-generator/cmd/validation-gen/testscheme/doc.go
staging/src/k8s.io/code-generator/cmd/validation-gen/testscheme/testscheme.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/testing.go
staging/src/k8s.io/apimachinery/pkg/api/validate/README.md
staging/src/k8s.io/apimachinery/pkg/api/validate/doc.go
staging/src/k8s.io/apimachinery/pkg/api/validate/testing.go
staging/src/k8s.io/apimachinery/pkg/api/validate/testing_test.go
staging/src/k8s.io/apimachinery/pkg/runtime/testing/validation.go
# Add validation-gen core tests
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/_codegenignore
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/all_types_match
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/cross_pkg
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/elide_no_validations
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/generate.go
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/maps
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/maxitems
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/multiple_tags
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/no_generation
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/no_types_match
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/one_type_match
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/ordering
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/pointers
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/primitives
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/public_private
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/recursive
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/slices
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/subfield
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/type_args
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/typedefs
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/update_validations
# Add validators: optional/required/forbidden, formats, and limits
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/apimachinery/pkg/api/validate/schema.go
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/forbidden
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/optional
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/required
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/format
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/openapi.go
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/required.go
staging/src/k8s.io/apimachinery/pkg/api/validate/schema_test.go
staging/src/k8s.io/apimachinery/pkg/api/validate/strfmt.go
staging/src/k8s.io/apimachinery/pkg/api/validate/strfmt_test.go
staging/src/k8s.io/apimachinery/pkg/api/validate/content
staging/src/k8s.io/apimachinery/pkg/api/validate/net.go
staging/src/k8s.io/apimachinery/pkg/api/validate/net_test.go
staging/src/k8s.io/apimachinery/pkg/api/validate/util_test.go
staging/src/k8s.io/apimachinery/pkg/api/validation/objectmeta_test.go
staging/src/k8s.io/apimachinery/pkg/util/validation
# Add validation support to Scheme
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go
staging/src/k8s.io/apiserver/pkg/registry/rest/create.go
# Add ifOptionEnabled/ifOptionDisabled validators
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/options
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/options.go
# Add union validator
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/apimachinery/pkg/api/validate/union.go
staging/src/k8s.io/apimachinery/pkg/api/validate/union_test.go
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/unions
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/union.go
# Add enum validator
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
staging/src/k8s.io/apimachinery/pkg/api/validate/enum.go
staging/src/k8s.io/apimachinery/pkg/api/validate/enum_test.go
staging/src/k8s.io/code-generator/cmd/validation-gen/output_tests/enums
staging/src/k8s.io/code-generator/cmd/validation-gen/validators/enum.go
# Add validations to core API group
#
# Co-authored-by: Tim Hockin <[email protected]>
# Co-authored-by: Aaron Prindle <[email protected]>
# Co-authored-by: Yongrui Lin <[email protected]>
pkg/apis/core
pkg/generated/openapi
staging/src/k8s.io/api/apps
staging/src/k8s.io/api/core
pkg/registry/apps
pkg/registry/core
# Add TODO.validation-gen
TODO.validation-gen
# FIXME: Add deepycopy gen to kubelet DRA
pkg/kubelet/cm/dra/state/zz_generated.deepcopy.go
# FIXME: Add github workflows file
.github/workflows/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment