Skip to content
This repository was archived by the owner on Nov 9, 2024. It is now read-only.

Commit 675ae9f

Browse files
authored
chore: migrate to owl bot (#72)
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. fix(deps): require google-api-core>=1.22.2
1 parent e6c44fd commit 675ae9f

15 files changed

Lines changed: 105 additions & 235 deletions

.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/analytics/data/(v.*)/.*-py/(.*)
23+
dest: /owl-bot-staging/$1/$2
24+
25+
begin-after-commit-hash: a21f1091413a260393548c1b2ac44b7347923f08
26+

.github/header-checker-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{"allowedCopyrightHolders": ["Google LLC"],
22
"allowedLicenses": ["Apache-2.0", "MIT", "BSD-3"],
3-
"ignoreFiles": ["**/requirements.txt", "**/requirements-test.txt"],
3+
"ignoreFiles": ["**/requirements.txt", "**/requirements-test.txt", "**/__init__.py", "samples/**/constraints.txt", "samples/**/constraints-test.txt"],
44
"sourceFileExtensions": [
55
"ts",
66
"js",

.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-analytics-data
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-analytics-data/.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: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
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+
#
115
# See https://pre-commit.com for more information
216
# See https://pre-commit.com/hooks.html for more hooks
317
repos:
@@ -12,6 +26,6 @@ repos:
1226
hooks:
1327
- id: black
1428
- repo: https://gitlab.com/pycqa/flake8
15-
rev: 3.8.4
29+
rev: 3.9.1
1630
hooks:
1731
- 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+
}

docs/conf.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
# -*- coding: utf-8 -*-
2+
# Copyright 2021 Google LLC
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
215
#
316
# google-analytics-data documentation build configuration file
417
#

noxfile.py

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from __future__ import absolute_import
2020
import os
21+
import pathlib
2122
import shutil
2223

2324
import nox
@@ -30,6 +31,8 @@
3031
SYSTEM_TEST_PYTHON_VERSIONS = ["3.8"]
3132
UNIT_TEST_PYTHON_VERSIONS = ["3.6", "3.7", "3.8", "3.9"]
3233

34+
CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute()
35+
3336
# 'docfx' is excluded since it only needs to run in 'docs-presubmit'
3437
nox.options.sessions = [
3538
"unit",
@@ -59,16 +62,9 @@ def lint(session):
5962
session.run("flake8", "google", "tests")
6063

6164

62-
@nox.session(python="3.6")
65+
@nox.session(python=DEFAULT_PYTHON_VERSION)
6366
def blacken(session):
64-
"""Run black.
65-
66-
Format code to uniform standard.
67-
68-
This currently uses Python 3.6 due to the automated Kokoro run of synthtool.
69-
That run uses an image that doesn't have 3.6 installed. Before updating this
70-
check the state of the `gcp_ubuntu_config` we use for that Kokoro run.
71-
"""
67+
"""Run black. Format code to uniform standard."""
7268
session.install(BLACK_VERSION)
7369
session.run(
7470
"black", *BLACK_PATHS,
@@ -84,13 +80,15 @@ def lint_setup_py(session):
8480

8581
def default(session):
8682
# Install all test dependencies, then install this package in-place.
87-
session.install("asyncmock", "pytest-asyncio")
8883

89-
session.install(
90-
"mock", "pytest", "pytest-cov",
84+
constraints_path = str(
85+
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
9186
)
87+
session.install("asyncmock", "pytest-asyncio", "-c", constraints_path)
9288

93-
session.install("-e", ".")
89+
session.install("mock", "pytest", "pytest-cov", "-c", constraints_path)
90+
91+
session.install("-e", ".", "-c", constraints_path)
9492

9593
# Run py.test against the unit tests.
9694
session.run(
@@ -117,15 +115,15 @@ def unit(session):
117115
@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)
118116
def system(session):
119117
"""Run the system test suite."""
118+
constraints_path = str(
119+
CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt"
120+
)
120121
system_test_path = os.path.join("tests", "system.py")
121122
system_test_folder_path = os.path.join("tests", "system")
122123

123124
# Check the value of `RUN_SYSTEM_TESTS` env var. It defaults to true.
124125
if os.environ.get("RUN_SYSTEM_TESTS", "true") == "false":
125126
session.skip("RUN_SYSTEM_TESTS is set to false, skipping")
126-
# Sanity check: Only run tests if the environment variable is set.
127-
if not os.environ.get("GOOGLE_APPLICATION_CREDENTIALS", ""):
128-
session.skip("Credentials must be set via environment variable")
129127
# Install pyopenssl for mTLS testing.
130128
if os.environ.get("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") == "true":
131129
session.install("pyopenssl")
@@ -141,10 +139,8 @@ def system(session):
141139

142140
# Install all test dependencies, then install this package into the
143141
# virtualenv's dist-packages.
144-
session.install(
145-
"mock", "pytest", "google-cloud-testutils",
146-
)
147-
session.install("-e", ".")
142+
session.install("mock", "pytest", "google-cloud-testutils", "-c", constraints_path)
143+
session.install("-e", ".", "-c", constraints_path)
148144

149145
# Run py.test against the system tests.
150146
if system_test_exists:

0 commit comments

Comments
 (0)