thomvaill/log4brains

CLI commands for workflow/lifecycle management - And/or Github integration

xakraz opened this issue · 1 comments

Feature Request

Feature Suggestion

Have "complete" CLI commands for workflow/lifecycle management of ADRs

Context

I would like to have CLI commands to manage the suggested workflow and "automate" some kind of GitHub integration.

Workflow

Like:

log4brains adr new

-> ✅

log4brains adr status

-> Basically does a git status scoped to the directory where ADRs files live or get opened and/or closed PRs related to ADRs

log4brains adr propose (or submit)

-> Does a git commit + opens PRs with predefined commit message format, PR title style, labels and so on 😇

I am also wondering how ease/automate the rest of the process via Pull requests 🤔

  • when an ADR PR is merged, automatically update the state from proposed to accepted
  • How to still merge a PR even when an ADR is rejected but set the proper status value ...

Possible Implementation

We've been using log4brains to render ADRs from a repository but I've been thinking a lot about the flow and making that easier.
I was looking to see if there way an easy way (there is not) to somehow uses GitHub issues as the entry point.

  1. Configure log4brains with a Github access token (if needed) and an org/repository
  2. Use getServerSideProps in nextJs to query the Github API and pull back issues (possibly with a specific label, eg adr).
  3. Issues are automatically in the "proposed" state (optionally being overridden with another label like adr:voting), with the issue body being processed as markdown from the file and rendered to the site (including a link to the issue for "discussion")

With this type of support, then I could built a github bot that facilitates ADR discussion and voting. Once the voting is done, the bot could render the ADR as a Pull request with the appropriate accepted/rejected state and commit it to the repo.