2.0.4 • Published 10 months ago

@codeparrot/js-agent v2.0.4

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
10 months ago

What is CodeParrot?

Get a change report on response body, latency & error rates of your APIs!

Example Diff

An Example Diff

CodeParrot uses AI and production traffic to generate a change report. This report gives you insights on differences in response body for all unique requests coming to your service!

It works by "recording" production (or staging env) traffic. Our AI figures out the unique API calls from this traffic, and also mocks the downstream dependencies! Magic right?! 🤯

Then for every PR, the above unique API calls are run against the new version of code. Its like- auto-generated functional tests (API calls for a service, with dependencies mocked).

Installation

Step 1 - Install the nodeJs "record" agent

  1. Install the CodeParrot dependency @codeparrot/js-agent by running

    npm install @codeparrot/js-agent

    This will add a dependency "@codeparrot/js-agent": "^1.2.3", in your package.json

  2. Update the node start app command with -r @codeparrot/js-agent, like

    "scripts": {
        "server": "node -r @codeparrot/js-agent index.js"
    }

This basically require’s the code parrot agent package before your application code.

Set the following env variable:

# set it to your *unique* service name
CODE_PARROT_APP_NAME=<service-name>

When you start your nodeJS application and see a log line like:

@codeparrot/js-agent, v1.2.5 nodejs-agent-<...>gserviceaccount.com

CodeParrot record is set up! 🎉 Use your application as normal, and CodeParrot will record the network traffic.

Step 2 - Install GitHub App

Install the CodeParrot GitHub App in the repo(s) that already have replay set up. (It asks for the minimum possible permissions)

Then, create 2 new files:

  1. codeparrot-replay.Dockerfile
  2. codeparrot.sh

to run the tests. Every code push, this Dockerfile is built and run. This new Dockerfile is almost as same as your existing one, except that it sets the CMD to run codeparrot.sh instead of the usual npm start.

codeparrot.sh runs your app start command (like npm start) in a loop, until all the tests execute.

Example codeparrot.sh :

#!/bin/sh

while :
do
    CODE_PARROT_IS_REPLAY=true npm start && break
    echo "Non-zero exit! Restarting replay..."
done

Example codeparrot-replay.Dockerfile :

# ... existing app setup

COPY codeparrot.sh ./codeparrot.sh

CMD ["sh", "./codeparrot.sh"]

Now, in every PR, a GitHub "check" with a link to the Change Report will appear: 🎉

GitHub Check

Contributing, Self Setup

Refer to CONTRIBUTING.md

1.2.7

10 months ago

1.2.6

10 months ago

2.0.3

10 months ago

2.0.2

10 months ago

2.0.4

10 months ago

0.0.2001

10 months ago

2.0.1

10 months ago

2.0.0

10 months ago

1.2.5

11 months ago

1.2.4

11 months ago

0.0.1

11 months ago

0.0.10002

11 months ago

0.0.10005

11 months ago

0.0.10006

11 months ago

0.0.10003

11 months ago

0.0.10004

11 months ago

0.0.10007

11 months ago

1.2.3

12 months ago

1.2.2

12 months ago

1.2.1

12 months ago

1.2.0

12 months ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago