Add search action jobs for API routes, repo, org and global level #6300

Merged
earl-warren merged 17 commits from cobak78/forgejo:list-job-endpoints into forgejo 2025-01-14 12:17:48 +01:00
Member

This PR wants to improve information of the tasks waiting to be executed on a global, organization, user and repository leve.
The main motivation is explained here forgejo/discussions#241

Checklist

The contributor guide contains information that will be helpful to first time contributors. There also are a few conditions for merging Pull Requests in Forgejo repositories. You are also welcome to join the Forgejo development chatroom.

Tests

  • I added test coverage for Go changes...
    • in their respective *_test.go for unit tests.
    • in the tests/integration directory if it involves interactions with a live Forgejo server.
  • I added test coverage for JavaScript changes...

Documentation

  • I created a pull request to the documentation to explain to Forgejo users how to use this change.
  • I did not document these changes and I do not expect someone else to do it.

Release notes

  • I do not want this change to show in the release notes.
  • I want the title to show in the release notes with a link to this pull request.
  • I want the content of the release-notes/<pull request number>.md to be be used for the release notes instead of the title.

Release notes

  • Features
    • PR: Add search action jobs for API routes, repo, org and global level
This PR wants to improve information of the tasks waiting to be executed on a global, organization, user and repository leve. The main motivation is explained here https://codeberg.org/forgejo/discussions/issues/241 ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I added test coverage for JavaScript changes... - [ ] in `web_src/js/*.test.js` if it can be unit tested. - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. ### Release notes - [ ] I do not want this change to show in the release notes. - [x] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Features - [PR](https://codeberg.org/forgejo/forgejo/pulls/6300): <!--number 6300 --><!--line 0 --><!--description QWRkIHNlYXJjaCBhY3Rpb24gam9icyBmb3IgQVBJIHJvdXRlcywgcmVwbywgb3JnIGFuZCBnbG9iYWwgbGV2ZWw=-->Add search action jobs for API routes, repo, org and global level<!--description--> <!--end release-notes-assistant-->
@ -0,0 +1,22 @@
package structs
Owner

Please add license headers.

