{"push_id":712658950,"size":1000,"distinct_size":9,"ref":"refs/heads/r4nt-staging","head":"2ccd6338fbfd94386aa0534548d38bcdae07fdfd","before":"03a4664459e79c46b80f4f97ef93eeabd124656b","commits":[{"sha":"8c053f02a7cf675a625c41e9fc6e63970a1a07bd","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Lift inline state transactions into core (in Diffusion)\n\nSummary:\nRef T1460. Ref T6403. Replace `Diffusion::INLINEDONE` with `Transactions::INLINESTATE` and generalize things enough that we can lift it into core.\n\nThe next change will lift Differential's similar implementation into the core.\n\nAlso start implementing a fix for T6403, providing an alternate hook for optional builtin transactions.\n\nTest Plan: Changed inline state in Diffusion.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T6403, T1460\n\nDifferential Revision: https://secure.phabricator.com/D12129","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/8c053f02a7cf675a625c41e9fc6e63970a1a07bd"},{"sha":"dd3afe2aa2ae372bbbb11e1a783dc2b09228c088","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Lift inline comment state transactions into core (in Differential)\n\nSummary: Ref T1460. Follows D12129 and reduces code duplication.\n\nTest Plan: Changed inline state in Differential.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T1460\n\nDifferential Revision: https://secure.phabricator.com/D12130","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/dd3afe2aa2ae372bbbb11e1a783dc2b09228c088"},{"sha":"21826ed7b35a54db1ba32fb7ab72b086518a1ea0","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Don't highlight very large files by default\n\nSummary:\nRef T5644. See some discussion in D8040.\n\nWhen a file is very large (more than 64KB of text), don't activate syntax highlighting by default. This should prevent us from wasting resources running `pygmentize` on enormous files.\n\nUsers who want the file highlighted can still select \"Highlight As...\".\n\nThe tricky part of this diff is separating the headers into \"changeset\" headers and \"undershield\" (rendering) headers. Specifically, a file might have these headers/shields:\n\n  - \"This file is newly added.\"\n  - \"This file is generated. Show Changes\"\n  - \"Highlighting is disabled for this large file.\"\n\nIn this case, I want the user to see \"added\" and \"generated\" when they load the page, and only see \"highlighting disabled\" after they click \"Show Changes\". So there are several categories:\n\n  - \"Changeset\" headers, which discuss the changeset as a whole (binary file, image file, moved, added, deleted, etc.)\n  - \"Property\" headers, which describe metadata changes (not relevant here).\n  - \"Shields\", which hide files from view by default.\n  - \"Undershield\" headers, which provide rendering information that is only relevant if there is no shield on the file.\n\nTest Plan:\n  - Viewed a diff with the library map, clicked \"show changes\", got a \"highlighting disabled\" header back with highlighting disabled.\n  - Enabled highlighting explicitly (this currently restores the shield, which it probably shouldn't, but that feels out of scope for this change). The deshielded file is highlighted per the user's request.\n  - Loaded context on normal files.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: joshuaspence, epriestley\n\nManiphest Tasks: T5644\n\nDifferential Revision: https://secure.phabricator.com/D12132","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/21826ed7b35a54db1ba32fb7ab72b086518a1ea0"},{"sha":"0efae2858ecc6d94108e33dd6aea63ae69e91955","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Don't syntax highlight codebase pattern search results\n\nSummary:\nRef T5644. Ref T7472. Currently, we highlight each line of pattern search results in Diffusion.\n\n  - This is incredibly slow for non-PHP languages which need to shell out to Pygments.\n  - A lot of this highlighting isn't very useful anyway, because it doesn't have any context.\n\nInstead, try to highlight pattern matches but don't highlight the source itself.\n\nTest Plan: {F349637}\n\nReviewers: chad, btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T7472, T5644\n\nDifferential Revision: https://secure.phabricator.com/D12141","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/0efae2858ecc6d94108e33dd6aea63ae69e91955"},{"sha":"86404a1a188e71cb5b39b7a891b0d65cb3dd2d12","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Fix handling of notifications with project members\n\nSummary: Fixes T7377. We don't expand projects into members when sending notifications right now. Instead, expand them.\n\nTest Plan:\n  - Added a project as a reviewer to a revision, made a comment, saw project members receive a read notification + email (with appropriate preferences).\n  - There's meaningful test coverage on the core mail stuff.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T7377\n\nDifferential Revision: https://secure.phabricator.com/D12142","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/86404a1a188e71cb5b39b7a891b0d65cb3dd2d12"},{"sha":"014bb720505ff8fc8ffa518d77d5e1c3c0a328d8","author":{"email":"3abdeb20bbfaf7f3efaf2a217619f0ce681d08bb@phacility.com","name":"Bob Trahan"},"message":"Conpherence - add \"room\" search UI and create UI\n\nSummary: Ref T7584. This hits all the major bullets there. Next step on T7584 is figuring out how it integrates into the full UI and column UI. That said, this is a bit buggy feeling right now since Conpherence as is assumes you are a participant all over the place and rooms make no such assumption. I'll probably this bit up next.\n\nTest Plan:\nviewed /conpherence/room/ and saw stuff. viewed the \"participant\" query as two different users and saw different correct result sets. made a room via the button and it worked. tried to view a room I wasn't a participant in and it failed horribly, which is something to fix in a future diff\n\ncreated a thread via \"send message\" on a user profile and it worked\n\nReviewers: chad, epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin, epriestley\n\nManiphest Tasks: T7584\n\nDifferential Revision: https://secure.phabricator.com/D12113","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/014bb720505ff8fc8ffa518d77d5e1c3c0a328d8"},{"sha":"dcaafd6159daf2bffacd41e3721ac152f7600339","author":{"email":"3abdeb20bbfaf7f3efaf2a217619f0ce681d08bb@phacility.com","name":"Bob Trahan"},"message":"Conpherence - grey out username mentions if they aren't in the conpherence\n\nSummary: Fixes T7578. This was pretty easy because conpherence funnels all transacton stuff through this spot\n\nTest Plan: made a new room so only my user was a participant. wrote \"@myself will work and @anotherguy will be greyed out\" and so it was as expected\n\nReviewers: chad, epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin, epriestley\n\nManiphest Tasks: T7578\n\nDifferential Revision: https://secure.phabricator.com/D12114","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/dcaafd6159daf2bffacd41e3721ac152f7600339"},{"sha":"74a4c2cf0b1b93e042fe0ac80511aa3854a677ed","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Provide better parsing primitives for hunks\n\nSummary:\nRef T1266. This prepares to fix case (2) on T1266 by improving the robustness of hunk parsing.\n\nIn particular, the copy detection code abuses this API because it isn't currently expressive or flexible enough.\n\nMake it more flexible and cover it exhaustively.\n\nI'll move callsites to the new stuff in upcoming revisions.\n\nTest Plan: Unit tests.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T1266\n\nDifferential Revision: https://secure.phabricator.com/D12144","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/74a4c2cf0b1b93e042fe0ac80511aa3854a677ed"},{"sha":"373aaa643a5188f5261664d73370e017f99ffda3","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Clean up copy detection code a bit\n\nSummary:\nRef T1266. This doesn't change any behaviors, but some of this code has a lot of really complicated conditionals and I tried to break that up a bit.\n\nAlso, reexpress this stuff in terms of the \"structured\" parser in D12144.\n\nTest Plan: Unit tests still pass. They aren't hugely comprehensive but did reliably fail when I screwed stuff up.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T1266\n\nDifferential Revision: https://secure.phabricator.com/D12145","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/373aaa643a5188f5261664d73370e017f99ffda3"},{"sha":"aa310230b6bc65099ec2caa43fccb13759f748e4","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Detect moves and copies with some unchanged lines as moves or copies\n\nSummary:\nRef T1266. We won't detect a move/copy if fewer than 3 lines are changed.\n\nHowever, you may move a block like:\n\n  Complicated Line A\n  Trivial Line B\n  Complicated Line C\n\n...where \"Trivial Line B\" is something like a curly brace. If you move this block somewhere that happened to previously have a similar trivial curly brace line, we won't be able to find 3 contiguous added lines in order to detect the copy/move.\n\nInstead, consider both changed and unchanged lines when trying to find contiguous blocks. This allows us to detect across gaps where lines were not actually changed.\n\nThis new algorithm may be too liberal (for example, we may end up incorrectly identifying moved/copied code before or after changed lines, not just between changed lines), but we can keep an eye on it and tweak it. The algorithm is better factored and better covered, now.\n\nTest Plan:\n  - Added a unit test for this case.\n  - Spot-checked a handful of diffs and generally saw behavior that made sense and looked better than before.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T1266\n\nDifferential Revision: https://secure.phabricator.com/D12146","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/aa310230b6bc65099ec2caa43fccb13759f748e4"},{"sha":"25767096c9317e96ad5451aafe304c0c2bd636bb","author":{"email":"3abdeb20bbfaf7f3efaf2a217619f0ce681d08bb@phacility.com","name":"Bob Trahan"},"message":"Conpherence - implement join / view rules for rooms\n\nSummary:\nRef T7585. This implements everything specified, with a few caveats\n\n- since rooms you have yet to join can't be viewed in the column yet, the column view has some bugs and isn't expected to work.\n- the room you're looking at is just pre-pending to the top of the \"recent\" list\n\nTest Plan: made a room that no one could join. verified when viewing that there was no comment ui. made a room that others could join. verified folks who had yet to join had a \"join\" button with an area for text. tried joining with / without message text and it worked in both cases\n\nReviewers: chad, epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin, epriestley\n\nManiphest Tasks: T7585\n\nDifferential Revision: https://secure.phabricator.com/D12149","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/25767096c9317e96ad5451aafe304c0c2bd636bb"},{"sha":"22b2b8eb893a6357df942fa6ed4c25556c780f31","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Fix a bad call in file chunk destruction\n\nSummary: This signature changed at some point after I tested things and I didn't catch it.\n\nTest Plan: Destroyed a chunked large file with `bin/remove`.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nDifferential Revision: https://secure.phabricator.com/D12152","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/22b2b8eb893a6357df942fa6ed4c25556c780f31"},{"sha":"4f8147dbb8c0b993b6024215bdf9695b0694efc9","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Improve protection against SSRF attacks\n\nSummary:\nRef T6755. This improves our resistance to SSRF attacks:\n\n  - Follow redirects manually and verify each component of the redirect chain.\n  - Handle authentication provider profile picture fetches more strictly.\n\nTest Plan:\n  - Tried to download macros from various URIs which issued redirects, etc.\n  - Downloaded an actual macro.\n  - Went through external account workflow.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T6755\n\nDifferential Revision: https://secure.phabricator.com/D12151","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/4f8147dbb8c0b993b6024215bdf9695b0694efc9"},{"sha":"c03297ab5a0aed1fc0823d92014ec28aeaaf04b7","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Fix interaction between undo and inline comment placement\n\nSummary:\nFixes T7658. Currently, we remove the \"undo\" before placing the comment, but that causes us to lose track of which row we should be examining.\n\nInstead, place the comment first, then remove the \"undo\".\n\nTest Plan: This stuff is hard to test comprehensively, but the original report reproduced easily and is now fixed. I wasn't able to break anything by adding/editing/deleting comments.\n\nReviewers: btrahan, chad\n\nReviewed By: chad\n\nSubscribers: epriestley\n\nManiphest Tasks: T7658\n\nDifferential Revision: https://secure.phabricator.com/D12157","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/c03297ab5a0aed1fc0823d92014ec28aeaaf04b7"},{"sha":"17e1e7a65a8cabcc563bc23691417fd74defb170","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Document the need to purge caches after updating differential.generated-paths\n\nSummary: Fixes T6378.\n\nTest Plan: Set config to `/.*/`, created a new diff, everything was collapsed as generated.\n\nReviewers: btrahan, chad\n\nReviewed By: chad\n\nSubscribers: epriestley\n\nManiphest Tasks: T6378\n\nDifferential Revision: https://secure.phabricator.com/D12159","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/17e1e7a65a8cabcc563bc23691417fd74defb170"},{"sha":"6ce4044bfa85436bb89fab710c39ef7b28069386","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Lock MIME type configuration\n\nSummary:\nRef T6755. This mitigates an attack where you:\n\n  - compromise an administrative account;\n  - configure \"text/plain\" as an \"image\" MIME type; and\n  - create a new macro sourced from a sensitive resource which is locally accessible over HTTP GET, using DNS rebinding.\n\nYou can then view the content of the resource in Files. By preventing the compromised account from reconfiguring the MIME types, the server will instead destroy the response and prevent the attacker from seeing it.\n\nIn general, these options should change very rarely, and they often sit just beyond the edge of security vulnerabilities anyway.\n\nFor example, if you ignore the warnings about an alternate file domain and elect to serve content from the primary domain, it's still somewhat difficult for an attacker to exploit the vulnerability. If they can add \"text/html\" or \"image/svg+xml\" as image MIME types, it becomes trivial. In this case not having an alternate domain is the main issue, but easy modification of this config increases risk/exposure.\n\nTest Plan: Viewed affected config and saw that it is locked.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T6755\n\nDifferential Revision: https://secure.phabricator.com/D12154","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/6ce4044bfa85436bb89fab710c39ef7b28069386"},{"sha":"e5445de1635f1cf2b89fc3a16604c1f83a5cb881","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Show only recent open revisions affecting the same files\n\nSummary: Fixes T5658. Over a long period of time, some cruft can build up here. Only show revisions which have been updated in the last 30 days.\n\nTest Plan:\n  - Viewed panel in Differential and Diffusion.\n  - Changed limit from 30 days to 30 seconds and saw no revisions.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T5658\n\nDifferential Revision: https://secure.phabricator.com/D12158","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/e5445de1635f1cf2b89fc3a16604c1f83a5cb881"},{"sha":"1fd163d0976c3fe8d3d140b708313377b128e872","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Mostly provide CSS for \"done\" states\n\nSummary: Ref T7660. I'm not toggling \"inline-state-is-draft\" correctly in JS yet since it's a little tricky (you can reload to see it) but the main state should work.\n\nTest Plan:\n  - Clicked \"done\", saw comment opacity fade with placeholder style.\n\nReviewers: chad\n\nReviewed By: chad\n\nSubscribers: epriestley\n\nManiphest Tasks: T7660\n\nDifferential Revision: https://secure.phabricator.com/D12160","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/1fd163d0976c3fe8d3d140b708313377b128e872"},{"sha":"42a0229a52a4b54098f0099755b1c079e803f9d8","author":{"email":"3abdeb20bbfaf7f3efaf2a217619f0ce681d08bb@phacility.com","name":"Bob Trahan"},"message":"Conpherence - Implement edit rules for rooms\n\nSummary: Fixes T7586. If you can't edit a room, the pertinent UI is greyed out. One exception is the title of the room in the full viewer; this crumb is not disabled as it would be hard to read. Otherwise though, everything is disabled nicely.\n\nTest Plan: tried to add participants when I wasn't allowed to and got an error. added participants otherwise okay. tried to edit title when i wasn't allowed and got an error. otherwise okay. left conpherence threads / rooms successfully.\n\nReviewers: epriestley, chad\n\nReviewed By: epriestley\n\nSubscribers: Korvin, epriestley\n\nManiphest Tasks: T7586\n\nDifferential Revision: https://secure.phabricator.com/D12161","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/42a0229a52a4b54098f0099755b1c079e803f9d8"},{"sha":"47114513b00f88d4e22070556a2a00dd3339b2af","author":{"email":"c34c009102e60d77975598e1f414f8a701c22d0b@chadsdomain.com","name":"Chad Little"},"message":"More SIMPLE button styles for buttons and button bars\n\nSummary: Ref T1460, this adds additional buttons colors and styles for use in inline comments. Will also backport to Calendar and PHUIInfoView\n\nTest Plan:\nReview new buttons and hover states in UI Examples.\n\n{F350549}\n\n{F350550}\n\nReviewers: btrahan, epriestley\n\nReviewed By: epriestley\n\nSubscribers: Korvin, epriestley\n\nManiphest Tasks: T1460\n\nDifferential Revision: https://secure.phabricator.com/D12162","distinct":false,"url":"https://api.github.com/repos/r4nt/phabricator/commits/47114513b00f88d4e22070556a2a00dd3339b2af"}]}