{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":285969,"defaultBranch":"master","name":"rbtools","ownerLogin":"reviewboard","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-08-23T21:30:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/118199?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1684963994.887927","currentOid":""},"activityList":{"items":[{"before":"6090b90146604c53a49af2bcfab8bb4310181582","after":"40069e04c2e65f3b6adcb22bb02a9075b314e468","ref":"refs/heads/release-5.x","pushedAt":"2024-04-25T04:37:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Avoid fetching unnecessary data when posting review requests.\n\nThe way the RBTools Python API works, it's annoyingly easy to make GET\nrequests to list resources when we don't actually care about the\nexisting data, we just want an instance of the list resource in order to\nto do POST operations.\n\nThis change fixes `rbt post` to minimize this in two big cases:\n- We were fetching the review request list when creating a new review\n request. We had `only-fields=` on this request, so it wasn't actually\n serializing very much data, but it would still query and return a list\n of up to 25 review requests.\n- We were fetching up to 25 diff file attachments when we wanted to\n upload binary files, including all of their data. Moreover, we were\n doing this for each binary file we wanted to upload.\n\nWith this fix, we now pass max_results=0 to the get operation. This\nmeans we'll get the proper MIME types and links which are used to do\nfurther operations, but we won't fetch any existing data from the\ndatabase.\n\nThe file attachments resource is now saved once instead of fetching it\nfor each file.\n\nThis also fixes up the DiffFileAttachmentListResource upload method to\nuse the `create` link (before it would inherit the ?max-results=0 from\nthe GET).\n\nTesting Done:\nPosted changes and looked carefully at the --debug output. Verified that\nwe were no longer doing unnecessary or unnecessarily heavy API requests.\n\nReviewed at https://reviews.reviewboard.org/r/13785/","shortMessageHtmlLink":"Avoid fetching unnecessary data when posting review requests."}},{"before":"5e95076c985d7edc2286aca614d88df590428683","after":"6090b90146604c53a49af2bcfab8bb4310181582","ref":"refs/heads/release-5.x","pushedAt":"2024-04-23T05:17:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Don't show the \"Uploading binary files\" progress bar if not necessary.\n\nIf there are no binary files as part of a change, we don't need to show\nthe \"Uploading binary files\" progress bar. This change does that.\n\nTesting Done:\nPosted this change and saw that it no longer reported uploading 0 files.\n\nReviewed at https://reviews.reviewboard.org/r/13772/","shortMessageHtmlLink":"Don't show the \"Uploading binary files\" progress bar if not necessary."}},{"before":"c51da517e2142f7780cd4cb48638332766320f77","after":"7e89e98077f9d230e25c700c284fd1f169b6f2cb","ref":"refs/heads/master","pushedAt":"2024-04-12T16:55:23.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}},{"before":"0f4cc4984d3b93b9e6654cfcb09186bad4a35cf2","after":"5e95076c985d7edc2286aca614d88df590428683","ref":"refs/heads/release-5.x","pushedAt":"2024-04-12T16:55:14.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Merge branch 'release-4.x' into release-5.x","shortMessageHtmlLink":"Merge branch 'release-4.x' into release-5.x"}},{"before":"01198599b11e039f3c02b583d3bd58be21c6b9b4","after":"0f4cc4984d3b93b9e6654cfcb09186bad4a35cf2","ref":"refs/heads/release-5.x","pushedAt":"2024-04-10T15:35:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Add a flag for enabling web-based login and update docs.\n\nThis adds a `.reviewboardrc` flag for enabling web-based login, which we leave\noff by default. The reason why we leave it off by default is because we don't\ncurrently support web-based login when authenticating RBTools on a remote\nsystem, so it's better to let users opt-in to the feature rather than have\nit on by default.\n\nThis also includes a couple of other small changes:\n1. Updates the docs related to authentication.\n2. Fixes a bug where we used the wrong `config_key` for the open browser\n option in `rbt login`.\n3. Allows web-based login to be used when authenticating users through\n commands other than `rbt login`.\n\nTesting Done:\n- Tested `rbt login`, saw that web-based login was turned off by default and\n could use it by passing the `--web` option or setting `WEB_LOGIN` in\n `.reviewboardrc`\n- Tested using `rbt status` without being logged in, saw that it would bring\n me to web-based login if it was enabled, and prompted for username and\n password if it wasn't enabled.\n\nReviewed at https://reviews.reviewboard.org/r/13702/","shortMessageHtmlLink":"Add a flag for enabling web-based login and update docs."}},{"before":"a338a4f4faa5ed94254dd3a31d2a8518bdcaf25f","after":"01198599b11e039f3c02b583d3bd58be21c6b9b4","ref":"refs/heads/release-5.x","pushedAt":"2024-04-10T15:29:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Add web-based logon.\n\nThis adds web-based logon for to RBTools. This allows users of RBTools to\nauthenticate to the Review Board server via a web browser. This is useful for\nusers who authenticate to Review Board using SSO or similar methods, and would\nlike to use those methods to authenticate to RBTools. To do this we spin up a\nlocal server which redirects to Review Board's login page and then receives\nan API token from the Review Board server to authenticate with.\n\nTesting Done:\n- Ran unit tests.\n- Manually tested the login flow with successful logins and failed logins.\n- Tested logging in again while logged in and logging out\n- Tested with automatically opening a browser (the `-o` flag).\n- Tested logging in/out with the traditional login flow.\n- Tested exiting the command.\n- Tested running two instances of the web login server at the same time.\n Saw that the servers ran on different ports and was able to complete\n the login flow on both.\n- Tested timing out the web login server.\n- Tested on RB5, RB6 and RB7.\n- Tested using a version that is too old to support web-based login.\n- Tested using a version that have the `client_web_login` server\n capabilities bug (5.0.5-5.0.7 and 6.0-6.0.2).\n- Tested using RB7 with the capabilities bug fix.\n\nReviewed at https://reviews.reviewboard.org/r/12981/","shortMessageHtmlLink":"Add web-based logon."}},{"before":"5f529a83405bdfc8cf34e98d3f5dc6162724942c","after":"59a953f8c32f2ab8c2b0b02136110655f86b808e","ref":"refs/heads/release-4.x","pushedAt":"2024-04-08T16:39:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Add JSON output to rbt review.\n\nThis adds JSON output to the `rbt review` command. The output contains\ninformation relevant to the review, such as:\n- The review ID.\n- The review API URL.\n- The review URL.\n- The review status which can be `draft`, `published`, or `discarded`.\n- The review request ID.\n- The review request URL.\n\nWhen a comment subcommand is used, the following comment details are also\nincluded in the output:\n- The comment type which can be `diff_comment`, `file_attachment_comment`,\n or `general_comment`.\n- The comment ID.\n- The comment API URL.\n\nDuring testing, a regression in Review Board 5.0's API was discovered\nwhich broke the `reviews` URI template on the Root List Resource. This breaks\nthe command in cases where a new review draft needs to be created. While the\nAPI regression is being tracked and dealt with separately, this change allows\nthe command to work normally by accessing the reviews through the review\nrequest resource instead of the root since we're fetching the review request\nresource anyways in order to include its URL in the output.\n\nAn upcoming change will add unit tests for the `rbt review` command.\n\nThis also fixes a bug in the add diff comment subcommand where we add\nthe comment to the wrong file. The comment would always be added to the\nlast file in the diffset.\n\nTesting Done:\n- Manually tested the command and all of its subcommands.\n- Tested on RB5, RB6 and RB7.\n- Tested the case where a new review draft is created, and where one\n already exists.\n\nReviewed at https://reviews.reviewboard.org/r/12673/","shortMessageHtmlLink":"Add JSON output to rbt review."}},{"before":"df028ff9ea1ed9af6bb34f61b73c4d0c0acf33e5","after":"5f529a83405bdfc8cf34e98d3f5dc6162724942c","ref":"refs/heads/release-4.x","pushedAt":"2024-04-08T16:37:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Make sure that calls to make_tempfile() use keyword arguments.\n\nI recently used `rbt patch` and saw that it was broken. The problem was that\nit didn't pass keyword arguments with `make_tempfile()`, which has\nkeyword-only arguments. I audited the rest of the code to see if we had this\nproblem anywhere else, but this was the only spot.\n\nTesting Done:\n- Ran unit tests.\n- Used `rbt patch` and saw that it works now.\n\nReviewed at https://reviews.reviewboard.org/r/13701/","shortMessageHtmlLink":"Make sure that calls to make_tempfile() use keyword arguments."}},{"before":"568065fa4396aff0574e82dab6f625b7cec2aaf0","after":"a338a4f4faa5ed94254dd3a31d2a8518bdcaf25f","ref":"refs/heads/release-5.x","pushedAt":"2024-04-08T16:33:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Add a standard function for opening pages in a browser.\n\nThis adds a standard function for opening pages in a browser.\n\nTesting Done:\nUsed the `open_browser` option for `rbt post`.\n\nReviewed at https://reviews.reviewboard.org/r/13350/","shortMessageHtmlLink":"Add a standard function for opening pages in a browser."}},{"before":"dea0af92df4220b767929baa9ebf324f503ac4d6","after":"568065fa4396aff0574e82dab6f625b7cec2aaf0","ref":"refs/heads/release-5.x","pushedAt":"2024-04-04T20:08:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Make the user agent accessible from the RBClient class.\n\nThis makes the user agent string used for clients accessible from `RBClient`\nas a property. We also weren't passing on the user agent from `SyncTransport`\nto the `ReviewBoardServer`, so if a custom agent was set on the\n`SyncTransport`, the `ReviewBoardServer` would still use the default agent.\nThis change fixes that.\n\nTesting Done:\n- Ran unit tests.\n- Used in an upcoming change where I access the user agent from the\n `RBClient` in a command.\n\nReviewed at https://reviews.reviewboard.org/r/13340/","shortMessageHtmlLink":"Make the user agent accessible from the RBClient class."}},{"before":"a5222e80003db071c2c2300d5187ee39bb3b70d9","after":"dea0af92df4220b767929baa9ebf324f503ac4d6","ref":"refs/heads/release-5.x","pushedAt":"2024-04-01T22:17:19.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Implement binary files support for Mercurial.\n\nThis change implements the get_file_content and get_file_size methods\nfor the Mercurial client backend.\n\nAdditionally, this changes the log methods to always use `{node}`\ninstead of `{node|short}`. We had a mix (individual commits were using\nthe full node SHA, while the cumulative diff was using the short form),\nwhich was causing issues with file uploads--we'd upload a file for the\ncommit version with the full SHA revision, and then not find it because\nthe cumulative diff was using the short SHA.\n\nTesting Done:\n- Ran unit tests.\n- Uploaded a variety of revisions including binary files. Saw that\n everything worked correctly.\n\nReviewed at https://reviews.reviewboard.org/r/13610/","shortMessageHtmlLink":"Implement binary files support for Mercurial."}},{"before":"b4477e1ae96431417c5b014b9369260ce6bc0781","after":"a5222e80003db071c2c2300d5187ee39bb3b70d9","ref":"refs/heads/release-5.x","pushedAt":"2024-03-27T05:20:22.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Handle uploading source versions of binaries when needed.\n\nWhen a change involving binary files is uploaded that requires a parent\ndiff, we need to upload both the modified and source versions of the\nbinary file (since the server can't fetch the source version from the\nrepository). This change handles that, with the new `source_file`\nparameter to the diff file attachments API.\n\nTesting Done:\nUploaded changes to binary files that required a parent diff. Saw the\ncorrect version of the source file.\n\nReviewed at https://reviews.reviewboard.org/r/13608/","shortMessageHtmlLink":"Handle uploading source versions of binaries when needed."}},{"before":"d1ef3799a021ec0f7af6e2c534d344ae2f03a21f","after":"c51da517e2142f7780cd4cb48638332766320f77","ref":"refs/heads/master","pushedAt":"2024-03-05T16:26:49.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}},{"before":"3792ad8949368e75610693289a1308326f12e685","after":"b4477e1ae96431417c5b014b9369260ce6bc0781","ref":"refs/heads/release-5.x","pushedAt":"2024-03-05T16:23:51.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Fix a bunch of typos in the RBTools codebase.\n\nThis change fixes up a bunch of typos and misspellings throughout\nRBTools.\n\nTesting Done:\nRan unit tests.\n\nReviewed at https://reviews.reviewboard.org/r/13607/","shortMessageHtmlLink":"Fix a bunch of typos in the RBTools codebase."}},{"before":"3a6fddf49bbb6371f3b11d168fe74af50d10d4b5","after":"3792ad8949368e75610693289a1308326f12e685","ref":"refs/heads/release-5.x","pushedAt":"2024-03-04T16:54:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Switch to using run_process() instead of execute() in rbtools.hooks\n\nSince we're deprecating the `rbtools.hooks.common.execute()`, this change\nswitches over to using `rbtools.utils.process.run_process()` instead in our\n`rbtools.hooks` module.\n\nTesting Done:\nRan the `git-hook-check-approval` hook, saw that it worked correctly.\n\nReviewed at https://reviews.reviewboard.org/r/13426/","shortMessageHtmlLink":"Switch to using run_process() instead of execute() in rbtools.hooks"}},{"before":"8ca93a7c27ebfa907050154f7b83beee5c3277a7","after":"3a6fddf49bbb6371f3b11d168fe74af50d10d4b5","ref":"refs/heads/release-5.x","pushedAt":"2024-03-04T16:54:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Deprecate execute(), allow it to return strings or bytes and make stripping whitespace from the output optional.\n\nOur `rbtools.hooks.common.execute()` function uses `subprocess.Popen` and\n`Popen.communicate` to execute commands and read their output. Between Python 2\nand 3, `subprocess.Popen(...).communicate()` changed from returning a tuple of\nstrings to a tuple of bytes. This breaks some of our hook util methods in\n`rbtools.hooks.git` where we try to perform string operations on the output\nof `execute()`, but we receive bytes instead of strings.\n\nPython 3.7 added a `text` parameter to `Popen` to control whether file\nobjects, stdin, stdout, and stderr are opened in text mode or binary mode.\nWe make use of that parameter by adding our own `text` parameter to `execute()`\nto control whether to return the stdout output as a string or bytes. This\ndefaults to `False` to match the default behavior of `Popen` in Python 3.\n\nThis also makes it optional to strip whitespace from the output, instead of\nalways stripping it. This is useful when dealing with commands where we\nneed to preserve the whitespace in the output, such as with `git diff`.\n\nThis changes also deprecates the `rbtools.hooks.common.execute()` function\nin favour of `rbtools.utils.process.run_process()`, which is more\nfuture-proof and has better type safety.\n\nTesting Done:\n- Ran into an error when running the git pre-receive hook, which came\n from the clash between string and bytes. Applied this fix and ran\n the hook again, saw that the error was gone.\n- Ran unit tests.\n\nReviewed at https://reviews.reviewboard.org/r/13283/","shortMessageHtmlLink":"Deprecate execute(), allow it to return strings or bytes and make str…"}},{"before":"00627081a76962d44e30ec3a0acdd6e16453aa18","after":"8ca93a7c27ebfa907050154f7b83beee5c3277a7","ref":"refs/heads/release-5.x","pushedAt":"2024-02-27T17:47:02.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Flesh out MIME type utilities in RBTools.\n\nRBTools had some MIME type stuff already to deal with the content types\nfor the API, living in `rbtools.api.utils`. This change takes the\ngeneric parts of that and moves them into a new module,\n`rbtools.utils.mimetypes`. This also adds two new methods inspired by\nsimilar code in Review Board for guessing the MIME type of a file and\nfor checking to see if a MIME type matches a given accept-type pattern.\n\nI would like to replace the `file`-based MIME type detection with\nGoogle's newly open sourced `magika` project. At the moment, magika does\nnot support Python 3.12, so we have to go with this as-is.\n\nTesting Done:\n- Ran unit tests.\n- Used the MIME type parsing, guessing, and matching in other changes.\n\nReviewed at https://reviews.reviewboard.org/r/13567/","shortMessageHtmlLink":"Flesh out MIME type utilities in RBTools."}},{"before":"973115ac89f0f7b9f1897e17a6b0b91681843fc1","after":"00627081a76962d44e30ec3a0acdd6e16453aa18","ref":"refs/heads/release-5.x","pushedAt":"2023-10-19T22:55:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Allow logging in with an API token.\n\nThis updates the login methods on the server and transport classes to allow\nlogging in to the Review Board server with either a username and password\ncombination or an API token.\n\nTesting Done:\n- Ran unit tests.\n- Tested with the upcoming web based login flow change which uses an API\n token to login.\n- Tested logging in with a username and password.\n- Tested logging out.\n- Tested passing `--username` and `--password` options to commands.\n- Tested passing `--api-token` option to commands.\n\nReviewed at https://reviews.reviewboard.org/r/13108/","shortMessageHtmlLink":"Allow logging in with an API token."}},{"before":"f7446661933908a6eefbaabcfd5e80a1efd776e1","after":"973115ac89f0f7b9f1897e17a6b0b91681843fc1","ref":"refs/heads/release-5.x","pushedAt":"2023-10-19T22:53:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michelle-aubin","name":"Michelle Aubin","path":"/michelle-aubin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46432749?s=80&v=4"},"commit":{"message":"Display useful error messages when passing invalid/expired API tokens to commands.\n\nThis displays useful error messages when passing invalid or expired API tokens\nto a command. Previously, if you passed an API token that was expired or\ninvalidated it would silently fail and then prompt the user to enter a\nusername and password.\n\nTesting Done:\n- Tested `rbt api-get`, and `rbt login` commands with\n the `--api-token` option. Used valid, invalid and expired tokens.\n- Tested the above commands with valid and invalid `--username` and\n `--password` options.\n\nReviewed at https://reviews.reviewboard.org/r/13128/","shortMessageHtmlLink":"Display useful error messages when passing invalid/expired API tokens…"}},{"before":"739844aa7eb0eb19715db7260d280f3a81fd5669","after":"df028ff9ea1ed9af6bb34f61b73c4d0c0acf33e5","ref":"refs/heads/release-4.x","pushedAt":"2023-10-17T01:51:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Add TFS-Git repository backend name to git client.\n\nThe new repository matching algorithm in RBTools didn't include the\nrepository backend name for TFS-Git, which made it so posting changes\ndidn't work unless the repository was explicitly configured. This change\nadds it so that RBTools can find matching repos.\n\nTesting Done:\nWas able to post a change without having anything in my .reviewboardrc\n\nReviewed at https://reviews.reviewboard.org/r/13351/","shortMessageHtmlLink":"Add TFS-Git repository backend name to git client."}},{"before":"fb5c0d977b8202aac1f02b512130100a20cfcd60","after":"739844aa7eb0eb19715db7260d280f3a81fd5669","ref":"refs/heads/release-4.x","pushedAt":"2023-10-02T00:27:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Conditionally return total_results from list resources.\n\nWe have some resources that behave like lists but don't contain a\n`total_results` field. When we access this, we crash, because we assume\nthis will always be present.\n\nThis change makes that field optional, setting it to `None` if not\nfound.\n\nTesting Done:\nUnit tests pass.\n\nTested this with the watched review request resource, which exhibits\nthis failure.\n\nReviewed at https://reviews.reviewboard.org/r/13274/","shortMessageHtmlLink":"Conditionally return total_results from list resources."}},{"before":"93a74c1204ccad3ead1ea5d4ad8198b6d7073638","after":"52b36495c27af292dd32ee19c7e583963182c25c","ref":"refs/heads/release-3.x","pushedAt":"2023-09-07T06:21:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Fix a syntax error in python_requires.\n\nThere was a missing comma, preventing `python_requires` from parsing on\nmodern Python packaging infrastructure. This is a trivial fix to add the\ncomma.","shortMessageHtmlLink":"Fix a syntax error in python_requires."}},{"before":"712d760a51442aa5414092bb5e17f613118287c6","after":"fb5c0d977b8202aac1f02b512130100a20cfcd60","ref":"refs/heads/release-4.x","pushedAt":"2023-06-06T22:11:16.891Z","pushType":"push","commitsCount":1,"pusher":{"login":"davidt","name":"David Trowbridge","path":"/davidt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2240?s=80&v=4"},"commit":{"message":"Fix `rbt api-get` with repo-based server detection.\n\nA user reported that the `api-get` command was failing with an error\nattempting to run without explicitly listing the server name in the\ncommand-line arguments or `.reviewboardrc`. In this case, they were\nusing the `reviewboard.url` perforce counter to define the server name\nfor their repository.\n\nWhen there's no explicit server name configured, we will initialize the\nrepository client(s) in order to use them to detect the server name.\nUnfortunately, the `api-get` command didn't include the repository\ncommand-line arguments (because why would it), and the code path that\ndoes this was assuming that it existed.\n\nThis change fixes it so we only conditionally look for the value of the\n`--repository-type` argument inside the argparse results. If not found,\nwe'll then proceed through our normal repository detection code.\n\nTesting Done:\nSet up a perforce server that defined the `reviewboard.url` counter, and\nthen ran `rbt api-get users` from within a perforce client. Saw that it\ncorrectly determined my Review Board host to use, rather than crashing\nwith an AttributeError.\n\nReviewed at https://reviews.reviewboard.org/r/13101/","shortMessageHtmlLink":"Fix rbt api-get with repo-based server detection."}},{"before":"07ebcfac96fd7fa2a6840d8afb078f119696cbf3","after":"d1ef3799a021ec0f7af6e2c534d344ae2f03a21f","ref":"refs/heads/master","pushedAt":"2023-05-30T22:34:15.548Z","pushType":"push","commitsCount":2,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}},{"before":"ed11f5644863ad36346c66ddf3d458c8bc46f63f","after":"f7446661933908a6eefbaabcfd5e80a1efd776e1","ref":"refs/heads/release-5.x","pushedAt":"2023-05-30T22:34:15.548Z","pushType":"push","commitsCount":1,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Fix a bad assumption in the new TestCase.env() helper.\n\n`TestCase.env()` made an assumption that the provided environment\nvariables exist. This wasn't intentional, and broke in CI when `SHELL`\nwasn't defined (as needed by the new `rbt setup-completion` tests).\n\nThis is a trivial change to update the lookup to be conditional.","shortMessageHtmlLink":"Fix a bad assumption in the new TestCase.env() helper."}},{"before":"92bb7c495d1811d7f368466f99da9c4aef7d0a24","after":"07ebcfac96fd7fa2a6840d8afb078f119696cbf3","ref":"refs/heads/master","pushedAt":"2023-05-30T22:25:28.949Z","pushType":"push","commitsCount":10,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}},{"before":"7aca03459221b7348755bf73dfd838b0fd6bcf50","after":"ed11f5644863ad36346c66ddf3d458c8bc46f63f","ref":"refs/heads/release-5.x","pushedAt":"2023-05-30T22:25:28.949Z","pushType":"push","commitsCount":9,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Rework the setup-completion command to be more generally useful.\n\nThe `setup-completion` command has been around for a while, but it's\nbecome less useful with time. It made an attempt to write completion\nfiles to system directories for Linux or macOS, leaving Windows out, and\nin fact leaving macOS out since system directories can't be written to.\n\nLooking into what it would take to write these files safely to local\ndirectories, it seems to be a mess, depending on bash/zsh versions,\ndistros, and configurations (e.g., Oh-My-ZSH vs. native ZSH setups).\n\nLooking at some other completion-generator commands (npm, pip, and\npyenv), it seems that most don't bother trying to write and instead\nleave it up to the user to place the code in the right place.\n\nGiven options, outputting the code is the best way to go, and has the\nadvantage of simplifying code considerably.\n\nDocumentation has been updated to walk users through configuring this.\n\nTesting Done:\nTested the auto-completion scripts with Bash and Zsh.\n\nTested default shell detection.\n\nTested using `--json` to get the script.\n\nBuilt the docs. Read through them and checked for bad links, build\nerrors, and spelling errors.\n\nReviewed at https://reviews.reviewboard.org/r/13068/","shortMessageHtmlLink":"Rework the setup-completion command to be more generally useful."}},{"before":"97efa0002b128dc49811b171a20ff42f76cd8a99","after":"7aca03459221b7348755bf73dfd838b0fd6bcf50","ref":"refs/heads/release-5.x","pushedAt":"2023-05-24T07:20:42.380Z","pushType":"push","commitsCount":1,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Fix a regression in unit tests due to a missing @property.\n\nThe recent change for HTTP caching broke unit tests, due to\n`MockResponse.status` being a method instead of a `@property`. This was\ndue to some missing fixes for this method being in my stash.\n\nThis is a trivial change to add the `@property` decorator.","shortMessageHtmlLink":"Fix a regression in unit tests due to a missing @Property."}},{"before":"6c857e51633f9a3c68614455158a7463c1958dac","after":"92bb7c495d1811d7f368466f99da9c4aef7d0a24","ref":"refs/heads/master","pushedAt":"2023-05-24T07:20:42.380Z","pushType":"push","commitsCount":2,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}},{"before":"7242c25d17cfa0ef68e588c831fa86e3de2b30e4","after":"6c857e51633f9a3c68614455158a7463c1958dac","ref":"refs/heads/master","pushedAt":"2023-05-24T03:25:12.422Z","pushType":"push","commitsCount":3,"pusher":{"login":"chipx86","name":"Christian Hammond","path":"/chipx86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4063?s=80&v=4"},"commit":{"message":"Merge branch 'release-5.x'","shortMessageHtmlLink":"Merge branch 'release-5.x'"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOcPfEwA","startCursor":null,"endCursor":null}},"title":"Activity · reviewboard/rbtools"}