@useoptic/api-checks
TypeScript icon, indicating that this package has built-in type declarations

0.25.10 • Public • Published

api-checks

API checks helps automate checks between OpenAPI changes.

Example usage

Configuring your CLI

// cli.js
import { expect } from 'chai';
import { ApiCheckService, makeCiCli } from '@useoptic/api-checks';

const checker = new ApiCheckService();

const cli = makeCiCli('my_cli', checker, {
  opticToken: process.env.OPTIC_TOKEN,
  gitProvider: {
    token: process.env.GITHUB_TOKEN,
  },
  ciProvider: 'github',
});

cli.parse(process.argv);

Setting up your build pipeline

Currently, only CircleCi and Github Actions are supported. There's three main commands to this flow:

  • compare (compares two OpenAPI files together)
# Output the open api files from somewhere
$ node ./consolidate-open-api-files.js

# For github actions
$ echo $GITHUB_CONTEXT > ./ci-context.json

# Generate contextual information about the run from the environment.
# Current valid providers: [github, circleci]
$ node ./cli.js create-context --provider <provider>

# Run the compare files
# this will run compare, and upload the files to optic cloud
$ node ./cli.js compare --from ./from.json --to ./to.json --context "{\"createdAt\":1639434455822}" --upload-results

Expected contexts

Github Actions Context

The easiest way to dump this is from github actions:

...
  env:
    GITHUB_CONTEXT: ${{ toJSON(github) }}
  run: echo "$GITHUB_CONTEXT" > ./ci-context.json

CircleCI Context

Expected JSON values are:

{
  "CIRCLE_PROJECT_USERNAME": "owner",
  "CIRCLE_PULL_REQUEST": "https://github.com/owner/repo_name/pull/10",
  "CIRCLE_PROJECT_REPONAME": "repo_name",
  "CIRCLE_BRANCH": "fix/the-git-branch-name",
  "CIRCLE_SHA1": "e756e8e68f5daaed86fafe76cd8e51400d70946a",
  "CIRCLE_BUILD_NUM": 1,
  "CIRCLE_PR_USERNAME": "pr_author",

Note CIRCLE_PR_USERNAME is not always available - the variable OPTIC_COMMIT_USER may be set instead with a user value (such as the commit author from Git).

Readme

Keywords

none

Package Sidebar

Install

npm i @useoptic/api-checks

Weekly Downloads

40

Version

0.25.10

License

none

Unpacked Size

454 kB

Total Files

239

Last publish

Collaborators

  • niclim
  • acunniffe
  • opticbot
  • notnmeyer