{"push_id":913397358,"size":38,"distinct_size":38,"ref":"refs/heads/master","head":"f422c9b955ed01ddb974979c9c3440d0d3ddf623","before":"a1a8b9ba657e3c77fdf1b087271428bb1a6433b9","commits":[{"sha":"3f8e5c96209d9c3211225db6733da2a86d84812e","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Straighten out reorder permissions on form configurations\n\nSummary:\nFixes T10012. The permissions here are little weird: you need edit permission on the //configurations//, not the //engines//. I was checking edit permission on the engines only.\n\nI should possibly make this a bit more consistent, the engine edit permission is just very convenient to use to enforce object create permission right now. I'll likely clean this up after T9789.\n\nTest Plan:\n  - Tried to reorder forms as a less-privileged user, got proper policy errors.\n  - Reordered forms normally as a regular user.\n\nReviewers: chad\n\nReviewed By: chad\n\nSubscribers: Luke081515.2\n\nManiphest Tasks: T10012\n\nDifferential Revision: https://secure.phabricator.com/D14824","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/3f8e5c96209d9c3211225db6733da2a86d84812e"},{"sha":"aeae0e702830c1e2ba762afe63e761b7ea00739f","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Prepare Projects schema for subprojects\n\nSummary:\nRef T10010. This does some cleanups on the schema:\n\n  - `viewPolicy`, `editPolicy` and `joinPolicy` were nullable, but should never be `null`. Set them to defaults if they're null, then make the column non-nullable.\n  - Rename `phrictionSlug` to `primarySlug` and stop adding and removing trailing slashes from it.\n  - Add new columns to support milestones and non-milestone subprojects.\n  - Drop very old subprojectPHIDs column. This hasn't done anything in the UI for years and years, and isn't particularly realistic to migrate forward.\n\nThe new columns aren't reachable from the UI.\n\nTest Plan:\n  - Applied patches.\n  - Grepped for `phrictionSlug`.\n  - Grepped for `subprojectPHIDs`.\n  - Created tasks.\n  - Edited tasks.\n  - Verified existing tasks still had primary slugs.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T10010\n\nDifferential Revision: https://secure.phabricator.com/D14825","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/aeae0e702830c1e2ba762afe63e761b7ea00739f"},{"sha":"8eec9e2c0ef22cccc21f1d94940c88fbc3fb50b3","author":{"email":"25f3ea07dfa4dfa06ec6bb77e6e4672ce6c25b7e@pinterest.com","name":"Nick Zheng"},"message":"Provide a more straightforward way to revoke SSH keys by finding and destroying the objects\n\nSummary: Ref T9967\n\nTest Plan:\nRan migrations.\nVerified database populated properly with PHIDs (SELECT * FROM auth_sshkey;).\nRan auth.querypublickeys conduit method to see phids show up\nRan bin/remove destroy <phid>.\nViewed the test key was gone.\n\nReviewers: #blessed_reviewers, epriestley\n\nReviewed By: #blessed_reviewers, epriestley\n\nSubscribers: Korvin\n\nManiphest Tasks: T9967\n\nDifferential Revision: https://secure.phabricator.com/D14823","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/8eec9e2c0ef22cccc21f1d94940c88fbc3fb50b3"},{"sha":"4daf2eb5de46de536c58c94d4e87e030f77e3e1b","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Update library map.","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/4daf2eb5de46de536c58c94d4e87e030f77e3e1b"},{"sha":"9d1ba9c03808ecec8d8156559fe3664f26a160cb","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Add a Read More link to PHUIDocumentSummaryView\n\nSummary: Currently it's difficult to notice posts may be much longer than the summary (in most cases, actually), Adds a consistent \"Read More\" link to the full post. Also made sure \"violet\" was more consistantly used.\n\nTest Plan:\nReview summaries in Phame\n\n{F1031799}\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14827","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/9d1ba9c03808ecec8d8156559fe3664f26a160cb"},{"sha":"dbb84f1ddc1296643af5f68596250bd9a31f3b29","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Add basic NUX support to SearchEngines\n\nSummary:\nThis is just putting a hook in that pretty much works. Behavior:\n\n  - If you visit `/maniphest/?nux=true`, it always shows NUX for testing.\n  - Otherwise, it shows NUX if there are no objects in the application yet.\n\nTest Plan: {F1031846}\n\nReviewers: chad\n\nReviewed By: chad\n\nDifferential Revision: https://secure.phabricator.com/D14828","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/dbb84f1ddc1296643af5f68596250bd9a31f3b29"},{"sha":"8a81d208c4873b68fa135f21a1c9bddabb723c53","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Don't show \"master (branched from master)\" in UI\n\nSummary:\nRef T3462. If someone works directly on `master`, we currently show \"Branch: master (branched from master)\" in the UI.\n\nAlthough this is sort of technically accurate, it is confusing.\n\nInstead, just show \"Branch: master\" in this situation.\n\nTest Plan: Saw \"master\" instead of \"master (branched from master)\".\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T3462\n\nDifferential Revision: https://secure.phabricator.com/D14829","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/8a81d208c4873b68fa135f21a1c9bddabb723c53"},{"sha":"006321cce76b00c3cb63d2c09f4ebe09597ee0df","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Add a pirate translation\n\nSummary: Basic Pirate, mostly Maniphest\n\nTest Plan: Play lots with Maniphest\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14830","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/006321cce76b00c3cb63d2c09f4ebe09597ee0df"},{"sha":"c6f3a03209b6eae5e49f12af6f62f27510d4954f","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Basic NUX blank states\n\nSummary: Implement in Badges\n\nTest Plan:\nTest with nux=true.\n\n{F1033431}\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: johnny-bit, Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14833","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/c6f3a03209b6eae5e49f12af6f62f27510d4954f"},{"sha":"75ba2c0926476845d089121b252ef1cf13ddddf8","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Correct some Pirate translations\n\nSummary: Swapped these by mistake.\n\nTest Plan: load pirate english, read\n\nReviewers: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14838","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/75ba2c0926476845d089121b252ef1cf13ddddf8"},{"sha":"424cc3010345d2d085829476f126a4dd5faa1b35","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Correct some Pirate translations\n\nSummary: Swapped these by mistake.\n\nTest Plan: load pirate english, read\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14838","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/424cc3010345d2d085829476f126a4dd5faa1b35"},{"sha":"9f8808011c5b5f859bc0372a26845c0c78c7c541","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Merge branch 'master' of ssh://secure.phabricator.com/diffusion/P","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/9f8808011c5b5f859bc0372a26845c0c78c7c541"},{"sha":"bde9ac43e71aa9e440705084b65c15ae85f37485","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Add various NUX states\n\nSummary: Adds basic NUX UI to Countdown, Paste, Phurl, Ponder, Slowvote, Macro, and Pholio.\n\nTest Plan: Review each with ?nux=true. Click on Create Button.\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14840","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/bde9ac43e71aa9e440705084b65c15ae85f37485"},{"sha":"675be8efc5269eac93a5f9fa11ba9bf3d5b03023","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"Add more NUX states\n\nSummary: Adds basic NUX to Dashboards, Herald, Repositories, Maniphest. Note Herald and Dashboard Panels don't fine the nux for some reason, assume they will when modernized?\n\nTest Plan: Read text, click buttons.\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nDifferential Revision: https://secure.phabricator.com/D14844","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/675be8efc5269eac93a5f9fa11ba9bf3d5b03023"},{"sha":"5fecd55d6edd724a31c0e57d08415077f13453f7","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"More NUX states\n\nSummary: Ref T10032, adds \"Basic\" NUX to more applications.\n\nTest Plan: Visit each with ?nux=true and click on the create link. T10032 is tracking which apps need general modernization to pick up these changes.\n\nReviewers: epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin\n\nManiphest Tasks: T10032\n\nDifferential Revision: https://secure.phabricator.com/D14847","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/5fecd55d6edd724a31c0e57d08415077f13453f7"},{"sha":"674388ce6aee6f2fdd23c5fb1726448346563996","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Prepare DestructionEngine to be modularized\n\nSummary:\nRef T9979. The general shape of \"engine\" code feels pretty good, and I plan to move indexing to be more in line with other modern engines, with the ultimate goal of supporting subprojects (T10010) and several intermediate goals.\n\nBefore moving indexing, clean up Destruction, since some of the new indexes will need destruction hooks and destruction currently has a lot of `instanceof` stuff that should be easy to fix by applying more modern approaches.\n\nTest Plan:\n  - Used `bin/remove destroy` to destory an Almanac device.\n  - Verified that properties for the device were destroyed.\n  - Viewed module panel in UI.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T9979\n\nDifferential Revision: https://secure.phabricator.com/D14831","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/674388ce6aee6f2fdd23c5fb1726448346563996"},{"sha":"4bba3fd4c1474b2bdbfc21a4809b2e91ca85ae4e","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Fully modularize DestructionEngine\n\nSummary: Ref T9979. Convert all DestructionEngine behaviors to extensions.\n\nTest Plan:\n{F1033244}\n\nDestroyed an object, verifying:\n\n  - Herald transcripts were destroyed;\n  - edges were destroyed;\n  - flags were destroyed;\n  - tokens were destroyed;\n  - transactions were destroyed;\n  - worker tasks were cancelled.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T9979\n\nDifferential Revision: https://secure.phabricator.com/D14832","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/4bba3fd4c1474b2bdbfc21a4809b2e91ca85ae4e"},{"sha":"2447d9bdf2705c520278d72e29d80d5dca8c3913","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Begin improving modularity of IndexEngine, add locks\n\nSummary:\nRef T9890. Ref T9979. Several adjacent goals:\n\n  - The `SearchEngine` vs `ApplicationSearchEngine` thing is really confusing. There are also a bunch of confusing class names and class relationships within the fulltext indexing. I want to rename these classes to be more standard (`IndexEngine`, `IndexEngineExtension`, etc). Rename `SearchIndexer` to `IndexEngine`. A future change will rename `SearchEngine`.\n  - Add the index locks described in T9890.\n  - Structure things a little more normally so future diffs can do the \"EngineExtension\" thing more cleanly.\n\nTest Plan:\nIndexing:\n\n  - Renamed a task to have a unique word in the title.\n  - Ran `bin/search index Txxx`.\n  - Searched for unique word.\n  - Found task.\n\nLocking:\n\n  - Added a `sleep(10)` after the `lock()` call.\n  - Ran `bin/search index Txxx` in two windows.\n  - Saw first one lock, sleep 10 seconds, index.\n  - Saw second one give up temporarily after failing to grab the lock.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T9890, T9979\n\nDifferential Revision: https://secure.phabricator.com/D14834","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/2447d9bdf2705c520278d72e29d80d5dca8c3913"},{"sha":"02f82c2af5c49e467369669a5b1bcdffdfa6fb03","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Modularize fulltext indexing of Projects, Subscriptions and Custom Fields\n\nSummary: Ref T9979. This is going to become `FulltextEngine`, but pave the way for that by pulling extensions out of it.\n\nTest Plan:\n{F1036624}\n\n  - Used `bin/search index Txxx`, saw projects, subscribers and custom fields rebuild in the index.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T9979\n\nDifferential Revision: https://secure.phabricator.com/D14835","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/02f82c2af5c49e467369669a5b1bcdffdfa6fb03"},{"sha":"aab1574e336e1769a090d01380c9b7ff445379d1","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Remove TYPE_SEARCH_DIDUPDATEINDEX event\n\nSummary:\nRef T9979. This event had one weird callsite and no known third-party callers. It can be done more cleanly as an extension, now.\n\nThis index is used to allow us to \"Group By: Project\" in Maniphest without joining into the Projects database.\n\nTest Plan:\n  - Ran a query with \"Group By: Project\" in Maniphest.\n  - Renamed project \"Apples\" to \"Zebras\".\n  - Reloaded page.\n  - UI properly moved \"Zebras\" tasks to the bottom of the list.\n\nReviewers: chad\n\nReviewed By: chad\n\nManiphest Tasks: T9979\n\nDifferential Revision: https://secure.phabricator.com/D14836","distinct":true,"url":"https://api.github.com/repos/detain/phabricator/commits/aab1574e336e1769a090d01380c9b7ff445379d1"}]}