Commit Briefs

Josh Rickmar

add signer_id option to got.conf(5)

Setting this option will cause 'got tag' to sign all created tags using the SSH key, unless overridden by the -s flag. ok stsp@


Josh Rickmar

add missing revoked_signers grammar to got.conf(5)

ok stsp@


Stefan Sperling

rename got.conf(5) mirror-references to mirror_references for consistency

Existing configuration files will keep working for now since the old name with dashes is still recognized by the config parser.


Stefan Sperling

rename got.conf(5) fetch-all-branches to fetch_all_branches for consistency

Existing configuration files will keep working for now since the old name with dashes is still recognized by the config parser.


Josh Rickmar

create and verify tags signed by SSH keys

This adds a new -s flag to 'got tag' that specifies the signer identity (for example, a key file) of the tagger. The tag object will include a signature that validates each of the tag object headers and the tag message. Verifying these signed tags requires maintaining an allowed signers file which maps signer identities (i.e. the email address of the tagger) to SSH public keys. See ssh-keygen(1) for more details of the allowed signers file. After creating this file and providing the path to it in got.conf(5) using the allowed_signers option, tags may be verified using with 'got tag -V tag_name'. The return code will be non-zero if a signature fails to verify. ok stsp@


Omar Polo

build with -Wmissing-prototypes

ok stsp@


Christian Weisgerber

sync with OpenBSD parse.y

Explicitly cast "char" to "unsigned char" when assigned to "int" to prevent sign extension from breaking comparions against EOF or passing invalid arguments to ctype functions.


Christian Weisgerber

pull in a type fix from the OpenBSD parse.y template

Original commit message by deraadt: (unsigned) means (unsigned int) which on ptrdiff_t or size_t or other larger types really is a range reduction... Almost any cast to (unsigned) is a bug.


Christian Weisgerber

fix unsigned/signed char mismatch in parse.y

ok stsp


Christian Weisgerber

indentation fixes




Stefan Sperling

provide separate send {} and fetch {} configuration blocks in got.conf

Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly


Stefan Sperling

stop allowing empty send {} or fetch {} blocks; yacc complained about grammar

yacc has been complaining about "shift/reduce conflicts" since commit 16c4be8c1cab9456f9dd0468c27f8ab73235737e Revert that change for now. Not sure how it can be done properly. In any case, allowing empty config blocks is not very important.


Stefan Sperling

reject port number zero






Tracey Emery

add send and fetch plumbing to parser for got.conf

This is the beginning of support for naddy's suggestion to break this out similar to git. More code to come from stsp. ok stsp@


Stefan Sperling

add a 'reference' directive to remote repositories in got.conf(5)

Make use of this in 'got clone' to persist -R option arguments given on the command line in the cloned repository's got.conf(5) file.


Stefan Sperling

add a 'fetch-all-branches' configuration setting to got.conf(5)

Set fetch-all-branches in the got.conf(5) file created by 'got clone -a' in order to make a future 'got fetch' act like 'got fetch -a' by default.


Christian Weisgerber

fix potential type mismatches between format specifiers and arguments

Cast printf arguments of type time_t and off_t to long long to match the %lld format specifier on platforms where this might not be the case. In parse.y, switch the number variable to long long because all its interactions are with that type anyway. ok millert stsp



Christian Weisgerber

remove unused #includes from the new got-read-gotconfig/parse.y

ok tracey