# MfGames Tasks v0.0 => .. Up a Level 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. => https://gitlab.com/ 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: ```markdown # 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: ```shell 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: ```yaml # 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: ```shell mfgames-tasks write path/to/mfgames-tasks.yaml ``` ## Documentation Yeah, there isn't a lot of documentation here. => https://gitlab.com/dmoonfire/mfgames-tasks-js-cli GitLab => https://www.npmjs.com/package/mfgames-tasks-cli NPM Now, to work on the 332 lines of items on my list. # Metadata Categories: => /categories/programming/ Programming Tags: => /tags/gitlab/ Gitlab => /tags/mfgames-tasks/ MfGames Tasks # Footer Below are various useful links within this site and to related sites (not all have been converted over to Gemini). => /now/ Now => /contact/ Contact => /bio/ Biography => /bibliography/ Bibliography => /support/ Support => /fiction/ Fiction => //fedran.com/ Fedran => https://mfgames.com/ Coding => https://moonfire.us/ The Moonfires => /categories/ Categories => /tags/ Tags => /privacy/ Privacy => /colophon/ Colophon => /license/ License => https://lists.typewriter.press/subscription?f=RDQ6f3AFHXnX2o763d5TgUmaYP7N763gR6FjZyGUUFWhyRkpgZF9I35ySICDBEdFFtgG Mailing List => https://d.moonfire.us/blog/2018/02/23/mfgames-tasks/