npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tiquette

v1.0.3

Published

Have some etiquette. Format your commit messages with a ticket or issue number.

Downloads

5

Readme

Build Status

Tiquette

Tiquette is a tool for automatically formatting your commit messages with a ticket or issue number. If your development process requires a reference to tickets in commit messages, then this is the tool for you!

Usage

Tiquette works by creating a Git branch with a ticket number in the name, and then automatically inserting that ticket number into your commit messages while you're on that branch.

To get started, check out a new branch and give it your ticket number:

$ npm run branch FOO-123

You'll then be prompted to enter a branch name, which will default to the ticket's title (fetched via your project management system's API):

prompt: Brief description (default: "Fix all the things!!!"):

Press Enter, and a new branch will be created. In the example above, if you used the default description, the branch would be named FOO-123--Fix-all-the-things. (The two dashes after the ticket number help Tiquette know where the ticket number ends.)

While on this branch, Tiquette will format every commit message to include the ticket number in your branch name!

$ git commit -m "Fix one of the things"
[FOO-123] Fix one of the things

Setup

Installation

  • If you're using Yarn: yarn add tiquette --dev
  • Or if you're using NPM: npm install tiquette --save-dev

Configure Tiquette in your package.json

{
  "tiquette": {
    "commitMessageTemplate": "[{{ticket}}] {{message}}",
    "type": "JIRA"
  }
}
  • commitMessageTemplate allows you to specify how your ticket number should appear in your commit messages using Mustache-style placeholders. Given the template above, if you write a commit message like Fix one of the things, the final commit message will be [FOO-123] Fix one of the things.
  • type allows you to specify what ticket type to use. Currently, this can be either GitHub or JIRA.

(Optional) Configure API details in .tiquetterc

The API details for your project management tool are used to fetch ticket names to automatically generate branch names. If you don't need this functionality, you can safely skip this step.

Tiquette uses the rc NPM module to load configuration from a .tiquetterc file. This configuration shouldn't be checked into your version control system, and is used to fetch ticket names from your project management tool.

The file should be written in INI or JSON format, and the contents differ based on the value of tiquette.type in your package.json.

For JIRA

{
  "authorization": "Basic c3Rlcmxpbmc6YXJjaGVy",
  "host": "http://my-jira-instance.example.com"
}
  • authorization is the content of the Authorization header when talking to the JIRA API, which is needed for fetching issue titles. Per JIRA's API documentation, this should be the string Basic plus your colon-separated username and password, Base64-encoded.
  • host is the host (without trailing slash) of your JIRA instance. Currently, only version 2 of the JIRA REST API is supported.

For GitHub

{
  "authorization": "Basic c3Rlcmxpbmc6YXJjaGVy",
  "host": "http://my-github-instance.example.com",
  "owner": "groupon",
  "repo": "nlm"
}
  • authorization is the content of the Authorization header when talking to the GitHub API, which requires your personal access token for fetching issue titles.
  • host is the host of your GitHub instance, and is only required if you're using GitHub Enterprise. (Otherwise, it will default to GitHub.com.)
  • owner and repo refer to the owner and repo names. For example, in a repo located at github.com/groupon/nlm, groupon would be the owner and nlm would be the repo.

Install Tiquette's branch script and commitmsg hook

{
  "scripts": {
    "branch": "tiquette branch",
    "commitmsg": "tiquette commit-message $GIT_PARAMS"
  }
}
  • The branch script should be called with a ticket number: npm run branch FOO-123. If you've configured API details in .tiquetterc, it will hit this API to get the ticket's name, and prompt you to use that name or a different one for your branch. It will then create a branch with the ticket number and the name you specify (normalized into letters and hypens).
  • The commitmsg hook allows Tiquette to automatically format your commit messages using Husky.

Then, you're all set! Your commit messages will automatically have ticket numbers in them in the format specified.

Development

  • Install dependencies with yarn.
  • Run tests with npm test.
  • Prettify code (using Prettier) with npm run prettify.

License

Copyright 2017 Groupon, Inc.

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.

3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

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.