@mattpolzin/harmony 2.6.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +7 -4
  2. package/harmony +2034 -2474
  3. package/package.json +6 -3
package/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
  # Harmony
3
3
  Harmony is a small tool that helps teams keep GitHub reviews running smoothly. It takes the work out of picking someone from a pool of developers to review a new PR. Harmony does this by heuristically determining who on a particular GitHub Team has the least current/recent review workload.
4
4
 
5
+ Harmony offers a heuristic for PR assignments that is different than GitHub's round robin or weighted algorithms, but Harmony can also work well even if your team uses GitHub's automatic PR assignments ([see below](#deferring-to-github)).
6
+
5
7
  ## Dependencies
6
8
  ### Runtime
7
- Running Harmony requires NodeJS 14+ (and a local installation of `git`) or alternatively Nix with flakes enabled.
9
+ Running Harmony requires NodeJS 18+ (and a local installation of `git`) or alternatively Nix with flakes enabled.
8
10
 
9
11
  If you'd like to try Harmony out without even "installing" it and you have Nix installed with flakes enabled, you can run it as `nix run github:mattpolzin/harmony`.
10
12
 
@@ -59,7 +61,7 @@ docker pull mattpolzin2/idris-docker:nightly
59
61
 
60
62
  Then, from a directory containing this Harmony git repository, build Harmony:
61
63
  ```shell
62
- docker run --rm -v "$(pwd):/build" mattpolzin2/idris-docker:nightly bash -c "cd /build && make"
64
+ docker run --rm -v "$(pwd):/build" mattpolzin2/idris-docker:nightly bash -c "apt-get update && apt-get install -y git && cd /build && make"
63
65
  ```
64
66
 
65
67
  At this point you are done with Docker. From the same directory, install Harmony globally:
@@ -145,14 +147,15 @@ If `harmony config assignUsers` is `True` (defualt) then harmony will pick someo
145
147
 
146
148
  You can also require that specific additional users (on top of the one Harmony will pick for you) are assigned to the PR. You do this by specifying those users' logins prefixed with '+' as arguments to Harmony.
147
149
 
150
+ You can optionally apply any number of labels to the PR at the same time as assigning reviewers by prefixing the labels with '#'.
151
+
152
+ #### Deferring to GitHub
148
153
  If your team has GitHub set up to auto-assign individuals when a team is requested for review, you probably want to tell harmony not to also pick someone using its heuristics. You can run the following `config` commands to tell harmony to assign a team but not also pick an individual from that team:
149
154
  ```shell
150
155
  harmony config assignTeams true
151
156
  harmony config assignUsers false
152
157
  ```
153
158
 
154
- You can optionally apply any number of labels to the PR at the same time as assigning reviewers by prefixing the labels with '#'.
155
-
156
159
  #### Examples
157
160
  Assign the most available reviewer from the "developers" GitHub Team:
158
161
  ```shell