tree c4aa8fee2fa3ece8ed032607f4a2f99674f575ce
parent b5b791575fa68710e209faa546adba0109693158
author WhiteSource Renovate <bot@renovateapp.com> 1603205762 +0200
committer GitHub <noreply@github.com> 1603205762 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfjvqCCRBK7hj4Ov3rIwAAdHIIADknZTYHRPKK9gRx478sEOgU
 Mdk1leacjNyO9ArQJCdeeQphg6sT1gh9cLrOJ5NDEHD4GjWt1Bg1TPEZAf/XtJXe
 4yIoBeSCa9GAjBVI9zsBDKYLdrxisrUQ5LHZOAO8hxqdeIVyoVcnT2AEjB+WOKBF
 FKwO6Af8iAQuyaX4bzbE8Roo/422F7mejA5KqU21+zabAx4pM2PgPT2eXckDBt5t
 n1hoEcN8ZV2YafwXwQF6PqN6Z1SzF96tn7771ELeaJUrk3ltFWGyLS+2c3kqb10Q
 vJIFyU/Bbil8cDsBE5/vACtaUqqJAVRmMf+U1rY/mVjvGVC/XAAORvrjq9TzZRY=
 =cFIc
 -----END PGP SIGNATURE-----
 

chore(all): update all (#3044)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [cloud.google.com/go](https://togithub.com/googleapis/google-cloud-go) | require | minor | `v0.68.0` -> `v0.70.0` |
| [cloud.google.com/go](https://togithub.com/googleapis/google-cloud-go) | require | minor | `v0.69.1` -> `v0.70.0` |
| [github.com/google/martian/v3](https://togithub.com/google/martian) | require | minor | `v3.0.0` -> `v3.1.0` |
| [github.com/google/pprof](https://togithub.com/google/pprof) | require | digest | `67992a1` -> `8ef5528` |
| [golang.org/x/net](https://togithub.com/golang/net) | require | digest | `4f7140c` -> `d65d470` |
| [golang.org/x/tools](https://togithub.com/golang/tools) | require | digest | `6003fad` -> `f5c826d` |

---

### Release Notes

<details>
<summary>googleapis/google-cloud-go</summary>

### [`v0.70.0`](https://togithub.com/googleapis/google-cloud-go/releases/v0.70.0)

[Compare Source](https://togithub.com/googleapis/google-cloud-go/compare/v0.69.1...v0.70.0)

##### Features

-   **all:** auto-regenerate gapics , refs [#&#8203;3047](https://www.github.com/googleapis/google-cloud-go/issues/3047) [#&#8203;3035](https://www.github.com/googleapis/google-cloud-go/issues/3035) [#&#8203;3025](https://www.github.com/googleapis/google-cloud-go/issues/3025)
-   **managedidentities:** start generating apiv1 ([#&#8203;3032](https://www.github.com/googleapis/google-cloud-go/issues/3032)) ([10ccca2](https://www.github.com/googleapis/google-cloud-go/commit/10ccca238074d24fea580a4cd8e64478818b0b44))
-   **pubsublite:** Types for resource paths and topic/subscription configs ([#&#8203;3026](https://www.github.com/googleapis/google-cloud-go/issues/3026)) ([6f7fa86](https://www.github.com/googleapis/google-cloud-go/commit/6f7fa86ed906258f98d996aab40184f3a46f9714))

### [`v0.69.1`](https://togithub.com/googleapis/google-cloud-go/releases/v0.69.1)

[Compare Source](https://togithub.com/googleapis/google-cloud-go/compare/v0.69.0...v0.69.1)

This is an empty release that was created solely to aid in pubsublite's module
carve out. See: <https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository>.

### [`v0.69.0`](https://togithub.com/googleapis/google-cloud-go/releases/v0.69.0)

[Compare Source](https://togithub.com/googleapis/google-cloud-go/compare/v0.68.0...v0.69.0)

##### Features

-   **accessapproval:** start generating apiv1 ([#&#8203;3002](https://www.github.com/googleapis/google-cloud-go/issues/3002)) ([709d6e7](https://www.github.com/googleapis/google-cloud-go/commit/709d6e76393e6ac00ff488efd83bfe873173b045))
-   **all:** auto-regenerate gapics , refs [#&#8203;3010](https://www.github.com/googleapis/google-cloud-go/issues/3010) [#&#8203;3005](https://www.github.com/googleapis/google-cloud-go/issues/3005) [#&#8203;2993](https://www.github.com/googleapis/google-cloud-go/issues/2993) [#&#8203;2989](https://www.github.com/googleapis/google-cloud-go/issues/2989) [#&#8203;2981](https://www.github.com/googleapis/google-cloud-go/issues/2981) [#&#8203;2976](https://www.github.com/googleapis/google-cloud-go/issues/2976) [#&#8203;2968](https://www.github.com/googleapis/google-cloud-go/issues/2968) [#&#8203;2958](https://www.github.com/googleapis/google-cloud-go/issues/2958)
-   **cmd/go-cloud-debug-agent:** mark as deprecated ([#&#8203;2964](https://www.github.com/googleapis/google-cloud-go/issues/2964)) ([276ec88](https://www.github.com/googleapis/google-cloud-go/commit/276ec88b05852c33a3ba437e18d072f7ffd8fd33))
-   **godocfx:** add nesting to TOC ([#&#8203;2972](https://www.github.com/googleapis/google-cloud-go/issues/2972)) ([3a49b2d](https://www.github.com/googleapis/google-cloud-go/commit/3a49b2d142a353f98429235c3f380431430b4dbf))
-   **internal/godocfx:** HTML-ify package summary ([#&#8203;2986](https://www.github.com/googleapis/google-cloud-go/issues/2986)) ([9e64b01](https://www.github.com/googleapis/google-cloud-go/commit/9e64b018255bd8d9b31d60e8f396966251de946b))
-   **internal/kokoro:** make publish_docs VERSION optional ([#&#8203;2979](https://www.github.com/googleapis/google-cloud-go/issues/2979)) ([76e35f6](https://www.github.com/googleapis/google-cloud-go/commit/76e35f689cb60bd5db8e14b8c8d367c5902bcb0e))
-   **websecurityscanner:** start generating apiv1 ([#&#8203;3006](https://www.github.com/googleapis/google-cloud-go/issues/3006)) ([1d92e20](https://www.github.com/googleapis/google-cloud-go/commit/1d92e2062a13f62d7a96be53a7354c0cacca6a85))

##### Bug Fixes

-   **godocfx:** make extra files optional, filter out third_party ([#&#8203;2985](https://www.github.com/googleapis/google-cloud-go/issues/2985)) ([f268921](https://www.github.com/googleapis/google-cloud-go/commit/f2689214a24b2e325d3e8f54441bb11fbef925f0))

</details>

<details>
<summary>google/martian</summary>

### [`v3.1.0`](https://togithub.com/google/martian/compare/v3.0.0...v3.1.0)

[Compare Source](https://togithub.com/google/martian/compare/v3.0.0...v3.1.0)

</details>

---

### Renovate configuration

:date: **Schedule**: "before 3am on Monday" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:ghost: **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/config-help/issues) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/google-cloud-go).