Crow CI plugin library
Library for creating Crow CI plugins
Provides basic structure and helpers to load Crow CI environment variables while also supporting reading Drone CI environment variables where available.
Adds logging support based on zerolog library and allows configurable HTTP client library.
Builtin settings
| Settings Name | Environment variable | Default | Description | |
|---|---|---|---|---|
log_level |
- | info |
Sets log level (panic, fatal, error, warn, info, debug, trace) |
|
skip_verify |
- | false |
- | Skip verification of TLS certificate |
SOCKS_PROXY |
none | SOCKS5 proxy to use for connections | ||
SOCKS_PROXY_OFF |
none | Do not use SOCKS5 proxy |
Creating plugin
packagemainimport("context""codeberg.org/crow-plugins/plugin-lib""github.com/rs/zerolog/log""github.com/urfave/cli/v3")typeSettingsstruct{// TODO: Plugin settingsSampleFlagstring}typePluginstruct{*plugin.PluginSettings*Settings}func(p*Plugin)Flags()[]cli.Flag{return[]cli.Flag{// TODO: Add flags&cli.StringFlag{Name:"sample.flag",Usage:"sample flag",Sources:cli.EnvVars("PLUGIN_SAMPLE_FLAG"),Destination:&p.Settings.SampleFlag,},}}func(p*Plugin)Execute(ctxcontext.Context)error{// TODO: Implement executionlog.Debug().Msg("executed")returnnil}funcmain(){p:=&Plugin{Settings:&Settings{},}p.Plugin=plugin.New(plugin.Options{Name:"sample-plugin",Description:"Sample plugin",Flags:p.Flags(),Execute:p.Execute,})p.Run()}