Skip to content

Gitlab::Json Oj implementation

Robert May requested to merge json-oj-redux into master

What does this MR do?

Attempt number 2.

This is a revised implementation of Oj support in Gitlab::Json. This was originally merged in !35527 (merged), then reverted in !36498 (merged) as it caused problems with the deploy.

I've now updated this and expanded the test suite. It now covers the quite drastic difference between Oj.dump and JSON.dump, which are basically different methods, restructures the public API of Gitlab::Json to ensure compatibility, adds adapter switching support for .generate and .pretty_generate, and expands the test coverage to cover these areas.

It also ignores database failures when testing for feature flags, defaulting to the normal json gem if the feature can't be tested.

Related #217633 (closed)

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Robert May

Merge request reports