Please add license headers.
cobak78 marked this conversation as resolved
@ -33,0 +44,4 @@
func GetActionRunJobs(ctx *context.APIContext, ownerID int64, repoID int64) {
labels := strings.Split(ctx.FormTrim("labels"), ",")
log.Printf("labels: %v", labels)
Owner

Left debug statement.

Left debug statement.
cobak78 marked this conversation as resolved
@ -33,0 +81,4 @@
return res
}
func isSubset(set, subset []string) bool {
Owner

Please move this function to modules/container/subset.go as this is also defined in in models/actions/task.go.

Please move this function to `modules/container/subset.go` as this is also defined in in `models/actions/task.go`.
cobak78 marked this conversation as resolved
earl-warren 2024-12-19 07:26:32 +01:00
Contributor

This looks interesting 👍 Would you mind switching to WIP: until it is ready for a review? Removing the WIP: will notify me and I'll take a look 🙏

This looks interesting 👍 Would you mind switching to WIP: until it is ready for a review? Removing the WIP: will notify me and I'll take a look 🙏
cobak78 changed title from Add search action jobs for API routes, repo, org and global level to WIP: Add search action jobs for API routes, repo, org and global level 2024-12-19 09:11:26 +01:00
cobak78 force-pushed list-job-endpoints from 1d68fab1c5
Some checks failed
requirements / merge-conditions (pull_request) Failing after 2s
issue-labels / release-notes (pull_request_target) Has been skipped
testing / frontend-checks (pull_request) Successful in 53s
testing / backend-checks (pull_request) Failing after 1m23s
testing / test-unit (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-mysql (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
to 53b405e3cc
Some checks failed
requirements / merge-conditions (pull_request) Failing after 2s
issue-labels / release-notes (pull_request_target) Has been skipped
testing / frontend-checks (pull_request) Successful in 53s
testing / backend-checks (pull_request) Failing after 1m22s
testing / test-unit (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-mysql (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
2024-12-19 14:43:45 +01:00
Compare
cobak78 changed title from WIP: Add search action jobs for API routes, repo, org and global level to Add search action jobs for API routes, repo, org and global level 2024-12-19 16:42:21 +01:00
Where does that come from? The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/6300.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference.

This message and the release notes originate from a call to the release-notes-assistant.

@@ -25,2 +25,10 @@
 - [x] I want the title to show in the release notes with a link to this pull request.
 - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.
+
+<!--start release-notes-assistant-->
+
+## Release notes
+<!--URL:https://codeberg.org/forgejo/forgejo-->
+- Features
+  - [PR](https://codeberg.org/forgejo/forgejo/pulls/6300): <!--number 6300 --><!--line 0 --><!--description QWRkIHNlYXJjaCBhY3Rpb24gam9icyBmb3IgQVBJIHJvdXRlcywgcmVwbywgb3JnIGFuZCBnbG9iYWwgbGV2ZWw=-->Add search action jobs for API routes, repo, org and global level<!--description-->
+<!--end release-notes-assistant-->

Release notes

  • Features
    • PR: Add search action jobs for API routes, repo, org and global level
<details> <summary>Where does that come from?</summary> The following is a preview of the release notes for this pull request, as they will appear in the upcoming release. They are derived from the content of the `release-notes/6300.md` file, if it exists, or the title of the pull request. They were also added at the bottom of the description of this pull request for easier reference. This message and the release notes originate from a call to the [release-notes-assistant](https://code.forgejo.org/forgejo/release-notes-assistant). ```diff @@ -25,2 +25,10 @@ - [x] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. + +<!--start release-notes-assistant--> + +## Release notes +<!--URL:https://codeberg.org/forgejo/forgejo--> +- Features + - [PR](https://codeberg.org/forgejo/forgejo/pulls/6300): <!--number 6300 --><!--line 0 --><!--description QWRkIHNlYXJjaCBhY3Rpb24gam9icyBmb3IgQVBJIHJvdXRlcywgcmVwbywgb3JnIGFuZCBnbG9iYWwgbGV2ZWw=-->Add search action jobs for API routes, repo, org and global level<!--description--> +<!--end release-notes-assistant--> ``` </details> <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Features - [PR](https://codeberg.org/forgejo/forgejo/pulls/6300): <!--number 6300 --><!--line 0 --><!--description QWRkIHNlYXJjaCBhY3Rpb24gam9icyBmb3IgQVBJIHJvdXRlcywgcmVwbywgb3JnIGFuZCBnbG9iYWwgbGV2ZWw=-->Add search action jobs for API routes, repo, org and global level<!--description--> <!--end release-notes-assistant-->
cobak78 force-pushed list-job-endpoints from 560e526c89
Some checks failed
testing / frontend-checks (pull_request) Successful in 58s
testing / backend-checks (pull_request) Successful in 2m44s
testing / test-e2e (pull_request) Successful in 3m4s
testing / test-unit (pull_request) Successful in 4m56s
testing / test-remote-cacher (redis) (pull_request) Successful in 1m45s
testing / test-remote-cacher (valkey) (pull_request) Successful in 1m44s
testing / test-remote-cacher (garnet) (pull_request) Successful in 1m46s
testing / test-remote-cacher (redict) (pull_request) Successful in 1m47s
testing / test-mysql (pull_request) Failing after 24m29s
testing / test-sqlite (pull_request) Failing after 26m33s
testing / test-pgsql (pull_request) Failing after 30m51s
testing / security-check (pull_request) Has been skipped
issue-labels / backporting (pull_request_target) Has been skipped
issue-labels / cascade (pull_request_target) Has been skipped
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 40s
to 5b3d42cff4
Some checks failed
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 23s
testing / frontend-checks (pull_request) Successful in 48s
testing / backend-checks (pull_request) Successful in 2m53s
testing / test-e2e (pull_request) Successful in 3m4s
testing / test-unit (pull_request) Successful in 4m59s
testing / test-remote-cacher (redis) (pull_request) Successful in 1m50s
testing / test-remote-cacher (valkey) (pull_request) Successful in 1m50s
testing / test-remote-cacher (garnet) (pull_request) Successful in 2m27s
testing / test-remote-cacher (redict) (pull_request) Successful in 2m15s
testing / test-mysql (pull_request) Failing after 20m19s
testing / test-sqlite (pull_request) Failing after 22m8s
testing / test-pgsql (pull_request) Failing after 26m6s
testing / security-check (pull_request) Has been skipped
2024-12-20 11:16:33 +01:00
Compare
@ -30,2 +30,4 @@
}
func (s Set[T]) IsSubset(subset []T) bool {
if len(subset) < 1 {
Owner

len(subset) == 0 is a more idomatic way to do this.

`len(subset) == 0` is a more idomatic way to do this.
Owner

Is there a good reason to do this? This isn't how subsets in mathematics are defined, for which \emptyset \in S holds true for every set S.

Is there a good reason to do this? This isn't how subsets in mathematics are defined, for which $\emptyset \in S$ holds true for every set $S$.
Author
Member

A possible solution would be to keep the function mathematically correct and move the equality check against 0 to where it is called. However, I think it would be more appropriate to create a specific function for the labels, called ItRunsOn.

A possible solution would be to keep the function mathematically correct and move the equality check against 0 to where it is called. However, I think it would be more appropriate to create a specific function for the labels, called ItRunsOn.
cobak78 marked this conversation as resolved
@ -0,0 +1,35 @@
package integration
Owner

Missing copyright headers.

Missing copyright headers.
cobak78 marked this conversation as resolved
@ -0,0 +1,40 @@
package integration
Owner

Ditto

Ditto
cobak78 marked this conversation as resolved
@ -0,0 +1,35 @@
package integration
Owner

Ditto

Ditto
cobak78 marked this conversation as resolved
cobak78 force-pushed list-job-endpoints from 67c98bfe3b
Some checks failed
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 37s
testing / frontend-checks (pull_request) Successful in 50s
testing / backend-checks (pull_request) Failing after 2m7s
testing / test-unit (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-mysql (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
Integration tests for the release process / release-simulation (pull_request) Successful in 5m4s
to bdb16e66d5
Some checks failed
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 34s
testing / frontend-checks (pull_request) Successful in 1m36s
testing / backend-checks (pull_request) Failing after 1m44s
testing / test-unit (pull_request) Has been skipped
testing / test-e2e (pull_request) Has been skipped
testing / test-mysql (pull_request) Has been skipped
testing / test-pgsql (pull_request) Has been skipped
testing / test-sqlite (pull_request) Has been skipped
testing / test-remote-cacher (redis) (pull_request) Has been skipped
testing / test-remote-cacher (valkey) (pull_request) Has been skipped
testing / test-remote-cacher (garnet) (pull_request) Has been skipped
testing / test-remote-cacher (redict) (pull_request) Has been skipped
testing / security-check (pull_request) Has been skipped
2025-01-08 15:05:57 +01:00
Compare
cobak78 force-pushed list-job-endpoints from 854412aca1
Some checks failed
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 22s
testing / frontend-checks (pull_request) Successful in 1m1s
testing / backend-checks (pull_request) Successful in 2m53s
testing / test-e2e (pull_request) Successful in 2m33s
testing / test-unit (pull_request) Successful in 3m25s
testing / test-remote-cacher (valkey) (pull_request) Successful in 54s
testing / test-remote-cacher (redis) (pull_request) Successful in 57s
testing / test-remote-cacher (garnet) (pull_request) Successful in 53s
testing / test-remote-cacher (redict) (pull_request) Successful in 53s
testing / test-mysql (pull_request) Failing after 16m25s
testing / test-sqlite (pull_request) Failing after 17m57s
testing / test-pgsql (pull_request) Failing after 21m43s
testing / security-check (pull_request) Has been skipped
to 4e30805b26
Some checks failed
testing / frontend-checks (pull_request) Successful in 1m47s
testing / backend-checks (pull_request) Successful in 5m39s
testing / test-e2e (pull_request) Successful in 3m10s
testing / test-unit (pull_request) Successful in 3m52s
testing / test-remote-cacher (redis) (pull_request) Successful in 1m18s
testing / test-remote-cacher (valkey) (pull_request) Successful in 1m17s
testing / test-mysql (pull_request) Failing after 21m48s
testing / test-remote-cacher (garnet) (pull_request) Successful in 1m17s
testing / test-remote-cacher (redict) (pull_request) Successful in 1m7s
testing / test-sqlite (pull_request) Failing after 21m41s
testing / test-pgsql (pull_request) Failing after 26m22s
testing / security-check (pull_request) Has been skipped
requirements / merge-conditions (pull_request) Successful in 1s
issue-labels / release-notes (pull_request_target) Successful in 39s
2025-01-09 08:51:50 +01:00
Compare
viceice left a comment
Owner

adding a jobs api seems useful. i think i find use-cases beside autoscaling

adding a jobs api seems useful. i think i find use-cases beside autoscaling
@ -0,0 +1,25 @@
// SPDX-License-Identifier: MIT
Owner

Are you open to use GPL-3.0-or-later for new files ?

Are you open to use `GPL-3.0-or-later` for new files ?
earl-warren left a comment
Contributor

Excellent work.

Excellent work.
earl-warren changed title from Add search action jobs for API routes, repo, org and global level to WIP: Add search action jobs for API routes, repo, org and global level 2025-01-13 07:58:29 +01:00
Contributor

Please remove the WIP: prefix once the tests pass.

Please remove the WIP: prefix once the tests pass.
cobak78 changed title from WIP: Add search action jobs for API routes, repo, org and global level to Add search action jobs for API routes, repo, org and global level 2025-01-13 10:40:27 +01:00
Contributor

The failure is related.

https://codeberg.org/forgejo/forgejo/actions/runs/52489/jobs/8#jobstep-5-2657

Could you please check that the tests run successfully before removing the WIP:? It signals me that I should take a look and that would save me a little time 🙏

The failure is related. https://codeberg.org/forgejo/forgejo/actions/runs/52489/jobs/8#jobstep-5-2657 Could you please check that the tests run successfully before removing the WIP:? It signals me that I should take a look and that would save me a little time 🙏
earl-warren changed title from Add search action jobs for API routes, repo, org and global level to WIP: Add search action jobs for API routes, repo, org and global level 2025-01-13 14:38:09 +01:00
cobak78 changed title from WIP: Add search action jobs for API routes, repo, org and global level to Add search action jobs for API routes, repo, org and global level 2025-01-14 10:57:03 +01:00
cobak78 force-pushed list-job-endpoints from 7db327a1b3
All checks were successful
testing / frontend-checks (pull_request) Successful in 59s
testing / backend-checks (pull_request) Successful in 3m39s
Integration tests for the release process / release-simulation (pull_request) Successful in 5m8s
testing / test-e2e (pull_request) Successful in 3m31s
testing / test-unit (pull_request) Successful in 4m5s
testing / test-remote-cacher (redis) (pull_request) Successful in 1m4s
testing / test-remote-cacher (valkey) (pull_request) Successful in 1m2s
testing / test-remote-cacher (garnet) (pull_request) Successful in 1m4s
testing / test-remote-cacher (redict) (pull_request) Successful in 1m6s
testing / test-mysql (pull_request) Successful in 20m23s
testing / test-sqlite (pull_request) Successful in 21m7s
testing / test-pgsql (pull_request) Successful in 25m32s
testing / security-check (pull_request) Successful in 1m47s
requirements / merge-conditions (pull_request) Successful in 2s
issue-labels / release-notes (pull_request_target) Successful in 23s
to bfac9a8e94
All checks were successful
requirements / merge-conditions (pull_request) Successful in 1s
issue-labels / release-notes (pull_request_target) Successful in 22s
testing / frontend-checks (pull_request) Successful in 53s
testing / backend-checks (pull_request) Successful in 3m14s
testing / test-e2e (pull_request) Successful in 3m5s
testing / test-unit (pull_request) Successful in 5m17s
testing / test-remote-cacher (redis) (pull_request) Successful in 1m50s
testing / test-remote-cacher (garnet) (pull_request) Successful in 1m49s
testing / test-remote-cacher (redict) (pull_request) Successful in 1m49s
testing / test-remote-cacher (valkey) (pull_request) Successful in 1m51s
testing / test-mysql (pull_request) Successful in 18m11s
testing / test-sqlite (pull_request) Successful in 20m26s
testing / test-pgsql (pull_request) Successful in 24m6s
testing / security-check (pull_request) Successful in 1m3s
issue-labels / backporting (pull_request_target) Has been skipped
milestone / set (pull_request_target) Successful in 10s
2025-01-14 10:57:22 +01:00
Compare
Contributor

@cobak78 this will be deployed on https://v11.next.forgejo.org and you'll be able to check how it behaves for real. 🚀

@cobak78 this will be deployed on https://v11.next.forgejo.org and you'll be able to check how it behaves for real. 🚀
@ -33,0 +55,4 @@
}
res := new(RunJobList)
res.Body = fromRunJobModelToResponse(total, labels)
Member

Is there a particular reason why the response is wrapped in body?

This is different from virtually any other endpoint I looked at and the generated Swagger schema is wrong.

"responses": {
"200": {
"$ref": "#/responses/RunJobList"
},

"RunJobList": {
"description": "RunJobList is a list of action run jobs",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/ActionRunJob"
}
}
},

An example response looks like

{
  "body": [
    {
      "id": 1,
      "repo_id": 1,
      "owner_id": 1,
      "name": "name",
      "needs": null,
      "runs_on": [
        "native"
      ],
      "task_id": 0,
      "status": "waiting"
    }
  ]
}

while the schema suggests:

[
  {
    "id": 1,
    "repo_id": 1,
    "owner_id": 1,
    "name": "name",
    "needs": null,
    "runs_on": [
      "native"
    ],
    "task_id": 0,
    "status": "waiting"
  }
]

Similarly, an empty result looks like

{
  "body": null
}

instead of

[]
Is there a particular reason why the response is wrapped in `body`? This is different from virtually any other endpoint I looked at and the generated Swagger schema is wrong. https://codeberg.org/forgejo/forgejo/src/commit/75b9bd82e8a4fe4de0e04d3a236be4036750754e/templates/swagger/v1_json.tmpl#L1013-L1016 https://codeberg.org/forgejo/forgejo/src/commit/75b9bd82e8a4fe4de0e04d3a236be4036750754e/templates/swagger/v1_json.tmpl#L28982-L28990 An example response looks like ~~~json { "body": [ { "id": 1, "repo_id": 1, "owner_id": 1, "name": "name", "needs": null, "runs_on": [ "native" ], "task_id": 0, "status": "waiting" } ] } ~~~ while the schema suggests: ~~~json [ { "id": 1, "repo_id": 1, "owner_id": 1, "name": "name", "needs": null, "runs_on": [ "native" ], "task_id": 0, "status": "waiting" } ] ~~~ Similarly, an empty result looks like ~~~json { "body": null } ~~~ instead of ~~~json [] ~~~
Owner

Huh, that's interesting. Could you open a new issue so it can be marked as an release blocker?

Huh, that's interesting. Could you open a new issue so it can be marked as an release blocker?
Contributor

@cobak78 FYI

@cobak78 FYI
Author
Member

Yes, you're right, good catch. I think I mistakenly copied that result from a Swagger definition instead of a real response. Here's a small PR to fix it. #7050

Yes, you're right, good catch. I think I mistakenly copied that result from a Swagger definition instead of a real response. Here's a small PR to fix it. https://codeberg.org/forgejo/forgejo/pulls/7050
@ -80,3 +80,3 @@
PageSize: 30,
},
Status: actions_model.StatusUnknown, // Unknown means all
Status: []actions_model.Status{actions_model.StatusUnknown}, // Unknown means all
Contributor

See #7643. The field should have been removed instead to ensure all tasks are listed.

See https://codeberg.org/forgejo/forgejo/issues/7643. The field should have been removed instead to ensure all tasks are listed.
Sign in to join this conversation.
No labels
arch
riscv64
backport/v1.19
backport/v1.20
backport/v1.21/forgejo
backport/v10.0/forgejo
backport/v11.0/forgejo
backport/v12.0/forgejo
backport/v13.0/forgejo
backport/v14.0/forgejo
backport/v15.0/forgejo
backport/v7.0/forgejo
backport/v8.0/forgejo
backport/v9.0/forgejo
breaking
bug
bug
confirmed
bug
duplicate
bug
needs-more-info
bug
new-report
bug
reported-upstream
code/actions
code/api
code/auth
code/auth/faidp
code/auth/farp
code/email
code/federation
code/git
code/migrations
code/packages
code/wiki
database
MySQL
database
PostgreSQL
database
SQLite
dependency-upgrade
dependency
certmagic
dependency
chart.js
dependency
Chi
dependency
Chroma
dependency
citation.js
dependency
codespell
dependency
css-loader
dependency
devcontainers
dependency
dropzone
dependency
editorconfig-checker
dependency
elasticsearch
dependency
enmime
dependency
F3
dependency
ForgeFed
dependency
garage
dependency
Git
dependency
git-backporting
dependency
Gitea
dependency
gitignore
dependency
go-ap
dependency
go-enry
dependency
go-gitlab
dependency
Go-org
dependency
go-rpmutils
dependency
go-sql-driver mysql
dependency
go-swagger
dependency
go-version
dependency
go-webauthn
dependency
gocron
dependency
Golang
dependency
goldmark
dependency
goquery
dependency
Goth
dependency
grpc-go
dependency
happy-dom
dependency
Helm
dependency
image-spec
dependency
jsonschema
dependency
KaTeX
dependency
lint
dependency
MariaDB
dependency
Mermaid
dependency
minio-go
dependency
misspell
dependency
Monaco
dependency
PDFobject
dependency
playwright
dependency
postcss
dependency
postcss-plugins
dependency
pprof
dependency
prometheus client_golang
dependency
protobuf
dependency
relative-time-element
dependency
renovate
dependency
reply
dependency
ssh
dependency
swagger-ui
dependency
tailwind
dependency
temporal-polyfill
dependency
terminal-to-html
dependency
tests-only
dependency
text-expander-element
dependency
urfave
dependency
vfsgen
dependency
vite
dependency
Woodpecker CI
dependency
x tools
dependency
XORM
Discussion
duplicate
enhancement/feature
forgejo/accessibility
forgejo/branding
forgejo/ci
forgejo/commit-graph
forgejo/documentation
forgejo/furnace cleanup
forgejo/i18n
forgejo/interop
forgejo/moderation
forgejo/privacy
forgejo/release
forgejo/scaling
forgejo/security
forgejo/ui
Gain
High
Gain
Nice to have
Gain
Undefined
Gain
Very High
good first issue
i18n/backport-stable
impact
large
impact
medium
impact
small
impact
unknown
Incompatible license
issue
closed
issue
do-not-exist-yet
issue
open
manual test
Manually tested during feature freeze
OS
FreeBSD
OS
Linux
OS
macOS
OS
Windows
problem
QA
regression
release blocker
Release Cycle
Feature Freeze
release-blocker
v7.0
release-blocker
v7.0.1
release-blocker
v7.0.2
release-blocker
v7.0.3
release-blocker
v7.0.4
release-blocker
v8.0.0
release-blocker/v9.0.0
run-all-playwright-tests
run-end-to-end-tests
test
manual
test
needed
test
needs-help
test
not-needed
test
present
untested
User research - time-tracker
valuable code
worth a release-note
User research - Accessibility
User research - Blocked
User research - Community
User research - Config (instance)
User research - Errors
User research - Filters
User research - Future backlog
User research - Git workflow
User research - Labels
User research - Moderation
User research - Needs input
User research - Notifications/Dashboard
User research - Rendering
User research - Repo creation
User research - Repo units
User research - Security
User research - Settings (in-app)
No milestone
No project
No assignees
6 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/forgejo!6300
No description provided.