@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.
- package/README.md +7 -4
- package/harmony +2034 -2474
- 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
|
|
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
|