MfGames Tasks v0.0
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 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.
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.
Now, to work on the 332 lines of items on my list.
Metadata
Categories:
Tags: