Re-vendor the contract at Forgejo 17.0.0 #8

Merged
stephen merged 1 commit from revendor-forgejo-17 into main 2026-10-16 22:37:36 +00:00
Owner

What changes. rasterhub.com now runs 17.0.0+gitea-1.22.0; the vendored spec was pinned at 16.0.3. The three spec files are make fetch + make regenerate against the live swagger, nothing hand-written. README and GAPS.md now state 17.0.0 as the vendored version, and GAPS.md gains entry 10 for the job log format switch.

No path, operation or schema was removed, and no schema gained a required field. Six operations are new:

GET    /repos/{owner}/{repo}/actions/jobs/{job_id}
POST   /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun
POST   /repos/{owner}/{repo}/actions/runs/{run_id}/rerun
PUT    /repos/{owner}/{repo}/issues/{index}/lock
DELETE /repos/{owner}/{repo}/issues/{index}/lock
GET    /user/actions/secrets

Two new schemas, ActionRunJobStep and IssueLockOption. ActionRunJob gains html_url and steps.

Existing operations that moved:

  • GET actions/jobs/{job_id}/logs gains step, q, qi and format query parameters and a second response media type, application/x-ndjson.
  • Workflow dispatch gains a documented 400. Compare gains verification and files query parameters. Team member PUT gains a 409.
  • EditDeadlineOption.due_date and CreateUserOption.email are no longer required. MigrateRepoOptions.service gains bitbucketdc.
  • Some "Deprecated" prose in descriptions became x-deprecated: true.

versionFloor stays at 7.0.0. 17.0.0 is a capability ceiling a consumer detects at runtime, not a new floor.

Evidence. Probed on rasterhub.com at 17.0.0 on 2026-10-16. GET actions/jobs/104670 on rasterstate/fjord-ios returns 200 with steps[] (number, name, status, started, stopped), html_url and attempt. GET /user/actions/secrets returns 200. Run rerun answers 204 once a run has finished and 400 before that; job rerun reruns the job and every job that depends on it. Job logs return text/plain whatever the Accept order and application/x-ndjson only under format=ndjson (GAPS.md entry 10). None of these paths are in the 16.0.3 spec this replaces, which is the evidence a consumer's capability table needs for them. make check passes locally.

This is not a no-op for a consumer that generates exhaustive Swift enums. The second log media type and the new dispatch 400 each add a case to a generated response enum, so Fjord needs three small switch changes when it moves its submodule pointer. Those land with the pointer bump in fjord-ios, not here.

Not verified. PUT and DELETE issues/{index}/lock were not exercised for this PR, since both mutate a live issue. fj does not generate from this contract yet, so nothing was checked on its side.

