AdamOswald / tes

2 stars 1 forks source link

Update tj-actions/changed-files action to v38 [SECURITY] #157

Closed renovate[bot] closed 5 months ago

renovate[bot] commented 5 months ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
tj-actions/changed-files action major v37 -> v38

GitHub Vulnerability Alerts

CVE-2023-51664

Summary

The tj-actions/changed-files workflow allows for command injection in changed filenames, allowing an attacker to execute arbitrary code and potentially leak secrets.

Details

The changed-files action returns a list of files changed in a commit or pull request which provides an escape_json input enabled by default, only escapes " for JSON values.

This could potentially allow filenames that contain special characters such as ; and ` (backtick) which can be used by an attacker to take over the GitHub Runner if the output value is used in a raw fashion (thus being directly replaced before execution) inside a run block. By running custom commands an attacker may be able to steal secrets such as GITHUB_TOKEN if triggered on other events than pull_request. For example on push.

Proof of Concept

  1. Submit a pull request to a repository with a new file injecting a command. For example $(whoami).txt which is a valid filename.
  2. Upon approval of the workflow (triggered by the pull request), the action will get executed and the malicious pull request filename will flow into the List all changed files step below.
      - name: List all changed files
        run: |
          for file in $; do
            echo "$file was changed"
          done

Example output:


##[group]Run for file in $(whoami).txt; do
    for file in $(whoami).txt; do
        echo "$file was changed"
    done
shell: /usr/bin/bash -e {0}

##[endgroup]
runner.txt was changed

Impact

This issue may lead to arbitrary command execution in the GitHub Runner.

Resolution

- name: List all changed files
  env:
    ALL_CHANGED_FILES: $
  run: |
    for file in "$ALL_CHANGED_FILES"; do
      echo "$file was changed"
    done

Resources


Release Notes

tj-actions/changed-files (tj-actions/changed-files) ### [`v38`](https://togithub.com/tj-actions/changed-files/releases/tag/v38) [Compare Source](https://togithub.com/tj-actions/changed-files/compare/v37...v38) ##### Changes in v38.2.2 ##### What's Changed - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1522](https://togithub.com/tj-actions/changed-files/pull/1522) - Upgraded to v38.2.1 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1523](https://togithub.com/tj-actions/changed-files/pull/1523) - chore(deps): update dependency [@​types/node](https://togithub.com/types/node) to v20.5.8 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1524](https://togithub.com/tj-actions/changed-files/pull/1524) - chore(deps): update dependency [@​types/node](https://togithub.com/types/node) to v20.5.9 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1525](https://togithub.com/tj-actions/changed-files/pull/1525) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1526](https://togithub.com/tj-actions/changed-files/pull/1526) - chore(deps): update actions/checkout action to v4 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1527](https://togithub.com/tj-actions/changed-files/pull/1527) - chore(deps): update typescript-eslint monorepo to v6.6.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1530](https://togithub.com/tj-actions/changed-files/pull/1530) - fix: bug with outputs when json is set to true by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1531](https://togithub.com/tj-actions/changed-files/pull/1531) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1532](https://togithub.com/tj-actions/changed-files/pull/1532) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.2.2 *** ##### Changes in v38.2.1 ##### What's Changed - Upgraded to v38.2.0 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1515](https://togithub.com/tj-actions/changed-files/pull/1515) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1516](https://togithub.com/tj-actions/changed-files/pull/1516) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1519](https://togithub.com/tj-actions/changed-files/pull/1519) - chore(deps): bump test/demo from `8bbc726` to `5dfac2e` by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/tj-actions/changed-files/pull/1518](https://togithub.com/tj-actions/changed-files/pull/1518) - fix: bug matching patterns by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1520](https://togithub.com/tj-actions/changed-files/pull/1520) - chore: update warning message by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1521](https://togithub.com/tj-actions/changed-files/pull/1521) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.2.1 *** ##### Changes in v38.2.0 ##### πŸš€ πŸš€ New Feature πŸš€ πŸš€ - Boolean Input `fail_on_initial_diff_error` now supports exiting with an error when the initial diff fails. - Boolean Input `fail_on_submodule_diff_error` now supports exiting with an error when the submodule diff fails. ##### What's Changed - Upgraded to v38.1.3 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1503](https://togithub.com/tj-actions/changed-files/pull/1503) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1504](https://togithub.com/tj-actions/changed-files/pull/1504) - fix(deps): update dependency yaml to v2.3.2 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1505](https://togithub.com/tj-actions/changed-files/pull/1505) - chore(deps): update typescript-eslint monorepo to v6.5.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1506](https://togithub.com/tj-actions/changed-files/pull/1506) - chore(deps): update dependency eslint-plugin-github to v4.10.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1507](https://togithub.com/tj-actions/changed-files/pull/1507) - chore(deps): update dependency prettier to v3.0.3 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1508](https://togithub.com/tj-actions/changed-files/pull/1508) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1510](https://togithub.com/tj-actions/changed-files/pull/1510) - feat: add support for failing on error by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1511](https://togithub.com/tj-actions/changed-files/pull/1511) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1513](https://togithub.com/tj-actions/changed-files/pull/1513) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1514](https://togithub.com/tj-actions/changed-files/pull/1514) - chore(deps): update dependency [@​types/uuid](https://togithub.com/types/uuid) to v9.0.3 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1512](https://togithub.com/tj-actions/changed-files/pull/1512) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.2.0 *** ##### Changes in v38.1.3 ##### What's Changed - chore(deps): update tj-actions/release-tagger action to v4 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1502](https://togithub.com/tj-actions/changed-files/pull/1502) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38.1.2...v38.1.3 *** ##### Changes in v38.1.2 ##### What's Changed - chore(deps): update dependency eslint to v8.48.0 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1494](https://togithub.com/tj-actions/changed-files/pull/1494) - Upgraded to v38.1.1 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1495](https://togithub.com/tj-actions/changed-files/pull/1495) - chore: update warning message by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1497](https://togithub.com/tj-actions/changed-files/pull/1497) - chore: update submodule by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1498](https://togithub.com/tj-actions/changed-files/pull/1498) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1499](https://togithub.com/tj-actions/changed-files/pull/1499) - chore: update warning message by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1500](https://togithub.com/tj-actions/changed-files/pull/1500) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.1.2 *** ##### Changes in v38.1.1 ##### What's Changed - Upgraded to v38.1.0 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1482](https://togithub.com/tj-actions/changed-files/pull/1482) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1483](https://togithub.com/tj-actions/changed-files/pull/1483) - chore(deps): update tj-actions/auto-doc action to v3 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1484](https://togithub.com/tj-actions/changed-files/pull/1484) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1485](https://togithub.com/tj-actions/changed-files/pull/1485) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1486](https://togithub.com/tj-actions/changed-files/pull/1486) - chore(deps): update dependency jest to v29.6.4 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1488](https://togithub.com/tj-actions/changed-files/pull/1488) - chore(deps): update dependency typescript to v5.2.2 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1489](https://togithub.com/tj-actions/changed-files/pull/1489) - chore(deps): update dependency [@​types/node](https://togithub.com/types/node) to v20.5.6 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1490](https://togithub.com/tj-actions/changed-files/pull/1490) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1491](https://togithub.com/tj-actions/changed-files/pull/1491) - chore(deps): bump test/demo from `f0065d7` to `8bbc726` by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/tj-actions/changed-files/pull/1492](https://togithub.com/tj-actions/changed-files/pull/1492) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1493](https://togithub.com/tj-actions/changed-files/pull/1493) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.1.1 *** ##### Changes in v38.1.0 ##### πŸš€ πŸš€ New Feature πŸš€ πŸš€ - Input `fetch_additional_submodule_history` now supports fetching additional history for submodules. ##### What's Changed - Upgraded to v38 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1474](https://togithub.com/tj-actions/changed-files/pull/1474) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1475](https://togithub.com/tj-actions/changed-files/pull/1475) - feat: add support for fetching additional history for submodules by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1476](https://togithub.com/tj-actions/changed-files/pull/1476) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1477](https://togithub.com/tj-actions/changed-files/pull/1477) - chore: move submodule update to dependabot and remove unused workflow by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1478](https://togithub.com/tj-actions/changed-files/pull/1478) - chore(deps-dev): bump [@​types/node](https://togithub.com/types/node) from 20.5.3 to 20.5.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/tj-actions/changed-files/pull/1480](https://togithub.com/tj-actions/changed-files/pull/1480) - chore(deps): bump test/demo from `e168fac` to `f0065d7` by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/tj-actions/changed-files/pull/1481](https://togithub.com/tj-actions/changed-files/pull/1481) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v38...v38.1.0 *** ##### Changes in v38.0.0 ##### πŸš€ πŸš€ New Feature πŸš€ πŸš€ - Inputs `dir_names_include_files` and `dir_names_include_files_separator` now support providing patterns that can be matched to return changed files alongside the directory names when the `dir_names` input is set to `true` ##### πŸ”₯ πŸ”₯ Breaking Changes πŸ”₯ πŸ”₯ - Output paths for Windows now use a double backslash path separator. e.g `src\\main.ts` ##### What's Changed - Upgraded to v37.6.1 by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1458](https://togithub.com/tj-actions/changed-files/pull/1458) - chore(deps): update actions/setup-node action to v3.8.1 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1459](https://togithub.com/tj-actions/changed-files/pull/1459) - chore(deps): update dependency [@​types/node](https://togithub.com/types/node) to v20.5.1 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1460](https://togithub.com/tj-actions/changed-files/pull/1460) - chore(deps): lock file maintenance by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1461](https://togithub.com/tj-actions/changed-files/pull/1461) - chore(deps): update dependency jest to v29.6.3 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1462](https://togithub.com/tj-actions/changed-files/pull/1462) - chore(deps): update typescript-eslint monorepo to v6.4.1 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1463](https://togithub.com/tj-actions/changed-files/pull/1463) - chore: update .eslintrc.json by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1465](https://togithub.com/tj-actions/changed-files/pull/1465) - feat: add support for including matching changed files when dir_names is set to true by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1464](https://togithub.com/tj-actions/changed-files/pull/1464) - Updated README.md by [@​tj-actions-bot](https://togithub.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/1466](https://togithub.com/tj-actions/changed-files/pull/1466) - chore(deps): update dependency [@​types/node](https://togithub.com/types/node) to v20.5.3 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1467](https://togithub.com/tj-actions/changed-files/pull/1467) - fix: bug with locating the previous tag by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1470](https://togithub.com/tj-actions/changed-files/pull/1470) - chore(deps): update dependency [@​types/jest](https://togithub.com/types/jest) to v29.5.4 by [@​renovate](https://togithub.com/renovate) in [https://github.com/tj-actions/changed-files/pull/1472](https://togithub.com/tj-actions/changed-files/pull/1472) - chore: update test by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1469](https://togithub.com/tj-actions/changed-files/pull/1469) - fix: error getting diff for submodules by [@​jackton1](https://togithub.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/1473](https://togithub.com/tj-actions/changed-files/pull/1473) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v37...v38.0.0 ***

Configuration

πŸ“… Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ”• Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

aviator-app[bot] commented 5 months ago

Current Aviator status

Aviator will automatically update this comment as the status of the PR changes. Comment /aviator refresh to force Aviator to re-examine your PR (or learn about other /aviator commands).

This PR was merged manually (without Aviator). Merging manually can negatively impact the performance of the queue. Consider using Aviator next time.


See the real-time status of this PR on the Aviator webapp.
Use the Aviator Chrome Extension to see the status of your PR within GitHub.
performance-testing-bot[bot] commented 5 months ago

Unable to locate .performanceTestingBot config file

secure-code-warrior-for-github[bot] commented 5 months ago

Micro-Learning Topic: OS command injection (Detected by phrase)

Matched on "command injection"

What is this? (2min video)

In many situations, applications will rely on OS provided functions, scripts, macros and utilities instead of reimplementing them in code. While functions would typically be accessed through a native interface library, the remaining three OS provided features will normally be invoked via the command line or launched as a process. If unsafe inputs are used to construct commands or arguments, it may allow arbitrary OS operations to be performed that can compromise the server.

Try a challenge in Secure Code Warrior

Helpful references
  • OWASP Command Injection - OWASP community page with comprehensive information about command injection, and links to various OWASP resources to help detect or prevent it.
  • OWASP testing for Command Injection - This article is focused on providing testing techniques for identifying command injection flaws in your applications
difflens[bot] commented 5 months ago

View changes in DiffLens

pull-request-quantifier-deprecated[bot] commented 5 months ago

This PR has 2 quantified lines of changes. In general, a change size of upto 200 lines is ideal for the best PR experience!


Quantification details

``` Label : Extra Small Size : +1 -1 Percentile : 0.8% Total files changed: 1 Change summary by file extension: .yml : +1 -1 ``` > Change counts above are quantified counts, based on the [PullRequestQuantifier customizations](https://github.com/microsoft/PullRequestQuantifier/blob/main/docs/prquantifier-yaml.md).

Why proper sizing of changes matters

Optimal pull request sizes drive a better predictable PR flow as they strike a balance between between PR complexity and PR review overhead. PRs within the optimal size (typical small, or medium sized PRs) mean: - Fast and predictable releases to production: - Optimal size changes are more likely to be reviewed faster with fewer iterations. - Similarity in low PR complexity drives similar review times. - Review quality is likely higher as complexity is lower: - Bugs are more likely to be detected. - Code inconsistencies are more likely to be detected. - Knowledge sharing is improved within the participants: - Small portions can be assimilated better. - Better engineering practices are exercised: - Solving big problems by dividing them in well contained, smaller problems. - Exercising separation of concerns within the code changes. #### What can I do to optimize my changes - Use the PullRequestQuantifier to quantify your PR accurately - Create a context profile for your repo using the [context generator](https://github.com/microsoft/PullRequestQuantifier/releases) - Exclude files that are not necessary to be reviewed or do not increase the review complexity. Example: Autogenerated code, docs, project IDE setting files, binaries, etc. Check out the `Excluded` section from your `prquantifier.yaml` context profile. - Understand your typical change complexity, drive towards the desired complexity by adjusting the label mapping in your `prquantifier.yaml` context profile. - Only use the labels that matter to you, [see context specification](./docs/prquantifier-yaml.md) to customize your `prquantifier.yaml` context profile. - Change your engineering behaviors - For PRs that fall outside of the desired spectrum, review the details and check if: - Your PR could be split in smaller, self-contained PRs instead - Your PR only solves one particular issue. (For example, don't refactor and code new features in the same PR). #### How to interpret the change counts in git diff output - One line was added: `+1 -0` - One line was deleted: `+0 -1` - One line was modified: `+1 -1` (git diff doesn't know about modified, it will interpret that line like one addition plus one deletion) - Change percentiles: Change characteristics (addition, deletion, modification) of this PR in relation to all other PRs within the repository.


Was this comment helpful? :thumbsup:  :ok_hand:  :thumbsdown: (Email) Customize PullRequestQuantifier for this repository.

senior-dev-bot[bot] commented 5 months ago

Hi there! :wave: Thanks for opening a PR. It looks like you've already reached the 5 review limit on our Basic Plan for the week. If you still want a review, feel free to upgrade your subscription in the Web App and then reopen the PR

guide-bot[bot] commented 5 months ago

Thanks for opening this Pull Request! We need you to:

  1. Fill out the description.

    Action: Edit description and replace <!- ... --> with actual values.

  2. Complete the activities.

    Action: Complete If you want to rebase/retry this PR, check this box

    If an activity is not applicable, use '\~activity description\~' to mark it not applicable.

coderabbitai[bot] commented 5 months ago

[!IMPORTANT]

Auto Review Skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

Tips ### Chat There are 3 ways to chat with CodeRabbit: - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit-tests for this file.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit tests for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository from git and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit tests.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json` ### CodeRabbit Discord Community Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback.