Commit graph

37779 commits

Author SHA1 Message Date
Brian Goff
82c56755ea Buildkit-optimized dockerfile
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2019-10-03 14:07:00 -07:00
Tibor Vass
c5c6b23ee8
Merge pull request #40037 from thaJeztah/fix_vendoring
Re-run vndr to fix master
2019-10-03 14:06:26 -07:00
Sebastiaan van Stijn
1ac36a6b30
Merge pull request #40035 from thaJeztah/do_the_right_diff_do_the_right_diff
Jenkinsfile: set repo and branch, to assist validate_diff()
2019-10-03 22:42:34 +02:00
Sebastiaan van Stijn
ac51b18339
Re-run vndr to fix master
Pull requests started failing because vendoring didn't match;

```
The result of vndr differs

D vendor/golang.org/x/sync/singleflight/singleflight.go

Please vendor your package with github.com/LK4D4/vndr.
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-03 22:18:47 +02:00
Tõnis Tiigi
cd19a333c8
Merge pull request #39837 from kdomanski/linked-ipv6
include IPv6 address of linked containers in /etc/hosts
2019-10-03 11:54:02 -07:00
Sebastiaan van Stijn
37760f0c2b
Merge pull request #39974 from cpuguy83/fix_windows_file_handles
Use FILE_SHARE_DELETE for log files on Windows.
2019-10-03 20:10:29 +02:00
Kirill Kolyshkin
3d0eb21ddb
Merge pull request #40034 from thaJeztah/bump_docker_py_4.1.0
bump docker-py to 4.1.0
2019-10-03 10:26:54 -07:00
Sebastiaan van Stijn
7019b60d0d
Jenkinsfile: set repo and branch, to assist validate_diff()
This is a continuation of 2a08f33166247da9d4c09d4c6c72cbb8119bf8df;

When running CI in other repositories (e.g. Docker's downstream
docker/engine repository), or other branches, the validation
scripts were calculating the list of changes based on the wrong
information.

This lead to weird failures in CI in a branch where these values
were not updated ':-) (CI on a pull request failed because it detected
that new tests were added to the deprecated `integration-cli` test-suite,
but the pull request did not actually make changes in that area).

This patch uses environment variables set by Jenkins to sets the
correct target repository (and branch) to compare to.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-03 18:25:35 +02:00
Sebastiaan van Stijn
5a703ccb46
bump docker-py to 4.1.0
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-03 16:51:03 +02:00
Sebastiaan van Stijn
5e7d0f0b47
Merge pull request #40026 from thaJeztah/fix_TestEventsContainerEvents_panic
integration-cli: prevent out of range in TestEventsContainerEvents
2019-10-03 08:58:26 +02:00
Tibor Vass
3c548254a2
Merge pull request #39983 from tiborvass/rm-legacy-build-session
builder: remove legacy build's session handling
2019-10-02 17:16:56 -07:00
Tibor Vass
6ca3ec88ae builder: remove legacy build's session handling
This feature was used by docker build --stream and it was kept experimental.

Users of this endpoint should enable BuildKit anyway by setting Version to BuilderBuildKit.

Signed-off-by: Tibor Vass <tibor@docker.com>
2019-10-02 20:29:15 +00:00
Sebastiaan van Stijn
97aa82d2c7
integration-cli: prevent out of range in TestEventsContainerEvents
Prevents the test from panicking;

```
--- FAIL: TestDockerSuite/TestEventsContainerEvents (1.19s)
    suite.go:65: test suite panicked: runtime error: slice bounds out of range [:5] with capacity 4
        goroutine 3978 [running]:
        runtime/debug.Stack(0xc0026e3908, 0x1ad9bc0, 0xc0008100c0)
        	/usr/local/go/src/runtime/debug/stack.go:24 +0x9d
        github.com/docker/docker/internal/test/suite.failOnPanic(0xc00185e600)
        	/go/src/github.com/docker/docker/internal/test/suite/suite.go:65 +0x57
        panic(0x1ad9bc0, 0xc0008100c0)
        	/usr/local/go/src/runtime/panic.go:679 +0x1b2
        github.com/docker/docker/integration-cli.(*DockerSuite).TestEventsContainerEvents(0x2f7d7a8, 0xc00185e600)
        	/go/src/github.com/docker/docker/integration-cli/docker_cli_events_test.go:89 +0x3c5
        reflect.Value.call(0xc0000c4f00, 0xc0008036c0, 0x13, 0x1bfd18b, 0x4, 0xc000e8df30, 0x2, 0x2, 0xc00075c618, 0x40d903, ...)
        	/usr/local/go/src/reflect/value.go:460 +0x5f6
        reflect.Value.Call(0xc0000c4f00, 0xc0008036c0, 0x13, 0xc00075c730, 0x2, 0x2, 0xf, 0x0, 0x0)
        	/usr/local/go/src/reflect/value.go:321 +0xb4
        github.com/docker/docker/internal/test/suite.Run.func2(0xc00185e600)
        	/go/src/github.com/docker/docker/internal/test/suite/suite.go:57 +0x2c2
        testing.tRunner(0xc00185e600, 0xc0008dbea0)
        	/usr/local/go/src/testing/testing.go:909 +0xc9
        created by testing.(*T).Run
        	/usr/local/go/src/testing/testing.go:960 +0x350
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-02 21:11:05 +02:00
Sebastiaan van Stijn
a4a82bb0ee
Merge pull request #40030 from thaJeztah/bump_docker_py
Temporarily switch docker-py to "master"
2019-10-02 21:07:58 +02:00
Sebastiaan van Stijn
48353e16fe
Temporarily switch docker-py to "master"
The docker-py tests were broken, because the version of
py-test that was used, used a dependency that had a new
major release with a breaking change.

