Compare commits

..

105 Commits

Author SHA1 Message Date
oauth e8db412499 🎉 Release 1.0.3 (#77)
This PR was opened by the [ready-release-go](https://github.com/woodpecker-ci/plugin-ready-release-go) plugin. When you're ready to do a release, you can merge this pull-request and a new release with version `1.0.3` will be created automatically. If you're not ready to do a release yet, that's fine, whenever you add more changes to `main` this pull-request will be updated.

## Options

- [ ] Mark this version as a release candidate

## [1.0.3](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.3) - 2026-03-07

### 📦️ Dependency

- fix(deps): update module github.com/urfave/cli/v3 to v3.7.0 [[#80](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/80)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v4 [[#78](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/78)]
- fix(deps): update module golang.org/x/net to v0.51.0 [[#79](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/79)]
- chore(deps): update dependency go to v1.26.0 [[#74](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/74)]
- chore(deps): update golang docker tag to v1.26 [[#75](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/75)]
- fix(deps): update module golang.org/x/net to v0.50.0 [[#76](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/76)]

Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/77
Reviewed-by: Lauris BH <lafriks@noreply.codeberg.org>
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2026-03-11 17:16:33 +01:00
woodpecker-bot 685ac42fc4 chore(deps): update dependency go to v1.26.1 2026-03-07 00:05:47 +00:00
woodpecker-bot f0168dce22 fix(deps): update module github.com/urfave/cli/v3 to v3.7.0 (#80)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/80
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-03-03 09:17:44 +01:00
woodpecker-bot a811e40032 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v4 (#78)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/78
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-02-28 08:13:43 +01:00
woodpecker-bot e5e33d41e5 fix(deps): update module golang.org/x/net to v0.51.0 (#79)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/79
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-02-28 08:04:12 +01:00
woodpecker-bot 8eadd31abf chore(deps): update dependency go to v1.26.0 (#74)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/74
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-02-14 08:52:34 +01:00
woodpecker-bot aded02e977 chore(deps): update golang docker tag to v1.26 (#75)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/75
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-02-14 08:52:15 +01:00
woodpecker-bot 9e3162422c fix(deps): update module golang.org/x/net to v0.50.0 (#76)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/76
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2026-02-14 08:52:00 +01:00
woodpecker-bot e9e7d50eb6 chore(deps): update dependency go to v1.25.7 2026-02-07 00:08:34 +00:00
woodpecker-bot 5959a73881 fix(deps): update module github.com/urfave/cli/v3 to v3.6.2 2026-01-31 16:04:49 +00:00
woodpecker-bot dc3aea27df fix(deps): update module golang.org/x/net to v0.49.0 2026-01-17 01:08:11 +00:00
woodpecker-bot 87698ede13 chore(deps): update dependency go to v1.25.6 2026-01-17 00:11:52 +00:00
woodpecker-bot 3393bdb542 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.4.1 2026-01-10 05:02:57 +00:00
oauth 2dd0dc173f 🎉 Release 1.0.2 (#68)
This PR was opened by the [ready-release-go](https://github.com/woodpecker-ci/plugin-ready-release-go) plugin. When you're ready to do a release, you can merge this pull-request and a new release with version `1.0.2` will be created automatically. If you're not ready to do a release yet, that's fine, whenever you add more changes to `main` this pull-request will be updated.

## Options

- [ ] Mark this version as a release candidate

## [1.0.2](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.2) - 2026-01-09

### 📦️ Dependency

- fix(deps): update module github.com/urfave/cli/v3 to v3.6.0 [[#72](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/72)]
- chore(deps): update dependency go to v1.25.4 [[#71](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/71)]
- fix(deps): update module github.com/urfave/cli/v3 to v3.5.0 [[#70](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/70)]
- chore(deps): update dependency go to v1.25.3 [[#69](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/69)]
- fix(deps): update module golang.org/x/net to v0.46.0 [[#67](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/67)]
- chore(deps): update dependency go to v1.25.2 [[#66](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/66)]

Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/68
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2026-01-09 02:04:36 +01:00
woodpecker-bot c5308d94ba fix(deps): update module golang.org/x/net to v0.48.0 2025-12-13 00:08:21 +00:00
woodpecker-bot 2f1f602de3 chore(deps): update dependency go to v1.25.5 2025-12-06 00:10:16 +00:00
woodpecker-bot 87f30c981b fix(deps): update module github.com/urfave/cli/v3 to v3.6.1 2025-11-16 20:05:56 +00:00
woodpecker-bot 60c0df20cd fix(deps): update module golang.org/x/net to v0.47.0 2025-11-15 00:07:16 +00:00
woodpecker-bot 6027b2d758 fix(deps): update module github.com/urfave/cli/v3 to v3.6.0 (#72)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/72
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-11-09 13:24:46 +01:00
woodpecker-bot 00e236ab6d chore(deps): update dependency go to v1.25.4 (#71)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/71
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-11-08 08:30:08 +01:00
woodpecker-bot 54513ba0ec fix(deps): update module github.com/urfave/cli/v3 to v3.5.0 (#70)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/70
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-10-25 08:40:50 +02:00
woodpecker-bot 14342137fa chore(deps): update dependency go to v1.25.3 (#69)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/69
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-10-18 08:26:01 +02:00
woodpecker-bot abe46c2b5d fix(deps): update module golang.org/x/net to v0.46.0 (#67)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/67
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-10-11 08:22:37 +02:00
woodpecker-bot 649294ac47 chore(deps): update dependency go to v1.25.2 (#66)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/66
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-10-11 08:21:41 +02:00
oauth 10b75b259b 🎉 Release 1.0.1 (#51)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/51
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2025-09-30 14:59:41 +02:00
woodpecker-bot d25844e305 fix(deps): update module github.com/urfave/cli/v3 to v3.4.1 (#64)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/64
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-09-13 08:18:39 +02:00
woodpecker-bot ac40cced18 chore(deps): update dependency go to v1.25.1 (#61)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/61
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-09-13 08:18:24 +02:00
woodpecker-bot aa85fcbce5 fix(deps): update module github.com/stretchr/testify to v1.11.1 (#63)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/63
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-09-13 07:53:54 +02:00
woodpecker-bot 8ef4f8f9cc fix(deps): update module golang.org/x/net to v0.44.0 (#65)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/65
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-09-13 07:52:48 +02:00
woodpecker-bot a23e4f7e42 chore(deps): update golang docker tag to v1.25 (#62)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/62
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-09-13 07:52:30 +02:00
woodpecker-bot 5e6aff13a7 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.4.0 (#59)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/59
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-08-09 08:43:06 +02:00
woodpecker-bot 6ce864b6d9 fix(deps): update module golang.org/x/net to v0.43.0 (#60)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/60
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-08-09 08:42:44 +02:00
woodpecker-bot a72f843148 chore(deps): update dependency go to v1.24.6 (#58)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/58
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-08-09 08:42:21 +02:00
woodpecker-bot 9cf9134d0e fix(deps): update module golang.org/x/net to v0.42.0 (#57)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/57
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-07-12 07:38:11 +02:00
woodpecker-bot 16d1fd423d chore(deps): update dependency go to v1.24.5 (#56)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/56
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-07-12 07:37:54 +02:00
woodpecker-bot 34d6107edb chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.3.0 (#55)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/55
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-07-05 07:33:43 +02:00
woodpecker-bot 3908f282af fix(deps): update module github.com/urfave/cli/v3 to v3.3.8 (#54)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/54
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-06-14 07:58:32 +02:00
woodpecker-bot 15556b694d fix(deps): update module golang.org/x/net to v0.41.0 (#53)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/53
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-06-09 15:34:44 +02:00
woodpecker-bot ce08e0142d chore(deps): update dependency go to v1.24.4 (#52)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/52
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-06-09 15:34:28 +02:00
woodpecker-bot 32c3c2a6f1 chore(deps): update dependency go to v1.24.3 (#50)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/50
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-05-12 06:21:43 +00:00
woodpecker-bot 8ddffff10c fix(deps): update module github.com/urfave/cli/v3 to v3.3.3 2025-05-11 00:16:10 +00:00
woodpecker-bot 7668bbb9be fix(deps): update module golang.org/x/net to v0.40.0 2025-05-10 00:09:33 +00:00
woodpecker-bot d73d41e148 fix(deps): update module github.com/urfave/cli/v3 to v3.3.2 2025-05-03 00:18:23 +00:00
woodpecker-bot fb4faa61f2 fix(deps): update module github.com/urfave/cli/v3 to v3.3.1 2025-04-27 22:06:10 +00:00
woodpecker-bot 645238beec fix(deps): update module golang.org/x/net to v0.39.0 2025-04-26 01:16:28 +00:00
woodpecker-bot 612b6a34dd chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.2.0 2025-04-26 00:10:35 +00:00
oauth dad2b481a2 🎉 Release 1.0.0 (#45)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/45
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2025-04-24 07:27:30 +00:00
Robert Kaussow e3f4284781 Bump urfave/cli to v3.2.0 (#49)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/49
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2025-04-24 06:44:11 +00:00
Robert Kaussow 044f72ed49 feat: add custom cli flags (#48)
Adds two custom cli flags:
- `StringMapFlag` parses JSON to string map used for plugin map options
- `StringSliceFlag` parses comma-separated plugin slice options to slice and supports escaping

Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/48
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2025-04-23 18:01:11 +00:00
woodpecker-bot 94ba1fe374 fix(deps): update module github.com/urfave/cli/v3 to v3.1.1 (#47)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/47
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-04-10 04:02:45 +00:00
woodpecker-bot 89c7be805f chore(deps): update dependency go to v1.24.2 (#46)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/46
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-04-10 04:02:15 +00:00
woodpecker-bot c13a4deeba chore(deps): update golangci/golangci-lint docker tag to v2 (#44)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/44
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-03-29 05:35:22 +00:00
woodpecker-bot 770c8d6ae2 fix(deps): update module golang.org/x/net to v0.38.0 2025-03-29 01:05:29 +00:00
woodpecker-bot 9993b2b277 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.1.4 2025-03-29 00:06:08 +00:00
woodpecker-bot 545ea71b3c fix(deps): update module github.com/rs/zerolog to v1.34.0 2025-03-22 02:03:18 +00:00
woodpecker-bot 7dffd4a970 fix(deps): update module golang.org/x/net to v0.37.0 2025-03-08 00:08:03 +00:00
oauth 4cb087c13c 🎉 Release 0.7.1 (#39)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/39
Reviewed-by: xoxys <xoxys@noreply.codeberg.org>
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2025-02-16 13:43:16 +00:00
woodpecker-bot 67497c7b50 chore(deps): update golangci/golangci-lint docker tag to v1.64 (#42)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/42
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-02-16 09:28:28 +00:00
woodpecker-bot 3afdbec338 chore(deps): update golang docker tag to v1.24 (#41)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/41
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-02-16 09:19:24 +00:00
woodpecker-bot 16e5ebfe91 fix(deps): update module golang.org/x/net to v0.35.0 (#43)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/43
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-02-16 09:19:09 +00:00
woodpecker-bot 8c15dbc919 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.1.3 (#40)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/40
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2025-01-25 06:23:13 +00:00
woodpecker-bot 33995f25c3 fix(deps): update module golang.org/x/net to v0.34.0 2025-01-11 00:05:14 +00:00
woodpecker-bot ba75700cc4 chore(deps): update golangci/golangci-lint docker tag to v1.63 2025-01-04 00:07:03 +00:00
woodpecker-bot 0db17abc92 chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.1.1 2024-12-29 19:14:34 +00:00
woodpecker-bot 0c8f2b173b fix(deps): update module golang.org/x/net to v0.33.0 2024-12-21 00:04:46 +00:00
woodpecker-bot edc91fba9e chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.1.0 2024-12-10 00:05:21 +00:00
woodpecker-bot dec7e76c4e fix(deps): update module golang.org/x/net to v0.32.0 2024-12-08 00:12:50 +00:00
woodpecker-bot 738d85cc8e chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3 (#37)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/woodpeckerci/plugin-ready-release-go](https://github.com/woodpecker-ci/plugin-ready-release-go) | major | `2.1.1` -> `3.0.0` |

---

### Release Notes

<details>
<summary>woodpecker-ci/plugin-ready-release-go (docker.io/woodpeckerci/plugin-ready-release-go)</summary>

### [`v3.0.0`](https://github.com/woodpecker-ci/plugin-ready-release-go/blob/HEAD/CHANGELOG.md#300---2024-12-02)

[Compare Source](https://github.com/woodpecker-ci/plugin-ready-release-go/compare/2.1.1...3.0.0)

##### ❤️ Thanks to all contributors! ❤️

[@&#8203;6543](https://github.com/6543), [@&#8203;anbraten](https://github.com/anbraten), [@&#8203;xoxys](https://github.com/xoxys)

##### 💥 Breaking changes

-   Disable commentOnReleasedPullRequests by default \[[#&#8203;253](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/253)]

##### 📈 Enhancement

-   Add tests for changelog generation \[[#&#8203;245](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/245)]
-   Use separate build stage to install dependencies and share node_modules \[[#&#8203;244](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/244)]

##### 📦️ Dependency

-   chore(deps): lock file maintenance \[[#&#8203;252](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/252)]
-   chore(deps): update dependency prettier to v3.4.1 \[[#&#8203;251](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/251)]
-   chore(deps): update dependency [@&#8203;types/node](https://github.com/types/node) to v22.10.1 \[[#&#8203;250](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/250)]
-   chore(deps): update vitest monorepo to v2.1.6 \[[#&#8203;249](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/249)]
-   chore(deps): lock file maintenance \[[#&#8203;243](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/243)]
-   chore(deps): update pre-commit hook igorshubovych/markdownlint-cli to v0.43.0 \[[#&#8203;241](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/241)]
-   chore(deps): update dependency [@&#8203;types/node](https://github.com/types/node) to v22.9.3 \[[#&#8203;240](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/240)]
-   chore(deps): lock file maintenance \[[#&#8203;236](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/236)]
-   chore(deps): update dependency typescript to v5.7.2 \[[#&#8203;239](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/239)]
-   chore(deps): update dependency [@&#8203;types/node](https://github.com/types/node) to v22.9.2 \[[#&#8203;238](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/238)]
-   chore(deps): update vitest monorepo to v2.1.5 \[[#&#8203;235](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/235)]
-   chore(deps): lock file maintenance \[[#&#8203;232](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/232)]
-   chore(deps): update woodpeckerci/plugin-ready-release-go docker tag to v2.1.1 \[[#&#8203;231](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/231)]
-   chore(deps): lock file maintenance \[[#&#8203;229](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/229)]

##### Misc

-   Add release-please to readme \[[#&#8203;248](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/248)]
-   Separate pr-labels to changes code into an analyser \[[#&#8203;237](https://github.com/woodpecker-ci/plugin-ready-release-go/pull/237)]

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * 0,6" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiIzOS41Ni4yIiwidXBkYXRlZEluVmVyIjoiMzkuNTYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jeSJdfQ==-->

Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/37
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2024-12-07 10:28:39 +00:00
6543 0bb8640938 Bump min golan version to v1.20 (#36)
https://github.com/urfave/cli/issues/2024
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/36
2024-12-03 17:06:37 +00:00
woodpecker-bot 9748a14bd5 fix(deps): update module github.com/urfave/cli/v3 to v3.0.0-beta1 2024-12-01 00:15:18 +00:00
woodpecker-bot 42e963e908 fix(deps): update module github.com/stretchr/testify to v1.10.0 2024-11-24 00:14:13 +00:00
woodpecker-bot d899146040 fix(deps): update module github.com/urfave/cli/v3 to v3.0.0-alpha9.4 2024-11-23 00:05:21 +00:00
woodpecker-bot a5e5444f6a fix(deps): update module golang.org/x/net to v0.31.0 2024-11-19 00:04:47 +00:00
woodpecker-bot 54eb1bdcdd chore(deps): update woodpeckerci/plugin-reviewdog-golangci-lint docker tag to v1.61 2024-11-18 00:06:18 +00:00
woodpecker-bot daf65e94bb chore(deps): update golangci/golangci-lint docker tag to v1.62 2024-11-17 00:12:25 +00:00
woodpecker-bot 7f87818bf7 fix(deps): update module github.com/urfave/cli/v3 to v3.0.0-alpha9.3 2024-11-16 00:04:38 +00:00
oauth 00a58f4a06 🎉 Release 0.7.0 (#35)
This PR was opened by the [ready-release-go](https://github.com/woodpecker-ci/plugin-ready-release-go) plugin. When you're ready to do a release, you can merge this pull-request and a new release with version `0.7.0` will be created automatically. If you're not ready to do a release yet, that's fine, whenever you add more changes to `main` this pull-request will be updated.

## Options

- [ ] Mark this version as a release candidate

## [0.7.0](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v0.7.0) - 2024-11-13

### 📈 Enhancement

- Add support for CI_PIPELINE_FILES [[#33](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/33)]

### 📦️ Dependency

- fix(deps): update github.com/urfave/cli/v3 digest to cd7d34a [[#32](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/32)]

### Misc

- Use ready-release-go plugin [[#34](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/34)]

Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/35
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: oauth <woodpecker-bot@obermui.de>
Co-committed-by: oauth <woodpecker-bot@obermui.de>
2024-11-13 01:06:27 +00:00
6543 1d5ccf599c Use ready-release-go plugin (#34)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/34
2024-11-13 01:04:48 +00:00
6543 26cc02d9d9 Add support for CI_PIPELINE_FILES (#33)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/33
2024-11-13 01:01:15 +00:00
woodpecker-bot b43eefd089 fix(deps): update module github.com/urfave/cli/v3 to v3.0.0-alpha9.1 2024-10-19 00:08:46 +00:00
woodpecker-bot 3cf11a328e fix(deps): update module golang.org/x/net to v0.30.0 2024-10-06 00:14:58 +00:00
woodpecker-bot dc21eb0c71 fix(deps): update github.com/urfave/cli/v3 digest to 20ef97b 2024-10-05 00:08:32 +00:00
woodpecker-bot 06e90d56f8 chore(deps): update golangci/golangci-lint docker tag to v1.61 2024-09-14 00:06:55 +00:00
woodpecker-bot 33cbc07540 fix(deps): update module golang.org/x/net to v0.29.0 2024-09-08 00:20:37 +00:00
woodpecker-bot cac90b61b0 fix(deps): update github.com/urfave/cli/v3 digest to 31c5c84 2024-09-07 00:08:49 +00:00
woodpecker-bot 2b59a3028d fix(deps): update github.com/urfave/cli/v3 digest to 3d76e1b 2024-08-31 00:07:36 +00:00
woodpecker-bot 2b17135e0c fix(deps): update github.com/urfave/cli/v3 digest to cd7d34a (#32)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/32
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2024-08-26 06:21:25 +00:00
woodpecker-bot c79c27bb51 chore(deps): update golangci/golangci-lint docker tag to v1.60 2024-08-19 00:07:48 +00:00
woodpecker-bot 5859397549 fix(deps): update github.com/urfave/cli/v3 digest to 3110c0e 2024-08-18 00:17:52 +00:00
woodpecker-bot b9a4363bd9 chore(deps): update golang docker tag to v1.23 2024-08-17 00:07:18 +00:00
woodpecker-bot 81050b18f0 fix(deps): update module golang.org/x/net to v0.28.0 2024-08-10 00:08:54 +00:00
6543 67b6cdf4a6 Migrate to github.com/urfave/cli/v3 (#29)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/29
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: 6543 <6543@obermui.de>
Co-committed-by: 6543 <6543@obermui.de>
2024-07-22 23:32:14 +00:00
6543 2e397e1b02 Add .gitignore (#28)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/28
2024-07-22 21:37:31 +00:00
6543 525775bd26 Add nix flake (#31)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/31
2024-07-22 21:37:09 +00:00
6543 1b0f1c5754 Format Readme (#30)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/30
2024-07-22 21:35:53 +00:00
Lauris BH 7ea01d1b3b Add Forgejo forge type constant (#27)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/27
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-committed-by: Lauris BH <lauris@nix.lv>
2024-07-18 18:32:09 +00:00
woodpecker-bot 212153caee fix(deps): update module golang.org/x/net to v0.27.0 2024-07-06 00:07:20 +00:00
woodpecker-bot 1842b6efa6 fix(deps): update module golang.org/x/net to v0.26.0 2024-06-09 00:16:37 +00:00
woodpecker-bot d493cf5c51 chore(deps): update woodpeckerci/plugin-reviewdog-golangci-lint docker tag to v1.59 2024-06-08 00:05:34 +00:00
woodpecker-bot 19c216c533 chore(deps): update golangci/golangci-lint docker tag to v1.59 (#26)
Reviewed-on: https://codeberg.org/woodpecker-plugins/go-plugin/pulls/26
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-authored-by: woodpecker-bot <woodpecker-bot@obermui.de>
Co-committed-by: woodpecker-bot <woodpecker-bot@obermui.de>
2024-06-02 12:06:57 +00:00
woodpecker-bot c182818d82 fix(deps): update module github.com/rs/zerolog to v1.33.0 2024-05-25 00:09:55 +00:00
woodpecker-bot 38dcac787e fix(deps): update module golang.org/x/net to v0.25.0 2024-05-11 00:06:54 +00:00
woodpecker-bot 5c32612e8d chore(deps): update golangci/golangci-lint docker tag to v1.58 2024-05-04 00:06:24 +00:00
woodpecker-bot 567908df09 fix(deps): update module github.com/urfave/cli/v2 to v2.27.2 2024-04-28 00:13:40 +00:00
woodpecker-bot 72d3ea674d fix(deps): update module golang.org/x/net to v0.24.0 2024-04-06 00:08:04 +00:00
29 changed files with 1285 additions and 254 deletions
+23
View File
@@ -0,0 +1,23 @@
### Go ###
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
vendor/
# Go workspace file
go.work
### IDE ###
.vscode/
+69
View File
@@ -0,0 +1,69 @@
version: "2"
linters:
default: none
enable:
- bidichk
- errcheck
- errorlint
- forbidigo
- govet
- ineffassign
- misspell
- revive
- staticcheck
- unused
- whitespace
- zerologlint
settings:
errorlint:
errorf-multi: true
forbidigo:
forbid:
- pattern: context\.WithCancel$
- pattern: ^print.*$
misspell:
locale: US
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
revive:
rules:
- name: var-naming
arguments:
- []
- []
- - skipPackageNameChecks: true
skip-package-name-collision-with-go-std: true
formatters:
enable:
- gci
- gofmt
- gofumpt
settings:
gci:
sections:
- standard
- default
- prefix(go.woodpecker-ci.org/woodpecker)
custom-order: true
gofmt:
simplify: true
rewrite-rules:
- pattern: interface{}
replacement: any
gofumpt:
extra-rules: true
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
-34
View File
@@ -1,34 +0,0 @@
when:
- event: [pull_request, tag, cron]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- 'renovate/*'
variables:
- &golang "golang:1.22"
- &golangci-lint "golangci/golangci-lint:v1.57-alpine"
- &reviewdog-golangci-lint "woodpeckerci/plugin-reviewdog-golangci-lint:1.57"
steps:
vendor:
image: *golang
commands: go mod vendor
review-go:
image: *reviewdog-golangci-lint
settings:
token:
from_secret: reviewdog_token
when:
event: pull_request
lint:
image: *golangci-lint
commands: golangci-lint run
when:
event: [push, tag, cron]
test:
image: *golang
commands: go test --cover ./...
+24
View File
@@ -0,0 +1,24 @@
when:
- event: [pull_request, tag, cron]
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- "renovate/*"
variables:
- &golang "golang:1.26"
steps:
vendor:
image: *golang
commands: go mod vendor
lint:
image: *golang
commands: make lint
when:
event: [push, tag, cron]
test:
image: *golang
commands: make test
+14
View File
@@ -0,0 +1,14 @@
when:
- event: push
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- release/*
steps:
- name: release-helper
image: docker.io/woodpeckerci/plugin-ready-release-go:4.0.0
settings:
release_branch: ${CI_COMMIT_BRANCH}
git_email: woodpecker-bot@obermui.de
forge_token:
from_secret: gitea_token
+111
View File
@@ -0,0 +1,111 @@
# Changelog
## [1.0.3](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.3) - 2026-03-07
### ❤️ Thanks to all contributors! ❤️
@woodpecker-bot
### 📦️ Dependency
- fix(deps): update module github.com/urfave/cli/v3 to v3.7.0 [[#80](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/80)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v4 [[#78](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/78)]
- fix(deps): update module golang.org/x/net to v0.51.0 [[#79](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/79)]
- chore(deps): update dependency go to v1.26.0 [[#74](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/74)]
- chore(deps): update golang docker tag to v1.26 [[#75](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/75)]
- fix(deps): update module golang.org/x/net to v0.50.0 [[#76](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/76)]
## [1.0.2](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.2) - 2026-01-09
### ❤️ Thanks to all contributors! ❤️
@woodpecker-bot
### 📦️ Dependency
- fix(deps): update module github.com/urfave/cli/v3 to v3.6.0 [[#72](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/72)]
- chore(deps): update dependency go to v1.25.4 [[#71](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/71)]
- fix(deps): update module github.com/urfave/cli/v3 to v3.5.0 [[#70](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/70)]
- chore(deps): update dependency go to v1.25.3 [[#69](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/69)]
- fix(deps): update module golang.org/x/net to v0.46.0 [[#67](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/67)]
- chore(deps): update dependency go to v1.25.2 [[#66](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/66)]
## [1.0.1](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.1) - 2025-09-13
### ❤️ Thanks to all contributors! ❤️
@woodpecker-bot
### 📦️ Dependency
- fix(deps): update module github.com/urfave/cli/v3 to v3.4.1 [[#64](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/64)]
- chore(deps): update dependency go to v1.25.1 [[#61](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/61)]
- fix(deps): update module github.com/stretchr/testify to v1.11.1 [[#63](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/63)]
- fix(deps): update module golang.org/x/net to v0.44.0 [[#65](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/65)]
- chore(deps): update golang docker tag to v1.25 [[#62](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/62)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.4.0 [[#59](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/59)]
- fix(deps): update module golang.org/x/net to v0.43.0 [[#60](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/60)]
- chore(deps): update dependency go to v1.24.6 [[#58](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/58)]
- fix(deps): update module golang.org/x/net to v0.42.0 [[#57](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/57)]
- chore(deps): update dependency go to v1.24.5 [[#56](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/56)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.3.0 [[#55](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/55)]
- fix(deps): update module github.com/urfave/cli/v3 to v3.3.8 [[#54](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/54)]
- fix(deps): update module golang.org/x/net to v0.41.0 [[#53](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/53)]
- chore(deps): update dependency go to v1.24.4 [[#52](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/52)]
- chore(deps): update dependency go to v1.24.3 [[#50](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/50)]
## [1.0.0](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v1.0.0) - 2025-04-24
### ❤️ Thanks to all contributors! ❤️
@woodpecker-bot, @xoxys
### 💥 Breaking changes
- Bump urfave/cli to v3.2.0 [[#49](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/49)]
### ✨ Features
- feat: add custom cli flags [[#48](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/48)]
### 📦️ Dependency
- fix(deps): update module github.com/urfave/cli/v3 to v3.1.1 [[#47](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/47)]
- chore(deps): update dependency go to v1.24.2 [[#46](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/46)]
- chore(deps): update golangci/golangci-lint docker tag to v2 [[#44](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/44)]
## [0.7.1](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v0.7.1) - 2025-02-16
### ❤️ Thanks to all contributors! ❤️
@6543, @woodpecker-bot
### 📦️ Dependency
- chore(deps): update golangci/golangci-lint docker tag to v1.64 [[#42](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/42)]
- chore(deps): update golang docker tag to v1.24 [[#41](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/41)]
- fix(deps): update module golang.org/x/net to v0.35.0 [[#43](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/43)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3.1.3 [[#40](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/40)]
- chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v3 [[#37](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/37)]
### Misc
- Bump min golan version to v1.20 [[#36](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/36)]
## [0.7.0](https://codeberg.org/woodpecker-plugins/go-plugin/releases/tag/v0.7.0) - 2024-11-13
### ❤️ Thanks to all contributors! ❤️
@6543, @woodpecker-bot
### 📈 Enhancement
- Add support for CI_PIPELINE_FILES [[#33](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/33)]
### 📦️ Dependency
- fix(deps): update github.com/urfave/cli/v3 digest to cd7d34a [[#32](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/32)]
### Misc
- Use ready-release-go plugin [[#34](https://codeberg.org/woodpecker-plugins/go-plugin/pulls/34)]
+41
View File
@@ -0,0 +1,41 @@
GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./.git/*")
GO_PACKAGES ?= $(shell go list ./... | grep -v /vendor/)
.PHONY: all
all: lint
vendor:
go mod tidy
go mod vendor
format: install-tools ## Format source code
@gofumpt -extra -w ${GOFILES_NOVENDOR}
formatcheck:
@([ -z "$(shell gofumpt -d $(GOFILES_NOVENDOR) | head)" ]) || (echo "Source is unformatted"; exit 1)
install-tools: ## Install development tools
@hash golangci-lint > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest ; \
fi ; \
hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
go install mvdan.cc/gofumpt@latest; \
fi ; \
.PHONY: clean
clean:
go clean -i ./...
.PHONY: lint
lint: install-tools ## Lint code
@echo "Running golangci-lint"
golangci-lint run
.PHONY: vet
vet:
@echo "Running go vet..."
@go vet $(GO_PACKAGES)
.PHONY: test
test:
go test -race -cover ./...
+8 -8
View File
@@ -8,12 +8,12 @@ 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 |
| 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
@@ -25,7 +25,7 @@ import (
"codeberg.org/woodpecker-plugins/go-plugin"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
type Settings struct {
@@ -44,7 +44,7 @@ func (p *Plugin) Flags() []cli.Flag {
&cli.StringFlag{
Name: "sample.flag",
Usage: "sample flag",
EnvVars: []string{"PLUGIN_SAMPLE_FLAG"},
Sources: cli.EnvVars("PLUGIN_SAMPLE_FLAG"),
Destination: &p.Settings.SampleFlag,
},
}
+84
View File
@@ -0,0 +1,84 @@
package cli
import (
"encoding/json"
"github.com/urfave/cli/v3"
)
// StringMapFlag is a flag type which supports JSON string maps.
type (
StringMapFlag = cli.FlagBase[map[string]string, StringMapConfig, StringMap]
)
// StringMapConfig defines the configuration for string map flags.
type StringMapConfig struct {
// Any config options can be added here if needed
}
// StringMap implements the Value and ValueCreator interfaces for string maps.
type StringMap struct {
destination *map[string]string
}
// Create implements the ValueCreator interface.
func (s StringMap) Create(v map[string]string, p *map[string]string, _ StringMapConfig) cli.Value {
*p = map[string]string{}
if v != nil {
*p = v
}
return &StringMap{
destination: p,
}
}
// ToString implements the ValueCreator interface.
func (s StringMap) ToString(v map[string]string) string {
if len(v) == 0 {
return ""
}
jsonBytes, err := json.Marshal(v)
if err != nil {
return ""
}
return string(jsonBytes)
}
// Set implements the flag.Value interface.
func (s *StringMap) Set(v string) error {
*s.destination = map[string]string{}
if v == "" {
return nil
}
err := json.Unmarshal([]byte(v), s.destination)
if err != nil {
(*s.destination)["*"] = v
}
return nil
}
// Get implements the flag.Value interface.
func (s *StringMap) Get() any {
return *s.destination
}
// String implements the flag.Value interface.
func (s *StringMap) String() string {
if s.destination == nil || len(*s.destination) == 0 {
return ""
}
jsonBytes, err := json.Marshal(*s.destination)
if err != nil {
return ""
}
return string(jsonBytes)
}
+221
View File
@@ -0,0 +1,221 @@
package cli
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
)
func TestStringMapSet(t *testing.T) {
tests := []struct {
name string
input string
want map[string]string
}{
{
name: "empty string",
input: "",
want: map[string]string{},
},
{
name: "valid JSON",
input: `{"key1":"value1","key2":"value2"}`,
want: map[string]string{"key1": "value1", "key2": "value2"},
},
{
name: "single key-value",
input: `{"key":"value"}`,
want: map[string]string{"key": "value"},
},
{
name: "non-JSON string",
input: "not-json",
want: map[string]string{"*": "not-json"},
},
{
name: "empty JSON object",
input: "{}",
want: map[string]string{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var dest map[string]string
s := &StringMap{
destination: &dest,
}
err := s.Set(tt.input)
assert.NoError(t, err)
assert.Equal(t, tt.want, dest)
})
}
}
func TestStringMapString(t *testing.T) {
tests := []struct {
name string
input map[string]string
want string
}{
{
name: "empty map",
input: map[string]string{},
want: "",
},
{
name: "nil map",
input: nil,
want: "",
},
{
name: "single key-value",
input: map[string]string{"key": "value"},
want: `{"key":"value"}`,
},
{
name: "multiple key-values",
input: map[string]string{"key1": "value1", "key2": "value2"},
want: `{"key1":"value1","key2":"value2"}`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := &StringMap{
destination: &tt.input,
}
got := s.String()
if len(tt.input) > 1 {
var expected, actual map[string]string
_ = json.Unmarshal([]byte(tt.want), &expected)
_ = json.Unmarshal([]byte(got), &actual)
assert.EqualValues(t, expected, actual)
return
}
assert.Equal(t, tt.want, got)
})
}
}
func TestStringMapGet(t *testing.T) {
tests := []struct {
name string
want map[string]string
}{
{
name: "empty map",
want: map[string]string{},
},
{
name: "single key-value",
want: map[string]string{"key": "value"},
},
{
name: "multiple key-values",
want: map[string]string{"key1": "value1", "key2": "value2"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := &StringMap{
destination: &tt.want,
}
result := s.Get()
assert.Equal(t, tt.want, result)
})
}
}
func TestStringMapCreate(t *testing.T) {
tests := []struct {
name string
input map[string]string
want map[string]string
}{
{
name: "empty map",
input: nil,
want: map[string]string{},
},
{
name: "empty map",
input: map[string]string{},
want: map[string]string{},
},
{
name: "single key-value",
input: map[string]string{"key": "value"},
want: map[string]string{"key": "value"},
},
{
name: "multiple key-values",
input: map[string]string{"key1": "value1", "key2": "value2"},
want: map[string]string{"key1": "value1", "key2": "value2"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var dest map[string]string
s := StringMap{}
config := StringMapConfig{}
got := s.Create(tt.input, &dest, config)
assert.Equal(t, tt.want, dest)
assert.Equal(t, &dest, got.(*StringMap).destination)
})
}
}
func TestStringMapToString(t *testing.T) {
tests := []struct {
name string
input map[string]string
want string
}{
{
name: "empty map",
input: map[string]string{},
want: "",
},
{
name: "single key-value",
input: map[string]string{"key": "value"},
want: `{"key":"value"}`,
},
{
name: "multiple key-values",
input: map[string]string{"key1": "value1", "key2": "value2"},
want: `{"key1":"value1","key2":"value2"}`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := StringMap{}
got := s.ToString(tt.input)
if len(tt.input) > 1 {
var expected, actual map[string]string
_ = json.Unmarshal([]byte(tt.want), &expected)
_ = json.Unmarshal([]byte(got), &actual)
assert.EqualValues(t, expected, actual)
return
}
assert.Equal(t, tt.want, got)
})
}
}
+83
View File
@@ -0,0 +1,83 @@
package cli
import (
"fmt"
"strings"
"github.com/urfave/cli/v3"
)
// StringSliceFlag is a flag type which support comma separated values and escaping to not split at unwanted lines.
type (
StringSliceFlag = cli.FlagBase[[]string, StringSliceConfig, StringSlice]
)
// StringConfig defines the configuration for string flags.
type StringSliceConfig struct {
Delimiter string
EscapeString string
}
// StringSlice implements the Value and ValueCreator interfaces for string slices.
type StringSlice struct {
destination *[]string
delimiter string
escapeString string
}
// Create implements the ValueCreator interface.
func (s StringSlice) Create(v []string, p *[]string, c StringSliceConfig) cli.Value {
*p = v
return &StringSlice{
destination: p,
delimiter: c.Delimiter,
escapeString: c.EscapeString,
}
}
// ToString implements the ValueCreator interface.
func (s StringSlice) ToString(v []string) string {
if len(v) == 0 {
return ""
}
return fmt.Sprintf("%q", strings.Join(v, s.delimiter))
}
// Set implements the flag.Value interface.
func (s *StringSlice) Set(v string) error {
if v == "" {
*s.destination = []string{}
return nil
}
out := strings.Split(v, s.delimiter)
//nolint:mnd
for i := len(out) - 2; i >= 0; i-- {
if strings.HasSuffix(out[i], s.escapeString) {
out[i] = out[i][:len(out[i])-len(s.escapeString)] + s.delimiter + out[i+1]
out = append(out[:i+1], out[i+2:]...)
}
}
*s.destination = out
return nil
}
// Get implements the flag.Value interface.
func (s *StringSlice) Get() any {
return *s.destination
}
// String implements the flag.Value interface.
func (s *StringSlice) String() string {
if s.destination == nil || len(*s.destination) == 0 {
return ""
}
return strings.Join(*s.destination, s.delimiter)
}
+225
View File
@@ -0,0 +1,225 @@
package cli
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestStringSliceSet(t *testing.T) {
tests := []struct {
name string
input string
want []string
}{
{
name: "empty string",
input: "",
want: []string{},
},
{
name: "simple comma separated",
input: "a,b",
want: []string{"a", "b"},
},
{
name: "multiple commas",
input: ",,,",
want: []string{"", "", "", ""},
},
{
name: "escaped comma",
input: ",a\\,",
want: []string{"", "a,"},
},
{
name: "escaped backslash",
input: "a,b\\,c\\\\d,e",
want: []string{"a", "b,c\\\\d", "e"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var got []string
s := &StringSlice{
destination: &got,
delimiter: ",",
escapeString: "\\",
}
err := s.Set(tt.input)
assert.NoError(t, err)
assert.Equal(t, tt.want, got)
})
}
}
func TestStringSliceString(t *testing.T) {
tests := []struct {
name string
input []string
want string
}{
{
name: "empty slice",
input: []string{},
want: "",
},
{
name: "nil slice",
input: nil,
want: "",
},
{
name: "single item",
input: []string{"a"},
want: "a",
},
{
name: "multiple items",
input: []string{"a", "b", "c"},
want: "a,b,c",
},
{
name: "items with commas",
input: []string{"a,b", "c"},
want: "a,b,c",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := &StringSlice{
destination: &tt.input,
delimiter: ",",
escapeString: "\\",
}
assert.Equal(t, tt.want, s.String())
})
}
}
func TestStringSliceGet(t *testing.T) {
tests := []struct {
name string
want []string
}{
{
name: "empty slice",
want: []string{},
},
{
name: "single item",
want: []string{"a"},
},
{
name: "multiple items",
want: []string{"a", "b", "c"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := &StringSlice{
destination: &tt.want,
delimiter: ",",
escapeString: "\\",
}
result := s.Get()
assert.Equal(t, tt.want, result)
})
}
}
func TestStringSliceCreate(t *testing.T) {
tests := []struct {
name string
input []string
want []string
config StringSliceConfig
}{
{
name: "empty slice",
input: nil,
want: []string{},
},
{
name: "default config",
input: []string{"a", "b"},
want: []string{"a", "b"},
config: StringSliceConfig{
Delimiter: ",",
EscapeString: "\\",
},
},
{
name: "custom config",
input: []string{"a", "b"},
want: []string{"a", "b"},
config: StringSliceConfig{
Delimiter: ";",
EscapeString: "#",
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var dest []string
s := StringSlice{}
got := s.Create(tt.input, &dest, tt.config)
assert.Equal(t, tt.input, dest)
assert.Equal(t, &dest, got.(*StringSlice).destination)
assert.Equal(t, tt.config.Delimiter, got.(*StringSlice).delimiter)
assert.Equal(t, tt.config.EscapeString, got.(*StringSlice).escapeString)
})
}
}
func TestStringSliceToString(t *testing.T) {
tests := []struct {
name string
input []string
delimiter string
want string
}{
{
name: "empty slice",
input: []string{},
delimiter: ",",
want: "",
},
{
name: "single item",
input: []string{"a"},
delimiter: ",",
want: `"a"`,
},
{
name: "multiple items",
input: []string{"a", "b", "c"},
delimiter: ",",
want: `"a,b,c"`,
},
{
name: "custom delimiter",
input: []string{"a", "b", "c"},
delimiter: ";",
want: `"a;b;c"`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := StringSlice{delimiter: tt.delimiter}
got := s.ToString(tt.input)
assert.Equal(t, tt.want, got)
})
}
}
+117 -63
View File
@@ -15,7 +15,7 @@
package plugin
import (
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
type (
@@ -44,69 +44,106 @@ type (
func commitFlags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "commit.sha",
Usage: "commit SHA",
EnvVars: []string{"CI_COMMIT_SHA", "DRONE_COMMIT", "DRONE_COMMIT_SHA"},
Name: "commit.sha",
Usage: "commit SHA",
Sources: cli.EnvVars(
"CI_COMMIT_SHA",
"DRONE_COMMIT",
"DRONE_COMMIT_SHA",
),
},
&cli.StringFlag{
Name: "commit.ref",
Usage: "commit ref",
EnvVars: []string{"CI_COMMIT_REF", "DRONE_COMMIT_REF"},
Name: "commit.ref",
Usage: "commit ref",
Sources: cli.EnvVars(
"CI_COMMIT_REF",
"DRONE_COMMIT_REF",
),
},
&cli.StringFlag{
Name: "commit.refspec",
Usage: "commit refspec",
EnvVars: []string{"CI_COMMIT_REFSPEC"},
Name: "commit.refspec",
Usage: "commit refspec",
Sources: cli.EnvVars(
"CI_COMMIT_REFSPEC",
),
},
&cli.StringFlag{
Name: "commit.pull-request",
Usage: "commit pull request",
EnvVars: []string{"CI_COMMIT_PULL_REQUEST", "DRONE_PULL_REQUEST"},
Name: "commit.pull-request",
Usage: "commit pull request",
Sources: cli.EnvVars(
"CI_COMMIT_PULL_REQUEST",
"DRONE_PULL_REQUEST",
),
},
&cli.StringFlag{
Name: "commit.source-branch",
Usage: "commit source branch",
EnvVars: []string{"CI_COMMIT_SOURCE_BRANCH", "DRONE_SOURCE_BRANCH"},
Name: "commit.source-branch",
Usage: "commit source branch",
Sources: cli.EnvVars(
"CI_COMMIT_SOURCE_BRANCH",
"DRONE_SOURCE_BRANCH",
),
},
&cli.StringFlag{
Name: "commit.target-branch",
Usage: "commit target branch",
EnvVars: []string{"CI_COMMIT_TARGET_BRANCH", "DRONE_TARGET_BRANCH"},
Name: "commit.target-branch",
Usage: "commit target branch",
Sources: cli.EnvVars(
"CI_COMMIT_TARGET_BRANCH",
"DRONE_TARGET_BRANCH",
),
},
&cli.StringFlag{
Name: "commit.branch",
Usage: "commit branch",
EnvVars: []string{"CI_COMMIT_BRANCH", "DRONE_BRANCH"},
Name: "commit.branch",
Usage: "commit branch",
Sources: cli.EnvVars(
"CI_COMMIT_BRANCH",
"DRONE_BRANCH",
),
},
&cli.StringFlag{
Name: "commit.tag",
Usage: "commit tag",
EnvVars: []string{"CI_COMMIT_TAG", "DRONE_TAG"},
Name: "commit.tag",
Usage: "commit tag",
Sources: cli.EnvVars(
"CI_COMMIT_TAG",
"DRONE_TAG",
),
},
&cli.StringFlag{
Name: "commit.message",
Usage: "commit message",
EnvVars: []string{"CI_COMMIT_MESSAGE", "DRONE_COMMIT_MESSAGE"},
Name: "commit.message",
Usage: "commit message",
Sources: cli.EnvVars(
"CI_COMMIT_MESSAGE",
"DRONE_COMMIT_MESSAGE",
),
},
&cli.StringFlag{
Name: "commit.author.name",
Usage: "commit author name",
EnvVars: []string{"CI_COMMIT_AUTHOR", "DRONE_COMMIT_AUTHOR", "DRONE_COMMIT_AUTHOR_NAME"},
Name: "commit.author.name",
Usage: "commit author name",
Sources: cli.EnvVars(
"CI_COMMIT_AUTHOR",
"DRONE_COMMIT_AUTHOR",
"DRONE_COMMIT_AUTHOR_NAME",
),
},
&cli.StringFlag{
Name: "commit.author.email",
Usage: "commit author email",
EnvVars: []string{"CI_COMMIT_AUTHOR_EMAIL", "DRONE_COMMIT_AUTHOR_EMAIL"},
Name: "commit.author.email",
Usage: "commit author email",
Sources: cli.EnvVars(
"CI_COMMIT_AUTHOR_EMAIL",
"DRONE_COMMIT_AUTHOR_EMAIL",
),
},
&cli.StringFlag{
Name: "commit.author.avatar",
Usage: "commit author avatar",
EnvVars: []string{"CI_COMMIT_AUTHOR_AVATAR", "DRONE_COMMIT_AUTHOR_AVATAR"},
Name: "commit.author.avatar",
Usage: "commit author avatar",
Sources: cli.EnvVars(
"CI_COMMIT_AUTHOR_AVATAR",
"DRONE_COMMIT_AUTHOR_AVATAR",
),
},
}
}
func commitFromContext(c *cli.Context) Commit {
func commitFromContext(c *cli.Command) Commit {
return Commit{
Sha: c.String("commit.sha"),
Ref: c.String("commit.ref"),
@@ -128,49 +165,66 @@ func commitFromContext(c *cli.Context) Commit {
func previousCommitFlags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "prev.commit.sha",
Usage: "previous commit SHA",
EnvVars: []string{"CI_PREV_COMMIT_SHA", "DRONE_COMMIT_BEFORE"},
Name: "prev.commit.sha",
Usage: "previous commit SHA",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_SHA",
"DRONE_COMMIT_BEFORE",
),
},
&cli.StringFlag{
Name: "prev.commit.ref",
Usage: "previous commit ref",
EnvVars: []string{"CI_PREV_COMMIT_REF"},
Name: "prev.commit.ref",
Usage: "previous commit ref",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_REF",
),
},
&cli.StringFlag{
Name: "prev.commit.refspec",
Usage: "previous commit refspec",
EnvVars: []string{"CI_PREV_COMMIT_REFSPEC"},
Name: "prev.commit.refspec",
Usage: "previous commit refspec",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_REFSPEC",
),
},
&cli.StringFlag{
Name: "prev.commit.branch",
Usage: "previous commit branch",
EnvVars: []string{"CI_PREV_COMMIT_BRANCH"},
Name: "prev.commit.branch",
Usage: "previous commit branch",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_BRANCH",
),
},
&cli.StringFlag{
Name: "prev.commit.message",
Usage: "previous commit message",
EnvVars: []string{"CI_PREV_COMMIT_MESSAGE"},
Name: "prev.commit.message",
Usage: "previous commit message",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_MESSAGE",
),
},
&cli.StringFlag{
Name: "prev.commit.author.name",
Usage: "previous commit author name",
EnvVars: []string{"CI_PREV_COMMIT_AUTHOR"},
Name: "prev.commit.author.name",
Usage: "previous commit author name",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_AUTHOR",
),
},
&cli.StringFlag{
Name: "prev.commit.author.email",
Usage: "previous commit author email",
EnvVars: []string{"CI_PREV_COMMIT_AUTHOR_EMAIL"},
Name: "prev.commit.author.email",
Usage: "previous commit author email",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_AUTHOR_EMAIL",
),
},
&cli.StringFlag{
Name: "prev.commit.author.avatar",
Usage: "previous commit author avatar",
EnvVars: []string{"CI_PREV_COMMIT_AUTHOR_AVATAR"},
Name: "prev.commit.author.avatar",
Usage: "previous commit author avatar",
Sources: cli.EnvVars(
"CI_PREV_COMMIT_AUTHOR_AVATAR",
),
},
}
}
func previousCommitFromContext(c *cli.Context) Commit {
func previousCommitFromContext(c *cli.Command) Commit {
return Commit{
Sha: c.String("prev.commit.sha"),
Ref: c.String("prev.commit.ref"),
+1 -1
View File
@@ -15,7 +15,7 @@
package plugin
import (
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// Flags has the cli.Flags for the Woodpecker plugin.
Generated
+61
View File
@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1720542800,
"narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "feb2849fdeb70028c70d73b848214b00d324a497",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+24
View File
@@ -0,0 +1,24 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{ nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
go_1_22
gofumpt
golangci-lint
];
};
}
);
}
+11 -10
View File
@@ -15,11 +15,12 @@
package plugin
import (
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
const (
ForgeTypeGitea = "gitea"
ForgeTypeForgejo = "forgejo"
ForgeTypeGitHub = "github"
ForgeTypeGitLab = "gitlab"
ForgeTypeBitbucket = "bitbucket"
@@ -38,27 +39,27 @@ func forgeFlags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "forge.type",
Usage: "forge type (gitea, github, gitlab, bitbucket)",
EnvVars: []string{
Usage: "forge type (gitea, forgejo, github, gitlab, bitbucket)",
Sources: cli.EnvVars(
"CI_FORGE_TYPE",
},
),
},
&cli.StringFlag{
Name: "forge.url",
Aliases: []string{"forge.link"},
Usage: "forge url",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_FORGE_URL",
"CI_FORGE_LINK",
},
),
},
}
}
func forgeFromContext(ctx *cli.Context) Forge {
func forgeFromContext(c *cli.Command) Forge {
return Forge{
Type: ctx.String("forge.type"),
Link: ctx.String("forge.url"),
URL: ctx.String("forge.url"),
Type: c.String("forge.type"),
Link: c.String("forge.url"),
URL: c.String("forge.url"),
}
}
+8 -9
View File
@@ -1,23 +1,22 @@
module codeberg.org/woodpecker-plugins/go-plugin
go 1.19
go 1.25.0
toolchain go1.26.1
require (
github.com/joho/godotenv v1.5.1
github.com/rs/zerolog v1.32.0
github.com/stretchr/testify v1.9.0
github.com/urfave/cli/v2 v2.27.1
golang.org/x/net v0.22.0
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/urfave/cli/v3 v3.7.0
golang.org/x/net v0.51.0
)
require (
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/sys v0.41.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
+11 -17
View File
@@ -1,6 +1,4 @@
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -14,24 +12,20 @@ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0=
github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho=
github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/urfave/cli/v3 v3.7.0 h1:AGSnbUyjtLiM+WJUb4dzXKldl/gL+F8OwmRDtVr6g2U=
github.com/urfave/cli/v3 v3.7.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=
golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+24 -18
View File
@@ -23,37 +23,43 @@ import (
"time"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
"golang.org/x/net/proxy"
)
func httpClientFlags() []cli.Flag {
return []cli.Flag{
&cli.BoolFlag{
Name: "transport.skip-verify",
Usage: "skip ssl verify",
EnvVars: []string{"PLUGIN_SKIP_VERIFY"},
Name: "transport.skip-verify",
Usage: "skip ssl verify",
Sources: cli.EnvVars(
"PLUGIN_SKIP_VERIFY",
),
},
&cli.StringFlag{
Name: "transport.socks-proxy",
Usage: "socks proxy address",
EnvVars: []string{"SOCKS_PROXY"},
Hidden: true,
Name: "transport.socks-proxy",
Usage: "socks proxy address",
Sources: cli.EnvVars(
"SOCKS_PROXY",
),
Hidden: true,
},
&cli.BoolFlag{
Name: "transport.socks-proxy-off",
Usage: "socks proxy ignored",
EnvVars: []string{"SOCKS_PROXY_OFF"},
Hidden: true,
Name: "transport.socks-proxy-off",
Usage: "socks proxy ignored",
Sources: cli.EnvVars(
"SOCKS_PROXY_OFF",
),
Hidden: true,
},
}
}
func HTTPClientFromContext(ctx *cli.Context) *http.Client {
func HTTPClientFromContext(c *cli.Command) *http.Client {
var (
skip = ctx.Bool("transport.skip-verify")
socks = ctx.String("transport.socks-proxy")
socksoff = ctx.Bool("transport.socks-proxy-off")
skip = c.Bool("transport.skip-verify")
socks = c.String("transport.socks-proxy")
socksOff = c.Bool("transport.socks-proxy-off")
)
certs, err := x509.SystemCertPool()
@@ -80,7 +86,7 @@ func HTTPClientFromContext(ctx *cli.Context) *http.Client {
DualStack: true,
}
if len(socks) != 0 && !socksoff {
if len(socks) != 0 && !socksOff {
proxyDialer, err := proxy.SOCKS5("tcp", socks, nil, dialer)
if err != nil {
log.Error().Err(err).Msg("failed to create socks proxy")
@@ -88,7 +94,7 @@ func HTTPClientFromContext(ctx *cli.Context) *http.Client {
if contextDialer, ok := proxyDialer.(proxy.ContextDialer); ok {
transport.DialContext = contextDialer.DialContext
} else {
transport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) {
transport.DialContext = func(_ context.Context, network, addr string) (net.Conn, error) {
return proxyDialer.Dial(network, addr)
}
}
+8 -6
View File
@@ -19,22 +19,24 @@ import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
func loggingFlags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "log-level",
Usage: "log level",
EnvVars: []string{"PLUGIN_LOG_LEVEL"},
Value: "info",
Name: "log-level",
Usage: "log level",
Sources: cli.EnvVars(
"PLUGIN_LOG_LEVEL",
),
Value: "info",
},
}
}
// SetupConsoleLogger sets up the console logger.
func SetupConsoleLogger(c *cli.Context) error {
func SetupConsoleLogger(c *cli.Command) error {
level := c.String("log-level")
lvl, err := zerolog.ParseLevel(level)
if err != nil {
+9 -9
View File
@@ -15,7 +15,7 @@
package plugin
import (
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// Metadata defines runtime metadata.
@@ -36,18 +36,18 @@ type Metadata struct {
}
// MetadataFromContext creates a Metadata from the cli.Context.
func MetadataFromContext(ctx *cli.Context) Metadata {
commit := commitFromContext(ctx)
previousCommit := previousCommitFromContext(ctx)
func MetadataFromContext(c *cli.Command) Metadata {
commit := commitFromContext(c)
previousCommit := previousCommitFromContext(c)
return Metadata{
Repository: repositoryFromContext(ctx),
Pipeline: pipelineFromContext(ctx),
Repository: repositoryFromContext(c),
Pipeline: pipelineFromContext(c),
Commit: commit,
PreviousCommit: previousCommit,
Step: stepFromContext(ctx),
System: systemFromContext(ctx),
Forge: forgeFromContext(ctx),
Step: stepFromContext(c),
System: systemFromContext(c),
Forge: forgeFromContext(c),
Curr: commit,
Prev: previousCommit,
+5 -5
View File
@@ -16,7 +16,6 @@ package plugin
import (
"context"
"os"
"testing"
"time"
@@ -53,6 +52,7 @@ func testMetadata() map[string]string {
"CI_PIPELINE_STATUS": "running",
"CI_PIPELINE_CREATED": "1611234567",
"CI_PIPELINE_STARTED": "1611234567",
"CI_PIPELINE_FILES": `["README.md", "main.go"]`,
// Step
"CI_STEP_NUMBER": "1",
"CI_STEP_NAME": "test",
@@ -71,15 +71,14 @@ func testMetadata() map[string]string {
func TestMetadata(t *testing.T) {
for k, v := range testMetadata() {
os.Setenv(k, v)
defer os.Unsetenv(k)
t.Setenv(k, v)
}
plugin := New(Options{
Execute: func(ctx context.Context) error {
Execute: func(_ context.Context) error {
return nil
},
})
err := plugin.app.Run([]string{"test"})
err := plugin.App.Run(plugin.ctx, []string{"test"})
require.NoError(t, err)
// Repository
@@ -107,6 +106,7 @@ func TestMetadata(t *testing.T) {
assert.Equal(t, "running", plugin.Metadata.Pipeline.Status)
assert.Equal(t, time.Unix(1611234567, 0), plugin.Metadata.Pipeline.Created)
assert.Equal(t, time.Unix(1611234567, 0), plugin.Metadata.Pipeline.Started)
assert.Equal(t, []string{"README.md", "main.go"}, plugin.Metadata.Pipeline.ChangedFiles)
// Step
assert.Equal(t, 1, plugin.Metadata.Step.Number)
+41 -20
View File
@@ -15,9 +15,12 @@
package plugin
import (
"encoding/json"
"os"
"time"
"github.com/urfave/cli/v2"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v3"
)
const (
@@ -40,6 +43,7 @@ type Pipeline struct {
Started time.Time `json:"started,omitempty"`
Finished time.Time `json:"finished,omitempty"`
Parent int64 `json:"parent,omitempty"`
ChangedFiles []string `json:"files,omitempty"`
// Deprecated: Please use URL instead.
Link string `json:"link,omitempty"`
@@ -50,81 +54,97 @@ func pipelineFlags() []cli.Flag {
&cli.Int64Flag{
Name: "pipeline.number",
Usage: "pipeline number",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_NUMBER",
"DRONE_BUILD_NUMBER",
},
),
},
&cli.StringFlag{
Name: "pipeline.status",
Usage: "pipeline status",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_STATUS",
"DRONE_BUILD_STATUS",
},
),
},
&cli.StringFlag{
Name: "pipeline.event",
Usage: "pipeline event",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_EVENT",
"DRONE_BUILD_EVENT",
},
),
},
&cli.StringFlag{
Name: "pipeline.url",
Aliases: []string{"pipeline.link"},
Usage: "pipeline url",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_URL",
"CI_PIPELINE_LINK",
"DRONE_BUILD_LINK",
},
),
},
&cli.StringFlag{
Name: "pipeline.deploy-target",
Usage: "pipeline deployment target",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_DEPLOY_TARGET",
"DRONE_DEPLOY_TO",
},
),
},
&cli.Int64Flag{
Name: "pipeline.created",
Usage: "pipeline creation time",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_CREATED",
"DRONE_BUILD_CREATED",
},
),
},
&cli.Int64Flag{
Name: "pipeline.started",
Usage: "pipeline start time",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_STARTED",
"DRONE_BUILD_STARTED",
},
),
},
&cli.Int64Flag{
Name: "pipeline.finished",
Usage: "pipeline finish time",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_FINISHED",
"DRONE_BUILD_FINISHED",
},
),
},
&cli.Int64Flag{
Name: "pipeline.parent",
Usage: "pipeline parent",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_PIPELINE_PARENT",
"DRONE_BUILD_PARENT",
},
),
},
&cli.StringFlag{
Name: "pipeline.files",
Usage: "pipeline changed files (string list as json)",
Sources: cli.EnvVars(
"CI_PIPELINE_FILES",
),
},
}
}
func pipelineFromContext(c *cli.Context) Pipeline {
func pipelineFromContext(c *cli.Command) Pipeline {
var changedFiles []string
if files := c.String("pipeline.files"); files != "" {
if err := json.Unmarshal([]byte(files), &changedFiles); err != nil {
log.Error().Err(err).Msg("parse \"CI_PIPELINE_FILES\" failed")
os.Exit(1)
}
}
return Pipeline{
Number: c.Int64("pipeline.number"),
Status: c.String("pipeline.status"),
@@ -136,5 +156,6 @@ func pipelineFromContext(c *cli.Context) Pipeline {
Started: time.Unix(c.Int64("pipeline.started"), 0),
Finished: time.Unix(c.Int64("pipeline.finished"), 0),
Parent: c.Int64("pipeline.parent"),
ChangedFiles: changedFiles,
}
}
+19 -11
View File
@@ -21,7 +21,7 @@ import (
"github.com/joho/godotenv"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// Options defines the options for the plugin.
@@ -36,13 +36,16 @@ type Options struct {
Flags []cli.Flag
// Execute function of the plugin.
Execute ExecuteFunc
// Context the plugin will use while executing.
Context context.Context
}
// Plugin defines the plugin instance.
type Plugin struct {
app *cli.App
App *cli.Command
execute ExecuteFunc
client *http.Client
ctx context.Context
// Metadata of the current pipeline.
Metadata Metadata
}
@@ -56,7 +59,7 @@ func New(opt Options) *Plugin {
_ = godotenv.Overload("/run/woodpecker/env")
}
app := &cli.App{
app := &cli.Command{
Name: opt.Name,
Usage: "Run the Woodpecker CI plugin",
Description: opt.Description,
@@ -65,27 +68,32 @@ func New(opt Options) *Plugin {
}
plugin := &Plugin{
app: app,
App: app,
execute: opt.Execute,
ctx: opt.Context,
}
plugin.App.Action = plugin.action
if plugin.ctx == nil {
plugin.ctx = context.Background()
}
plugin.app.Action = plugin.action
return plugin
}
func (p *Plugin) action(ctx *cli.Context) error {
if err := SetupConsoleLogger(ctx); err != nil {
func (p *Plugin) action(ctx context.Context, c *cli.Command) error {
if err := SetupConsoleLogger(c); err != nil {
return err
}
p.Metadata = MetadataFromContext(ctx)
p.client = HTTPClientFromContext(ctx)
p.Metadata = MetadataFromContext(c)
p.client = HTTPClientFromContext(c)
if p.execute == nil {
panic("plugin execute function is not set")
}
return p.execute(ctx.Context)
return p.execute(ctx)
}
// HTTPClient returns the http.Client instance.
@@ -95,7 +103,7 @@ func (p *Plugin) HTTPClient() *http.Client {
// Run the plugin.
func (p *Plugin) Run() {
if err := p.app.Run(os.Args); err != nil {
if err := p.App.Run(p.ctx, os.Args); err != nil {
log.Error().Err(err).Msg("execution failed")
os.Exit(1)
}
+2 -2
View File
@@ -25,12 +25,12 @@ func TestPlugin(t *testing.T) {
var executed bool
p := New(Options{
Name: "test",
Execute: func(ctx context.Context) error {
Execute: func(_ context.Context) error {
executed = true
return nil
},
})
err := p.app.Run([]string{"test"})
err := p.App.Run(p.ctx, []string{"test"})
assert.NoError(t, err)
assert.True(t, executed)
}
+16 -16
View File
@@ -15,7 +15,7 @@
package plugin
import (
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// Repository defines runtime metadata for a repository.
@@ -38,64 +38,64 @@ func repositoryFlags() []cli.Flag {
&cli.StringFlag{
Name: "repo.remote-id",
Usage: "repo remote id",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_REMOTE_ID",
},
),
},
&cli.StringFlag{
Name: "repo.name",
Usage: "repo name",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_NAME",
"DRONE_REPO_NAME",
},
),
},
&cli.StringFlag{
Name: "repo.owner",
Usage: "repo owner",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_OWNER",
"DRONE_REPO_OWNER",
},
),
},
&cli.StringFlag{
Name: "repo.url",
Aliases: []string{"repo.link"},
Usage: "repo url",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_URL",
"CI_REPO_LINK",
"DRONE_REPO_LINK",
},
),
},
&cli.StringFlag{
Name: "repo.clone-url",
Usage: "repo clone url",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_CLONE_URL",
"DRONE_GIT_HTTP_URL",
},
),
},
&cli.BoolFlag{
Name: "repo.private",
Usage: "repo private",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_PRIVATE",
"DRONE_REPO_PRIVATE",
},
),
},
&cli.StringFlag{
Name: "repo.default-branch",
Usage: "repo default branch",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_REPO_DEFAULT_BRANCH",
"DRONE_REPO_BRANCH",
},
),
},
}
}
func repositoryFromContext(c *cli.Context) Repository {
func repositoryFromContext(c *cli.Command) Repository {
return Repository{
RemoteID: c.String("repo.remote-id"),
Name: c.String("repo.name"),
+8 -8
View File
@@ -17,7 +17,7 @@ package plugin
import (
"time"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// Step defines runtime metadata for a step.
@@ -32,29 +32,29 @@ func stepFlags() []cli.Flag {
&cli.IntFlag{
Name: "step.number",
Usage: "step number",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_STEP_NUMBER",
"DRONE_STEP_NUMBER",
},
),
},
&cli.Int64Flag{
Name: "step.started",
Usage: "step start time",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_STEP_STARTED",
},
),
},
&cli.Int64Flag{
Name: "step.finished",
Usage: "step finish time",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_STEP_FINISHED",
},
),
},
}
}
func stepFromContext(c *cli.Context) Step {
func stepFromContext(c *cli.Command) Step {
return Step{
Number: c.Int("step.number"),
Started: time.Unix(c.Int64("step.started"), 0),
+17 -17
View File
@@ -17,7 +17,7 @@ package plugin
import (
"os"
"github.com/urfave/cli/v2"
"github.com/urfave/cli/v3"
)
// System defines runtime metadata for a ci/cd system.
@@ -37,50 +37,50 @@ func systemFlags() []cli.Flag {
&cli.StringFlag{
Name: "system.name",
Usage: "system name",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_SYSTEM_NAME",
},
),
},
&cli.StringFlag{
Name: "system.host",
Usage: "system host",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_SYSTEM_HOST",
"DRONE_SYSTEM_HOST",
"DRONE_SYSTEM_HOSTNAME",
},
),
},
&cli.StringFlag{
Name: "system.url",
Aliases: []string{"system.link"},
Usage: "system url",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_SYSTEM_URL",
"CI_SYSTEM_LINK",
},
),
},
&cli.StringFlag{
Name: "system.arch",
Usage: "system arch",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_SYSTEM_PLATFORM",
"DRONE_STAGE_ARCH",
},
),
},
&cli.StringFlag{
Name: "system.version",
Usage: "system version",
EnvVars: []string{
Sources: cli.EnvVars(
"CI_SYSTEM_VERSION",
"DRONE_SYSTEM_VERSION",
},
),
},
}
}
func systemFromContext(ctx *cli.Context) System {
url := ctx.String("system.url")
host := ctx.String("system.host")
func systemFromContext(c *cli.Command) System {
url := c.String("system.url")
host := c.String("system.host")
if url == "" && host != "" {
// Alternative url format used by Drone.
proto := os.Getenv("DRONE_SYSTEM_PROTO")
@@ -89,11 +89,11 @@ func systemFromContext(ctx *cli.Context) System {
}
}
return System{
Name: ctx.String("system.name"),
Name: c.String("system.name"),
Host: host,
URL: url,
Link: url,
Platform: ctx.String("system.arch"),
Version: ctx.String("system.version"),
Platform: c.String("system.arch"),
Version: c.String("system.version"),
}
}