Woodpecker CI plugin to automatically set cron timers for the organization.
  • Go 96%
  • Dockerfile 4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
renovate-bot 69750f3e54
All checks were successful
ci/woodpecker/push/change_log Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/tag/release Pipeline was successful
ci/woodpecker/cron/vulnerability Pipeline was successful
ci/woodpecker/cron/auto_merge Pipeline was successful
ci/woodpecker/cron/renovate Pipeline was successful
ci/woodpecker/cron/release Pipeline was successful
maint: Update module code.thinkaboutit.tech/pandora/woodpecker-utils.gopack to v1.4.1 (#16)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [code.thinkaboutit.tech/pandora/woodpecker-utils.gopack](https://code.thinkaboutit.tech/pandora/woodpecker-utils.gopack) | `v1.4.0` → `v1.4.1` | ![age](https://developer.mend.io/api/mc/badges/age/go/code.thinkaboutit.tech%2fpandora%2fwoodpecker-utils.gopack/v1.4.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/code.thinkaboutit.tech%2fpandora%2fwoodpecker-utils.gopack/v1.4.0/v1.4.1?slim=true) |

---

### Release Notes

<details>
<summary>pandora/woodpecker-utils.gopack (code.thinkaboutit.tech/pandora/woodpecker-utils.gopack)</summary>

### [`v1.4.1`](https://code.thinkaboutit.tech/pandora/woodpecker-utils.gopack/releases/tag/v1.4.1): release

[Compare Source](https://code.thinkaboutit.tech/pandora/woodpecker-utils.gopack/compare/v1.4.0...v1.4.1)

#### What's new

##### Maintenance

- Update go module directive to v1.26.5 [#&#8203;10](https://github.com/pandora/woodpecker-utils.gopack/issues/10) by [@&#8203;renovate-bot](https://github.com/renovate-bot)

##### Repository

- Use central renovate.json ([#&#8203;8](https://github.com/pandora/woodpecker-utils.gopack/issues/8)) by [@&#8203;onlyati](https://github.com/onlyati)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **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 [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODcuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4Ny4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: #16
2026-08-02 14:06:43 +00:00
internal fix: Paging was missing at Forgejo repository listing (#10) 2026-07-11 23:14:36 +00:00
test_data Implementation of the plugin (#1) 2026-05-25 20:36:03 +00:00
.gitignore Initial commit 2026-05-25 14:27:07 +00:00
.goreleaser.yaml Initial commit 2026-05-25 14:27:07 +00:00
.markdownlint.json Initial commit 2026-05-25 14:27:07 +00:00
.prettierrc Initial commit 2026-05-25 14:27:07 +00:00
Containerfile maint: Update gcr.io/distroless/static-debian13:nonroot Docker digest to 23795be #11 2026-07-14 18:20:02 +00:00
go.mod maint: Update module code.thinkaboutit.tech/pandora/woodpecker-utils.gopack to v1.4.1 (#16) 2026-08-02 14:06:43 +00:00
go.sum maint: Update module code.thinkaboutit.tech/pandora/woodpecker-utils.gopack to v1.4.1 (#16) 2026-08-02 14:06:43 +00:00
LICENSE Initial commit 2026-05-25 14:27:07 +00:00
main.go Implementation of the plugin (#1) 2026-05-25 20:36:03 +00:00
README.md Implementation of the plugin (#1) 2026-05-25 20:36:03 +00:00
renovate.json ci: Use central renovate.json (#13) 2026-07-19 11:58:41 +00:00

Plugin to define cron jobs in Woodpecker CI

This plugin is intended to run with administrative purpose:

  • Automatically enable repositories in Woodpecker CI.
  • Define cron jobs based on external configuration.

Sample timer.ini file:

[wptimer]
patch_daily=0 2 * * *
vulnerability=0 1 * * *
RandomDelayMinutes=50

[test-repo]
patch_daily=0 3 * * *
vulnerability=0 1 * * *

The [foo] indicates the repository name suffix, so the timers are applied for any repository that ends with foo.

The RandomDelayMinutes helps to not concentrate the workload on the server: if specified, it ignores the minute from the timer definition, instead it generates a random number within the interval and uses that.

Every other lines are handled as timer input. The value must follow the cron rules.

Usage

It can be used at any event, but it has two meaningful usage.

Use as CI check

The timer.ini file can be syntax checked during like a push or pull_request events. This is an example to call that.

steps:
  - name: Test timer.ini file
    image: code.thinkaboutit.tech/pandora/timer.woodpecker
    settings:
      mode: ci

Use from timer

When the mode is run, it is not just testing the configuration, but it also do the effective work.

steps:
  - name: Make Woodpecker CI administration maintenance
    image: code.thinkaboutit.tech/pandora/timer.woodpecker
    settings:
      mode: run
      woodpecker_token:
        from_secret: woodpecker-access-token
      forgejo_token:
        from_secret: forgejo-access-token

The Forgejo token must have read:user, read:organization and read:repository.

Settings

Name Default value Description
owner CI_REPO_OWNER Owner of the repository where the timer.ini is.
repo_name CI_REPO_NAME Repository's name where the timer.ini is.
timer_source timer.ini Path until the timer.ini file.
mode This must be ci or run.

Following settings are only needed when mode is run.

Name Default value Description
woodpecker_token Access token for Woodpecker CI
woodpecker_host CI_SYSTEM_URL URL to Woodpecker CI
forgejo_token Access token for Forgejo
forgejo_host CI_FORGE_URL URL to Forgejo instance