Unfortunately, it was not pinned to a specific version,
so when the dependency did the release, py-test broke;

```
22:16:47  Traceback (most recent call last):
22:16:47    File "/usr/local/bin/pytest", line 10, in <module>
22:16:47      sys.exit(main())
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 61, in main
22:16:47      config = _prepareconfig(args, plugins)
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 182, in _prepareconfig
22:16:47      config = get_config()
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 156, in get_config
22:16:47      pluginmanager.import_plugin(spec)
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/config/__init__.py", line 530, in import_plugin
22:16:47      __import__(importspec)
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/tmpdir.py", line 25, in <module>
22:16:47      class TempPathFactory(object):
22:16:47    File "/usr/local/lib/python3.6/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory
22:16:47      lambda p: Path(os.path.abspath(six.text_type(p)))
22:16:47  TypeError: attrib() got an unexpected keyword argument 'convert'
```

docker-py master has a fix for this (bumping the version of
`py-test`), but it's not in a release yet, and the docker cli that's used
in our CI is pinned to 17.06, which doesn't support building from a remote
git repository from a specific git commit.

To fix the immediate situation, this patch switches the docker-py
tests to run from the master branch.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-02 17:54:48 +02:00
Akihiro Suda
9adc7bb379
Merge pull request #40020 from thaJeztah/update_mailmap_authors
Update mailmap and authors
2019-10-01 17:35:37 +09:00
Tibor Vass
9732185e07
Merge pull request #39144 from kunalkushwaha/builder-entitilement-confg
builder entitlements configuration added.
2019-09-30 13:43:27 -07:00
Kirill Kolyshkin
b93f68ab4c
Merge pull request #40013 from thaJeztah/fix_daemon_ops_type
testutil: change some remaining options to be a daemon.Option
2019-09-30 12:23:15 -07:00
Sebastiaan van Stijn
0b5140dd66
Merge pull request #39994 from tiborvass/homedir-buildtags
homedir: add cgo or osusergo buildtag constraints for unix
2019-09-30 20:18:36 +02:00
Tibor Vass
0f9c4fa00b
Merge pull request #40009 from yedamao/fix-pkg-pool
Fix pkg/pools staticcheck SA6002
2019-09-30 11:11:53 -07:00
Kirill Kolyshkin
58653d097c
Merge pull request #40014 from thaJeztah/fix_golint_copy_pasta
integration-cli: fix golint (copy/paste whoops)
2019-09-30 11:07:35 -07:00
Kirill Kolyshkin
09ee529cfe
Merge pull request #40016 from thaJeztah/fix_dockernetworksuite
integration-cli: fix DockerNetworkSuite not being run
2019-09-30 10:54:03 -07:00
Sebastiaan van Stijn
23457f05a9
Update mailmap and authors
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 19:12:18 +02:00
Sebastiaan van Stijn
bb8438bb00
Merge pull request #40002 from lowenna/jjh/username
jhowardmsft --> lowenna
2019-09-30 18:15:59 +02:00
Sebastiaan van Stijn
f60d6ee4bc
testutil: update WithInitsignature to be a daemon.Option
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 17:38:26 +02:00
Sebastiaan van Stijn
554d9cec25
testutil: update WithExperimental signature to be a daemon.Option
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 17:38:24 +02:00
Sebastiaan van Stijn
ce2e8e37d0
testutil: update WithTestLogger to use daemon.Option as return type
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 17:38:21 +02:00
Sebastiaan van Stijn
279ddb31ef
testutil: update WithStorageDriver to use daemon.Option as return type
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 17:38:18 +02:00
Sebastiaan van Stijn
517b9957b6
Merge pull request #40012 from thaJeztah/fix_withexperimental
testutil: fix WithExperimental also setting "init"
2019-09-30 17:30:42 +02:00
Justin Cormack
32c32b6982
Merge pull request #39991 from thaJeztah/apparmor_remove_linkgraph
AppArmor: remove rules for linkgraph.db SQLite database
2019-09-30 15:05:40 +01:00
Sebastiaan van Stijn
5c891ea9ca
integration-cli: fix DockerNetworkSuite not being run
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 15:49:33 +02:00
Sebastiaan van Stijn
f4c172e6b9
integration-cli: fix golint (copy/paste whoops)
These were accidentally wrong due to a sloppy copy/paste issue. Interestingly,
CI passed on the PR that added it (6397dd4d31),
possibly because of this issue, it stopped linting?

    WARN [runner/golint] Golint: can't lint 4 files: no file name for file &{Doc:<nil> Package:23044677 Name:quota Decls:[0xc02cc3fa40 0xc02cc3fac0 0xc02cc3fb40 0xc02cc3fbc0 0xc02cc62ab0 0xc02cc62c00] Scope:scope 0xc02cc5c340 {
     	var ErrQuotaNotSupported
     	type errQuotaNotSupported
     }
     Imports:[0xc02cc62930] Unresolved:[errdefs nil string] Comments:[0xc02cbc9ae0 0xc02cbc9c60]}

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 14:59:00 +02:00
Sebastiaan van Stijn
5aebd69857
testutil: fix WithExperimental also setting "init"
Looks like this was overlooked in the review of the PR that added
this; e401b88e59

There is a separate option for `WithInit`, so this option should not
automatically enable it when starting  a daemon with experimental enabled.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-30 14:37:57 +02:00
HuanHuan Ye
8498ee7514 Fix pkg/pools staticcheck SA6002
change bufferPool use pointer instead byte slice

Signed-off-by: HuanHuan Ye <logindaveye@gmail.com>
2019-09-30 12:19:03 +08:00
John Howard
a07a1220ad jhowardmsft --> lowenna
Signed-off-by: John Howard <github@lowenna.com>
2019-09-27 12:07:39 -07:00
Akihiro Suda
5b57f41241
Merge pull request #39999 from thaJeztah/bump_golang_1.13.1
bump golang 1.13.1 (CVE-2019-16276)
2019-09-28 01:46:57 +09:00
Akihiro Suda
17e1ab174c
Merge pull request #40001 from thaJeztah/bump_runc
Update runc to v1.0.0-rc8-92-g84373aaa (CVE-2019-16884)
2019-09-28 00:25:28 +09:00
Sebastiaan van Stijn
05a0621fd0
Re-group vendor.conf deps to reflect reality
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-27 16:22:39 +02:00
Sebastiaan van Stijn
ac0ab114a2
bump runc vendor v1.0.0-rc8-92-g84373aaa
full diff: https://github.com/opencontainers/runc/compare/v1.0.0-rc8...3e425f80a8c931f88e6d94a8c831b9d5aa481657

  - opencontainers/runc#2010 criu image path permission error when checkpoint rootless container
  - opencontainers/runc#2028 Update to Go 1.12 and drop obsolete versions
  - opencontainers/runc#2029 Update dependencies
  - opencontainers/runc#2034 Support for logging from children processes
  - opencontainers/runc#2035 specconv: always set "type: bind" in case of MS_BIND
  - opencontainers/runc#2038 `r.destroy` can defer exec in `runner.run` method
  - opencontainers/runc#2041 Change the permissions of the notify listener socket to rwx for everyone
  - opencontainers/runc#2042 libcontainer: intelrdt: add missing destroy handler in defer func
  - opencontainers/runc#2047 Move systemd.Manager initialization into a function in that module
  - opencontainers/runc#2057 main: not reopen /dev/stderr
      - closes opencontainers/runc#2056 Runc + podman|cri-o + systemd issue with stderr
      - closes kubernetes/kubernetes#77615 kubelet fails starting CRI-O containers (Ubuntu 18.04 + systemd cgroups driver)
      - closes cri-o/cri-o#2368 Joining worker node not starting flannel or kube-proxy / CRI-O error "open /dev/stderr: no such device or address"
  - opencontainers/runc#2061 libcontainer: fix TestGetContainerState to check configs.NEWCGROUP
  - opencontainers/runc#2065 Fix cgroup hugetlb size prefix for kB
  - opencontainers/runc#2067 libcontainer: change seccomp test for clone syscall
  - opencontainers/runc#2074 Update dependency libseccomp-golang
  - opencontainers/runc#2081 Bump CRIU to 3.12
  - opencontainers/runc#2089 doc: First process in container needs `Init: true`
  - opencontainers/runc#2094 Skip searching /dev/.udev for device nodes
      - closes opencontainers/runc#2093 HostDevices() race with older udevd versions
  - opencontainers/runc#2098 man: fix man-pages
  - opencontainers/runc#2103 cgroups/fs: check nil pointers in cgroup manager
  - opencontainers/runc#2107 Make get devices function public
  - opencontainers/runc#2113 libcontainer: initial support for cgroups v2
  - opencontainers/runc#2116 Avoid the dependency on cgo through go-systemd/util package
      - removes github.com/coreos/pkg as dependency
  - opencontainers/runc#2117 Remove libcontainer detection for systemd features
      - fixes opencontainers/runc#2117 Cache the systemd detection results
  - opencontainers/runc#2119 libcontainer: update masked paths of /proc
      - relates to moby/moby#36368 Add /proc/keys to masked paths
      - relates to moby/moby#38299 Masked /proc/asound
      - relates to moby/moby#37404 Add /proc/acpi to masked paths (CVE-2018-10892)
  - opencontainers/runc#2122 nsenter: minor fixes
  - opencontainers/runc#2123 Bump x/sys and update syscall for initial Risc-V support
  - opencontainers/runc#2125 cgroup: support mount of cgroup2
  - opencontainers/runc#2126 libcontainer/nsenter: Don't import C in non-cgo file
  - opencontainers/runc#2129 Only allow proc mount if it is procfs
      - addresses opencontainers/runc#2129 AppArmor can be bypassed by a malicious image that specifies a volume at /proc (CVE-2019-16884)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-27 16:22:37 +02:00
