mirror of
https://codeberg.org/woodpecker-plugins/go-plugin.git
synced 2024-11-24 22:35:39 +01:00
Woodpecker CI plugin library
7a77b4deb6
This PR contains the following updates: | Package | Update | Change | |---|---|---| | golang | minor | `1.18` -> `1.21` | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "before 4am" (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMi4wIiwidXBkYXRlZEluVmVyIjoiMzcuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/9 Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de> Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de> |
||
---|---|---|
.woodpecker.yaml | ||
commit.go | ||
flags.go | ||
go.mod | ||
go.sum | ||
http.go | ||
LICENSE | ||
logger.go | ||
metadata_test.go | ||
metadata.go | ||
pipeline.go | ||
plugin_test.go | ||
plugin.go | ||
README.md | ||
renovate.json | ||
repo.go | ||
step.go | ||
system.go |
Library for creating Woodpecker CI plugins
Provides basic structure and helpers to load Woodpecker 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 |
- |
SOCKS_PROXY |
none | SOCKS5 proxy to use for connections | |
SOCKS_PROXY_OFF |
none | Do not use SOCKS5 proxy |
Creating plugin
import (
"context"
"codeberg.org/woodpecker-plugins/go-plugin"
"github.com/urfave/cli/v2"
"github.com/rs/zerolog/log"
)
type Settings struct {
// TODO: Plugin settings
SampleFlag string
}
type Plugin struct {
*plugin.Plugin
Settings *Settings
}
func (p *Plugin) Flags() []cli.Flag {
return []cli.Flag{
// TODO: Add flags
&cli.StringFlag{
Name: "sample.flag",
Usage: "sample flag",
EnvVars: []string{"PLUGIN_SAMPLE_FLAG"},
Destination: &p.Settings.SampleFlag,
},
}
}
func (p *Plugin) Execute(ctx context.Context) error {
// TODO: Implement execution
log.Debug().Msg("executed")
return nil
}
func main() {
p := &Plugin{
&Settings{}
}
p.Plugin = plugin.New(Options{
Name: "sample-plugin",
Description: "Sample plugin",
Flags: p.Flags(),
Execute: p.Execute,
})
p.Run()
}