Skip to content

Commit 9891cb0

Browse files
authored
chore: migrate to owl bot (#68)
This PR migrates from autosynth to [owl bot](https://github.com/googleapis/repo-automation-bots/tree/master/packages/owl-bot). owl bot will save time for maintainers as it will automatically open PRs when there are updates in [googleapis-gen](https://github.com/googleapis/googleapis-gen/tree/master/google) without requiring maintainers to run `synthtool` to build the client from protos. Additionally, similar to autosynth, PRs will be automatically opened when there are template updates.
1 parent 73a581b commit 9891cb0

File tree

7 files changed

+50
-192
lines changed

7 files changed

+50
-192
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
docker:
2+
digest: sha256:457583330eec64daa02aeb7a72a04d33e7be2428f646671ce4045dcbc0191b1e
3+
image: gcr.io/repo-automation-bots/owlbot-python:latest
4+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright 2021 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
docker:
16+
image: gcr.io/repo-automation-bots/owlbot-python:latest
17+
18+
deep-remove-regex:
19+
- /owl-bot-staging
20+
21+
deep-preserve-regex:
22+
- /owl-bot-staging/v1alpha
23+
- /owl-bot-staging/v1beta
24+
25+
deep-copy-regex:
26+
- source: /google/cloud/osconfig/(v.*)/.*-py/(.*)
27+
dest: /owl-bot-staging/$1/$2
28+
29+
begin-after-commit-hash: b06c9034cfcbce180ba732d03be6526e5c8ea1bc
30+

packages/google-cloud-os-config/.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ repos:
2626
hooks:
2727
- id: black
2828
- repo: https://gitlab.com/pycqa/flake8
29-
rev: 3.9.0
29+
rev: 3.9.1
3030
hooks:
3131
- id: flake8

packages/google-cloud-os-config/CONTRIBUTING.rst

+1-15
Original file line numberDiff line numberDiff line change
@@ -160,21 +160,7 @@ Running System Tests
160160
auth settings and change some configuration in your project to
161161
run all the tests.
162162

163-
- System tests will be run against an actual project and
164-
so you'll need to provide some environment variables to facilitate
165-
authentication to your project:
166-
167-
- ``GOOGLE_APPLICATION_CREDENTIALS``: The path to a JSON key file;
168-
Such a file can be downloaded directly from the developer's console by clicking
169-
"Generate new JSON key". See private key
170-
`docs <https://cloud.google.com/storage/docs/authentication#generating-a-private-key>`__
171-
for more details.
172-
173-
- Once you have downloaded your json keys, set the environment variable
174-
``GOOGLE_APPLICATION_CREDENTIALS`` to the absolute path of the json file::
175-
176-
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/<your_username>/path/to/app_credentials.json"
177-
163+
- System tests will be run against an actual project. You should use local credentials from gcloud when possible. See `Best practices for application authentication <https://cloud.google.com/docs/authentication/best-practices-applications#local_development_and_testing_with_the>`__. Some tests require a service account. For those tests see `Authenticating as a service account <https://cloud.google.com/docs/authentication/production>`__.
178164

179165
*************
180166
Test Coverage

packages/google-cloud-os-config/noxfile.py

+2-12
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,9 @@ def lint(session):
6262
session.run("flake8", "google", "tests")
6363

6464

65-
@nox.session(python="3.6")
65+
@nox.session(python=DEFAULT_PYTHON_VERSION)
6666
def blacken(session):
67-
"""Run black.
68-
69-
Format code to uniform standard.
70-
71-
This currently uses Python 3.6 due to the automated Kokoro run of synthtool.
72-
That run uses an image that doesn't have 3.6 installed. Before updating this
73-
check the state of the `gcp_ubuntu_config` we use for that Kokoro run.
74-
"""
67+
"""Run black. Format code to uniform standard."""
7568
session.install(BLACK_VERSION)
7669
session.run(
7770
"black", *BLACK_PATHS,
@@ -131,9 +124,6 @@ def system(session):
131124
# Check the value of `RUN_SYSTEM_TESTS` env var. It defaults to true.
132125
if os.environ.get("RUN_SYSTEM_TESTS", "true") == "false":
133126
session.skip("RUN_SYSTEM_TESTS is set to false, skipping")
134-
# Sanity check: Only run tests if the environment variable is set.
135-
if not os.environ.get("GOOGLE_APPLICATION_CREDENTIALS", ""):
136-
session.skip("Credentials must be set via environment variable")
137127
# Install pyopenssl for mTLS testing.
138128
if os.environ.get("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") == "true":
139129
session.install("pyopenssl")

packages/google-cloud-os-config/synth.py renamed to packages/google-cloud-os-config/owlbot.py

+12-19
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,24 @@
1919
import synthtool.gcp as gcp
2020
from synthtool.languages import python
2121

22-
gapic = gcp.GAPICBazel()
2322
common = gcp.CommonTemplates()
2423

25-
# ----------------------------------------------------------------------------
26-
# Generate OS Config GAPIC layer
27-
# ----------------------------------------------------------------------------
28-
versions = ["v1"]
24+
default_version = "v1"
2925

30-
for version in versions:
31-
library = gapic.py_library(
32-
service="osconfig",
33-
version=version,
34-
bazel_target=f"//google/cloud/osconfig/{version}:osconfig-{version}-py"
35-
)
26+
for library in s.get_staging_dirs(default_version):
27+
# rename to google-cloud-os-config
28+
s.replace([library / "google/**/*.py", library / "tests/**/*.py"],
29+
"google-cloud-osconfig",
30+
"google-cloud-os-config")
3631

37-
s.move(library, excludes=["nox.py", "setup.py", "README.rst", "docs/index.rst"])
32+
# Add newline after last item in list
33+
s.replace(library / "google/cloud/**/*client.py",
34+
"(- Must be unique within the project\.)",
35+
"\g<1>\n")
3836

39-
# rename to google-cloud-os-config
40-
s.replace(["google/**/*.py", "tests/**/*.py"], "google-cloud-osconfig", "google-cloud-os-config")
41-
42-
# Add newline after last item in list
43-
s.replace("google/cloud/**/*client.py",
44-
"(- Must be unique within the project\.)",
45-
"\g<1>\n")
37+
s.move(library, excludes=["nox.py", "setup.py", "README.rst", "docs/index.rst"])
4638

39+
s.remove_staging_dirs()
4740

4841
# ----------------------------------------------------------------------------
4942
# Add templated files

packages/google-cloud-os-config/synth.metadata

-145
This file was deleted.

0 commit comments

Comments
 (0)