8000 chore: migrate to owl bot (#45) · googleapis/python-org-policy@42354dd · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Mar 15, 2025. It is now read-only.

Commit 42354dd

Browse files
authored
chore: migrate to owl bot (#45)
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 4fd4323 commit 42354dd

File tree

10 files changed

+60
-201
lines changed

10 files changed

+60
-201
lines changed

.github/.OwlBot.lock.yaml

Lines changed: 4 additions & 0 deletions
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+

.github/.OwlBot.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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-copy-regex:
22+
- source: /google/cloud/orgpolicy/(v.*)/.*-py/(.*)
23+
dest: /owl-bot-staging/$1/$2
24+
25+
begin-after-commit-hash: b06c9034cfcbce180ba732d03be6526e5c8ea1bc
26+

.kokoro/release.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ python3 -m pip install --upgrade twine wheel setuptools
2626
export PYTHONUNBUFFERED=1
2727

2828
# Move into the package, build the distribution and upload.
29-
TWINE_PASSWORD=$(cat "${KOKORO_KEYSTORE_DIR}/73713_google_cloud_pypi_password")
29+
TWINE_PASSWORD=$(cat "${KOKORO_GFILE_DIR}/secret_manager/google-cloud-pypi-token")
3030
cd github/python-org-policy
3131
python3 setup.py sdist bdist_wheel
32-
twine upload --username gcloudpypi --password "${TWINE_PASSWORD}" dist/*
32+
twine upload --username __token__ --password "${TWINE_PASSWORD}" dist/*

.kokoro/release/common.cfg

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,8 @@ env_vars: {
2323
value: "github/python-org-policy/.kokoro/release.sh"
2424
}
2525

26-
# Fetch PyPI password
27-
before_action {
28-
fetch_keystore {
29-
keystore_resource {
30-
keystore_config_id: 73713
31-
keyname: "google_cloud_pypi_password"
32-
}
33-
}
34-
}
35-
3626
# Tokens needed to report release status back to GitHub
3727
env_vars: {
3828
key: "SECRET_MANAGER_KEYS"
39-
value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem"
40-
}
29+
value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem,google-cloud-pypi-token"
30+
}

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
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
6D40 29+
rev: 3.9.1
3030
hooks:
3131
- id: flake8

CONTRIBUTING.rst

Lines changed: 1 addition & 15 deletions
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

docs/_static/custom.css

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
div#python2-eol {
22
border-color: red;
33
border-width: medium;
4-
}
4+
}
55

66
/* Ensure minimum width for 'Parameters' / 'Returns' column */
77
dl.field-list > dt {
88
min-width: 100px
99
}
10+
11+
/* Insert space between methods for readability */
12+
dl.method {
13+
padding-top: 10px;
14+
padding-bottom: 10px
15+
}
16+
17+
/* Insert empty space between classes */
18+
dl.class {
19+
padding-bottom: 50px
20+
}

noxfile.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,9 @@ def lint(session):
9292
session.run("flake8", "google", "tests")
9393

9494

95-
@nox.session(python="3.6")
95+
@nox.session(python=DEFAULT_PYTHON_VERSION)
9696
def blacken(session):
97-
"""Run black.
98-
99-
Format code to uniform standard.
100-
101-
This currently uses Python 3.6 due to the automated Kokoro run of synthtool.
102-
That run uses an image that doesn't have 3.6 installed. Before updating this
103-
check the state of the `gcp_ubuntu_config` we use for that Kokoro run.
104-
"""
97+
"""Run black. Format code to uniform standard."""
10598
session.install(BLACK_VERSION)
10699
session.run(
107100
"black", *BLACK_PATHS,
@@ -161,9 +154,6 @@ def system(session):
161154
# Check the value of `RUN_SYSTEM_TESTS` env var. It defaults to true.
162155
if os.environ.get("RUN_SYSTEM_TESTS", "true") == "false":
163156
session.skip("RUN_SYSTEM_TESTS is set to false, skipping")
164-
# Sanity check: Only run tests if the environment variable is set.
165-
if not os.environ.get("GOOGLE_APPLICATION_CREDENTIALS", ""):
166-
session.skip("Credentials must be set via environment variable")
167157
# Install pyopenssl for mTLS testing.
168158
if os.environ.get("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") == "true":
169159
session.install("pyopenssl")

synth.py renamed to owlbot.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,22 @@
2020
from synthtool.languages import python
2121
from synthtool.sources import git
2222

23-
24-
gapic = gcp.GAPICBazel()
2523
common = gcp.CommonTemplates()
2624

27-
versions = ["v2"] # this package also has v1 protos, see below for note
25+
default_version = "v2"
2826

29-
# ----------------------------------------------------------------------------
30-
# Generate orgpolicy GAPIC layer
31-
# ----------------------------------------------------------------------------
32-
for version in versions:
33-
library = gapic.py_library(
34-
service="orgpolicy",
35-
version=version,
36-
bazel_target=f"//google/cloud/orgpolicy/{version}:orgpolicy-{version}-py",
27+
for library in s.get_staging_dirs(default_version):
28+
# Rename to google-cloud-org-policy
29+
# TODO: use bazel option to rename package
30+
s.replace(
31+
library / "google/cloud/**/*",
32+
"google-cloud-orgpolicy",
33+
"google-cloud-org-policy"
3734
)
35+
3836
s.move(library, excludes=["setup.py", "README.rst", "docs/index.rst"])
3937

40-
# Rename to google-cloud-org-policy
41-
# TODO: use bazel option to rename package
42-
s.replace(
43-
"google/cloud/**/*",
44-
"google-cloud-orgpolicy",
45-
"google-cloud-org-policy"
46-
)
38+
s.remove_staging_dirs()
4739

4840
# ----------------------------------------------------------------------------
4941
# Add templated files

synth.metadata

Lines changed: 0 additions & 140 deletions
This file was deleted.

0 commit comments

Comments
 (0)
0