JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q47314F
  • License BSD-2-Clause

Small tool used to create identical github issue labels

Package Exports

  • github-issues-label-sync

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (github-issues-label-sync) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

πŸ”ŒπŸ“¦ github-issues-label-sync

Build Status Commitizen friendly semantic-release

current version current version Dependency Status devDependency Status

bitHound Overall Score bitHound Dependencies bitHound Dev Dependencies bitHound Code

License GitHub issues Join the chat at https://gitter.im/superleap/github-issues-label-sync

Overview

part of the superleap.xyz open source project management suite

create .issuesrc json containing pairs of label/colour

import repo labels from .issuesrc

add .issuesrc to version control

Installation

NPM

Install GitHub Issues Label Sync with NPM or add to your package.json:

npm i -D github-issues-label-sync

GitHub

git clone https://github.com/superleap/github-issues-label-sync.git

Usage

Before you can use this module you have to create a configuration array and then require the package inside your script:

let config = {
  "github": {
    "user": "superleap",
    "repo": "github-issues-label-sync",
    "token": "dab5ae868be49ec9179b34d2532d699a603f8be0",
    "options": {
      "debug": true,
      "followRedirects": false
    }
  }
};
let {user, repo, token, options} = config.github;
let githubSync = new (require('github-issues-label-sync'))
    (options, user, repo, token);
    

Configuration

<Label> typedef

This package doesn't come with a default configuration.

As long as you can export your data structure to GithubIssuesLabelSync.Label you should be set to go.

let Label = {
    "name": "GH Review: accepted", 
    "color": "009800" 
};

The name property refers to the label name and the color property should be set to the color of the label as a hex code without the leading hash tag.

example .labels.js

Here is an example of a custom structure config - this will be default in future versions:

let labels = {
  "categories": [
    {
      "name": "GH Review",
      "labels": [
        {
          "name": "accepted",
          "color": "009800"
        },
        {
          "name": "breaking changes",
          "color": "a33cd6"
        },
        {
          "name": "needs-revision",
          "color": "e11d21"
        },
        {
          "name": "on hold",
          "color": "bfdadc"
        },
        {
          "name": "review-needed",
          "color": "fbca04"
        },
        {
          "name": "shipped",
          "color": "d4c5f9"
        }
      ]
    },
    {
      "name": "Resolution",
      "labels": [
        {
          "name": "duplicate",
          "color": "ccc"
        },
        {
          "name": "invalid",
          "color": "e6e6e6"
        },
        {
          "name": "unresolved",
          "color": "fef2c0"
        },
        {
          "name": "wontfix",
          "color": "fff"
        }
      ]
    },
    {
      "name": "Semver",
      "labels": [
        {
          "name": "exempt",
          "color": "1d76db"
        },
        {
          "name": "major",
          "color": "b60205"
        },
        {
          "name": "minor",
          "color": "fbca04"
        },
        {
          "name": "patch",
          "color": "0e8a16"
        },
        {
          "name": "premajor",
          "color": "e99695"
        }
      ]
    },
    {
      "name": "Status",
      "labels": [
        {
          "name": "new",
          "color": "006b75"
        },
        {
          "name": "reverted",
          "color": "d93f0b"
        },
        {
          "name": "unconfirmed",
          "color": "d4c5f9"
        }
      ]
    },
    {
      "name": "Type",
      "labels": [
        {
          "name": "bug",
          "color": "fc2929"
        },
        {
          "name": "enhancement",
          "color": "84b6eb"
        },
        {
          "name": "feature-request",
          "color": "c7def8"
        },
        {
          "name": "question",
          "color": "cc317c"
        },
        {
          "name": "regression",
          "color": "e11d21"
        }
      ]
    }
  ]
};
let labels = [];

Array.from(config).categories).forEach((category) => {
    category.labels.forEach((label) => {
        label.name = `${category.name}: ${label.name}`;
        labels.push(label);
    });
});

module.exports = labels;

Examples

Create a label

githubSync.createLabel(label).then((response) => {
  // log raw response bodies
  console.log(response);
  // log created label
  console.log(githubSync.createdLabels);
});

Create multiple labels

githubSync.createLabels(labels).then((response) => {
  // log raw response bodies
  console.log(response);
  // log created/updated labels
  console.log(githubSync.createdLabels);
});

Delete a label

githubSync.deleteLabel(labels).then((response) => {
  // log raw response bodies
  console.log(response);
  // log deleted label
  console.log(githubSync.createdLabels);
});

Delete multiple labels

githubSync.deleteLabels(labels).then((response) => {
  // log raw response bodies
  console.log(response);
  // log delete labels
  console.log(githubSync.deletedLabels);
});

Fetch all labels

githubSync.getLabels().then((response) => {
  // log labels
  console.log(response);
});

Purge all labels

githubSync.purgeLabels().then((response) => {
  // log raw response bodies
  console.log(response);
  // log deleted labels
  console.log(githubSync.deletedLabels);
});

Import all labels

githubSync.importLabels(labels).then((response) => {
  // log raw response bodies
  console.log(response);
  // log created/updated labels
  console.log(githubSync.createdLabels);
});

License

Copyright (c) 2016, TED Vortex (Teodor Eugen DuΘ›ulescu)
All rights reserved.

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions 
are met:

1. Redistributions of source code must retain the above copyright 
notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above 
copyright notice, this list of conditions and the following 
disclaimer in the documentation and/or other materials provided 
with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.