Sebastiaan van Stijn
bc9a7ec898
update runc to v1.0.0-rc8-92-g84373aaa (CVE-2019-16884)
full diff: https://github.com/opencontainers/runc/compare/v1.0.0-rc8...3e425f80a8c931f88e6d94a8c831b9d5aa481657

  - opencontainers/runc#2010 criu image path permission error when checkpoint rootless container
  - opencontainers/runc#2028 Update to Go 1.12 and drop obsolete versions
  - opencontainers/runc#2029 Update dependencies
  - opencontainers/runc#2034 Support for logging from children processes
  - opencontainers/runc#2035 specconv: always set "type: bind" in case of MS_BIND
  - opencontainers/runc#2038 `r.destroy` can defer exec in `runner.run` method
  - opencontainers/runc#2041 Change the permissions of the notify listener socket to rwx for everyone
  - opencontainers/runc#2042 libcontainer: intelrdt: add missing destroy handler in defer func
  - opencontainers/runc#2047 Move systemd.Manager initialization into a function in that module
  - opencontainers/runc#2057 main: not reopen /dev/stderr
      - closes opencontainers/runc#2056 Runc + podman|cri-o + systemd issue with stderr
      - closes kubernetes/kubernetes#77615 kubelet fails starting CRI-O containers (Ubuntu 18.04 + systemd cgroups driver)
      - closes cri-o/cri-o#2368 Joining worker node not starting flannel or kube-proxy / CRI-O error "open /dev/stderr: no such device or address"
  - opencontainers/runc#2061 libcontainer: fix TestGetContainerState to check configs.NEWCGROUP
  - opencontainers/runc#2065 Fix cgroup hugetlb size prefix for kB
  - opencontainers/runc#2067 libcontainer: change seccomp test for clone syscall
  - opencontainers/runc#2074 Update dependency libseccomp-golang
  - opencontainers/runc#2081 Bump CRIU to 3.12
  - opencontainers/runc#2089 doc: First process in container needs `Init: true`
  - opencontainers/runc#2094 Skip searching /dev/.udev for device nodes
      - closes opencontainers/runc#2093 HostDevices() race with older udevd versions
  - opencontainers/runc#2098 man: fix man-pages
  - opencontainers/runc#2103 cgroups/fs: check nil pointers in cgroup manager
  - opencontainers/runc#2107 Make get devices function public
  - opencontainers/runc#2113 libcontainer: initial support for cgroups v2
  - opencontainers/runc#2116 Avoid the dependency on cgo through go-systemd/util package
      - removes github.com/coreos/pkg as dependency
  - opencontainers/runc#2117 Remove libcontainer detection for systemd features
      - fixes opencontainers/runc#2117 Cache the systemd detection results
  - opencontainers/runc#2119 libcontainer: update masked paths of /proc
      - relates to moby/moby#36368 Add /proc/keys to masked paths
      - relates to moby/moby#38299 Masked /proc/asound
      - relates to moby/moby#37404 Add /proc/acpi to masked paths (CVE-2018-10892)
  - opencontainers/runc#2122 nsenter: minor fixes
  - opencontainers/runc#2123 Bump x/sys and update syscall for initial Risc-V support
  - opencontainers/runc#2125 cgroup: support mount of cgroup2
  - opencontainers/runc#2126 libcontainer/nsenter: Don't import C in non-cgo file
  - opencontainers/runc#2129 Only allow proc mount if it is procfs
      - addresses opencontainers/runc#2129 AppArmor can be bypassed by a malicious image that specifies a volume at /proc (CVE-2019-16884)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-27 16:22:34 +02:00
