diff options
author | 2020-05-01 21:44:22 -0700 | |
---|---|---|
committer | 2020-05-04 22:17:18 -0700 | |
commit | 6e83feafc803d4f638a9cbadeff65a774e5c1307 (patch) | |
tree | 4a5948947441b9d53d5d66e90288824adb6ff489 | |
parent | 37817b4bb86242c3164f2ad8cb3805b454d0226d (diff) |
Added preupload hook as reminder to update PDD
Added a presubmit hook as a reminder to update
the Wifi metrics PDD when metrics.proto is
changed.
Bug: 140895523
Test: create test CL that changes metrics.proto
Change-Id: Ieb7e8c5256d6726e78947b118dcf95ea2f5a5347
-rw-r--r-- | PREUPLOAD.cfg | 1 | ||||
-rwxr-xr-x | metrics_pdd_hook.py | 79 |
2 files changed, 80 insertions, 0 deletions
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index 2673295d91..32b4e3bb6a 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -1,5 +1,6 @@ [Hook Scripts] checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} +metrics_pdd_hook = ${REPO_ROOT}/frameworks/opt/net/wifi/metrics_pdd_hook.py "service/proto/src/metrics.proto" ${PREUPLOAD_COMMIT_MESSAGE} ${PREUPLOAD_FILES} [Builtin Hooks] commit_msg_bug_field = true diff --git a/metrics_pdd_hook.py b/metrics_pdd_hook.py new file mode 100755 index 0000000000..093f2cdf2e --- /dev/null +++ b/metrics_pdd_hook.py @@ -0,0 +1,79 @@ +#!/usr/bin/python + +# +# Copyright 2020, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from __future__ import print_function + +from argparse import ArgumentParser +import subprocess +import sys + + +def is_in_aosp(): + branches = subprocess.check_output(['git', 'branch', '-vv']).splitlines() + + for branch in branches: + # current branch starts with a '*' + if branch.startswith('*'): + return '[aosp/' in branch + + # otherwise assume in AOSP + return True + + +def is_commit_msg_valid(commit_msg): + for line in commit_msg.splitlines(): + line = line.strip().lower() + if line.startswith('updated-pdd') and 'true' in line: + return True + + return False + + +def main(): + parser = ArgumentParser(description='Check if the Privacy Design Doc (PDD) has been updated') + parser.add_argument('metrics_file', type=str, help='path to the metrics Protobuf file') + parser.add_argument('commit_msg', type=str, help='commit message') + parser.add_argument('commit_files', type=str, nargs='*', help='files changed in the commit') + args = parser.parse_args() + + metrics_file = args.metrics_file + commit_msg = args.commit_msg + commit_files = args.commit_files + + if is_in_aosp(): + return 0 + + if metrics_file not in commit_files: + return 0 + + if is_commit_msg_valid(commit_msg): + return 0 + + print('This commit has changed {metrics_file}.'.format(metrics_file=metrics_file)) + print('Please update the Wifi Metrics Privacy Design Doc (PDD) at go/wifi-metrics-pdd') + print('and acknowledge you have done so by adding this line to your commit message:') + print() + print('Updated-PDD: TRUE') + print() + print('Please reach out to the OWNERS for more information about the Wifi Metrics PDD.') + return 1 + + +if __name__ == '__main__': + exit_code = main() + sys.exit(exit_code) |