Top level config:
options
key | Description |
---|---|
cleanup | Remove .zip/.tar files after we have extracted something. Useful in container builds / CI |
maxdownloads | number of concurrent downloads to allow. Default is number of releases |
releasepath | Path to publish files to |
binpath | Path to directory where symlinks to binaries will be created, defaults to releasepath |
tokenvar | github token to use for auth. You can get yourself rate limited if you have a sizeable config. Instructions to generate a token are here. This config.tokenvar is left for compatibility and can also be set in config.sources for github.com |
upx | config to enable upx shrinking. Details below |
By default binman configures two sources github.com
and gitlab.com
without authentication. Currently the only supported apitypes are github
and gitlab
. You can supply config to use your internal github or gitlab instances like the below example. Downloads do not currently have authentication, expect this in a future release!
config:
releasepath: # path to keep fetched releases. $HOME/binMan is the default
maxdownloads: 1
sources:
- name: gitlab.com
tokenvar: GL_TOKEN
apitype: gitlab
- name: github.com
tokenvar: GH_TOKEN
apitype: github
- name: myprivate.github.com
tokenvar: GH_TOKEN
apitype: github
- name: myprivate.gitlab.com
tokenvar: GL_TOKEN
apitype: gitlab
- name: myprivatebinman.mycompany.com
apitype: binman
releases:
- repo: rjbrown57/binman # by default github will be the source
- repo: myprivate.github.com/myorg/myproject # source can be supplied in the repo key
- repo: mygitlaborg/mygitlabproject
source: myprivate.gitlab.com # source can also be supplied via the source key. source must match the name field of configured sources.
These options can be set per release
key | Description |
---|---|
arch | target architecture (can be templated similar to externalurl) |
cleanup | Remove .zip/.tar files after we have extracted something. Useful in container builds / CI |
downloadonly | default false . Set to true if you don’t want binman to try to extract and link the asset |
externalurl | see externalurl support |
linkname | by default binman will create a symlink matching the project name. This can be overridden with linkname set per release |
os | target OS (can be templated similar to externalurl) |
releasefilename | in some cases project publish assets that have different names than the github project. For example cilium-cli publishes a cli cilium . We would set cilium here so binman knows what to look for |
releasepath | Alternate releasepath from what is set in the main config |
source | git source to get release from. By default set to “github.com”. Must match the name key of a configured source. See config-sources |
upx | see upx Config |
version | pin to a specific release version |
postcommands | see post commands |
postonly | only run post commands after we have checked for new versions. This allows binman to trigger apt/yum/brew or something like that |
excludeos | list of Operating Systems to exclude this release from, useful when you know there are certain OS’s that a specific repo doesn’t support so you don’t get an error |
The binman config
subcommand can be used for operations related to your binman config file. Use-c
or $BINMAN_CONFIG
for a non standard config path.
to view your config run binman config get
to edit your config run binman config edit
. This command will make use of whatever editor your $EDITOR var is pointed at.
To add a new repo to your config you can run binman config add anchore/syft
. This will add repo: anchore/syft
to our config file in the releases section. If further configuration is required do so with binman config edit