MfGames Tasks v0.0

Up a Level

Previous

Next

As some of you know, I have a lot of irons in the fire. Some of them are the natural problem of programmers where many interesting things never take root but sometimes there are a few that do and they quickly blossom in needing more time. In other cases, it is commissions due, weekly chapters, and the normal household to do list.

I keep most of my issues in GitLab[1] including things I have to do for sales tax, filing dates, and even per-project items. I also keep my novels and commissions there, along with associated issues to keep each moving.

1: https://gitlab.com/

So, when I get stressed out, I write things to help me. In this case, I decided to write `mfgames-tasks` which pulls all of those assigned issues and throws it into a single Markdown file which I keep on Dropbox across all my machines. This way, it picks up the items from each of those repositories and jams it into a file that looks like this:

# dmoonfire / mfgames-culture-js

-   Errors representing some seconds and milliseconds
    -   https://api.github.com/repos/dmoonfire/mfgames-culture-js/issues/3

# dmoonfire / mfgames-locking-cil

-   [simple] Add/update unit tests
    -   https://gitlab.com/dmoonfire/mfgames-locking-cil/issues/2
-   [simple] Get this packaged and uploaded to NuGet
    -   https://gitlab.com/dmoonfire/mfgames-locking-cil/issues/1

# typewriter-press / events

-   {2018-08-30} Register as an attendee
    -   https://gitlab.com/typewriter-press/events/issues/2
-   {2018-03-30} Register as a vendor and get a table
    -   https://gitlab.com/typewriter-press/events/issues/1

It handles due dates (in `{2018-03-30}`) and labels (such as `[simple]`). If there are none, it skips them. On GitLab, if the issue is assigned to a milestone and doesn't have a due date of its own, it uses the milestone's due date.

Another big feature is that GitLab issues that are assigned to a milestone that hasn't started, it doesn't include them. This lets me set up quarterly or monthly milestones (e.g., taxes) and have them pop up when they are needed.

Installation

I wrote this in Typescript because I really like it as a scripting language and it has a nice ecosystem. Installation is pretty simple:

npm install --global mfgames-tasks-cli

Configuration

As my preferred configuration file format, I have a `mfgames-tasks.yaml` file on my laptop. It looks somewhat like this:

# This is what defines the sources to scan for outstanding tasks.
sources:
    - id: github-dmoonfire
      type: github
      token: TOKEN # Get from GitHub settings
    - id: gitlab-dmoonfire
      type: gitlab
      token: TOKEN # Get from GitLab settings
    # You can have multiple GitLab and GitHub accounts.

# This defines how the files are written out. There is only one choice and it doesn't have formatting.
outputs:
    - type: markdown
      id: md
      path: /path/to/output

With the above file, I just have this added to my hourly cron:

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

Documentation

Yeah, there isn't a lot of documentation here.

GitLab

NPM

Now, to work on the 332 lines of items on my list.

Metadata

Categories:

Programming

Tags:

Gitlab

MfGames Tasks

Footer

Below are various useful links within this site and to related sites (not all have been converted over to Gemini).

Contact

Biography

Bibliography

Support

Fiction

Fedran

Coding

The Moonfires

Categories

Tags

Privacy

Colophon

License

Mailing List

https://d.moonfire.us/blog/2018/02/23/mfgames-tasks/