Commit graph

10028 commits

Author SHA1 Message Date
Luke Granger-Brown
9099497185 chore(clbot): Refactor backoff utility into a separate package.
It'll be reused by the IRC side of things too.

Change-Id: I3d84f3fd5fca6a6d948f331143b14f096d10675d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/342
Reviewed-by: tazjin <mail@tazj.in>
2020-06-15 16:48:58 +00:00
Luke Granger-Brown
5acd03817a chore(clbot): Add signal handler to make clbot shutdown cleanly on SIGINT.
Change-Id: I3c6eeeb99f9d81cdbcb10880c9075ac94c4f5d19
Reviewed-on: https://cl.tvl.fyi/c/depot/+/341
Reviewed-by: tazjin <mail@tazj.in>
2020-06-15 16:48:58 +00:00
Vincent Ambo
a577fd83d6 chore(monorepo-gerrit): Remove 'owners-autoassign' plugin
This plugin just blindly assigns everyone and, as q3k has already
pointed out, just isn't particularly useful.

We might want to roll our own, for example:

19: 40:41 <+Remosi> I want the virtual owner thing, we could call it
 Gerrit Workgroup Synthesizer Queuing, or gwsq for short.
Change-Id: Ib12a921ae4047ac6a734035dd0900c8964fb12d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/350
Reviewed-by: riking <rikingcoding@gmail.com>
2020-06-15 00:38:48 +00:00
Vincent Ambo
c7659b4f45 feat(bin): Add git-bug to dispatch script
Change-Id: Ic60aec36502b5c70256cb688e101d35f15c90183
Reviewed-on: https://cl.tvl.fyi/c/depot/+/346
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 22:28:00 +00:00
Vincent Ambo
69fe278315 feat(3p/git-bug): Add git-bug derivation at unstable-20200614
This builds git-bug, a distributed issue tracker that uses git as its
data store.

It also installs its man pages and shell completions. It is
recommended that users add git-bug to their system closure for these
extras to work, as they will not be picked up by the dispatch script.

Change-Id: I1595368e61b0bae8a9497abd023085cb90a521a6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/345
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 22:27:54 +00:00
Vincent Ambo
9757e93b23 chore(users/tazjin): Add avatar for tvlbot
This is needed for running a git-bug web UI on camden.

The important thing is that this gives us a stable URL to the image.

Change-Id: If0e069c3d11376a1fb17411e52bb14a8481edb7d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/347
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 22:23:04 +00:00
Vincent Ambo
5f9f6a404f chore(users/tazjin): Move my avatar to my folder
Change-Id: If05860cd975f20c6d8fec301cabcc80d49d0dcda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/344
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 21:32:02 +00:00
Luke Granger-Brown
62f42300b8 feat(gerrit): Add CL titles to title tags if accessing a CL or patchset.
Fine, puck, you win.

Change-Id: I47fe8ea6662132f5c337e1e73281dbeca19a414c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/321
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 20:26:05 +00:00
Vincent Ambo
a4b3f9af93 fix(3p/gerrit): Fix Gerrit derivation name and module configuration
Without these changes, the NixOS module isn't able to use the new
Gerrit derivation.

These changes are already deployed as I needed to make them to get
Gerrit back up.

Change-Id: Iad3aa6158789a014134fddccd40b508b81486100
Reviewed-on: https://cl.tvl.fyi/c/depot/+/301
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 18:50:16 +00:00
Luke Granger-Brown
158d20c128 chore(hgignore): ignore .git for hg
Change-Id: I2f50d99a81db1edbfd64f384e37bd0da3e2ac0e0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/260
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 18:23:13 +00:00
Vincent Ambo
34e30bf7a6 chore(3p/gerrit_plugins): Update plugins for Gerrit 3.2
Change-Id: I0b1a2871768a8369dac7a3e2b06a38c07741e945
Reviewed-on: https://cl.tvl.fyi/c/depot/+/281
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 17:31:24 +00:00
Luke Granger-Brown
89b3ab939b feat(gerrit): Syntax highlight rules.pl as Prolog.
This adds support for overriding the detected languages based on the
filename - we assume here that rules.pl will always map to a Prolog
file.

I could've overridden the entire default language to Prolog, since it's
unlikely that we'll have any Perl here, but given the relative
popularity of the two languages I opted to just override the file we
know we'll have (because it's used by Gerrit itself).

https://usercontent.irccloud-cdn.com/file/yhZZx1nd/highlighted_prolog.png

Change-Id: I26a7e6dab191e0b80a027b026f884020a1f07178
Reviewed-on: https://cl.tvl.fyi/c/depot/+/254
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 17:24:49 +00:00
Luke Granger-Brown
5ae0e44d1b feat(gerrit): Syntax highlight .nix files.
highlight.js supports syntax highlighting .nix files, but the Gerrit
diff components doesn't map the .nix mimetype onto the nix language.

.nix appears to already be taken by another mimetype that isn't
Nix-related, but we just map that onto nix anyway.

https://usercontent.irccloud-cdn.com/file/AVhoPvrb/highlighted.png

Change-Id: I842b29c78355e5bec580e711e25d693284ab6f59
Reviewed-on: https://cl.tvl.fyi/c/depot/+/253
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: q3k <q3k@q3k.org>
2020-06-14 17:24:49 +00:00
Luke Granger-Brown
c05803ff14 feat(clbot): Create Gerrit watcher and basic clbot binary.
gerrit.Watcher is a class which watches the Gerrit stream-events SSH
connection and produces events.

There's a basic CLBot binary as well, to demonstrate driving it to
produce messages on the logging output. It doesn't really do anything
else.

Change-Id: I274fe0a77c8329f79456425405e2fbdc3ca2edf0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/245
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 17:16:32 +00:00
Vincent Ambo
f6c7c85d94 chore(users/tazjin): Remove offlineimaprc
I use lieer these days.

Change-Id: I76ec4654c9d18abbbb28e51d53fca549afde056d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/258
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 16:59:19 +00:00
Luke Granger-Brown
a73ca3f43d feat(gerrit): Create Gerrit derivation.
This uses the actual Bazel build, using a variety of tricks and hacks to
make it actually work.

Bazel really wants to download linux binaries from the internet and run
them. In lieu of trying to fix the build system to not do this, we
instead put bazel inside an FHS environment, which allows the binaries
to find their dependencies.

We also have to patch a few things:

* We use build --nobuild instead of fetch, so we only fetch the
  dependencies we actually need for the build and not, say, Windows
  binaries.
* We don't remove rules_cc, because we need it as an external
  dependency, not bundled.
