Commit graph

377 commits

Author SHA1 Message Date
runephilosof-karnovgroup
1fa0212731
Add minimum usage for CLI v0.15.x to docs (#1878)
Co-authored-by: 6543 <6543@obermui.de>
2023-06-25 23:38:25 +02:00
qwerty287
eaae6b44c7
Remove default event filter (#1880)
Closes https://github.com/woodpecker-ci/woodpecker/issues/1863
2023-06-21 18:12:20 +02:00
qwerty287
5c587a3243
Add security section to docs (#1877) 2023-06-21 16:59:57 +02:00
Thomas Anderson
0c3021473f
Added Woodpecker Host Config used for Webhooks (#1869)
When SCM and Woodpecker are deployed in the same cluster, I want that
SCM requests Woodpecker directly by internal URL.


![Webhook-host-diagram](https://github.com/woodpecker-ci/woodpecker/assets/127358482/c4689d55-839a-4731-95b3-5734ba561e5f)
 
This PR adds optional URL used for Webhook calls.
2023-06-18 14:47:40 +02:00
6543
6ab9f802d1
Fix links in docs (#1859) 2023-06-13 18:58:26 +02:00
Anbraten
ff01a9ff1d
Access repos by their ids (#1691)
closes #1295 
closes #648

# TODO
- [x] add new routes with `:repoID`
- [x] load repo in middleware using `:repoID` if present
- [x] update UI routes `:owner/:name` to `:repoID`
- [x] load repos using id in UI
- [x] add lookup endpoint `:owner/:name` to `:repoID`
- [x] redirect `:owner/:name` to `:repoID` in UI
- [x] use badge with `:repoID` route in UI
- [x] update `woodpecker-go`
- [x] check cli
- [x] add migrations / deprecation notes
- [x] check if #648 got solved directly
- [x] Test
  - [x] create repo
  - [x] repo pages
  - [x] ui redirects
  - [x] forge status links
2023-06-13 01:07:52 +02:00
runephilosof-karnovgroup
e3593cd9a4
01-getting-started.md: fix WOODPECKER_HOST example (#1849) 2023-06-12 23:22:00 +02:00
6543
5139624cf8
Migrate old logs to new database schema (#1828)
address new models based on #1802
2023-06-12 22:43:14 +02:00
Ovidiu Calbajos
609ba481b5
Support for k8s serviceAccount and nodeSelector (#1842)
Add the possiblity to specify the Kubernetes serviceAccount and/or
nodeSelector to be used on individual steps for Kubernetes executor
2023-06-12 16:00:59 +02:00
6543
7bae68758f
[Docs] Fix schema to replace "tag" by "ref"-filter (#1841)
#1820 followup
2023-06-09 12:43:12 +02:00
6543
7e708874ae
Rename yaml pipeline to steps (#1833)
Adjust pipeline-config to match
[Terminology](https://woodpecker-ci.org/docs/next/usage/terminology)
2023-06-07 12:04:37 +02:00
6543
971cb52032
Rename pipeline frontend types (#1829)
this adjust the packages that parse the yaml-config-file to match
[Terminology](https://woodpecker-ci.org/docs/next/usage/terminology)
2023-06-06 09:14:21 +02:00
6543
ea895baf83
Resolve built-in variables for global when filter (#1790)
addresses
bd461477bd

close  #1244, close #1580

---------

Co-authored-by: Anbraten <anton@ju60.de>
2023-06-05 00:15:07 +02:00
6543
c919f32e0b
[Docs] Remove never implemented "tag"-filter and document "ref"-filter to do the same (#1820)
close #1211
2023-06-04 12:13:32 +02:00
6543
d1213afdc8
[Docs] use redocusaurus to display swagger file (#1818)
https://redocusaurus.vercel.app/

followup of  #1782

---------

Co-authored-by: Anbraten <anton@ju60.de>
2023-06-04 05:07:39 +02:00
Stephen Muth
2941e508b3
Allow setting resources for kubernetes on a per-step basis (#1767)
This add a simple implementation of requests/limits for individual
steps. There is no validation of what the resource actually is beyond
checking that it can successfully be converted to a Quantity, so it can
be used for things other than just memory/CPU.

close #1809
2023-06-04 00:50:08 +02:00
Martin W. Kirst
14177635b6
Update swagger API specification (#1782)
# Summary

This PR drops the outdated former swagger.yaml/json and introduced
automatic API document generation from Go code.
The generated code is also used to generate documentation/markdown for
the community page,
as well as enable the Woodpecker server to serve a Swagger Web UI for
manual tinkering.

I did opt-in for gin-swagger, a middleware for the Gin framework, to
ease implementation and have a sophisticated output.
This middleware only produces Swagger v2 specs. AFAIK the newer OpenApi
3x tooling is not yet that mature,
so I guess that's fine for now.

## Implemenation notes

- former swagger.json files removed
- former // swagger godocs removed
- introduced new dependency gin-swagger, which uses godoc annotations on
top of Gin Handler functions.
- reworked Makefile to automatically generate Go code for the server
- introduce new dependency go-swagger, to generate Markdown for
documentation purposes
- add a Swagger Web UI, incl. capabilities for manual API exploration
- consider relative root paths in the implementation
- write documentation for all exposed API endpoints
- incl. API docs in the community website (auto-generated)
- provide developer documentation, for the Woodpecker authors
- no other existing logic/code was intentionally changed

---------

close #292

---------

Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2023-06-03 21:38:36 +02:00
6543
317bd24abb
Define Glossary (#1800)
based on
https://github.com/woodpecker-ci/woodpecker/issues/745#issuecomment-1313401427

close  #1724

---------

Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Anbraten <anton@ju60.de>
2023-06-03 16:39:56 +02:00
Thomas Anderson
0ba7ed4128
Added Hardware Requirements documentation (#1812)
Closes #1742 

```
PS C:\> kubectl top pod -n scm
NAME                                 CPU(cores)   MEMORY(bytes)
gitea-0                              1m           324Mi
postgres-0                           3m           55Mi
woodpecker-agent-6f475dc7c8-z494d    1m           20Mi
woodpecker-server-79545f8dd5-hl68l   1m           25Mi
```

---------

Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Anbraten <anton@ju60.de>
2023-06-03 16:36:34 +02:00
qwerty287
6e6f36ee3a
Add "Installing Woodpecker CI in your personal homelab" post (#1811) 2023-06-03 09:21:51 +02:00
6543
524611cf00
Add Forge Metadata (#1789)
close  #1787
2023-05-31 18:30:41 +02:00
6543
a1943aa49e
Buildin Env Vars, use _URL for all links/urls (#1794)
based on https://framadate.org/jVSQHwIGfJYy82IL

close #1793
2023-05-31 18:03:38 +02:00
6543
f5a85d21be
Drop ".drone.yml" as default pipeline config (#1795)
it did make sense to have it still supported within v0.15.0,

but as we move future away and with the release of v1.0.0
we should not give the appearance of still support the original drone
v0.8 config
2023-05-31 16:02:20 +02:00
qwerty287
c111fbfd14
Add "Replace Ansible Semaphore with Woodpecker CI" video (#1772) 2023-05-22 23:50:01 +02:00
6543
375e352a84
Add MkDocs Plugin (#1770)
https://codeberg.org/woodpecker-plugins/mkdocs
2023-05-21 07:54:23 +02:00
6543
1a79d30555
Add Trivy Plugin (#1769) 2023-05-21 00:21:34 +02:00
Dessalines
90371ff5d0
Add Android CI example to awesome woodpecker (#1763)
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Anbraten <anton@ju60.de>
2023-05-18 12:10:05 +02:00
qwerty287
2ccf7c6f1a
Drop Gogs support (#1752)
Gogs support is broken (and we won't fix it because we don't care about
it...) because it does not support OAuth, at least after we introduced
the new Vue UI.

See:

77d830d5b5/server/forge/gogs/gogs.go (L84)

This route is not present in the new UI.
2023-05-14 10:34:05 +02:00
6543
77d830d5b5
Improve skip_clone documentation (#1747)
Co-authored-by: Anbraten <anton@ju60.de>
2023-05-12 16:28:45 +02:00
meak
41a50ae915
Allow to configure port for SSL (#1735)
Co-authored-by: Mehdi Katranji <hello@mek.yt>
Co-authored-by: Lauris BH <lauris@nix.lv>
2023-05-11 06:11:10 +02:00
Alexander Wühr
02cfbc8cbf
Add ntfy plugin (#1741)
Add https://codeberg.org/l-x/woodpecker-ntfy to the index
2023-05-11 01:18:31 +02:00
Alexander Matyushentsev
049c26229d
Let agent retry to connecting to server (#1728)
Closes https://github.com/woodpecker-ci/woodpecker/issues/1721

PR introduces connection retries during agent startup.

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2023-05-03 13:31:29 +02:00
Anbraten
80444c73af
Add forgejo in docs (#1733)
superseds #1543
2023-05-01 21:55:55 +02:00
qwerty287
54d4ec04c0
Drop Gogs private mode (#1726)
You should use `WOODPECKER_AUTHENTICATE_PUBLIC_REPOS` instead if repos
sent from forge as public should be authenticated
2023-04-30 14:01:11 +02:00
qwerty287
b90e7904a5
Support path prefix (#1714)
closes #1636 
closes #1429
supersedes #1586

Uses a different approach: just take the index.html compiled by vite and
replace the paths to js and other files using regex. This is not
compatible with the dev proxy which is also the reason why we can't use
go templates for this.
2023-04-29 17:51:50 +02:00
6543
204d05f447
Implement YAML Map Merge, Overrides, and Sequence Merge Support (#1720)
close  #1192
2023-04-29 14:49:41 +02:00
Felix Kröner
5abba554b6
Remove unnecessary parenthesis (#1710)
Came across this while reading the docs.
2023-04-20 15:56:40 +02:00
Thomas Anderson
de033176fd
Improved Usage documentation (#1709)
Hello.
I fixed [Project Settings documentation
page](https://woodpecker-ci.org/docs/next/usage/project-settings).
Review, please.
2023-04-19 19:52:54 +02:00
6543
c40a6d884f
Adjust documentation of "CI_PIPELINE_LINK" to reflect actual behavior. (#1701)
close #1537
2023-04-09 19:26:03 +02:00
Anbraten
36b5ae3459
Add env for workflow and step name (#1693)
closes #1681
2023-04-08 13:15:28 +02:00
6543
44a1cd8782
Refactor plugin-index plugin for docs (#1694)
- delete NewPluginPanel as it's not used
- useRef for fuse
2023-04-03 17:09:05 +02:00
Anbraten
81998b7001
Add backend label to agents (#1692)
closes #708 

Allows users to filter for a specific backend type.
2023-04-03 12:30:52 +02:00
6543
6d022712e8
Fix docs build (#1690)
Co-authored-by: Anbraten <anton@ju60.de>
2023-04-03 12:30:01 +02:00
6543
d98e566de2
docs: update pnpm-lock.yaml of woodpecker-plugins
yes it would had made sense to create a pull looking at the last 2 commits ...
2023-04-03 00:33:43 +02:00
6543
d240c1dd02
docs: update pnpm-lock.yaml 2023-04-03 00:27:30 +02:00
陈杨文
799bb42ddd
docs: add woodpecker-feishu-bot to plugins.json (#1679)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
2023-03-24 19:22:08 +01:00
Dhanu Saputra
e9fc5ebd0e
Docs: make sure shell examples can be copied (#1670)
close #1656

---------

Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
2023-03-24 18:18:14 +01:00
Lauris BH
46452fbd84
Update Go dependencies and minimal Go version to 1.20 (#1650)
Signed-off-by: 6543 <6543@obermui.de>
Co-authored-by: 6543 <6543@obermui.de>
2023-03-21 00:48:15 +01:00
Anbraten
2337f1854a
Add queue details UI for admins (#1632)
# Changes
- Adds an admin view to see the whole work-queue of the server. 
- The admin can also pause / resume the queue. 
- The view is reloading data every 5 seconds automatically.
- The task model from queue got removed in favor of the one from models.
2023-03-20 04:50:56 +01:00
qwerty287
f582ad3159
Various enhancements in configuration (#1645)
- backends: move to cli flags instead of os.Getenv
- ssh: support 2fa with key and password
- allow to set grpc jwt secret (solves todo)
- allow to set default and max timeout (solves todo)

Closes https://github.com/woodpecker-ci/woodpecker/issues/896
Closes https://github.com/woodpecker-ci/woodpecker/issues/1131
2023-03-19 20:24:43 +01:00
qwerty287
37dc8a46e0
Drop coding support (#1644)
Coding support is likely broken and nobody will ever fix it. Also it
looks like nobody wants to use it, otherwise we would have get some bug
reports.

---------

Co-authored-by: 6543 <6543@obermui.de>
2023-03-19 09:36:04 +01:00
Lukas
1b43b0bf20
Add pull request labels as environment variable (#1321)
Closes #1308 

Co-authored-by: Anbraten <anton@ju60.de>
2023-03-17 03:43:04 +01:00
Hayden
1c1c08831f
docs: update docs to include plugin repositories (#1596)
Closes #1536 

Co-authored-by: 6543 <6543@obermui.de>
2023-03-14 03:42:53 +01:00
Alexander Matyushentsev
9288670c61
feat: expose unprotected metrics endpoint (#1614)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Anbraten <anton@ju60.de>
2023-03-12 09:41:10 +01:00
Hayden
72784bc11a
Add note about docker image cleanup (#1597)
Closes #1532

Adds notes about images not being cleaned up by wood-pecker and provides
examples on how you can automate the cleanup. Also provides a warning
that these are destructive actions.

<img width="1020" alt="CleanShot 2023-03-03 at 09 36 35@2x"
src="https://user-images.githubusercontent.com/64056131/222800658-f610d488-f8ea-4aca-8ed0-f26e44be1884.png">

---------

Co-authored-by: Anbraten <anton@ju60.de>
2023-03-06 07:33:02 +01:00
John Olheiser
9d90b1ffb7
Update when-path for Gitea (#1598)
As title, looks like it should have been updated at the same time as the
other notice.
2023-03-03 15:43:05 -06:00
Anbraten
0bcbcb354f
Rename multi pipelines to workflows (#1285)
Co-authored-by: 6543 <6543@obermui.de>
2023-02-28 18:52:53 +01:00
Anbraten
c05b51fb54
Add version notes to docs (#1592) 2023-02-28 17:30:25 +01:00
Brian King
f71e623b09
Update 15-agent-config.md (#1578)
Document DOCKER_HOST environment variable as described at
https://github.com/woodpecker-ci/woodpecker/pull/763
2023-02-10 05:05:21 +01:00
Earl Warren
7835a632e4
Define WOODPECKER_FORGE_TIMEOUT server config (#1558)
When a server such as Codeberg has unusually high response time, three
seconds may not be enough to fetch the configuration.

Signed-off-by: Earl Warren <contact@earl-warren.org>
Co-authored-by: 6543 <6543@obermui.de>
2023-02-01 18:53:19 +01:00
Simon Vieille
1cd73f0b76
Add Email plugin (#1545)
Add plugin to send build status notifications via Email

Co-authored-by: Simon Vieille <simon.vieille@trinaps.com>
2023-01-15 16:31:44 +01:00
antomy-gc
6516a28cdd
Secrets encryption in database (#1475)
closes #101

Added secrets encryption in database

- Google TINK or simple AES as encryption mechanisms
- Keys rotation support on TINK
- Existing SecretService is wrapped by encryption layer
- Encryption can be enabled and disabled at any time

Co-authored-by: Kuzmin Ilya <ilia.kuzmin@indrive.com>
Co-authored-by: 6543 <6543@obermui.de>
2023-01-12 20:59:07 +01:00
6543
f71142d162
Pin official default clone image (#1526)
address https://github.com/woodpecker-ci/woodpecker/issues/1508#issuecomment-1368007494
2023-01-10 17:34:21 +01:00
John Olheiser
9e56c66db8
Add Gitea Release plugin to docs (#1533) 2023-01-10 16:28:09 +01:00
Lauris BH
21bc885c51
Add pipeline trigger plugin (#1531)
Should wait when CI is configured and docker image is published
2023-01-09 18:43:04 +01:00
brenard
f1e9c8416d
Add Aptly publish plugin (#1521)
A plugin to publish one (or more) Debian package on a Aptly repository using its API.
2023-01-03 01:49:58 +01:00
Gerrit Großkopf
fd6eb36a31
Updating Example configuration to override depth (#1519)
This should match the updated procedure introduced in
https://github.com/woodpecker-ci/plugin-git/pull/48
2023-01-02 17:08:17 +01:00
LJ
cde1b3b95d
Add an small autoscaler project to awesome list (#1517)
A small project, that creates and removes VPS server on hetzner, based on the current CI needs.
2023-01-02 05:30:10 +01:00
6543
7c9644c887
Add WebDAV to plugin index 2022-12-29 01:37:15 +01:00
smainz
73067c5868
Add a sentence regarding translations to the development docs (UI page) (#1459)
Make obvious, that at least an English message key has to be added to the message files
2022-12-21 14:45:41 +01:00
Anbraten
a3f4f3056c
disable metrics access if no token is set (#1469) 2022-12-09 18:03:43 +01:00
Anbraten
dfd4622ba2
Point docs navbar items to selected version (#1434) 2022-11-19 15:21:03 +01:00
velsinki
dda4998261
Change healtcheck port into address format, redo #1197 (#1423)
As discussed in the comments in PR #1197. Also add documenation
accordingly.

One thing I'm not sure about is the simple check in health.go if the
address is usable in the GET request or not. From reading
https://pkg.go.dev/net#Dial it seems that the only non-standard address
format that would work in the `net` package but not in a GET url would
likely only be `:port`, as the others listed here are actually also
valid urls:

`For TCP, UDP and IP networks, if the host is empty or a literal
unspecified IP address, as in ":80", "0.0.0.0:80" or "[::]:80" for TCP
and UDP, "", "0.0.0.0" or "::" for IP, the local system is assumed.`

One additional thing I noticed is that while `WOODPECKER_SERVER_ADDR`
and `WOODPECKER_SERVER_ADDR` use the default value format of `:PORT`,
`WOODPECKER_SERVER` actually uses `localhost:9000`. I guess it makes a
bit of sense, considering the server might not be local to the agent,
but it looks a bit inconsistent this way. I don't think it would hurt to
make the `WOODPECKER_HEALTHCHECK_ADDR` in this format too, but then it's
different from the server flags again... :-)
2022-11-19 13:06:51 +02:00
Sergio Fenoll
f0e518a5a2
Add option to ignore failures on steps (#1219)
closes #1181
closes #834 

Adds `ignore_failure` to pipeline steps. When it's set to true,
if the step fails the following steps continue to execute as if no failure had occurred.

---

failure enums idea:
* fail (default) = if other steps run in parallel, wait for them and
then let workflow fail
* cancel = if other steps run in parallel, kill them
* ignore = we mark the step as failed but it wont have any impact
2022-11-15 19:47:27 +01:00
Jordan Christiansen
0295d36f29
Fix broken link in FAQ (#1413) 2022-11-10 18:36:41 +01:00
Josh Soref
023d03dd61
Spelling (#1405)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 08:12:17 +01:00
Michaël Dierick
df5225ff18
Fix indentation for pipeline-global when documentation (#1387)
Fixes https://github.com/woodpecker-ci/woodpecker/issues/1386

Co-authored-by: 6543 <6543@obermui.de>
2022-11-05 00:57:11 +01:00
qwerty287
3372d1a87c
Rename remote to forge (#1357)
As of #745

Co-authored-by: Anbraten <anton@ju60.de>
2022-11-05 00:35:06 +01:00
Michael
2477d2e57f
Support .yaml as file-ending for workflow config too (#1388)
This implements #1073, adds .yaml to the accepted endings for woodpecker configs.

This currently adds some more lines to the duplication (tried to compensate by fixing the other duplication in the configFetcher) as the CLI and Server are still separate.
2022-11-03 19:12:40 +01:00
qwerty287
ee9269d658
Fix CLI format and plugin settings in docs (#1390) 2022-11-02 18:02:41 +01:00
qwerty287
f65654c226
Update Mastodon link (#1364) 2022-10-29 14:07:35 +03:00
qwerty287
8f183c82a8
Support changed files for Gitea PRs (#1342)
- add tests to fetch changed files
- ignore error if gitea version is to low
- adjust docs accordingly

Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lauris@nix.lv>
2022-10-28 19:17:30 +02:00
Harikesh00
36e42914fa
Renamed procs/jobs to steps in code (#1331)
Renamed `procs` to `steps` in code for the issue #1288

Co-authored-by: Harikesh Prajapati <harikesh.prajapati@druva.com>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2022-10-28 17:38:53 +02:00
qwerty287
b44e895017
Add Node PM plugin (#1360)
A simple plugin that executes NPM, PNPM or Yarn scripts
2022-10-28 17:06:14 +02:00
qwerty287
e568c42e84
Support plugin-only secrets (#1344)
Closes #1071
2022-10-27 04:21:07 +02:00
qwerty287
f6cac78119
Allow to change directory for steps (#1329)
Add `directory` YAML key that changes the workdir. Can replace a `cd`
before your commands start or make it possible to run plugins in a
subdirectory.
2022-10-24 16:31:06 +02:00
qwerty287
3ffa455810
Add Codeberg-CI/examples to awesome (#1324) 2022-10-22 20:01:14 +02:00
Brandon Kauffman
34d7dadb14
Update Administration Setup Docs (#1293)
Add clarification of port difference for gRPC and HTTP

Co-authored-by: 6543 <6543@obermui.de>
2022-10-20 03:33:18 +02:00
6543
c48b1dcd7e
Add "Git Push" plugin to index (#1289) 2022-10-19 21:06:20 +02:00
Lukas
01b3f5abba
Infer docusaurus dev server URL from browser (#1294)
Fixes hot reload when running behind the gitpod proxy
2022-10-19 18:05:29 +02:00
qwerty287
38198f83c4
Update all dependencies (#1291) 2022-10-19 10:15:58 +02:00
qwerty287
849e05bb8b
Rename build to pipeline in code (#1224)
Ref:  #745

Co-authored-by: Anbraten <anton@ju60.de>
Co-authored-by: 6543 <6543@obermui.de>
2022-10-18 03:24:12 +02:00
Mark Sharpley
755d9d37e4
Add "Gitea Pull Comment" plugin to index (#1270)
Signed-off-by: Mark Sharpley <698889+markopolo123@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Anbraten <anton@ju60.de>
2022-10-17 12:34:41 +02:00
Paul Tötterman
711f12ed27
More spelling & style fixes (#1275) 2022-10-15 21:25:07 +02:00
Yarden Shoham
4dbf3c671b
Fix typos in docs (#1273)
Did used [cspell](https://www.npmjs.com/package/cspell) to find typos and fixed it.

Also add cspell to gitpod.

Signed-off-by: Yarden Shoham <hrsi88@gmail.com>
2022-10-15 20:25:55 +02:00
Yarden Shoham
05bd6b9903
Improve wording on homepage features (#1271)
Signed-off-by: Yarden Shoham <hrsi88@gmail.com>
2022-10-15 18:47:39 +02:00
Paul Tötterman
efd2cf8a6f
Spelling consistently (#1267)
Since you gladly accepted my typo fix commit, I started doing some spell
and consistency checking for the docs.

Co-authored-by: 6543 <6543@obermui.de>
2022-10-14 16:57:45 +02:00
Lukas
7686d4c8c3
Use fallback icon on plugin page (#1268) 2022-10-14 16:20:54 +02:00
Paul Tötterman
47315eaac0
Fix typo (#1265) 2022-10-14 13:43:29 +02:00
Lukas
b3c816abbd
Add fallback plugin image and display plugins in 1 to 3 columns (#1247) 2022-10-09 19:31:53 +02:00