Akihiro Suda
ada3c14355
Merge pull request #39995 from tao12345666333/update-containerd-v1.2.10
Update containerd to v1.2.10
2019-09-27 23:20:53 +09:00
Sebastiaan van Stijn
8eb23cde95
bump golang 1.13.1 (CVE-2019-16276)
full diff: https://github.com/golang/go/compare/go1.13...go1.13.1

```
Hi gophers,

We have just released Go 1.13.1 and Go 1.12.10 to address a recently reported security issue. We recommend that all affected users update to one of these releases (if you're not sure which, choose Go 1.13.1).

net/http (through net/textproto) used to accept and normalize invalid HTTP/1.1 headers with a space before the colon, in violation of RFC 7230. If a Go server is used behind an uncommon reverse proxy that accepts and forwards but doesn't normalize such invalid headers, the reverse proxy and the server can interpret the headers differently. This can lead to filter bypasses or request smuggling, the latter if requests from separate clients are multiplexed onto the same upstream connection by the proxy. Such invalid headers are now rejected by Go servers, and passed without normalization to Go client applications.

The issue is CVE-2019-16276 and Go issue golang.org/issue/34540.

Thanks to Andrew Stucki, Adam Scarr (99designs.com), and Jan Masarik (masarik.sh) for discovering and reporting this issue.

Downloads are available at https://golang.org/dl for all supported platforms.

Alla prossima,
Filippo on behalf of the Go team
```

