Feat/dropbox oauth encryption#722
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the security and consistency of the Dropbox integration by adopting a standardized, shared encryption framework for OAuth tokens. This change streamlines the handling of sensitive authentication data, making the Dropbox action more robust and maintainable, while also improving the overall code quality through targeted lint fixes and updated test practices. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request successfully migrates the Dropbox action to use the shared OAuth encryption framework, which is a great step for security and standardization. The changes correctly replace direct JSON parsing with the new oauthExtractTokensFromStateJson and oauthMaybeEncryptTokens helpers. The tests have also been updated accordingly. I've found a couple of areas for improvement in error handling: one critical issue where a null check is missing, which could lead to a runtime error, and another medium-severity issue with a misleading log message in a catch block. Applying these suggestions will make the code more robust.
PR Summary: [feat/dropbox-oauth-encryption] Move Dropbox OAuth to Shared Encryption Framework and Fix Lints
Description:
Migrates the Dropbox action to fully utilize the shared actions-wide encryption framework for OAuth state, standardizing its security footprint alongside Google Ads, Facebook, and Airtable.
Summary of Changes:
src/actions/dropbox/dropbox.ts:Replaced legacy implementation withoauthExtractTokensFromStateJsonandoauthMaybeEncryptTokenswrappers. UpdateddropboxClientFromRequestto be async to support token extraction and updated its callers.src/actions/dropbox/test_dropbox.ts: Fixed lint errors:Marked functions that return promises as async to satisfy promise-function-async.
Replaced await chai.expect(action.execute(request)).to.be.fulfilled with direct await action.execute(request) to solve Invalid await of a non-Promise value constraints (typing mismatches in chai-as-promised).