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

mfgames-tasks-cli

v1.2.1

Published

A tool for aggregating tasks and assigned issues from GitLab and GitHub.

Downloads

7

Readme

MfGames Tasks

A tool for aggregating tasks and assigned issues from GitLab and GitHub.

Setup and usage

Install mfgames-tasks-cli using npm:

npm i --global mfgames-tasks-cli

Configuration

Task collection and generation is based on a single YAML configuration.

# This is what defines the sources to scan for outstanding tasks.
sources:
    - id:       github-dmoonfire
      type:     github
      token:    TOKEN
    - id:       gitlab-dmoonfire
      type:     gitlab
      token:    TOKEN

# This defines how the files are written out.
outputs:
    - type:     markdown
      id:       md
      path:     /path/to/output
    - type:     markdown
      id:       dropbox-markdown
      store:    dropbox
      token:    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      path:     /absolute/path/relative/to/Dropbox/root

The tool gathers up assigned issues from GitLab or GitHub, combines them together, and then writes them out to a Markdown file.

At the moment, the output is simplified. It is intended it will be expanded by additional controls later.

Usage

To use it, run the following:

mfgames-tasks write /path/to/config.yaml

Sources

The following fields are used in sources.

  • type: The API to use to get the values. Valid choices are gitlab, github, icalendar, or icalendar-budget
  • id: Arbitrary identifier for the source, used in some messages.
  • url: The base URL or server for the API:
    • GitLab defaults to https://gitlab.com
    • GitHub defaults to https://api.github.com
    • iCalendar: Can be file://, http://, or https://
    • iCalendar Budget: Can be file://, http://, or https://

GitLab and GitHub Fields

  • token: The access token from the respective site for GitLab and GitHub

iCalendar Fields

  • title: The category name, only used for iCalendar.
  • sort: An override on the sort for the file, only used for iCalendar.
  • for: The number of days ahead to use, in the format of "7 days". "months", and "weeks" (defaults to "7 days")

iCalendar Budget Fields

  • title: The category name, only used for iCalendar.
  • sort: An override on the sort for the file, only used for iCalendar.
  • categories: A list of categories to break down the items
    • title: The name of the category
    • for: As above, from now.
    • dayOfMonth: A list of day of months such as [1, 16]
    • avg: If provided, averages the total amounts
  • useDueDates: If true (default), then use the calendar date as the due date.
  • prefixDate: If true (not default), then put an ISO (YYYY-MM-DD) date in front of the title.
  • asTable: Format the results as a Markdown table (if true).

Output

While there can be multiple outputs, at the moment only a simplified Markdown version is provided.

  • type: The output format to use, the only value is "markdown".
  • id: An arbitrary ID used for messages.
  • store: Either file or dropbox.
  • token: The access token for Dropbox, if the store is set to dropbox.
  • path: The path to write the results to.
  • format: An additional format object.

Formatting

Formatting is based on Lodash template properties. It is in the format property and contains the following keys:

  • category: \n# <%= owner %> / <%= project %>\n\n
  • task: * <%= due %> <%= labels %> <%= title %>\n

The following category items are formatted from the sources:

  • owner: <%= owner %>
  • project: <%= project %>

The following parameters are used for task and all the formats below.

  • title: <%= title %>
  • id: #<%= id %>
  • labels: [<%= labels %>]
  • due: {<%= due.format('YYYY-MM-DD') %>}

For example:

outputs:
  - id: test
    format:
      category: "* <%= owner %> / <%= project %>\n"
      task: "  * <%= title %> <%= due %> <%= labels %> <%= id %>\n"
      id: "#<%= id %>"