From the patch: 6e6f4aaf70

```
net/textproto: don't normalize headers with spaces before the colon

RFC 7230 is clear about headers with a space before the colon, like

X-Answer : 42

being invalid, but we've been accepting and normalizing them for compatibility
purposes since CL 5690059 in 2012.

On the client side, this is harmless and indeed most browsers behave the same
to this day. On the server side, this becomes a security issue when the
behavior doesn't match that of a reverse proxy sitting in front of the server.

For example, if a WAF accepts them without normalizing them, it might be
possible to bypass its filters, because the Go server would interpret the
header differently. Worse, if the reverse proxy coalesces requests onto a
single HTTP/1.1 connection to a Go server, the understanding of the request
boundaries can get out of sync between them, allowing an attacker to tack an
arbitrary method and path onto a request by other clients, including
authentication headers unknown to the attacker.

This was recently presented at multiple security conferences:
https://portswigger.net/blog/http-desync-attacks-request-smuggling-reborn

net/http servers already reject header keys with invalid characters.
Simply stop normalizing extra spaces in net/textproto, let it return them
unchanged like it does for other invalid headers, and let net/http enforce
RFC 7230, which is HTTP specific. This loses us normalization on the client
side, but there's no right answer on the client side anyway, and hiding the
issue sounds worse than letting the application decide.
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-09-27 14:26:12 +02:00
Jintao Zhang
c4ec02b0af Update containerd to v1.2.10
Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>
2019-09-27 11:47:20 +08:00
Brian Goff
40b9333523
Merge pull request #39993 from feliperuhland/fix-doc-inline-code
Fix Engine API version history typo
2019-09-26 17:19:35 -07:00
Tibor Vass
023b072288 homedir: add cgo or osusergo buildtag constraints for unix
This is to ensure that users of the homedir package cannot
compile statically (CGO_ENABLED=0) without also setting the osusergo
build tag.

Signed-off-by: Tibor Vass <tibor@docker.com>
2019-09-26 21:09:36 +00:00
Tibor Vass
b6684a403c
Merge pull request #39985 from thaJeztah/inline_proxyenv
daemon/info: remove use of docker/go-connections
2019-09-26 11:53:12 -07:00
Sebastiaan van Stijn
2c6d368992
Merge pull request #39975 from tiborvass/homedir-less-deps
homedir: remove idtools and libcontainer's user package dependencies
2019-09-26 20:49:39 +02:00
Tibor Vass
b4c9b4abb1
Merge pull request #39980 from SamWhited/image_dependency
testutil, integration: untangle image dependency
2019-09-26 11:26:50 -07:00
Tibor Vass
39e6def219
Merge pull request #39177 from pricec/image-variant
Add variant to image.Image and legacy builder
2019-09-26 11:14:41 -07:00
John Howard
fd820c4d65
Merge pull request #39990 from thaJeztah/update_moved_repositories
Update links/references to transferred repositories
2019-09-26 11:03:45 -07:00