Add apnotic gem for APNs mobile push delivery
Add apnotic gem for APNs mobile push delivery
What does this MR do and why?
A big part of the vision for the GitLab mobile app is that it will become a kind of "Command Center" for GitLab Duo workflows. That means, whenever Duo does something in GitLab, users should be able to quickly and easily see the status/result of that from wherever they are in that moment. The necessary foundation to enable that is that notifications can be sent to the GitLab mobile app.
This MR is 1 of 4 that sets up that foundation. The current scope is on push notifications delivered to the iOS version of the mobile app for any new To-Dos that get created.
You can see a short overview here:
This MR adds the apnotic gem (plus its
net-http2 / http-2 dependencies) — a connection-pooled, HTTP/2,
token-authenticated client for the Apple Push Notification service.
This is part 1 of 4 in the mobile push notifications stack, split out so the new-dependency approval can proceed in parallel with the rest:
- → this MR: apnotic gem
- Device push subscription registry (table + model) — !248022 (merged)
- Registration REST API (
/user/push_subscriptions) — !248023 (merged) - To-do dispatch worker + APNs delivery — !248026 (merged)
The gem is unused until part 4 lands; nothing references it in this MR.
Dependency review notes
- License: MIT.
- Used for outbound HTTPS/2 connections to
api.push.apple.com/api.sandbox.push.apple.comonly, authenticated with a.p8signing key (JWT provider-token auth, no certificates). - Maintained, no native extensions, no runtime monkey-patching.
MR acceptance checklist
-
Gemfile,Gemfile.lock,Gemfile.checksum,Gemfile.next.lock,Gemfile.next.checksumall consistent (bundle checkpasses).