Skip to content

Latest commit

 

History

History
122 lines (90 loc) · 2.96 KB

api.md

File metadata and controls

122 lines (90 loc) · 2.96 KB

API

backport can be imported as a Node module and interacted with programatically. This can be useful when creating automation around the Backport tool. See for example the Backport Github Action

backportRun(options, processArgs, exitCodeOnFailure)

Backport a commit programatically. Commits can be selected via pullNumber or sha.

Arguments:

All of the options listed on config-file-options.md are valid. The most common options are:

options.accessToken string (Required)
Github access token to authenticate the request

options.repoName string (Required)
Name of repository

options.repoOwner string (Required)
Owner of repository (organisation or username)

options.pullNumber number
Filter commits by pull request number

options.sha string
Filter commits by commit sha

options.interactive boolean
Enable interactive prompts. Default: true

processArgs array
Useful for forwarding arguments to backport: const processArgs = process.argv.slice(2);

exitCodeOnFailure boolean
If true sets a non-zero exit code on failure. Default: true

Example

import { backportRun } from 'backport';

const result = await backportRun({
  options: {
    accessToken: 'very secret',
    repoName: 'kibana',
    repoOwner: 'elastic',
    pullNumber: 121633,
    interactive: false,
  },
});

console.log(result);

getCommits

Retrieve information about commits and whether they are backported

Arguments:

accessToken string (Required)
Github access token to authenticate the request

repoName string (Required)
Name of repository

repoOwner string (Required)
Owner of repository (organisation or username)

author string
Filter commits by Github user

pullNumber number
Filter commits by pull request number

sha string
Filter commits by commit sha

sourceBranch string
The branch to display commits from. Defaults to the default branch (normally "main" or "master")

Example

import { getCommits } from 'backport';

const commits = await getCommits({
  accessToken: 'abc',
  repoName: 'kibana',
  repoOwner: 'elastic',
  pullNumber: 121633,
});

console.log(commits);

/*
[{
  soureCommit: {
    committedDate: '2021-12-20T14:20:16Z',
    sha: 'd421ddcf6157150596581c7885afa3690cec6339',
    message: '[APM] Add note about synthtrace to APM docs (#121633)',
  },
  sourcePullRequest: {
    number: 121633,
    url: 'https://github.com/elastic/kibana/pull/121633'
    mergeCommit: {
      sha: 'd421ddcf6157150596581c7885afa3690cec6339',
      message: '[APM] Add note about synthtrace to APM docs (#121633)',
    }
  },
  sourceBranch: 'main',
  targetPullRequestStates: [
    {
      url: 'https://github.com/elastic/kibana/pull/121643',
      number: 121643,
      branch: '8.0',
      state: 'MERGED'
    }
  ]
}]
*/