Skip to content

tmelliottjr/octokit-plugin-unique-issue

Repository files navigation

octokit-plugin-unique-issue

Creates and retrieves unique GitHub issues

@latest Build Status

Usage

Browsers

Load octokit-plugin-unique-issue and @octokit/core (or core-compatible module) directly from cdn.skypack.dev

<script type="module">
  import { Octokit } from "https://cdn.skypack.dev/@octokit/core";
  import { uniqueIssue } from "https://cdn.skypack.dev/octokit-plugin-unique-issue";
</script>

Node

Install with npm install @octokit/core octokit-plugin-unique-issue. Optionally replace @octokit/core with a compatible module

const { Octokit } = require("@octokit/core");
const { uniqueIssue } = require("octokit-plugin-unique-issue");

createOrUpdateUniqueIssue

Creates or updates an issue with the provided identifier.

By default, when close_previous is false and a single issue with the provided identifier is found, that issue will be updated, otherwise a new issue is created. An error will be thrown if more than one issue with the provided identifier is found.

When close_previous is true, all existing issues with the provided identifier will be closed before creating a new issue.

createOrUpdateUniqueIssue accepts all supported parameters for creating or updating an issue with the GitHub REST API.

Create or Update Issue

const MyOctokit = Octokit.plugin(uniqueIssue);
const octokit = new MyOctokit({ auth: "secret123" });

const { data, updated } = await octokit.createOrUpdateUniqueIssue({
  identifier: "super-unique-identifier",
  owner: "tmelliottjr",
  repo: "octokit-plugin-unique-issue",
  title: "My unique issue",
  body: "The body of my unique issue!",
});

const action = updated ? "Updated" : "Created";

console.log(`${action} issue: ${data.number}`);

Create and Close Previous Issue

const MyOctokit = Octokit.plugin(uniqueIssue);
const octokit = new MyOctokit({ auth: "secret123" });

const { data, updated, closed_issues } =
  await octokit.createOrUpdateUniqueIssue({
    identifier: "super-unique-identifier",
    owner: "tmelliottjr",
    repo: "octokit-plugin-unique-issue",
    title: "My unique issue",
    body: "The body of my unique issue!",
    close_previous: true,
  });

console.log(`Created issue: ${data.number}`);

if (closed_issues.length) {
  console.log(
    `Closed issue(s) ${closed_issues.map((issue) => issue.number).join(", ")}`,
  );
}

Options

name type description
identifier string Required. Unique identifier for the issue.
close_previous boolean Optional. Defaults to false. Close existing issue(s) with identifier.

How it Works

createOrUpdateUniqueIssue will add an MDAST Comment Marker to an issue's body containing the unique identifier provided.

<!-- octokit-unique-issue id="super-unique-identifier" -->

Contributing

See CONTRIBUTING.md

License

MIT

About

Creates and retrieves unique GitHub issues

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published