ocotokit.js
Introduction
ocotokit.js is a javascript library that can help you interact with the GitHub API in a easy manner. Some javascript knowledge is helpful, but not required for many simple tasks.
You can use the octokit.js client along with the github-script action to quickly interface with the GitHub API to do useful things in Actions (like commenting on an issue.)
It is helpful to install node.js when developing scripts that interface with the GitHub API so you can test them locally.
Example Octokit Scripts
Example 1: Create A Comment On A PR
Let’s say you want to programatically make a comment on a pull request with a url that includes the branch name, but you are only given the pull request number. We first lookup the branch name associated with the pull request and pass that to the method call that makes an issue comment:
//Instantiate octokit client
const { Octokit } = require("@octokit/rest");
const octokit = new Octokit({
auth: "<YOUR_PERSONAL_ACCESS_TOKEN>",
;
})//Take an action (create a comment) triggered by an issue comment
// Get information about the pr
.pulls.get({
octokitowner: 'hamelsmu',
repo: 'test_html',
pull_number: 1
.then( (pr) => {
})// use the branch name from the pr to make a pr comment
var BRANCH_NAME = pr.data.head.ref
.issues.createComment({
octokitissue_number: 1,
owner: 'hamelsmu',
repo: 'test_html',
body: `[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/hamelsmu/test_html/${BRANCH_NAME}) :point_left: Launch a binder notebook on this branch`
}) })
Example 2: Issue Comment
This is a simple example of how you can create an issue comment.
//Instantiate octokit client
const { Octokit } = require("@octokit/rest");
const octokit = new Octokit({
auth: "<YOUR_PERSONAL_ACCESS_TOKEN>",
;
})// Create an issue commment
var BRANCH_NAME = 'hamelsmu-patch-1'
.issues.createComment({
octokitissue_number: 1,
owner: 'hamelsmu',
repo: 'test_html',
body: `[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/hamelsmu/test_html/${BRANCH_NAME}) :point_left: Launch a binder notebook on this branch`
})
MyBinder.org
The examples above were adapted to write these docs for mybinder.org.