)]}'
{
  "commit": "42f8b7782ed539d56d0f0e13da4e85603553e828",
  "tree": "5dd5251e3b0147fe063e3f7e3f279b0497d221de",
  "parents": [
    "ab2451f6c23c1189fccd17a2f6e233bc82e9cfe1"
  ],
  "author": {
    "name": "Jason Lunn",
    "email": "jason.lunn@gmail.com",
    "time": "Tue Nov 14 15:34:02 2023 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Nov 14 15:37:16 2023 -0800"
  },
  "message": "Add support for extensions in CRuby, JRuby, and FFI Ruby (#14703)\n\nFollow up to #14594, which added support for custom options, this PR implements extensions support, which should fully resolve #1198.\n\nCloses #14703\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/protocolbuffers/protobuf/pull/14703 from protocolbuffers:add-support-for-extensions-in-ruby 601aca4121212c1633e9c7cd8abc65aebe9da9df\nPiperOrigin-RevId: 582460674\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e805471773c41ebbb2b7890816c3a349ce3287e",
      "old_mode": 33188,
      "old_path": "ruby/ext/google/protobuf_c/defs.c",
      "new_id": "ea91853215d3c84dbd451148523df1c226538fe9",
      "new_mode": 33188,
      "new_path": "ruby/ext/google/protobuf_c/defs.c"
    },
    {
      "type": "modify",
      "old_id": "2dec31a89ccf7145d043cf8d5c3bf7518a0b47c9",
      "old_mode": 33188,
      "old_path": "ruby/ext/google/protobuf_c/message.c",
      "new_id": "d64d411f89d876f44f7f950206e03d7d7affcc94",
      "new_mode": 33188,
      "new_path": "ruby/ext/google/protobuf_c/message.c"
    },
    {
      "type": "modify",
      "old_id": "f0543adbb323fcefdb2060ed5d9bf227c5de4c75",
      "old_mode": 33188,
      "old_path": "ruby/lib/google/protobuf/ffi/descriptor_pool.rb",
      "new_id": "96c7d09417dfdc2479a0900a30e3f732440df085",
      "new_mode": 33188,
      "new_path": "ruby/lib/google/protobuf/ffi/descriptor_pool.rb"
    },
    {
      "type": "modify",
      "old_id": "045f67f9083b4db82b18bb0d7c00099d64c02fa8",
      "old_mode": 33188,
      "old_path": "ruby/lib/google/protobuf/ffi/message.rb",
      "new_id": "39eb403853de448cefa4e17906c984a4c4e7bc5f",
      "new_mode": 33188,
      "new_path": "ruby/lib/google/protobuf/ffi/message.rb"
    },
    {
      "type": "modify",
      "old_id": "d65b412a0a9ec4274b5e923d4617915f629b72c1",
      "old_mode": 33188,
      "old_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptorPool.java",
      "new_id": "7c01eb92709a390b3a61f04d4ee397d85cbbc5f6",
      "new_mode": 33188,
      "new_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptorPool.java"
    },
    {
      "type": "modify",
      "old_id": "5ba86ef2a74a869a676247f6b281224a6d42218c",
      "old_mode": 33188,
      "old_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java",
      "new_id": "1d647ea8d9fc677fa51bce3a1ef5d8088e0efe01",
      "new_mode": 33188,
      "new_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java"
    },
    {
      "type": "modify",
      "old_id": "25f9dca589ada0ac5fb25a903d0674d73830f045",
      "old_mode": 33188,
      "old_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java",
      "new_id": "12e609191d2a53d6b45ccc44c9aeb260445896d9",
      "new_mode": 33188,
      "new_path": "ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java"
    },
    {
      "type": "modify",
      "old_id": "9cd2d705ecca1e2609f896cf853d951911c2076f",
      "old_mode": 33261,
      "old_path": "ruby/tests/basic.rb",
      "new_id": "fe2119e42fb78238d049efec59f778059221ab4a",
      "new_mode": 33261,
      "new_path": "ruby/tests/basic.rb"
    },
    {
      "type": "modify",
      "old_id": "e9e99e5459f6f1e0cd40996a76575e054f3af901",
      "old_mode": 33261,
      "old_path": "ruby/tests/basic_proto2.rb",
      "new_id": "1eefc6ff8d94b6e59f0b393fe911010511cf96eb",
      "new_mode": 33261,
      "new_path": "ruby/tests/basic_proto2.rb"
    },
    {
      "type": "modify",
      "old_id": "89eb9cc3cf6cdce237c01f4d408de6755b4aa2a6",
      "old_mode": 33188,
      "old_path": "ruby/tests/basic_test.proto",
      "new_id": "8feab6ed636e92f1a114e12f80aa701ef76cd175",
      "new_mode": 33188,
      "new_path": "ruby/tests/basic_test.proto"
    },
    {
      "type": "modify",
      "old_id": "ac705ed6305d693f5cc650c9b6b7cf2147ce024a",
      "old_mode": 33188,
      "old_path": "ruby/tests/basic_test_proto2.proto",
      "new_id": "777b4dd7765699d0f2b5659fa6d5dd549e274d2e",
      "new_mode": 33188,
      "new_path": "ruby/tests/basic_test_proto2.proto"
    },
    {
      "type": "modify",
      "old_id": "7bc8283371c3f858bdf135ae86e6650fb8a51520",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/ruby/ruby_generator.cc",
      "new_id": "12a5c12e7a4e3244ff5d4b7d521e66fffba7884c",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/ruby/ruby_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "2bcd8f1f777f9ee8f230b759a88c19d6110a8f02",
      "old_mode": 33188,
      "old_path": "upb/reflection/def_pool.h",
      "new_id": "7ca02a88daa405ea640e0548c19db331b0fca57c",
      "new_mode": 33188,
      "new_path": "upb/reflection/def_pool.h"
    }
  ]
}
