1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-10-15 19:42:04 +00:00
forgejo/routers/api/v1/repo
Gusted 389b32f51a feat: make upload URL compatible with GitHub API (#9285)
Adds new a function, `AcceptsGithubResponse`, to the API router context struct to check if the requests accepts a Github response. Although Forgejo API will never be compatible with the Github API, historically Forgejo's API has been designed to follow that of Github closely and we know that a lot of tooling that uses the Github API can be used against the Forgejo API with little to no problem.

As a meet in the middle solution, this function can be used to respond with a more appropriate response that follows the Github API. This allows Forgejo to avoid breaking compatibility with existing users of the API and allows the API to be oh so slightly more compatible with that of Github for API clients that expect a Github response.

Because the `upload_url` field was added purely to match the Github API (forgejo/forgejo#580), it is fair to actually make it compatible with how the Github API intended it to be and that is by adding `{?name,label}` which is used by Github's Oktokit.

Only add `{?name,label}` when Forgejo knows the request accepts a Github response. This avoids breaking the API compatibility with non-Github API  clients.

Resolves Codeberg/Community#2132

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9285
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-by: oliverpool <oliverpool@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
2025-09-15 15:53:35 +02:00
..
action.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
avatar.go chore(api): update swagger method descripitons (#8728) 2025-07-30 18:08:28 +02:00
blob.go feat: API GET /repos/{owner}/{repo}/git/blobs 2025-06-13 13:52:56 +02:00
branch.go chore: Refactor Is{Reference,Branch}Exist (#8425) 2025-07-06 07:16:43 +02:00
collaborators.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
commits.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
compare.go fix: make API /repos/{owner}/{repo}/compare/{basehead} work with forks (#8326) 2025-06-28 23:28:12 +02:00
download.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
file.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
flags.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
fork.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
git_hook.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
git_ref.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
hook.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
hook_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
issue.go feat: show more relevant results for 'dependencies' dropdown (#8003) 2025-06-26 20:06:21 +02:00
issue_attachment.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_comment.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_comment_attachment.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_dependency.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
issue_label.go feat: make upload URL compatible with GitHub API (#9285) 2025-09-15 15:53:35 +02:00
issue_pin.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_reaction.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_stopwatch.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_subscription.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
issue_tracked_time.go chore(cleanup): replaces unnecessary calls to formatting functions by non-formatting equivalents (#7994) 2025-05-29 17:34:29 +02:00
key.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
label.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
language.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
main_test.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
migrate.go fix: don't allow credentials in migrate/push mirror URL 2025-08-30 08:07:23 +02:00
milestone.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
mirror.go fix: don't allow credentials in migrate/push mirror URL 2025-08-30 08:07:23 +02:00
notes.go chore(cleanup): replaces unnecessary calls to formatting functions by non-formatting equivalents (#7994) 2025-05-29 17:34:29 +02:00
patch.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
pull.go fix: prevent pull requests from being merged multiple times 2025-08-11 12:55:25 +02:00
pull_review.go chore(api): update swagger method descripitons (#8728) 2025-07-30 18:08:28 +02:00
release.go feat: make upload URL compatible with GitHub API (#9285) 2025-09-15 15:53:35 +02:00
release_attachment.go feat: make upload URL compatible with GitHub API (#9285) 2025-09-15 15:53:35 +02:00
release_tags.go feat: make upload URL compatible with GitHub API (#9285) 2025-09-15 15:53:35 +02:00
repo.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
repo_test.go feat: Add converting mirror repos to normal to the API (#8932) 2025-09-14 14:25:05 +02:00
star.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
status.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
subscriber.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
sync_fork.go feat: sync forks (#2364) 2025-04-07 07:00:38 +00:00
tag.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
tag_test.go fix(api): set default pagination and Link header for repoListTags (#9201) 2025-09-09 02:24:07 +02:00
teams.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
topic.go Update Swagger annotations to reflect actual behavior (#9138) 2025-09-15 11:55:49 +02:00
transfer.go chore(cleanup): replaces unnecessary calls to formatting functions by non-formatting equivalents (#7994) 2025-05-29 17:34:29 +02:00
tree.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
wiki.go git/blob: GetContentBase64 with fewer allocations and no goroutine (#8297) 2025-06-27 11:22:10 +02:00