* We do some manual fixes on the cache before packing, because we need
  to remove some in-tree sources (so they don't cause the hash to break,
  since the hashes differ each time they're generated), and also remove
  some extraneous files.
* We explicitly turn off the repository and disk caches, because the
  .bazelrc at the root of the Gerrit tree turns them on, with paths
  pointing into the user's home directory.
* detzip is used instead of the zip binary for packing bower_components
  into an archive. detzip doesn't create entries for directories, and
  also doesn't store most metadata (timestamps, etc.), and uses store
  (i.e. uncompressed) compression only. It also sorts the file tree
  before writing them into the file.

Change-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439
Reviewed-on: https://cl.tvl.fyi/c/depot/+/252
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 16:35:55 +00:00
Vincent Ambo
02adb10a96 feat: Configure OWNERS file for the depot root
This owners file creates a default approval policy for the entire
tree.

This is just an initial version and we haven't actually decided what
this should look like, but crucially this change means that we can
allow everyone to +2 changes in the repository which allows everyone
to reign freely within their user directories.

Change-Id: I2a14092765ad484d329f5542ac052da59eb104c7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/259
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 15:41:55 +00:00
Luke Granger-Brown
af167ff8d4 feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.
detzip will be used in a patch for the Gerrit bower repository helper, which allows
us to get consistent hashes for the output of fetching the dependencies for the
Bazel build.

Change-Id: I6c87b19815b9d747064108aecbb57ed875d2623b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/251
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 15:34:07 +00:00
Perry Lorier
f3d9d5ef49 chore(isomer): Add Isomer's homedir.
Change-Id: Ic04f1a44b1cab0d5d6d2dfa52c577c718b404a9b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/256
Reviewed-by: isomer <isomer@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 15:15:15 +00:00
Cynthia Revström
8dda9e56d7 feat(tvl-slapd): add cynthia to slapd
Change-Id: Ifb55ebd234d15fbaa6ef2e71f97ba7b8203ffcd9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/255
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 13:37:26 +00:00
Vincent Ambo
566ac0c85f feat(tazjin/dotfiles): Update msmtprc for lieer configuration
Change-Id: I4e2fa960b904dc558904e3df94669513c4163312
Reviewed-on: https://cl.tvl.fyi/c/depot/+/247
Reviewed-by: tazjin <mail@tazj.in>
2020-06-14 04:30:19 +00:00
Vincent Ambo
636372991a chore(users/tazjin): Add OWNERS file
I own this, okay?

Documentation for this file syntax is at https://gerrit.googlesource.com/plugins/owners/+/refs/heads/stable-3.1/owners-autoassign/src/main/resources/Documentation/config.md

Change-Id: If4e6430bdb2d27f31727b5169ce8b82c08ec8de2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/246
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-14 02:15:30 +00:00
Vincent Ambo
268729083e refactor(ops/nixos): Move my NixOS configurations to //users/tazjin
NixOS modules move one level up because it's unlikely that //ops/nixos
will contain actual systems at this point (they're user-specific).

This is the first users folder, so it is also added to the root
readTree invocation for the repository.

Change-Id: I546c701145fa204b7ba7518a8a56a783588629e0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/244
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 23:52:35 +00:00
Vincent Ambo
9658e96a87 feat: Add 'depotPath' to depot root import
This is useful for things like including NixOS modules in
configurations without creating long and error-prone relative paths.

Change-Id: I4a5ebb1a0e5adf90b6bc50e884db453e12461001
Reviewed-on: https://cl.tvl.fyi/c/depot/+/243
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 23:52:35 +00:00
edef
cec109807b fix(nix/readTree): Ignore hidden files and directories
This skips any directory entries starting with a dot.

Change-Id: I95767f3d35bcb2ed9b3d6e772f3924dd57612711
Reviewed-on: https://cl.tvl.fyi/c/depot/+/123
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 20:08:05 +00:00
hyperfekt
cbcec9fd04 docs(README): Fix link to Nixery repo
Change-Id: Ic88288b0f36a6263143c6de787e3eca186fad274
Reviewed-on: https://cl.tvl.fyi/c/depot/+/241
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 19:37:22 +00:00
eta
ae85e8a871 feat(tvl-slapd): add eta to slapd
Change-Id: Ib34d59006645b992bd7b6cbd04fc7121ad3f0219
Reviewed-on: https://cl.tvl.fyi/c/depot/+/223
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 19:01:42 +00:00
Vincent Ambo
95e4faf464 feat(monorepo-gerrit): Include owners & owners-autoassign plugins
Change-Id: I62b90fb94293fc5148fe0fd7a06ea3d0e4d44199
Reviewed-on: https://cl.tvl.fyi/c/depot/+/222
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 18:59:12 +00:00
Vincent Ambo
f36d1d1b2e feat(3p/gerrit_plugins): Add derivations for Gerrit owners plugin
Change-Id: I319f812746aea6069c45727f5afae8b9b79effdd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/221
Reviewed-by: q3k <q3k@q3k.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 18:59:12 +00:00
Vincent Ambo
9d01000257 fix(monorepo-gerrit): Do not place hooks in $out/bin
Gerrit does not expect a bin/ there.

Change-Id: I907f96690b8c6bb614dc11889712d7b122c5d5cf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/181
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 05:15:15 +00:00
Kane York
665f131dda feat(camden): add builds shortlink
Change-Id: Iedd524d775349f24c13fe7c118830b7d4dfdec49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/81
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 05:06:18 +00:00
Vincent Ambo
b88cbe0dab feat(monorepo-gerrit): Enable Gerrit hooks & configure besadii
Loads the 'hooks' plugin into Gerrit, which - as per my interpretation
of the docs - is going to execute any hooks for which there are
matching binaries.

The intention here is that besadii should implement most of the hooks
we care about. As a start, it is symlinked here to the `ref-updated`
hook.

Change-Id: I6482a9d71cc08908c29dd10f786cbba32b33d04d
2020-06-13 06:04:02 +01:00
Vincent Ambo
b094e65bfc feat(besadii): Adapt into a Gerrit ref-updated-hook
Besadii was previously invoked as a git post-update hook, but Gerrit
does not use these hooks and instead has its own concept of hooks.

This change adapts besadii to be compatible with the way Gerrit hooks
are invoked (arguments being passed as flags, rather than via stdin).

Change-Id: I487b3a9e15810583bc5442fdc024ee2771c580cb
2020-06-13 06:03:45 +01:00
Vincent Ambo
8735c63e97 feat(monorepo-gerrit): Enable download-commands plugin
This enables the display of various download commands on change pages,
which makes things like checking out refs for review locally easier.

Change-Id: I3c29854aa0cf1aa393efb89b7516bbf84e0083d4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/162
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 03:16:24 +00:00
Vincent Ambo
213d637ca9 fix(monorepo-gerrit): Configure advertised address for SSH correctly
This is a prerequisite for setting up the download-commands plugin.

Change-Id: I7803ef18be759f95aec020e4a00ca8e0fb48bfe0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/161
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 03:15:58 +00:00
edef
01ddbb4397 fix(nix/buildGo/external): Properly match import path prefixes
Prior to this patch, github.com/hashicorp/terraform-svchost is
erroneously considered a sub-package of github.com/hashicorp/terraform,
breaking dependency searching:

    error: missing local dependency 'github.com.hashicorp.terraform-svchost' in 'github.com/hashicorp/terraform'

Change-Id: Ibcf0f3a9b1742ce46f84cbbf84e90127b8c1df0d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/122
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 03:04:40 +00:00
Vincent Ambo
e09c4a0ae8 chore(monorepo-gerrit): Point SMTP configuration at smtprelay
Change-Id: I33085974fb3764f8a6df7f16245b2f5602f94118
Reviewed-on: https://cl.tvl.fyi/c/depot/+/102
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-13 02:16:58 +00:00
nyanotech
b994d28ccc feat(tvl-slapd): Add nyanotech to slapd, sort the list
Change-Id: I9ffd2fb3b9ae3f6c8c381f496769eb8977caadeb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/124
Reviewed-by: riking <rikingcoding@gmail.com>
2020-06-13 01:34:55 +00:00
edef
f0aca6bd8a fix(nix/buildGo): Pass sane arguments to log.Fatalf
Change-Id: Ie0f2c0a50d8c0618abf6dae2242155fdf1f98e2b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/121
Reviewed-by: tazjin <mail@tazj.in>
2020-06-13 01:32:18 +00:00
Vincent Ambo
c2a5073339 feat(nixos/smtprelay): Add derivation & module for SMTP relay
This adds a little tool that can be used to relay mail to Gmail (and
other SMTP servers). It is intended to be used by Gerrit, which is
incompatible with Gmail's SMTP servers.

Configuration has been tested by performing a few sends through the
tvlbot@tazj.in account.

Note that this is using the standard Gmail SMTP server. Using the
smtp-relay server relies on IP whitelisting, but camden.tazj.in has a
larger number of IPv6 addresses than can be whitelisted (the maximum
is 65k). This means that we are limited to 2000 mails per recipient
per day, which should be fine.

Change-Id: Ie43564d753030f5c800a9cdb4ae98292877d80dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/101
Reviewed-by: edef <edef@edef.eu>
2020-06-13 01:23:01 +00:00
Vincent Ambo
de4f540ed1 feat(monorepo-gerrit): Configure outbound emails for reviews
Configures Gerrit send emails from tvlbot@tazj.in for outgoing review
notifications. Emails are always plain-text and can contain diffs (up
to a maximum size of 256KiB).

The configuration options for this are documented at:

https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#sendemail

Note: The password for this user is stored on the host, in a file that
is not part of version-control and is only readable by the 'git' user.

We should probably figure out a way to do secrets management ...

Change-Id: I2f99b34b1a774c28d814b0aba1f1b78fd512854e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/92
Reviewed-by: riking <rikingcoding@gmail.com>
2020-06-12 22:36:10 +00:00
Vincent Ambo
faf9d39f4c docs: Update README for move to tvl.fyi
Change-Id: I42944b8f138e78d8b3bdb4e26c40b40e3913e604
Reviewed-on: https://cl.tvl.fyi/c/depot/+/91
Reviewed-by: riking <rikingcoding@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
2020-06-12 02:26:57 +00:00
Vincent Ambo
cc2fe0308c docs: Update contribution guidelines for Gerrit workflow
Change-Id: Ia06886c61fbecd885d038f7e8f1d915cd4304547
Reviewed-on: https://cl.tvl.fyi/c/depot/+/90
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: riking <rikingcoding@gmail.com>
2020-06-12 02:26:57 +00:00
Vincent Ambo
a9f3621fd7 feat(camden): Move hound to cs.tvl.fyi
The old host at cs.tazj.in now redirects there, and I've added a
helper function for creating these redirections.

Change-Id: I66794d752df46c8e795e47aedfaffd8c27c45627
Reviewed-on: https://cl.tvl.fyi/c/depot/+/89
Reviewed-by: riking <rikingcoding@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
2020-06-12 02:17:02 +00:00
Vincent Ambo
7bad1fe852 fix(camden): addSSL -> forceSSL for all pages
Change-Id: I451d1bc1a21d4ff25c0c70c963cf17bb924961db
Reviewed-on: https://cl.tvl.fyi/c/depot/+/84
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-12 01:51:32 +00:00
edef
52c0be524e chore(ops/nixos/modules): Add edef to slapd
Change-Id: I063a09cdc3bb81397a44f7356f1c11ebd715f74f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/88
Reviewed-by: tazjin <mail@tazj.in>
2020-06-12 01:44:51 +00:00
Kane York
1783239c3f feat(camden): add /irc/ shortlink
Change-Id: If17c758c323aaf00fdf26ddfafaea10acbf1453e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/70
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: riking <rikingcoding@gmail.com>
2020-06-12 01:15:02 +00:00
Vincent Ambo
37bbc43146 feat(camden): Move cgit to code.tvl.fyi
Moves the host at which cgit is served to 'code.tvl.fyi'.

Also updates related projects that link to this, most importantly:

* Hound's & Gerrit's cgit link bases have been updated
* besadii is updated to request CI builds for the new location

Change-Id: I44e3e584010ac29cc913ebb1a197c996eb024d80
Reviewed-on: https://cl.tvl.fyi/c/depot/+/71
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-12 01:14:21 +00:00
Sergiusz Bazanski
79fdb0bb5f chore(ops/nixos/modules): Add q3k to slapd
Change-Id: I083bc4e9283a882e97a6b9098d6a126ca7bb0a93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/68
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-12 00:44:36 +00:00
Vincent Ambo
dc2fd3b521 chore(nixos/camden): Point hound at the depot on gerrit
Change-Id: I19cbffae75017ceefbc19397c54156eb348eda27
Reviewed-on: https://cl.tvl.fyi/c/depot/+/65
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-11 23:47:24 +00:00