Files
8d6209fe4f [feature] granular admin scopes for custom emojis (#4489)
This PR adds admin equivalents of the `read:custom_emojis` OAuth scope: `admin:read:custom_emojis` and `admin:write:custom_emojis`.

This is so tools which only touch emojis can run without other admin permissions. (`slurp emojis import` is one such tool.)

I've also sorted the admin section of the scopes lists alphabetically like the non-admin section, and updated the Swagger test script to print the same command path that it actually runs.

## API compatibility

Neither [Mastodon](https://docs.joinmastodon.org/api/oauth-scopes/) nor Akkoma nor Iceshrimp.NET has an equivalent scope, so there are no alternate scope names to worry about.

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4489
Co-authored-by: Vyr Cossont <vyr@noreply.codeberg.org>
Co-committed-by: Vyr Cossont <vyr@noreply.codeberg.org>
2025-10-13 19:15:24 +02:00

31 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# Test that the Swagger spec is up to date and valid.
set -eu
swagger_cmd() {
go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger "$@"
}
swagger_spec='docs/api/swagger.yaml'
# Temporary directory for the regenerated Swagger spec.
temp_dir=$(mktemp -d)
# Can't use mktemp directly because we need to control the file extension.
regenerated_swagger_spec="${temp_dir}/swagger.yaml"
cleanup() {
rm -rf "${temp_dir}"
}
trap cleanup INT TERM EXIT
# Regenerate the Swagger spec and compare it to the working copy.
swagger_cmd generate spec --scan-models --exclude-deps --output "${regenerated_swagger_spec}"
if ! diff -u "${swagger_spec}" "${regenerated_swagger_spec}" > /dev/null; then
echo "${swagger_spec} is out of date. Please run the following command to update it:" >&2
echo " go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps --output ${swagger_spec}" >&2
exit 1
fi
# Validate the Swagger spec.
swagger_cmd validate "${swagger_spec}"