{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":102137661,"defaultBranch":"master","name":"NullAway","ownerLogin":"uber","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-09-01T17:35:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/538264?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714741789.0","currentOid":""},"activityList":{"items":[{"before":"edcfe49ea5c305cc85b55878f3d5977e17bee2a4","after":"a017158303e0b138f748e1e88497e932a5a7def2","ref":"refs/heads/master","pushedAt":"2024-05-03T13:09:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"719b167ded3f65c4eb454d1909f436e9dd514076","after":"edcfe49ea5c305cc85b55878f3d5977e17bee2a4","ref":"refs/heads/master","pushedAt":"2024-04-30T03:03:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Propagate more nullability info to lambdas known to be invoked synchronously (#952)\n\nFixes #941\r\n\r\nWe propagate full nullability info from the enclosing context to\r\ncallbacks passed to `Map.forEach`, `Iterable.forEach`, `List.removeIf`,\r\nand all methods on `java.util.stream.Stream`","shortMessageHtmlLink":"Propagate more nullability info to lambdas known to be invoked synchr…"}},{"before":"09db47a4d99440e60d03e80d17e358299a618127","after":"719b167ded3f65c4eb454d1909f436e9dd514076","ref":"refs/heads/master","pushedAt":"2024-04-22T18:10:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Rename test classes (#951)\n\nThis is a pure refactoring PR that only touches test code and does the\r\nfollowing:\r\n\r\n* Renames test classes to remove the `NullAway` prefix, which hinders\r\nreadability\r\n* Moves JSpecify tests into their own package\r\n* Remove\r\n`nullaway/src/test/java/com/uber/nullaway/NullAwayTypeUseAnnotationTests.java`\r\nand move its one test into\r\n`nullaway/src/test/java/com/uber/nullaway/TypeUseAnnotationsTests.java`\r\n(this must have been a typo before)","shortMessageHtmlLink":"Rename test classes (#951)"}},{"before":"5acd394305a5fd69f775f471ea7594b344f81ad6","after":"09db47a4d99440e60d03e80d17e358299a618127","ref":"refs/heads/master","pushedAt":"2024-04-09T18:35:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"External Library Models Integration (#922)\n\nThe newly added `library-model` module consists of a CLI process that\r\ntakes an input directory with annotated java source files as a command\r\nline parameter and uses `com.github.javaparser` APIS to generate\r\n`libmodels.astubx` file containing method stubs for methods that return\r\n@Nullable. This can be run using the existing `JarInferEnabled` and\r\n`JarInferUseReturnAnnotations` flags.\r\n\r\nThis allows us to be able catch issues as shown in the below example\r\nfrom externally annotated source code:\r\n\r\n```java\r\n@NullMarked\r\npublic class AnnotationExample {\r\n @Nullable\r\n public String makeUpperCase(String inputString) {\r\n if (inputString == null || inputString.isEmpty()) {\r\n return null;\r\n } else {\r\n return inputString.toUpperCase();\r\n }\r\n }\r\n}\r\n\r\n```\r\n\r\n```java\r\nclass Test {\r\n static AnnotationExample annotationExample = new AnnotationExample();\r\n static void test(String value){}\r\n static void testPositive() {\r\n // BUG: Diagnostic contains: passing @Nullable parameter 'annotationExample.makeUpperCase(\\\"nullaway\\\")'\r\n test(annotationExample.makeUpperCase(\\\"nullaway\\\"));\r\n } \r\n}\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: Manu Sridharan \r\nCo-authored-by: Lázaro Clapp ","shortMessageHtmlLink":"External Library Models Integration (#922)"}},{"before":"7b8d80c514e22509719e7bc1b6da8dcd53f48ae4","after":"5acd394305a5fd69f775f471ea7594b344f81ad6","ref":"refs/heads/master","pushedAt":"2024-03-29T15:03:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"76f0f7744cd32fcafe06eb99290e6ffd91cecb39","after":"7b8d80c514e22509719e7bc1b6da8dcd53f48ae4","ref":"refs/heads/master","pushedAt":"2024-03-29T14:30:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Handle methods that fail unconditionally in ContractHandler (#946)\n\nFixes #943\n\nWe extend `ContractHandler` to insert an unconditional `throw` into the\nCFG when encountering a method that fails unconditionally according to\nits `@Contract` annotation.","shortMessageHtmlLink":"Handle methods that fail unconditionally in ContractHandler (#946)"}},{"before":"ce892d7f7134141ce02ea674b5b28aaa971a117d","after":"76f0f7744cd32fcafe06eb99290e6ffd91cecb39","ref":"refs/heads/master","pushedAt":"2024-03-27T18:43:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"`Collectors.toMap` handling for streams (#938)\n\nFixes #934\r\n\r\nThe key new thing with the support here is we have further nesting.\r\nRather than a `map` method, where the relevant lambda is passed\r\ndirectly:\r\n```java\r\nstream.filter(foo -> foo.bar != null).map(foo -> foo.bar.baz)\r\n```\r\nIn this case we have a `collect` call, which gets as its argument the\r\nresult of `Collectors.toMap`, and the relevant lambdas are passed to\r\n`toMap`:\r\n```java\r\nstream\r\n .filter(foo -> foo.bar != null)\r\n .collect(Collectors.toMap(foo -> foo.bar.baz, foo -> foo.bar.other))\r\n```\r\nSupporting this requires some new types of logic in our streams handler\r\n(particularly because there are multiple relevant lambdas for a single\r\n`collect` call). We do also handle anonymous inner classes.","shortMessageHtmlLink":"Collectors.toMap handling for streams (#938)"}},{"before":"83e0149999f7acdab95d363eba04bc87c1c861bb","after":"ce892d7f7134141ce02ea674b5b28aaa971a117d","ref":"refs/heads/master","pushedAt":"2024-03-26T18:15:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Add test for boolean contract with extra message argument (#945)\n\nThis just tests an additional scenario; no logic changes.","shortMessageHtmlLink":"Add test for boolean contract with extra message argument (#945)"}},{"before":"5bedf0a52fed78008ccfa7558bf083c1f3fa7064","after":"83e0149999f7acdab95d363eba04bc87c1c861bb","ref":"refs/heads/master","pushedAt":"2024-03-24T20:13:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Update various dependencies (#939)\n\nGradle, Error Prone, Spotless, GJF, and versions plugin to latest.\r\n\r\nWe'll have to update required CI job names before landing this.","shortMessageHtmlLink":"Update various dependencies (#939)"}},{"before":"3bde26cdad1c06f0312cd85c22244c9ad5afea2f","after":"5bedf0a52fed78008ccfa7558bf083c1f3fa7064","ref":"refs/heads/master","pushedAt":"2024-03-22T21:34:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Track access paths of the form `Foo.this.bar` (#937)\n\nFixes #936 \r\n\r\nWe add limited tracking of such access paths, to handle null checks on\r\nfields from an enclosing class of a nested class.","shortMessageHtmlLink":"Track access paths of the form Foo.this.bar (#937)"}},{"before":"e3a3c7672d51ec2e90c0e60c30af477ccf6f7757","after":"3bde26cdad1c06f0312cd85c22244c9ad5afea2f","ref":"refs/heads/master","pushedAt":"2024-03-19T17:14:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Handle JDK 21 case operands in type refinement (#928)\n\nFixes #927. We also extract some common logic in\r\n`AccessPathNullnessPropagation` around handling equality comparisons to\r\navoid duplication.","shortMessageHtmlLink":"Handle JDK 21 case operands in type refinement (#928)"}},{"before":"1c497a7cff1c4d37a0f51abdf98e0759c0b7539a","after":"e3a3c7672d51ec2e90c0e60c30af477ccf6f7757","ref":"refs/heads/master","pushedAt":"2024-03-11T17:42:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"JSpecify: Handle @Nullable assignments to @Nonnull arrays (#929)\n\nHandles cases in JSpecify mode where a `@Nullable` element is assigned\r\nto an unannotated array. Added relevant unit tests.\r\n\r\n**Current Behavior**\r\n\r\nBoth are valid assignments.\r\n\r\n```\r\nString [] foo = new String[10];\r\n@Nullable String [] bar = new String [10];\r\nfoo[1] = null;\r\nbar[1] = null;\r\n```\r\n\r\n**New Behavior**\r\n\r\nAssignment to `foo` generates an error since array elements are\r\n`@Nonnull`.\r\n\r\n```\r\nString [] foo = new String[10];\r\n@Nullable String [] bar = new String [10];\r\nfoo[1] = null;\r\nbar[1]=null;\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: Manu Sridharan ","shortMessageHtmlLink":"JSpecify: Handle @nullable assignments to @nonnull arrays (#929)"}},{"before":"575ff7e4c25dc4b56f190dcb560bbfdd38b85ccd","after":null,"ref":"refs/tags/vX.Y.Z","pushedAt":"2024-03-04T17:58:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"575ff7e4c25dc4b56f190dcb560bbfdd38b85ccd","after":null,"ref":"refs/tags/vX.Y.Z","pushedAt":"2024-03-04T17:57:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"348bb4d997d04b3f86fe6ac629e056c52bfbbb27","after":"1c497a7cff1c4d37a0f51abdf98e0759c0b7539a","ref":"refs/heads/master","pushedAt":"2024-03-04T17:56:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"d7c757f5be547ca298f17625234a8c913adeb099","after":"348bb4d997d04b3f86fe6ac629e056c52bfbbb27","ref":"refs/heads/master","pushedAt":"2024-03-04T17:09:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Fix handling of references to methods of array types and type variables (#926)\n\nAfter #920 we check the nullability of the qualifier expression of a\r\nmethod reference. We weren't correctly handling the cases where that\r\nexpression was an array type or a type variable","shortMessageHtmlLink":"Fix handling of references to methods of array types and type variabl…"}},{"before":"a42b3a8b97a216ed75c324e10ab48a63052cc9d6","after":"d7c757f5be547ca298f17625234a8c913adeb099","ref":"refs/heads/master","pushedAt":"2024-03-04T15:49:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Fix another JSpecify raw type issue (#925)","shortMessageHtmlLink":"Fix another JSpecify raw type issue (#925)"}},{"before":"28cc318c41db2941f34e23bbd8b91c58b1bab241","after":"a42b3a8b97a216ed75c324e10ab48a63052cc9d6","ref":"refs/heads/master","pushedAt":"2024-03-03T01:04:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"JSpecify: skip checking when type is primitive (#924)\n\nPreviously, NullAway would crash for the given tests when in JSpecify\r\nmode.","shortMessageHtmlLink":"JSpecify: skip checking when type is primitive (#924)"}},{"before":"198b3d2900143867495aad10224dd2b2abdae3b7","after":null,"ref":"refs/heads/yuxincs/add-codecov-token","pushedAt":"2024-02-23T22:08:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"a7bb7d320cf774a9ec6beb9e6b79b9bef30accf1","after":"28cc318c41db2941f34e23bbd8b91c58b1bab241","ref":"refs/heads/master","pushedAt":"2024-02-23T22:08:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Add codecov token (#921)\n\nWe have upgraded our codecov upload action to v4. However, tokenless\r\nuploads are unsupported now (see\r\nhttps://github.com/codecov/codecov-action/issues/1293). This PR fixes\r\nthe config to give the action a codecov token stored in repository\r\nsecrets.","shortMessageHtmlLink":"Add codecov token (#921)"}},{"before":null,"after":"198b3d2900143867495aad10224dd2b2abdae3b7","ref":"refs/heads/yuxincs/add-codecov-token","pushedAt":"2024-02-23T20:32:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"add codecov token","shortMessageHtmlLink":"add codecov token"}},{"before":"3a3d8e701184e3a03d159791b827365f4db04045","after":"a7bb7d320cf774a9ec6beb9e6b79b9bef30accf1","ref":"refs/heads/master","pushedAt":"2024-02-23T18:56:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Check dereference of qualifier expression in method reference (#920)\n\nFixes #919","shortMessageHtmlLink":"Check dereference of qualifier expression in method reference (#920)"}},{"before":"0f3a4ec33ebf64907f2a4348793ce454e568b49f","after":"3a3d8e701184e3a03d159791b827365f4db04045","ref":"refs/heads/master","pushedAt":"2024-02-23T18:28:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"JSpecify test case for generic methods (#918)","shortMessageHtmlLink":"JSpecify test case for generic methods (#918)"}},{"before":"d1d1fbc6b4e7bdeab7e3c9bec742d3e447c782db","after":"0f3a4ec33ebf64907f2a4348793ce454e568b49f","ref":"refs/heads/master","pushedAt":"2024-02-16T23:56:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Update to Error Prone 2.25.0 (#916)\n\nJust to stay up to date","shortMessageHtmlLink":"Update to Error Prone 2.25.0 (#916)"}},{"before":"0b73281b06b68f91118af31364722d35cd85da83","after":"d1d1fbc6b4e7bdeab7e3c9bec742d3e447c782db","ref":"refs/heads/master","pushedAt":"2024-02-16T23:44:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Add library model for Files.isDirectory (#913)\n\nThe first parameter cannot be `null`.\r\n\r\nFixes #912","shortMessageHtmlLink":"Add library model for Files.isDirectory (#913)"}},{"before":"0fbcf3d6f51f8da62ae2d8614a5ffc573cbe3c7c","after":"0b73281b06b68f91118af31364722d35cd85da83","ref":"refs/heads/master","pushedAt":"2024-02-16T22:49:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Update to Gradle 8.6 (#914)\n\nJust to stay up to date","shortMessageHtmlLink":"Update to Gradle 8.6 (#914)"}},{"before":"b03489b27c3a11b51e5b0feb483b0ef882f05418","after":"0fbcf3d6f51f8da62ae2d8614a5ffc573cbe3c7c","ref":"refs/heads/master","pushedAt":"2024-02-16T21:20:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Fix lombok config example more correctly on README (#911)\n\nThis is just fix more precise the example of _lombok_ configuration\r\ndescribed in README.","shortMessageHtmlLink":"Fix lombok config example more correctly on README (#911)"}},{"before":"91d68098e3bc5123b737bc376ad1d226fca05188","after":"b03489b27c3a11b51e5b0feb483b0ef882f05418","ref":"refs/heads/master","pushedAt":"2024-02-15T16:06:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"084bd96ff473252715229fc41e02ac11f6f2bfd1","after":"91d68098e3bc5123b737bc376ad1d226fca05188","ref":"refs/heads/master","pushedAt":"2024-02-15T01:33:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Support for extra Futures classes (#909)\n\nThis allows for a list of classes to be passed in via a command-line\r\nargument `-XepOpt:NullAway:ExtraFuturesClasses`. Such classes will be\r\ntreated equivalently to built-in Guava Futures classes via the\r\n`FluentFutureHandler`. This is a follow-up to #771.","shortMessageHtmlLink":"Support for extra Futures classes (#909)"}},{"before":"fdd2b550ea51630c1d60142f87afb37ecd24f27c","after":"084bd96ff473252715229fc41e02ac11f6f2bfd1","ref":"refs/heads/master","pushedAt":"2024-02-09T17:04:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Adding support for nullable type upper bounds considering Library models (#903)\n\nThe below line previously reported an error considering the upperbound\r\nof the generic type parameter couldn't be Nullable, adding it into\r\nlibrary models to allow it to be Nullable passes the test case.\r\n\r\n```java\r\nFunction removeA = a -> a.replace(\"a\",\"\");\r\n```\r\n\r\nWe now have library model methods for treating a type as `@NullMarked`\r\nand also for making the upper bound of type variables `@Nullable`. We\r\nuse these new methods to model `java.util.function.Function` as\r\n`@NullMarked`, in JSpecify mode only.\r\n\r\nWe fix a related issue with unwanted errors when passing a lambda /\r\nmethod reference to `@NullUnmarked` code; this was necessary to get\r\nNullAway itself to still build with NullAway checking enabled.\r\n\r\n(Due to issues with the branch this PR was recreated from the original\r\n#893)\r\n\r\n---------\r\n\r\nCo-authored-by: Manu Sridharan ","shortMessageHtmlLink":"Adding support for nullable type upper bounds considering Library mod…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQMU07QA","startCursor":null,"endCursor":null}},"title":"Activity · uber/NullAway"}