Configuration
The repver tool uses a configuration file to define commands and their parameters. This file is typically named .repver and should be located in the root of your repository. This file is in YAML format and contains commands that are invoked when running the repver command with the --command=<name> argument.
Each command is defined by a name which must be unique. It is an alphanumeric string that can be up to 30 characters long.
A command can define multiple targets, each specifying a path to the file to modify and a pattern that defines the regex. The pattern regex must start with “^” and end with “$” to ensure that it matches an entire line in the file as it is applied line-by-line. The pattern must also contain at least one capture group, and all capture groups must be named using the syntax “(?P
The optional git section of the command allows for the application to run local Git commands to further automate the process. This includes:
- Creating a new branch with
create_branch(boolean) whose name must then be specified withbranch_name. - Automatically committing the changes with
commit(boolean) and a commit message must then be specified withcommit_message. - Pushing the branch to the remote repository with
push(boolean) and specifying the remote withremote(optional, default to ‘origin’). - A pull request can be created automatically if
pull_request(enum:NO,GITHUB_CLI) enum is set. TheGITHUB_CLIoption will create a pull request using the GitHubghCLI command. This requirescreate_branchandpushto be set to true. - Returning to the original branch with
return_to_original_branch. This can only be set to true ifcreate_branchis set to true. - Deleting the branch with
delete_branchafter the changes have been pushed. This can only be set to true ifreturn_to_original_branchis also set to true.
The branch_name and commit_message attributes can use the capture group names from the pattern attribute to create a dynamic branch name and commit message. For example, if the capture group name is version, you can use `` in the branch name or commit message to substitute the value of that capture group.
Example Configuration
commands:
- name: "goversion"
targets:
- path: "go.mod"
pattern: "^go (?P<version>.*) // GOVERSION$"
- path: ".github/workflows/build-go.yml"
pattern: "^ go-version: '(?P<version>.*)' # GOVERSION$"
git:
create_branch: true
branch_name : "go-v"
commit: true
commit_message: "Update Go version to "
push: true
remote: "origin"
pull_request: "GITHUB_CLI"
return_to_original_branch: true
delete_branch: true