mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-25 02:35:57 +03:00
fc3741365c
* Add Swagger spec test script * Fix Swagger spec errors not related to statuses with polls * Add API tests that post a status with a poll * Fix creating a status with a poll from form params * Fix Swagger spec errors related to statuses with polls (this is the last error) * Fix Swagger spec warnings not related to unused definitions * Suppress a duplicate list update params definition that was somehow causing wrong param names * Add Swagger test to CI - updates Drone config - vendorizes go-swagger - fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version * Put `Sample: ` on its own line everywhere * Remove unused id param from emojiCategoriesGet * Add 5 more pairs of profile fields to account update API Swagger * Remove Swagger prefix from dummy fields It makes the generated code look weird * Manually annotate params for statusCreate operation * Fix all remaining Swagger spec warnings - Change some models into operation parameters - Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields) * Documented that creating a status with scheduled_at isn't implemented yet * sign drone.yml * Fix filter API Swagger errors * fixup! Fix filter API Swagger errors --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
30 lines
1,007 B
Bash
Executable file
30 lines
1,007 B
Bash
Executable file
#!/bin/sh
|
|
|
|
# Test that the Swagger spec is up to date and valid.
|
|
|
|
set -eu
|
|
|
|
swagger_cmd() {
|
|
go run 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 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}"
|