{"push_id":1229163385,"size":22,"distinct_size":0,"ref":"refs/heads/master","head":"1835bab6f7b3f8c0880f1b2a3fde207b8dcffe1a","before":"4fbf59554988189cd40aecea3a884512983b36cd","commits":[{"sha":"5ee0163d89086c93a49c8ce726685859052acd77","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot package\n\nConvert the monolithic afs-robotest script into a proper python package\nwith a (smaller) front-end script by the same name. Move the existing\nclasses to importable python files.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/5ee0163d89086c93a49c8ce726685859052acd77"},{"sha":"b2ed20ebe109f58b1f83d619568656942b058f77","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: stub out unit tests","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/b2ed20ebe109f58b1f83d619568656942b058f77"},{"sha":"ff2657c3a307e90afa1c39f508f43cff59c18336","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: fix unittest import paths\n\nRun the unit tests on the files in this directory instead of\nthe installed ones.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/ff2657c3a307e90afa1c39f508f43cff59c18336"},{"sha":"48050ece25a29a806c3b727e5beaaebb2ef8fa92","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: git ignore intermediates","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/48050ece25a29a806c3b727e5beaaebb2ef8fa92"},{"sha":"f23814b9092ec5b5a69527e4004f2f11d7e424c3","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: remove unused must_be_root functions","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/f23814b9092ec5b5a69527e4004f2f11d7e424c3"},{"sha":"80b78fe53ca11de9da0c2c9751999430b08de2ce","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: move ssh code to ssh.py\n\nMove more code out of the script and into importable python.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/80b78fe53ca11de9da0c2c9751999430b08de2ce"},{"sha":"951ac4ce28830b0165dfc2e547ba5867f11b0573","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: simplify config loading\n\nOriginally, afs-robotest would create an in-memory configuration filled with\ndefault values. These defaults could be overridden by values read from a config\nfile.  If the config file name was the current default file, and was not\npresent, the in-memory defaults would be used for commands. If the user\nspecified the config file, and it was not found, the script would exit with an\nerror message.\n\nIn practice, we always use a config file and run 'config init' at least once to\ncreate the initial file.\n\nSo from now on, require 'config init' to be the first command to be run. This\nwill create a config file filled with default values.  All commands, except\n'config init', will load the config from a config file.  Config init will not\ntry to load a config file, but rather create new files (and only new files)\nfilled with default values.  The in-memory configuration used during command\nprocessing will have options loaded from the file and only from the file.\n\nThe name of the config file can be given on the command line with the\n--config/-c option. The default name is ~/.afsrobotestrc/afs-robotest.conf,\nwhich can be overridden by the env var AFS_ROBOTEST_CONF.\n\nThe 'config init' will create the initial config file filled with default\nvalues. This is the only command that does not expect a pre-existing file.\n\nMove the env vars back to the script where they belong.\n\nAdd new functions to load and save the config and add unit tests.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/951ac4ce28830b0165dfc2e547ba5867f11b0573"},{"sha":"940b527e023207f022665bbcaebb5cb3c21ee630","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: config copy and unset subcommands\n\nAdd the config copy command to clone a config file to a new file\nand the config unset command to remove options from a config file.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/940b527e023207f022665bbcaebb5cb3c21ee630"},{"sha":"50e25534a11037669012650ac80f51d2a4de3262","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: optstr/optbool required option\n\nAdd a required option for config options that must be set.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/50e25534a11037669012650ac80f51d2a4de3262"},{"sha":"89a2f6c9cd934f3edc04ee347f3013a9c659fbcc","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: remove AFS_ROBOTEST_SSH env var\n\nInstead of an extra env var, require the config option to be set.  Change the\nssh create sub-command to automatically set the keyfile options on success.\nAdd the --keyfile option to ssh create so a non-default name can be specified\nby the user.  An existing key file can be used, in which case, the config set\ncommand can be used to set the name in the config.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/89a2f6c9cd934f3edc04ee347f3013a9c659fbcc"},{"sha":"2d01cf0da3a994938b2f771021b9b1424894ba1c","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: remove AFS_ROBOTEST_ETC env var\n\nRemove this extra env var, since AFS_ROBOTEST_CONF includes the path, we don't\nneed this one.\n\nDo not use AFS_ROBOTEST_ROOT as a default for path:root in the config file. Use\nthe env vars for command line options defaults only, not for config file\ndefaults.  That leads down to a slipper slope of complexity.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/2d01cf0da3a994938b2f771021b9b1424894ba1c"},{"sha":"bf382f932ddecc27de400c0a458fe6c59c1b1aaf","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: move setup/run/teardown code to a module\n\nMove the setup/run/teardown code out of the script and into\nan importable python module.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/bf382f932ddecc27de400c0a458fe6c59c1b1aaf"},{"sha":"860b6000c8dc99327d758efb22839cb8361c6f85","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: minor clean up","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/860b6000c8dc99327d758efb22839cb8361c6f85"},{"sha":"214322b23e38017ba192b9706a4ec72d70dc5771","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: remove empty unit tests","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/214322b23e38017ba192b9706a4ec72d70dc5771"},{"sha":"35c90d0d1fbec14f2c433df1b3ee6399e4c05da5","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"install: remove mkdir .afsrobotestrc from install\n\nThe afs-robotest config init command will now make the directory\nfor the config file, so remove this hardcoded name from the\ninstall script.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/35c90d0d1fbec14f2c433df1b3ee6399e4c05da5"},{"sha":"e792e53ddf459951a8131b51e5d0e1d3a98ed4e1","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: add the README file","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/e792e53ddf459951a8131b51e5d0e1d3a98ed4e1"},{"sha":"2bba64c0f63e812dfd7a4035caa1f300c4ef0d37","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: error message typo","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/2bba64c0f63e812dfd7a4035caa1f300c4ef0d37"},{"sha":"efbf79dcf1706a687ce445739cea4586970e724a","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: sub commmand context manager\n\nRun sub-commands in a context. Centralize log file management\nand config loading in the context manager.","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/efbf79dcf1706a687ce445739cea4586970e724a"},{"sha":"55de22fcda9d5ef3727552d29979a555a684c39e","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: use with statements for progress messages","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/55de22fcda9d5ef3727552d29979a555a684c39e"},{"sha":"1abb6aab233fdf22acc6298459bf1c21487eee5e","author":{"name":"Michael Meffie","email":"db04ebe472fb2904e34c86ba6aa9d50f9efa69f1@sinenomine.net"},"message":"afsrobot: improve runner.py","distinct":false,"url":"https://api.github.com/repos/openafs-contrib/openafs-robotest/commits/1abb6aab233fdf22acc6298459bf1c21487eee5e"}]}
{"actor":{"display_login":"meffie"}}