Skip to content

Commit 2e39d1f

Browse files
chore: update templates (#88)
This PR was generated using Autosynth. 🌈 Synth log will be available here: https://source.cloud.google.com/results/invocations/f632d5d1-d20c-4ae6-90f5-18e53f0f588a/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: googleapis/synthtool@18c5dbd Source-Link: googleapis/synthtool@f943185 Source-Link: googleapis/synthtool@69629b6 Source-Link: googleapis/synthtool@32af6da Source-Link: googleapis/synthtool@a073c87 Source-Link: googleapis/synthtool@9a7d9fb Source-Link: googleapis/synthtool@e89175c Source-Link: googleapis/synthtool@1f1148d Source-Link: googleapis/synthtool@3d3e94c Source-Link: googleapis/synthtool@6542bd7 Source-Link: googleapis/synthtool@ea52b8a Source-Link: googleapis/synthtool@5f6ef0e Source-Link: googleapis/synthtool@da5c605 Source-Link: googleapis/synthtool@477764c Source-Link: googleapis/synthtool@e0ae456 Source-Link: googleapis/synthtool@9b0da52
1 parent f462c74 commit 2e39d1f

File tree

9 files changed

+165
-55
lines changed

9 files changed

+165
-55
lines changed

packages/google-cloud-securitycenter/.kokoro/docs/common.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env_vars: {
3030

3131
env_vars: {
3232
key: "V2_STAGING_BUCKET"
33-
value: "docs-staging-v2-staging"
33+
value: "docs-staging-v2"
3434
}
3535

3636
# It will upload the docker image after successful builds.

packages/google-cloud-securitycenter/.kokoro/test-samples.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
2828
git checkout $LATEST_RELEASE
2929
fi
3030

31+
# Exit early if samples directory doesn't exist
32+
if [ ! -d "./samples" ]; then
33+
echo "No tests run. `./samples` not found"
34+
exit 0
35+
fi
36+
3137
# Disable buffering, so that the logs stream through.
3238
export PYTHONUNBUFFERED=1
3339

@@ -101,4 +107,4 @@ cd "$ROOT"
101107
# Workaround for Kokoro permissions issue: delete secrets
102108
rm testing/{test-env.sh,client-secrets.json,service-account.json}
103109

104-
exit "$RTN"
110+
exit "$RTN"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
repos:
4+
- repo: https://github.com/pre-commit/pre-commit-hooks
5+
rev: v3.3.0
6+
hooks:
7+
- id: trailing-whitespace
8+
- id: end-of-file-fixer
9+
- id: check-yaml
10+
- repo: https://github.com/psf/black
11+
rev: 19.10b0
12+
hooks:
13+
- id: black
14+
- repo: https://gitlab.com/pycqa/flake8
15+
rev: 3.8.4
16+
hooks:
17+
- id: flake8
Lines changed: 87 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,95 @@
11
<!-- # Generated by synthtool. DO NOT EDIT! !-->
2-
# Contributor Code of Conduct
2+
# Code of Conduct
33

4-
As contributors and maintainers of this project,
5-
and in the interest of fostering an open and welcoming community,
6-
we pledge to respect all people who contribute through reporting issues,
7-
posting feature requests, updating documentation,
8-
submitting pull requests or patches, and other activities.
4+
## Our Pledge
95

10-
We are committed to making participation in this project
11-
a harassment-free experience for everyone,
12-
regardless of level of experience, gender, gender identity and expression,
13-
sexual orientation, disability, personal appearance,
14-
body size, race, ethnicity, age, religion, or nationality.
6+
In the interest of fostering an open and welcoming environment, we as
7+
contributors and maintainers pledge to making participation in our project and
8+
our community a harassment-free experience for everyone, regardless of age, body
9+
size, disability, ethnicity, gender identity and expression, level of
10+
experience, education, socio-economic status, nationality, personal appearance,
11+
race, religion, or sexual identity and orientation.
12+
13+
## Our Standards
14+
15+
Examples of behavior that contributes to creating a positive environment
16+
include:
17+
18+
* Using welcoming and inclusive language
19+
* Being respectful of differing viewpoints and experiences
20+
* Gracefully accepting constructive criticism
21+
* Focusing on what is best for the community
22+
* Showing empathy towards other community members
1523

1624
Examples of unacceptable behavior by participants include:
1725

18-
* The use of sexualized language or imagery
19-
* Personal attacks
20-
* Trolling or insulting/derogatory comments
21-
* Public or private harassment
22-
* Publishing other's private information,
23-
such as physical or electronic
24-
addresses, without explicit permission
25-
* Other unethical or unprofessional conduct.
26+
* The use of sexualized language or imagery and unwelcome sexual attention or
27+
advances
28+
* Trolling, insulting/derogatory comments, and personal or political attacks
29+
* Public or private harassment
30+
* Publishing others' private information, such as a physical or electronic
31+
address, without explicit permission
32+
* Other conduct which could reasonably be considered inappropriate in a
33+
professional setting
34+
35+
## Our Responsibilities
36+
37+
Project maintainers are responsible for clarifying the standards of acceptable
38+
behavior and are expected to take appropriate and fair corrective action in
39+
response to any instances of unacceptable behavior.
2640

2741
Project maintainers have the right and responsibility to remove, edit, or reject
28-
comments, commits, code, wiki edits, issues, and other contributions
29-
that are not aligned to this Code of Conduct.
30-
By adopting this Code of Conduct,
31-
project maintainers commit themselves to fairly and consistently
32-
applying these principles to every aspect of managing this project.
33-
Project maintainers who do not follow or enforce the Code of Conduct
34-
may be permanently removed from the project team.
35-
36-
This code of conduct applies both within project spaces and in public spaces
37-
when an individual is representing the project or its community.
38-
39-
Instances of abusive, harassing, or otherwise unacceptable behavior
40-
may be reported by opening an issue
41-
or contacting one or more of the project maintainers.
42-
43-
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
44-
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
42+
comments, commits, code, wiki edits, issues, and other contributions that are
43+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
44+
contributor for other behaviors that they deem inappropriate, threatening,
45+
offensive, or harmful.
46+
47+
## Scope
48+
49+
This Code of Conduct applies both within project spaces and in public spaces
50+
when an individual is representing the project or its community. Examples of
51+
representing a project or community include using an official project e-mail
52+
address, posting via an official social media account, or acting as an appointed
53+
representative at an online or offline event. Representation of a project may be
54+
further defined and clarified by project maintainers.
55+
56+
This Code of Conduct also applies outside the project spaces when the Project
57+
Steward has a reasonable belief that an individual's behavior may have a
58+
negative impact on the project or its community.
59+
60+
## Conflict Resolution
61+
62+
We do not believe that all conflict is bad; healthy debate and disagreement
63+
often yield positive results. However, it is never okay to be disrespectful or
64+
to engage in behavior that violates the project’s code of conduct.
65+
66+
If you see someone violating the code of conduct, you are encouraged to address
67+
the behavior directly with those involved. Many issues can be resolved quickly
68+
and easily, and this gives people more control over the outcome of their
69+
dispute. If you are unable to resolve the matter for any reason, or if the
70+
behavior is threatening or harassing, report it. We are dedicated to providing
71+
an environment where participants feel welcome and safe.
72+
73+
74+
Reports should be directed to *[email protected]*, the
75+
Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to
76+
receive and address reported violations of the code of conduct. They will then
77+
work with a committee consisting of representatives from the Open Source
78+
Programs Office and the Google Open Source Strategy team. If for any reason you
79+
are uncomfortable reaching out to the Project Steward, please email
80+
81+
82+
We will investigate every complaint, but you may not receive a direct response.
83+
We will use our discretion in determining when and how to follow up on reported
84+
incidents, which may range from not taking action to permanent expulsion from
85+
the project and project-sponsored spaces. We will notify the accused of the
86+
report and provide them an opportunity to discuss it before any action is taken.
87+
The identity of the reporter will be omitted from the details of the report
88+
supplied to the accused. In potentially harmful situations, such as ongoing
89+
harassment or threats to anyone's safety, we may take action without notice.
90+
91+
## Attribution
92+
93+
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
94+
available at
95+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

packages/google-cloud-securitycenter/CONTRIBUTING.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,16 @@ Coding Style
111111
should point to the official ``googleapis`` checkout and the
112112
the branch should be the main branch on that remote (``master``).
113113

114+
- This repository contains configuration for the
115+
`pre-commit <https://pre-commit.com/>`__ tool, which automates checking
116+
our linters during a commit. If you have it installed on your ``$PATH``,
117+
you can enable enforcing those checks via:
118+
119+
.. code-block:: bash
120+
121+
$ pre-commit install
122+
pre-commit installed at .git/hooks/pre-commit
123+
114124
Exceptions to PEP8:
115125

116126
- Many unit tests use a helper method, ``_call_fut`` ("FUT" is short for

packages/google-cloud-securitycenter/docs/conf.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,11 @@
345345

346346
# Example configuration for intersphinx: refer to the Python standard library.
347347
intersphinx_mapping = {
348-
"python": ("http://python.readthedocs.org/en/latest/", None),
349-
"google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
348+
"python": ("https://python.readthedocs.org/en/latest/", None),
349+
"google-auth": ("https://googleapis.dev/python/google-auth/latest/", None),
350350
"google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None,),
351-
"grpc": ("https://grpc.io/grpc/python/", None),
351+
"grpc": ("https://grpc.github.io/grpc/python/", None),
352+
"proto-plus": ("https://proto-plus-python.readthedocs.io/en/latest/", None),
352353
}
353354

354355

packages/google-cloud-securitycenter/noxfile.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,17 @@ def default(session):
7272
# Install all test dependencies, then install this package in-place.
7373
session.install("asyncmock", "pytest-asyncio")
7474

75-
session.install("mock", "pytest", "pytest-cov")
75+
session.install(
76+
"mock", "pytest", "pytest-cov",
77+
)
7678
session.install("-e", ".")
7779

7880
# Run py.test against the unit tests.
7981
session.run(
8082
"py.test",
8183
"--quiet",
82-
"--cov=google.cloud.securitycenter",
83-
"--cov=google.cloud",
84-
"--cov=tests.unit",
84+
"--cov=google/cloud",
85+
"--cov=tests/unit",
8586
"--cov-append",
8687
"--cov-config=.coveragerc",
8788
"--cov-report=",

packages/google-cloud-securitycenter/samples/snippets/noxfile.py

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import os
1818
from pathlib import Path
1919
import sys
20+
from typing import Callable, Dict, List, Optional
2021

2122
import nox
2223

@@ -39,6 +40,10 @@
3940
# You can opt out from the test for specific Python versions.
4041
'ignored_versions': ["2.7"],
4142

43+
# Old samples are opted out of enforcing Python type hints
44+
# All new samples should feature them
45+
'enforce_type_hints': False,
46+
4247
# An envvar key for determining the project id to use. Change it
4348
# to 'BUILD_SPECIFIC_GCLOUD_PROJECT' if you want to opt in using a
4449
# build specific Cloud project. You can also use your own string
@@ -64,7 +69,7 @@
6469
TEST_CONFIG.update(TEST_CONFIG_OVERRIDE)
6570

6671

67-
def get_pytest_env_vars():
72+
def get_pytest_env_vars() -> Dict[str, str]:
6873
"""Returns a dict for pytest invocation."""
6974
ret = {}
7075

@@ -93,7 +98,7 @@ def get_pytest_env_vars():
9398
#
9499

95100

96-
def _determine_local_import_names(start_dir):
101+
def _determine_local_import_names(start_dir: str) -> List[str]:
97102
"""Determines all import names that should be considered "local".
98103
99104
This is used when running the linter to insure that import order is
@@ -131,8 +136,11 @@ def _determine_local_import_names(start_dir):
131136

132137

133138
@nox.session
134-
def lint(session):
135-
session.install("flake8", "flake8-import-order")
139+
def lint(session: nox.sessions.Session) -> None:
140+
if not TEST_CONFIG['enforce_type_hints']:
141+
session.install("flake8", "flake8-import-order")
142+
else:
143+
session.install("flake8", "flake8-import-order", "flake8-annotations")
136144

137145
local_names = _determine_local_import_names(".")
138146
args = FLAKE8_COMMON_ARGS + [
@@ -141,8 +149,18 @@ def lint(session):
141149
"."
142150
]
143151
session.run("flake8", *args)
152+
#
153+
# Black
154+
#
144155

145156

157+
@nox.session
158+
def blacken(session: nox.sessions.Session) -> None:
159+
session.install("black")
160+
python_files = [path for path in os.listdir(".") if path.endswith(".py")]
161+
162+
session.run("black", *python_files)
163+
146164
#
147165
# Sample Tests
148166
#
@@ -151,7 +169,7 @@ def lint(session):
151169
PYTEST_COMMON_ARGS = ["--junitxml=sponge_log.xml"]
152170

153171

154-
def _session_tests(session, post_install=None):
172+
def _session_tests(session: nox.sessions.Session, post_install: Callable = None) -> None:
155173
"""Runs py.test for a particular project."""
156174
if os.path.exists("requirements.txt"):
157175
session.install("-r", "requirements.txt")
@@ -177,7 +195,7 @@ def _session_tests(session, post_install=None):
177195

178196

179197
@nox.session(python=ALL_VERSIONS)
180-
def py(session):
198+
def py(session: nox.sessions.Session) -> None:
181199
"""Runs py.test for a sample using the specified version of Python."""
182200
if session.python in TESTED_VERSIONS:
183201
_session_tests(session)
@@ -192,7 +210,7 @@ def py(session):
192210
#
193211

194212

195-
def _get_repo_root():
213+
def _get_repo_root() -> Optional[str]:
196214
""" Returns the root folder of the project. """
197215
# Get root of this repository. Assume we don't have directories nested deeper than 10 items.
198216
p = Path(os.getcwd())
@@ -201,6 +219,11 @@ def _get_repo_root():
201219
break
202220
if Path(p / ".git").exists():
203221
return str(p)
222+
# .git is not available in repos cloned via Cloud Build
223+
# setup.py is always in the library's root, so use that instead
224+
# https://github.com/googleapis/synthtool/issues/792
225+
if Path(p / "setup.py").exists():
226+
return str(p)
204227
p = p.parent
205228
raise Exception("Unable to detect repository root.")
206229

@@ -210,7 +233,7 @@ def _get_repo_root():
210233

211234
@nox.session
212235
@nox.parametrize("path", GENERATED_READMES)
213-
def readmegen(session, path):
236+
def readmegen(session: nox.sessions.Session, path: str) -> None:
214237
"""(Re-)generates the readme for a sample."""
215238
session.install("jinja2", "pyyaml")
216239
dir_ = os.path.dirname(path)

packages/google-cloud-securitycenter/synth.metadata

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
"git": {
2020
"name": "synthtool",
2121
"remote": "https://github.com/googleapis/synthtool.git",
22-
"sha": "9b0da5204ab90bcc36f8cd4e5689eff1a54cc3e4"
22+
"sha": "18c5dbdb4ac8cf75d4d8174e7b4558f48e76f8a1"
2323
}
2424
},
2525
{
2626
"git": {
2727
"name": "synthtool",
2828
"remote": "https://github.com/googleapis/synthtool.git",
29-
"sha": "9b0da5204ab90bcc36f8cd4e5689eff1a54cc3e4"
29+
"sha": "18c5dbdb4ac8cf75d4d8174e7b4558f48e76f8a1"
3030
}
3131
}
3232
],
@@ -103,6 +103,7 @@
103103
".kokoro/test-samples.sh",
104104
".kokoro/trampoline.sh",
105105
".kokoro/trampoline_v2.sh",
106+
".pre-commit-config.yaml",
106107
".trampolinerc",
107108
"CODE_OF_CONDUCT.md",
108109
"CONTRIBUTING.rst",

0 commit comments

Comments
 (0)