**What changes.** rasterhub.com now runs `17.0.0+gitea-1.22.0`; the vendored spec was pinned at `16.0.3`. The three spec files are `make fetch` + `make regenerate` against the live swagger, nothing hand-written. README and GAPS.md now state 17.0.0 as the vendored version, and GAPS.md gains entry 10 for the job log format switch. No path, operation or schema was removed, and no schema gained a required field. Six operations are new: ``` GET /repos/{owner}/{repo}/actions/jobs/{job_id} POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun PUT /repos/{owner}/{repo}/issues/{index}/lock DELETE /repos/{owner}/{repo}/issues/{index}/lock GET /user/actions/secrets ``` Two new schemas, `ActionRunJobStep` and `IssueLockOption`. `ActionRunJob` gains `html_url` and `steps`. Existing operations that moved: - `GET actions/jobs/{job_id}/logs` gains `step`, `q`, `qi` and `format` query parameters and a second response media type, `application/x-ndjson`. - Workflow dispatch gains a documented 400. Compare gains `verification` and `files` query parameters. Team member `PUT` gains a 409. - `EditDeadlineOption.due_date` and `CreateUserOption.email` are no longer required. `MigrateRepoOptions.service` gains `bitbucketdc`. - Some "Deprecated" prose in descriptions became `x-deprecated: true`. `versionFloor` stays at `7.0.0`. 17.0.0 is a capability ceiling a consumer detects at runtime, not a new floor. **Evidence.** Probed on rasterhub.com at 17.0.0 on 2026-10-16. `GET actions/jobs/104670` on rasterstate/fjord-ios returns 200 with `steps[]` (`number`, `name`, `status`, `started`, `stopped`), `html_url` and `attempt`. `GET /user/actions/secrets` returns 200. Run rerun answers 204 once a run has finished and 400 before that; job rerun reruns the job and every job that depends on it. Job logs return `text/plain` whatever the `Accept` order and `application/x-ndjson` only under `format=ndjson` (GAPS.md entry 10). None of these paths are in the 16.0.3 spec this replaces, which is the evidence a consumer's capability table needs for them. `make check` passes locally. This is not a no-op for a consumer that generates exhaustive Swift enums. The second log media type and the new dispatch 400 each add a case to a generated response enum, so Fjord needs three small `switch` changes when it moves its submodule pointer. Those land with the pointer bump in fjord-ios, not here. **Not verified.** `PUT` and `DELETE issues/{index}/lock` were not exercised for this PR, since both mutate a live issue. fj does not generate from this contract yet, so nothing was checked on its side.
Re-vendor the contract at Forgejo 17.0.0
All checks were successful
CI / Contract drift (pull_request) Successful in 5s
9239534ed7
**What changes.** rasterhub.com now runs `17.0.0+gitea-1.22.0`; the vendored spec was pinned at `16.0.3`. The three spec files are `make fetch` + `make regenerate` against the live swagger, nothing hand-written. README and GAPS.md now state 17.0.0 as the vendored version, and GAPS.md gains entry 10 for the job log format switch.

No path, operation or schema was removed, and no schema gained a required field. Six operations are new:

```
GET    /repos/{owner}/{repo}/actions/jobs/{job_id}
POST   /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun
POST   /repos/{owner}/{repo}/actions/runs/{run_id}/rerun
PUT    /repos/{owner}/{repo}/issues/{index}/lock
DELETE /repos/{owner}/{repo}/issues/{index}/lock
GET    /user/actions/secrets
```

Two new schemas, `ActionRunJobStep` and `IssueLockOption`. `ActionRunJob` gains `html_url` and `steps`.

Existing operations that moved:

- `GET actions/jobs/{job_id}/logs` gains `step`, `q`, `qi` and `format` query parameters and a second response media type, `application/x-ndjson`.
- Workflow dispatch gains a documented 400. Compare gains `verification` and `files` query parameters. Team member `PUT` gains a 409.
- `EditDeadlineOption.due_date` and `CreateUserOption.email` are no longer required. `MigrateRepoOptions.service` gains `bitbucketdc`.
- Some "Deprecated" prose in descriptions became `x-deprecated: true`.

`versionFloor` stays at `7.0.0`. 17.0.0 is a capability ceiling a consumer detects at runtime, not a new floor.

**Evidence.** Probed on rasterhub.com at 17.0.0 on 2026-10-16. `GET actions/jobs/104670` on rasterstate/fjord-ios returns 200 with `steps[]` (`number`, `name`, `status`, `started`, `stopped`), `html_url` and `attempt`. `GET /user/actions/secrets` returns 200. Run rerun answers 204 once a run has finished and 400 before that; job rerun reruns the job and every job that depends on it. Job logs return `text/plain` whatever the `Accept` order and `application/x-ndjson` only under `format=ndjson` (GAPS.md entry 10). None of these paths are in the 16.0.3 spec this replaces, which is the evidence a consumer's capability table needs for them. `make check` passes locally.

This is not a no-op for a consumer that generates exhaustive Swift enums. The second log media type and the new dispatch 400 each add a case to a generated response enum, so Fjord needs three small `switch` changes when it moves its submodule pointer. Those land with the pointer bump in fjord-ios, not here.

**Not verified.** `PUT` and `DELETE issues/{index}/lock` were not exercised for this PR, since both mutate a live issue. fj does not generate from this contract yet, so nothing was checked on its side.
stephen deleted branch revendor-forgejo-17 2026-10-16 22:37:36 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
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
rasterstate/forgejo-api-contract!8
No description provided.