chore: remove field ephemeral from runner registration response (#11350)

Remove the field `ephemeral` from the response to runner registration requests made using the HTTP API (POST to `/repos/{owner}/{repo}/actions/runners` and friends) that was introduced with https://codeberg.org/forgejo/forgejo/pulls/9962. The client already knows that it requested an ephemeral runner. Therefore, the information is redundant.

It can be included again should a compelling use case arise.

This part of the HTTP API hasn't been released yet. Therefore, it is safe to remove the field.

## 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 for Go changes

(can be removed for JavaScript changes)

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I ran...
  - [x] `make pr-go` before pushing

### Tests for JavaScript changes

(can be removed for Go changes)

- 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

- [ ] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change.
- [x] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change.

*The decision if the pull request will be shown in the release notes is up to the mergers / release team.*

The content of the `release-notes/<pull request number>.md` file will serve as the basis for the release notes. If the file does not exist, the title of the pull request will be used instead.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11350
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org>
Co-authored-by: Andreas Ahlenstorf <andreas@ahlenstorf.ch>
Co-committed-by: Andreas Ahlenstorf <andreas@ahlenstorf.ch>
This commit is contained in:
Andreas Ahlenstorf 2026-02-18 16:49:44 +01:00 committed by Mathieu Fenniak
parent 8c2bb0f65b
commit 73b96a41bc
7 changed files with 6 additions and 24 deletions

View file

@ -25,8 +25,7 @@ type RegisterRunnerOptions struct {
// RegisterRunnerResponse contains the details of the just registered runner.
// swagger:model
type RegisterRunnerResponse struct {
ID int64 `json:"id" binding:"Required"`
UUID string `json:"uuid" binding:"Required"`
Token string `json:"token" binding:"Required"`
Ephemeral bool `json:"ephemeral" binding:"Required"`
ID int64 `json:"id" binding:"Required"`
UUID string `json:"uuid" binding:"Required"`
Token string `json:"token" binding:"Required"`
}

View file

@ -170,10 +170,9 @@ func RegisterRunner(ctx *context.APIContext, ownerID, repoID int64) {
}
response := &structs.RegisterRunnerResponse{
ID: runner.ID,
UUID: runner.UUID,
Token: runner.Token,
Ephemeral: runner.Ephemeral,
ID: runner.ID,
UUID: runner.UUID,
Token: runner.Token,
}
ctx.JSON(http.StatusCreated, response)
}

View file

@ -28538,10 +28538,6 @@
"type": "object",
"title": "RegisterRunnerResponse contains the details of the just registered runner.",
"properties": {
"ephemeral": {
"type": "boolean",
"x-go-name": "Ephemeral"
},
"id": {
"type": "integer",
"format": "int64",

View file

@ -376,7 +376,6 @@ func TestAPIAdminActionsRunnerOperations(t *testing.T) {
assert.Positive(t, registerRunnerResponse.ID)
assert.Equal(t, gouuid.Version(4), gouuid.MustParse(registerRunnerResponse.UUID).Version())
assert.Regexp(t, "(?i)^[0-9a-f]{40}$", registerRunnerResponse.Token)
assert.False(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.ID, registeredRunner.ID)
@ -402,8 +401,6 @@ func TestAPIAdminActionsRunnerOperations(t *testing.T) {
var registerRunnerResponse *api.RegisterRunnerResponse
DecodeJSON(t, response, &registerRunnerResponse)
assert.True(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.UUID, registeredRunner.UUID)
assert.True(t, registeredRunner.Ephemeral)

View file

@ -250,7 +250,6 @@ func TestAPIOrgActionsRunnerOperations(t *testing.T) {
assert.Positive(t, registerRunnerResponse.ID)
assert.Equal(t, gouuid.Version(4), gouuid.MustParse(registerRunnerResponse.UUID).Version())
assert.Regexp(t, "(?i)^[0-9a-f]{40}$", registerRunnerResponse.Token)
assert.False(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.ID, registeredRunner.ID)
@ -276,8 +275,6 @@ func TestAPIOrgActionsRunnerOperations(t *testing.T) {
var registerRunnerResponse *api.RegisterRunnerResponse
DecodeJSON(t, response, &registerRunnerResponse)
assert.True(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.UUID, registeredRunner.UUID)
assert.True(t, registeredRunner.Ephemeral)

View file

@ -532,7 +532,6 @@ func TestAPIRepoActionsRunnerOperations(t *testing.T) {
assert.Positive(t, registerRunnerResponse.ID)
assert.Equal(t, gouuid.Version(4), gouuid.MustParse(registerRunnerResponse.UUID).Version())
assert.Regexp(t, "(?i)^[0-9a-f]{40}$", registerRunnerResponse.Token)
assert.False(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.ID, registeredRunner.ID)
@ -559,8 +558,6 @@ func TestAPIRepoActionsRunnerOperations(t *testing.T) {
var registerRunnerResponse *api.RegisterRunnerResponse
DecodeJSON(t, response, &registerRunnerResponse)
assert.True(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.UUID, registeredRunner.UUID)
assert.True(t, registeredRunner.Ephemeral)

View file

@ -248,7 +248,6 @@ func TestAPIUserActionsRunnerOperations(t *testing.T) {
assert.Positive(t, registerRunnerResponse.ID)
assert.Equal(t, gouuid.Version(4), gouuid.MustParse(registerRunnerResponse.UUID).Version())
assert.Regexp(t, "(?i)^[0-9a-f]{40}$", registerRunnerResponse.Token)
assert.False(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.ID, registeredRunner.ID)
@ -274,8 +273,6 @@ func TestAPIUserActionsRunnerOperations(t *testing.T) {
var registerRunnerResponse *api.RegisterRunnerResponse
DecodeJSON(t, response, &registerRunnerResponse)
assert.True(t, registerRunnerResponse.Ephemeral)
registeredRunner := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionRunner{UUID: registerRunnerResponse.UUID})
assert.Equal(t, registerRunnerResponse.UUID, registeredRunner.UUID)
assert.True(t, registeredRunner.Ephemeral)