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.
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.
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
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
Yeah, there isn't a lot of documentation here.
Now, to work on the 332 lines of items on my list.
Categories:
Tags:
Below are various useful links within this site and to related sites (not all have been converted over to Gemini).