RBTools 6.0__tar.gz → 7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rbtools-6.0 → rbtools-7.0}/AUTHORS +1 -0
- {rbtools-6.0 → rbtools-7.0}/PKG-INFO +2 -4
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/PKG-INFO +2 -4
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/SOURCES.txt +11 -2
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/requires.txt +1 -3
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/build-installer.bat +218 -26
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/bootstrapper.wixproj +6 -4
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/common.props +7 -2
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/rbtools.wixproj +6 -6
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/api/coderef/index.rst +0 -1
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/post.rst +30 -9
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/configuration/users.rst +81 -11
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/6.0.rst +5 -4
- rbtools-7.0/docs/releasenotes/7.0.rst +313 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/conf.py +1 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/index.rst +9 -0
- {rbtools-6.0 → rbtools-7.0}/pyproject.toml +1 -3
- {rbtools-6.0 → rbtools-7.0}/rbtools/__init__.py +3 -3
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/root.py +9 -5
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_resource.py +16 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/__init__.py +7 -38
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/base/scmclient.py +36 -213
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/clearcase.py +59 -22
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/jujutsu.py +87 -20
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/mercurial.py +18 -13
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_base_scmclient.py +1 -42
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_clearcase.py +150 -27
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_jujutsu.py +184 -3
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_mercurial.py +0 -39
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_svn.py +9 -11
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_tfs.py +7 -3
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/alias.py +25 -16
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/attach.py +9 -7
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/base/commands.py +287 -118
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/base/output.py +39 -3
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/clearcache.py +1 -1
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/close.py +37 -19
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/diff.py +8 -5
- rbtools-7.0/rbtools/commands/info.py +243 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/install.py +119 -57
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/land.py +85 -46
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/list_repo_types.py +2 -2
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/login.py +12 -13
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/logout.py +15 -10
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/patch.py +31 -41
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/post.py +314 -209
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/publish.py +32 -9
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/review.py +65 -44
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/stamp.py +39 -14
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/status.py +37 -21
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/status_update.py +81 -37
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_alias.py +1 -1
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_command_initialization.py +111 -0
- rbtools-7.0/rbtools/commands/tests/test_info.py +345 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_login.py +54 -57
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_logout.py +18 -24
- rbtools-7.0/rbtools/commands/tests/test_patch.py +371 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_post.py +110 -0
- rbtools-7.0/rbtools/commands/tests/test_review.py +383 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_setup_completion.py +11 -5
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/config.py +36 -4
- {rbtools-6.0 → rbtools-7.0}/rbtools/deprecation.py +9 -9
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/errors.py +2 -9
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/patcher.py +75 -29
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/patches.py +34 -46
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_apple_diff_tool.py +2 -2
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_apply_patch_error.py +0 -16
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_patch.py +5 -33
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_patcher.py +52 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/api/payloads.py +1 -1
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/commands.py +9 -3
- rbtools-7.0/rbtools/ui/__init__.py +5 -0
- rbtools-7.0/rbtools/ui/console.py +986 -0
- rbtools-7.0/rbtools/ui/tests/__init__.py +5 -0
- rbtools-7.0/rbtools/ui/tests/test_console.py +350 -0
- rbtools-7.0/rbtools/ui/theme.py +110 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/commands.py +30 -30
- rbtools-7.0/rbtools/utils/commit_messages.py +263 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/mimetypes.py +10 -4
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/process.py +6 -2
- rbtools-7.0/rbtools/utils/tests/test_commit_messages.py +206 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/users.py +33 -4
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/web_login.py +83 -26
- rbtools-6.0/rbtools/clients/base/patch.py +0 -30
- rbtools-6.0/rbtools/clients/tests/test_legacy_patcher.py +0 -147
- rbtools-6.0/rbtools/commands/info.py +0 -93
- {rbtools-6.0 → rbtools-7.0}/COPYING +0 -0
- {rbtools-6.0 → rbtools-7.0}/INSTALL +0 -0
- {rbtools-6.0 → rbtools-7.0}/MANIFEST.in +0 -0
- {rbtools-6.0 → rbtools-7.0}/NEWS +0 -0
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/dependency_links.txt +0 -0
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/entry_points.txt +0 -0
- {rbtools-6.0 → rbtools-7.0}/RBTools.egg-info/top_level.txt +0 -0
- {rbtools-6.0 → rbtools-7.0}/README.md +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/P4V/P4V-Mac-Linux-Tools-Import.xml +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/P4V/P4V-Windows-RBTools-Install.xml +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/P4V/README.md +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/build-mpkg.sh +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/distribution.xml +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/resources/background.tiff +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/resources/background@2x.tiff +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/resources/conclusion.html +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/macosx/resources/welcome.html +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/scripts/get-version.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/Product_en-us.wxl +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/bundle.wxs +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/defines.wxi +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/files/favicon.ico +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/files/logo.png +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/files/rbt +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/files/rbt.cmd +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/product.wxs +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/installers/windows/wix/rbtools.sln +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/tools/git-hook-check-approval +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/tools/git-hook-set-submitted +0 -0
- {rbtools-6.0 → rbtools-7.0}/contrib/tools/p4-trigger-script +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/Makefile +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/_ext/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/_ext/rbt_commands.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/api/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/api/overview.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/api/tutorial.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/authentication.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/conf.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/glossary.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/installation.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/alias.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/api-get.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/attach.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/clear-cache.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/close.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/diff.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/info.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/install.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/land.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/list-repo-types.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/login.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/logout.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/patch.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/publish.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/review.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/setup-completion.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/setup-repo.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/stamp.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/status-update.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/commands/status.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/configuration/aliases.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/configuration/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/configuration/repositories.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/configuration/tfs.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/rbt/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/redirects.json +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/clearcase.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/git.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/index.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/jujutsu.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/perforce.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/rbtools/workflows/sos.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.2-beta-1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.2-beta-2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.2-rc-1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.3.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.3.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.3.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.3.4.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.4.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.4.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.4.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.4.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.4.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.5.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.6.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.7.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.5.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.6.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.6.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.6.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.6.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.10.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.11.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.4.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.5.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.6.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.7.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.8.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.9.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/0.7.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/1.0.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/1.0.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/1.0.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/1.0.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/2.0.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/2.0.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/3.0.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/3.1.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/3.1.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/3.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/4.0.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/4.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.0.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.1.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.2.1.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.2.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/5.3.rst +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/Makefile +0 -0
- {rbtools-6.0 → rbtools-7.0}/docs/releasenotes/_ext/extralinks.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/cache.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/capabilities.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/client.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/decode.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/decorators.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/factory.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/api_token.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/archived_review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_archived_object.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_comment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_diff_commit.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_review.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_review_group.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/base_user.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/change.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/default_reviewer.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/diff.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/diff_comment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/diff_commit.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/diff_context.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/diff_file_attachment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/draft_diff_commit.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/draft_file_attachment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/draft_screenshot.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/extension.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/file_attachment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/file_attachment_comment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/file_diff.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/general_comment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/hosting_service.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/hosting_service_account.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/last_update.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/mixins.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/muted_review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/oauth_application.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/oauth_token.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/plain_text.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/remote_repository.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository_branch.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository_commit.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository_group.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository_info.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/repository_user.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review_group.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review_group_user.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review_reply.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/review_request_draft.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/screenshot.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/screenshot_comment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/search.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/server_info.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/session.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/status_update.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/user.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/user_file_attachment.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/validate_diff.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/validate_diff_commit.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/validation.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/watched.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/watched_review_group.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/watched_review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/resource/webhook.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/base.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_auth_handlers.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_capabilities.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_factory.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/tests/test_http_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/transport/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/transport/sync.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/api/utils.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/base/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/base/registry.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/base/repository.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/bazaar.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/cvs.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/git.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/perforce.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/plastic.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/sos.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/svn.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_bzr.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_cvs.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_git.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_p4.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_plastic.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_scanning.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_scmclient_registry.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/test_sos.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/checkoutlist +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/checkoutlist,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/commitinfo +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/commitinfo,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/config +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/config,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/cvswrappers +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/cvswrappers,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/loginfo +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/loginfo,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/modules +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/modules,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/notify +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/notify,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postadmin +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postadmin,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postproxy +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postproxy,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/posttag +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/posttag,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postwatch +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postwatch,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/preproxy +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/preproxy,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/rcsinfo +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/rcsinfo,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/taginfo +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/taginfo,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/val-tags +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/verifymsg +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/verifymsg,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file1,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file2,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file3,v +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/HEAD +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/config +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/description +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/applypatch-msg.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/commit-msg.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/post-update.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-applypatch.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-commit.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-push.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-rebase.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/prepare-commit-msg.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/update.sample +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/info/exclude +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/0e/88e512079c31f885b3ced6fab680674a69d8ac +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/18/c5c09410ba62e8240c2cabe0822c55a60fc519 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/5e/98e9540e1b741b5be24fcb33c40c1c8069c1fb +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/63/4b3e8ff85bada6f928841a9f2c505560840b3a +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/6a/76568cc86d73144323388a2669c6add94a572c +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/79/66b68a2d81aaa3707c6200aac1c1c86f91431b +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/9d/c1177bba796bd19564d1d84f27a8e4576a204a +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/bd/5eb938439b726de969e52fa2d93d5e366811b7 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/c4/1fe7c20a7342965922f2772bea3e514975134a +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/e6/a3577b3236ed08fdb3a42e8042bfc415d2ae22 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/packed-refs +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/refs/heads/.gitignore +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/refs/tags/.gitignore +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/hg-repo/foo.txt +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.bazaar/bazaar.conf +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.gitconfig +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.gitignore +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/README.txt +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/authz +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/hooks-env.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/passwd +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/svnserve.conf +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/current +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/format +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/fs-type +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/fsfs.conf +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/min-unpacked-rev +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/rep-cache.db-journal +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/0 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/1 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/2 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/3 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/4 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/5 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/6 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/7 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/0 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/1 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/2 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/3 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/4 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/5 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/6 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revs/0/7 +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/transactions/.gitignore +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/txn-current +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/txn-current-lock +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/txn-protorevs/.gitignore +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/uuid +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/write-lock +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/format +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-commit.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-lock.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-revprop-change.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-unlock.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-commit.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-lock.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-revprop-change.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-unlock.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/start-commit.tmpl +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/locks/db-logs.lock +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/locks/db.lock +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/clients/tfs.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/api_get.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/base/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/base/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/base/options.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/conf/completions/bash +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/conf/completions/zsh +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/main.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/setup_completion.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/setup_repo.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_base_output.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_command_auth_session.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_main.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/commands/tests/test_setup_repo.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/loader.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/tests/test_config.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/config/tests/test_loader.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_diff_file_result.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_diff_tools_registry.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_gnu_diff_tool.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tests/test_unified_diff_writer.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/backends/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/backends/apple.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/backends/gnu.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/base/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/base/diff_file_result.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/base/diff_tool.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/tools/registry.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/diffs/writers.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/helpers/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/helpers/hgext.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/hooks/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/hooks/common.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/hooks/git.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/api/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/api/transport.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/scripts/editor.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/testcase.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/testing/transport.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/aliases.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/browser.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/checks.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/console.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/diffs.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/encoding.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/errors.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/filesystem.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/graphs.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/repository.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/source_tree.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/streams.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/__init__.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_aliases.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_buffered_iterator.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_checks.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_console.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_encoding.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_filesystem.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_mimetypes.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_process.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_repository.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_review_request.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_source_tree.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/rbtools/utils/tests/test_web_login.py +0 -0
- {rbtools-6.0 → rbtools-7.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: RBTools
|
|
3
|
-
Version:
|
|
3
|
+
Version: 7.0
|
|
4
4
|
Summary: Command line tools and API for working with code and document reviews on Review Board
|
|
5
5
|
Author-email: "Beanbag, Inc." <questions@beanbaginc.com>
|
|
6
6
|
License: MIT
|
|
@@ -29,15 +29,13 @@ License-File: COPYING
|
|
|
29
29
|
License-File: AUTHORS
|
|
30
30
|
Requires-Dist: appdirs~=1.4.4
|
|
31
31
|
Requires-Dist: certifi>=2023.5.7
|
|
32
|
-
Requires-Dist: colorama
|
|
33
32
|
Requires-Dist: housekeeping~=1.1
|
|
34
33
|
Requires-Dist: packaging>=21.3
|
|
35
34
|
Requires-Dist: puremagic
|
|
36
35
|
Requires-Dist: pydiffx~=1.1.0
|
|
37
|
-
Requires-Dist:
|
|
36
|
+
Requires-Dist: rich~=15.0
|
|
38
37
|
Requires-Dist: typelets~=1.1.0
|
|
39
38
|
Requires-Dist: typing_extensions>=4.3.0
|
|
40
|
-
Requires-Dist: tqdm
|
|
41
39
|
Requires-Dist: importlib-metadata>=5.0
|
|
42
40
|
Requires-Dist: importlib-resources>=5.9
|
|
43
41
|
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: RBTools
|
|
3
|
-
Version:
|
|
3
|
+
Version: 7.0
|
|
4
4
|
Summary: Command line tools and API for working with code and document reviews on Review Board
|
|
5
5
|
Author-email: "Beanbag, Inc." <questions@beanbaginc.com>
|
|
6
6
|
License: MIT
|
|
@@ -29,15 +29,13 @@ License-File: COPYING
|
|
|
29
29
|
License-File: AUTHORS
|
|
30
30
|
Requires-Dist: appdirs~=1.4.4
|
|
31
31
|
Requires-Dist: certifi>=2023.5.7
|
|
32
|
-
Requires-Dist: colorama
|
|
33
32
|
Requires-Dist: housekeeping~=1.1
|
|
34
33
|
Requires-Dist: packaging>=21.3
|
|
35
34
|
Requires-Dist: puremagic
|
|
36
35
|
Requires-Dist: pydiffx~=1.1.0
|
|
37
|
-
Requires-Dist:
|
|
36
|
+
Requires-Dist: rich~=15.0
|
|
38
37
|
Requires-Dist: typelets~=1.1.0
|
|
39
38
|
Requires-Dist: typing_extensions>=4.3.0
|
|
40
|
-
Requires-Dist: tqdm
|
|
41
39
|
Requires-Dist: importlib-metadata>=5.0
|
|
42
40
|
Requires-Dist: importlib-resources>=5.9
|
|
43
41
|
Dynamic: license-file
|
|
@@ -141,6 +141,7 @@ docs/releasenotes/5.2.1.rst
|
|
|
141
141
|
docs/releasenotes/5.2.rst
|
|
142
142
|
docs/releasenotes/5.3.rst
|
|
143
143
|
docs/releasenotes/6.0.rst
|
|
144
|
+
docs/releasenotes/7.0.rst
|
|
144
145
|
docs/releasenotes/Makefile
|
|
145
146
|
docs/releasenotes/conf.py
|
|
146
147
|
docs/releasenotes/index.rst
|
|
@@ -244,7 +245,6 @@ rbtools/clients/sos.py
|
|
|
244
245
|
rbtools/clients/svn.py
|
|
245
246
|
rbtools/clients/tfs.py
|
|
246
247
|
rbtools/clients/base/__init__.py
|
|
247
|
-
rbtools/clients/base/patch.py
|
|
248
248
|
rbtools/clients/base/registry.py
|
|
249
249
|
rbtools/clients/base/repository.py
|
|
250
250
|
rbtools/clients/base/scmclient.py
|
|
@@ -255,7 +255,6 @@ rbtools/clients/tests/test_clearcase.py
|
|
|
255
255
|
rbtools/clients/tests/test_cvs.py
|
|
256
256
|
rbtools/clients/tests/test_git.py
|
|
257
257
|
rbtools/clients/tests/test_jujutsu.py
|
|
258
|
-
rbtools/clients/tests/test_legacy_patcher.py
|
|
259
258
|
rbtools/clients/tests/test_mercurial.py
|
|
260
259
|
rbtools/clients/tests/test_p4.py
|
|
261
260
|
rbtools/clients/tests/test_plastic.py
|
|
@@ -409,10 +408,13 @@ rbtools/commands/tests/test_alias.py
|
|
|
409
408
|
rbtools/commands/tests/test_base_output.py
|
|
410
409
|
rbtools/commands/tests/test_command_auth_session.py
|
|
411
410
|
rbtools/commands/tests/test_command_initialization.py
|
|
411
|
+
rbtools/commands/tests/test_info.py
|
|
412
412
|
rbtools/commands/tests/test_login.py
|
|
413
413
|
rbtools/commands/tests/test_logout.py
|
|
414
414
|
rbtools/commands/tests/test_main.py
|
|
415
|
+
rbtools/commands/tests/test_patch.py
|
|
415
416
|
rbtools/commands/tests/test_post.py
|
|
417
|
+
rbtools/commands/tests/test_review.py
|
|
416
418
|
rbtools/commands/tests/test_setup_completion.py
|
|
417
419
|
rbtools/commands/tests/test_setup_repo.py
|
|
418
420
|
rbtools/config/__init__.py
|
|
@@ -458,11 +460,17 @@ rbtools/testing/api/__init__.py
|
|
|
458
460
|
rbtools/testing/api/payloads.py
|
|
459
461
|
rbtools/testing/api/transport.py
|
|
460
462
|
rbtools/testing/scripts/editor.py
|
|
463
|
+
rbtools/ui/__init__.py
|
|
464
|
+
rbtools/ui/console.py
|
|
465
|
+
rbtools/ui/theme.py
|
|
466
|
+
rbtools/ui/tests/__init__.py
|
|
467
|
+
rbtools/ui/tests/test_console.py
|
|
461
468
|
rbtools/utils/__init__.py
|
|
462
469
|
rbtools/utils/aliases.py
|
|
463
470
|
rbtools/utils/browser.py
|
|
464
471
|
rbtools/utils/checks.py
|
|
465
472
|
rbtools/utils/commands.py
|
|
473
|
+
rbtools/utils/commit_messages.py
|
|
466
474
|
rbtools/utils/console.py
|
|
467
475
|
rbtools/utils/diffs.py
|
|
468
476
|
rbtools/utils/encoding.py
|
|
@@ -481,6 +489,7 @@ rbtools/utils/tests/__init__.py
|
|
|
481
489
|
rbtools/utils/tests/test_aliases.py
|
|
482
490
|
rbtools/utils/tests/test_buffered_iterator.py
|
|
483
491
|
rbtools/utils/tests/test_checks.py
|
|
492
|
+
rbtools/utils/tests/test_commit_messages.py
|
|
484
493
|
rbtools/utils/tests/test_console.py
|
|
485
494
|
rbtools/utils/tests/test_encoding.py
|
|
486
495
|
rbtools/utils/tests/test_filesystem.py
|
|
@@ -30,15 +30,25 @@ set DEPS_DIR=%BUILD_BASE%\deps
|
|
|
30
30
|
::-------------------------------------------------------------------------
|
|
31
31
|
:: Dependencies
|
|
32
32
|
::-------------------------------------------------------------------------
|
|
33
|
-
set PYTHON_VERSION=3.
|
|
33
|
+
set PYTHON_VERSION=3.13.15
|
|
34
34
|
|
|
35
35
|
set PYTHON_URL_BASE=https://www.python.org/ftp/python
|
|
36
36
|
|
|
37
37
|
set PYTHON_X64_FILENAME=python-%PYTHON_VERSION%-amd64.exe
|
|
38
38
|
set PYTHON_X64_URL=%PYTHON_URL_BASE%/%PYTHON_VERSION%/%PYTHON_X64_FILENAME%
|
|
39
|
-
set
|
|
39
|
+
set PYTHON_X64_SHA256=edec09c4853aeae9ac36efb8c9f95b6b8e2fee65eee56d9767a8b7c69c574403
|
|
40
40
|
set PYTHON_X64_DEP=%DEPS_DIR%\python-%PYTHON_VERSION%-x64
|
|
41
41
|
|
|
42
|
+
set NUGET_VERSION=6.9.1
|
|
43
|
+
set NUGET_URL=https://dist.nuget.org/win-x86-commandline/v%NUGET_VERSION%/nuget.exe
|
|
44
|
+
set NUGET_SHA256=82bb13e2365e1e5ee7d0975618dcf90b279427de8a7ecb338b9b78bfc457d51b
|
|
45
|
+
set NUGET_DIR=%DEPS_DIR%\nuget-%NUGET_VERSION%
|
|
46
|
+
set NUGET_EXE=%NUGET_DIR%\nuget.exe
|
|
47
|
+
|
|
48
|
+
set TRUSTED_SIGNING_CLIENT_VERSION=1.0.60
|
|
49
|
+
set TRUSTED_SIGNING_CLIENT_DIR=%DEPS_DIR%\Microsoft.Trusted.Signing.Client.%TRUSTED_SIGNING_CLIENT_VERSION%
|
|
50
|
+
set AZURE_SIGN_DLIB_PATH=%TRUSTED_SIGNING_CLIENT_DIR%\bin\x64\Azure.CodeSigning.Dlib.dll
|
|
51
|
+
|
|
42
52
|
|
|
43
53
|
::-------------------------------------------------------------------------
|
|
44
54
|
:: Binaries
|
|
@@ -49,12 +59,6 @@ set BUNDLED_PYTHON_X64=%BUNDLED_PYTHON_X64_DIR%\python.exe
|
|
|
49
59
|
call :SetMSBuildPath || goto :Abort
|
|
50
60
|
|
|
51
61
|
|
|
52
|
-
::-------------------------------------------------------------------------
|
|
53
|
-
:: Signing certificate
|
|
54
|
-
::-------------------------------------------------------------------------
|
|
55
|
-
set CERT_THUMBPRINT_SHA1=88b278d63d192543884faa8cd97cc77ef74ef897
|
|
56
|
-
|
|
57
|
-
|
|
58
62
|
::-------------------------------------------------------------------------
|
|
59
63
|
:: Begin the installation process
|
|
60
64
|
::-------------------------------------------------------------------------
|
|
@@ -63,9 +67,12 @@ if not exist "%BUILD_STAGE%" mkdir "%BUILD_STAGE%"
|
|
|
63
67
|
|
|
64
68
|
call :InstallPython ^
|
|
65
69
|
x64 %PYTHON_X64_DEP% %PYTHON_X64_FILENAME% ^
|
|
66
|
-
%PYTHON_X64_URL% %
|
|
70
|
+
%PYTHON_X64_URL% %PYTHON_X64_SHA256% ^
|
|
67
71
|
|| goto :Abort
|
|
68
72
|
|
|
73
|
+
call :InstallNuGet || goto :Abort
|
|
74
|
+
call :InstallTrustedSigningClient || goto :Abort
|
|
75
|
+
call :GenerateSigningMetadata || goto :Abort
|
|
69
76
|
call :CreateBuildDirectory || goto :Abort
|
|
70
77
|
call :InstallPackages || goto :Abort
|
|
71
78
|
call :InstallRBTools || goto :Abort
|
|
@@ -80,14 +87,14 @@ exit /B 0
|
|
|
80
87
|
::-------------------------------------------------------------------------
|
|
81
88
|
:: Installs Python
|
|
82
89
|
::-------------------------------------------------------------------------
|
|
83
|
-
:InstallPython arch dep_path python_filename url
|
|
90
|
+
:InstallPython arch dep_path python_filename url sha256
|
|
84
91
|
setlocal
|
|
85
92
|
|
|
86
93
|
set _arch=%~1
|
|
87
94
|
set _dep_path=%~2
|
|
88
95
|
set _python_filename=%~3
|
|
89
96
|
set _url=%~4
|
|
90
|
-
set
|
|
97
|
+
set _sha256=%~5
|
|
91
98
|
|
|
92
99
|
echo.
|
|
93
100
|
echo == Installing Python [%_arch%] ==
|
|
@@ -99,7 +106,7 @@ if not exist "%_dep_path%" (
|
|
|
99
106
|
if not exist "%_PYTHON_INSTALLER%" (
|
|
100
107
|
echo Preparing to download Python v%PYTHON_VERSION% [%_arch%]...
|
|
101
108
|
|
|
102
|
-
call :DownloadAndVerify %_url% "%_PYTHON_INSTALLER%" %
|
|
109
|
+
call :DownloadAndVerify %_url% "%_PYTHON_INSTALLER%" SHA256 %_sha256%
|
|
103
110
|
if %errorlevel% neq 0 exit /b 1
|
|
104
111
|
|
|
105
112
|
echo Downloaded to %_PYTHON_INSTALLER%
|
|
@@ -130,6 +137,158 @@ if not exist "%_dep_path%" (
|
|
|
130
137
|
exit /B 0
|
|
131
138
|
|
|
132
139
|
|
|
140
|
+
::-------------------------------------------------------------------------
|
|
141
|
+
:: Download nuget.exe.
|
|
142
|
+
::
|
|
143
|
+
:: This is needed for part of the Azure Artifact Signing setup.
|
|
144
|
+
::-------------------------------------------------------------------------
|
|
145
|
+
:InstallNuGet
|
|
146
|
+
setlocal
|
|
147
|
+
|
|
148
|
+
echo.
|
|
149
|
+
echo == Installing NuGet [%NUGET_VERSION%] ==
|
|
150
|
+
|
|
151
|
+
if not exist "%NUGET_DIR%" mkdir "%NUGET_DIR%"
|
|
152
|
+
|
|
153
|
+
call :DownloadAndVerify %NUGET_URL% "%NUGET_EXE%" SHA256 %NUGET_SHA256%
|
|
154
|
+
|
|
155
|
+
if ERRORLEVEL 1 (
|
|
156
|
+
call :DeleteIfExists "%NUGET_EXE%"
|
|
157
|
+
exit /B 1
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
exit /B 0
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
::-------------------------------------------------------------------------
|
|
164
|
+
:: Install the Azure Trusted Signing client.
|
|
165
|
+
::
|
|
166
|
+
:: This installs to the dependency tree so signtool.exe can find it.
|
|
167
|
+
::-------------------------------------------------------------------------
|
|
168
|
+
:InstallTrustedSigningClient
|
|
169
|
+
setlocal
|
|
170
|
+
|
|
171
|
+
echo.
|
|
172
|
+
echo == Installing Microsoft.Trusted.Signing.Client [%TRUSTED_SIGNING_CLIENT_VERSION%] ==
|
|
173
|
+
|
|
174
|
+
if not exist "%TRUSTED_SIGNING_CLIENT_DIR%" (
|
|
175
|
+
"%NUGET_EXE%" install Microsoft.Trusted.Signing.Client ^
|
|
176
|
+
-Version %TRUSTED_SIGNING_CLIENT_VERSION% ^
|
|
177
|
+
-OutputDirectory "%DEPS_DIR%" ^
|
|
178
|
+
-NonInteractive
|
|
179
|
+
if %errorlevel% neq 0 exit /B 1
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
if not exist "%AZURE_SIGN_DLIB_PATH%" (
|
|
183
|
+
echo Could not find the Azure Trusted Signing dlib at:
|
|
184
|
+
echo %AZURE_SIGN_DLIB_PATH%
|
|
185
|
+
exit /B 1
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
exit /B 0
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
::-------------------------------------------------------------------------
|
|
192
|
+
:: Generate the Azure Trusted Signing metadata JSON file.
|
|
193
|
+
::
|
|
194
|
+
:: This will populate the file from environment variables describing the
|
|
195
|
+
:: Artifact Signing account and certificate profile to use. The result will
|
|
196
|
+
:: be passed to signtool.exe in the build stage.
|
|
197
|
+
::-------------------------------------------------------------------------
|
|
198
|
+
:GenerateSigningMetadata
|
|
199
|
+
setlocal
|
|
200
|
+
|
|
201
|
+
echo.
|
|
202
|
+
echo == Generating Azure Trusted Signing metadata ==
|
|
203
|
+
|
|
204
|
+
call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_ENDPOINT%" _endpoint
|
|
205
|
+
call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_ACCOUNT%" _account
|
|
206
|
+
call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_CERT_PROFILE%" _cert_profile
|
|
207
|
+
|
|
208
|
+
if "%_endpoint%" == "" (
|
|
209
|
+
echo AZURE_TRUSTED_SIGNING_ENDPOINT must be set.
|
|
210
|
+
exit /B 1
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
if "%_account%" == "" (
|
|
214
|
+
echo AZURE_TRUSTED_SIGNING_ACCOUNT must be set.
|
|
215
|
+
exit /B 1
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
if "%_cert_profile%" == "" (
|
|
219
|
+
echo AZURE_TRUSTED_SIGNING_CERT_PROFILE must be set.
|
|
220
|
+
exit /B 1
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
set _metadata_file=%DEPS_DIR%\trusted-signing-metadata.json
|
|
224
|
+
|
|
225
|
+
(
|
|
226
|
+
echo {
|
|
227
|
+
echo "Endpoint": "%_endpoint%",
|
|
228
|
+
echo "CodeSigningAccountName": "%_account%",
|
|
229
|
+
echo "CertificateProfileName": "%_cert_profile%"
|
|
230
|
+
echo }
|
|
231
|
+
) > "%_metadata_file%"
|
|
232
|
+
|
|
233
|
+
endlocal & set AZURE_SIGN_METADATA_FILE=%_metadata_file%
|
|
234
|
+
exit /B 0
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
::-------------------------------------------------------------------------
|
|
238
|
+
:: Get a token for communicating with Azure.
|
|
239
|
+
::
|
|
240
|
+
:: This assumes the build process is running within an EC2 instance. It
|
|
241
|
+
:: will exchange the instance's identity for an Azure AD federated token,
|
|
242
|
+
:: which lets signtool.exe talk to Azure.
|
|
243
|
+
::
|
|
244
|
+
:: The resulting token is good for a period of time, and is considered
|
|
245
|
+
:: sensitive data. It's stored under a non-guessable name in the temp
|
|
246
|
+
:: directory, and should be deleted once done.
|
|
247
|
+
::-------------------------------------------------------------------------
|
|
248
|
+
:GetFederatedToken
|
|
249
|
+
setlocal
|
|
250
|
+
|
|
251
|
+
echo.
|
|
252
|
+
echo == Requesting an Azure federated token via AWS ==
|
|
253
|
+
|
|
254
|
+
call :TrimTrailingSpaces "%AZURE_TENANT_ID%" _tenant_id
|
|
255
|
+
call :TrimTrailingSpaces "%AZURE_CLIENT_ID%" _client_id
|
|
256
|
+
|
|
257
|
+
if "%_tenant_id%" == "" (
|
|
258
|
+
echo AZURE_TENANT_ID must be set.
|
|
259
|
+
exit /B 1
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
if "%_client_id%" == "" (
|
|
263
|
+
echo AZURE_CLIENT_ID must be set.
|
|
264
|
+
exit /B 1
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
where aws >NUL 2>&1
|
|
268
|
+
if %errorlevel% neq 0 (
|
|
269
|
+
echo The AWS CLI ^(aws.exe^) must be installed and on PATH.
|
|
270
|
+
exit /B 1
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
set _token_file=%TEMP%\rbtools-azure-token-%RANDOM%%RANDOM%.jwt
|
|
274
|
+
|
|
275
|
+
aws sts get-web-identity-token ^
|
|
276
|
+
--audience "api://AzureADTokenExchange" ^
|
|
277
|
+
--signing-algorithm RS256 ^
|
|
278
|
+
--duration-seconds 3600 ^
|
|
279
|
+
--query WebIdentityToken ^
|
|
280
|
+
--output text > "%_token_file%"
|
|
281
|
+
|
|
282
|
+
if %errorlevel% neq 0 (
|
|
283
|
+
echo Failed to obtain an AWS web identity token.
|
|
284
|
+
call :DeleteIfExists "%_token_file%"
|
|
285
|
+
exit /B 1
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
endlocal & set "AZURE_FEDERATED_TOKEN_FILE=%_token_file%" & set "AZURE_TENANT_ID=%_tenant_id%" & set "AZURE_CLIENT_ID=%_client_id%"
|
|
289
|
+
exit /B 0
|
|
290
|
+
|
|
291
|
+
|
|
133
292
|
::-------------------------------------------------------------------------
|
|
134
293
|
:: Populates the build directory from dependencies
|
|
135
294
|
::-------------------------------------------------------------------------
|
|
@@ -247,9 +406,14 @@ if ERRORLEVEL 1 exit /B 1
|
|
|
247
406
|
|
|
248
407
|
set _rbtools_version=%_return1%
|
|
249
408
|
|
|
409
|
+
:: Fetch the token as late as possible, so nothing can fail and accidentally
|
|
410
|
+
:: leave it sitting around before we get a chance to clean it up.
|
|
411
|
+
call :GetFederatedToken
|
|
412
|
+
if ERRORLEVEL 1 exit /B 1
|
|
413
|
+
|
|
250
414
|
set _wix_path=%CD%\wix
|
|
251
415
|
set _sln_file=%_wix_path%\rbtools.sln
|
|
252
|
-
set _timestamp_url=http://timestamp.
|
|
416
|
+
set _timestamp_url=http://timestamp.acs.microsoft.com
|
|
253
417
|
|
|
254
418
|
echo.
|
|
255
419
|
echo == Building the RBTools installer [x64] ==
|
|
@@ -261,11 +425,16 @@ echo == Building the RBTools installer [x64] ==
|
|
|
261
425
|
/p:Root="%BUILD_ROOT_X64%" ^
|
|
262
426
|
/p:OutputPath="%BUILD_STAGE%\\" ^
|
|
263
427
|
/p:SourcePath="%_wix_path%" ^
|
|
264
|
-
/p:
|
|
428
|
+
/p:AzureSignDlibPath="%AZURE_SIGN_DLIB_PATH%" ^
|
|
429
|
+
/p:AzureSignMetadataFile="%AZURE_SIGN_METADATA_FILE%" ^
|
|
265
430
|
/p:TimestampUrl=%_timestamp_url% ^
|
|
266
431
|
"%_sln_file%"
|
|
267
432
|
|
|
268
|
-
|
|
433
|
+
set _msbuild_result=%ERRORLEVEL%
|
|
434
|
+
|
|
435
|
+
call :DeleteIfExists "%AZURE_FEDERATED_TOKEN_FILE%"
|
|
436
|
+
|
|
437
|
+
if %_msbuild_result% neq 0 exit /B 1
|
|
269
438
|
|
|
270
439
|
mkdir "%BUILD_DEST%" 2>&1
|
|
271
440
|
dir "%BUILD_STAGE%" /S
|
|
@@ -345,18 +514,19 @@ exit /B 0
|
|
|
345
514
|
::-------------------------------------------------------------------------
|
|
346
515
|
:: Downloads and verifies a file from a URL.
|
|
347
516
|
::-------------------------------------------------------------------------
|
|
348
|
-
:DownloadAndVerify url dest expected_hash
|
|
517
|
+
:DownloadAndVerify url dest algorithm expected_hash
|
|
349
518
|
setlocal
|
|
350
519
|
|
|
351
520
|
set _url=%~1
|
|
352
521
|
set _dest=%~2
|
|
353
|
-
set
|
|
522
|
+
set _algorithm=%~3
|
|
523
|
+
set _expected_hash=%~4
|
|
354
524
|
|
|
355
525
|
if not exist "%_dest%" (
|
|
356
526
|
call :DownloadFile %_url% "%_dest%" || exit /B 1
|
|
357
527
|
)
|
|
358
528
|
|
|
359
|
-
call :
|
|
529
|
+
call :VerifyHash "%_dest%" %_algorithm% %_expected_hash% || exit /B 1
|
|
360
530
|
|
|
361
531
|
exit /B 0
|
|
362
532
|
|
|
@@ -380,21 +550,20 @@ exit /B 0
|
|
|
380
550
|
|
|
381
551
|
|
|
382
552
|
::-------------------------------------------------------------------------
|
|
383
|
-
:: Verifies the
|
|
553
|
+
:: Verifies the checksum of a file against a given hash algorithm.
|
|
384
554
|
::-------------------------------------------------------------------------
|
|
385
|
-
:
|
|
555
|
+
:VerifyHash filename algorithm expected_hash
|
|
386
556
|
setlocal
|
|
387
557
|
|
|
388
558
|
set _filename=%~1
|
|
389
|
-
set
|
|
559
|
+
set _algorithm=%~2
|
|
560
|
+
set _expected_hash=%~3
|
|
390
561
|
|
|
391
|
-
echo Verifying that %_filename% has
|
|
562
|
+
echo Verifying that %_filename% has %_algorithm% hash %_expected_hash%...
|
|
392
563
|
|
|
393
564
|
PowerShell -NoProfile -Command ^
|
|
394
|
-
"$
|
|
395
|
-
"$
|
|
396
|
-
"$hash = [System.BitConverter]::ToString($md5.ComputeHash($file));"^
|
|
397
|
-
"$hash = $hash.toLower().Replace('-', '');"^
|
|
565
|
+
"$hash = (Get-FileHash -Path '%_filename%' -Algorithm %_algorithm%).Hash;"^
|
|
566
|
+
"$hash = $hash.ToLower();"^
|
|
398
567
|
"if ($hash -eq '%_expected_hash%') {"^
|
|
399
568
|
" Write-Host '%_filename% has a valid hash.';"^
|
|
400
569
|
" exit 0;"^
|
|
@@ -408,6 +577,29 @@ echo Hash verified.
|
|
|
408
577
|
exit /B 0
|
|
409
578
|
|
|
410
579
|
|
|
580
|
+
::-------------------------------------------------------------------------
|
|
581
|
+
:: Trims trailing spaces from a value.
|
|
582
|
+
::
|
|
583
|
+
:: This is used with environment variables to strip any trailing spaces.
|
|
584
|
+
:: This can happen pretty easily, since `set A=B && set C=D` will set
|
|
585
|
+
:: `A="B "`, and Azure can't handle this.
|
|
586
|
+
::-------------------------------------------------------------------------
|
|
587
|
+
:TrimTrailingSpaces value varname
|
|
588
|
+
setlocal EnableDelayedExpansion
|
|
589
|
+
|
|
590
|
+
set "_str=%~1"
|
|
591
|
+
|
|
592
|
+
:TrimTrailingSpacesLoop
|
|
593
|
+
|
|
594
|
+
if defined _str if "!_str:~-1!" == " " (
|
|
595
|
+
set "_str=!_str:~0,-1!"
|
|
596
|
+
goto :TrimTrailingSpacesLoop
|
|
597
|
+
)
|
|
598
|
+
|
|
599
|
+
endlocal & set "%~2=%_str%"
|
|
600
|
+
exit /B 0
|
|
601
|
+
|
|
602
|
+
|
|
411
603
|
::-------------------------------------------------------------------------
|
|
412
604
|
:: Deletes a file or directory if it exists.
|
|
413
605
|
::-------------------------------------------------------------------------
|
|
@@ -59,12 +59,14 @@
|
|
|
59
59
|
</Target>
|
|
60
60
|
|
|
61
61
|
<!-- Sign the bundled installer. -->
|
|
62
|
-
<Target Name="SignBundleEngine"
|
|
63
|
-
|
|
62
|
+
<Target Name="SignBundleEngine"
|
|
63
|
+
DependsOnTargets="EnsureSignToolInstalled;EnsureAzureSignConfigured">
|
|
64
|
+
<Exec Command='"$(SignToolPath)" sign /fd SHA256 /tr $(TimestampUrl) /td SHA256 /dlib "$(AzureSignDlibPath)" /dmdf "$(AzureSignMetadataFile)" "@(SignBundleEngine)"' />
|
|
64
65
|
</Target>
|
|
65
66
|
|
|
66
|
-
<Target Name="SignBundle"
|
|
67
|
-
|
|
67
|
+
<Target Name="SignBundle"
|
|
68
|
+
DependsOnTargets="EnsureSignToolInstalled;EnsureAzureSignConfigured">
|
|
69
|
+
<Exec Command='"$(SignToolPath)" sign /fd SHA256 /tr $(TimestampUrl) /td SHA256 /dlib "$(AzureSignDlibPath)" /dmdf "$(AzureSignMetadataFile)" "@(SignBundle)"' />
|
|
68
70
|
</Target>
|
|
69
71
|
|
|
70
72
|
<!-- Copy the built installer to the output directory. -->
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
<!-- Code Signing Parameters -->
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<SignOutput Condition="'$(
|
|
14
|
-
<TimestampUrl Condition="'$(TimestampUrl)' == ''">http://timestamp.
|
|
13
|
+
<SignOutput Condition="'$(AzureSignDlibPath)' != ''">true</SignOutput>
|
|
14
|
+
<TimestampUrl Condition="'$(TimestampUrl)' == ''">http://timestamp.acs.microsoft.com</TimestampUrl>
|
|
15
15
|
</PropertyGroup>
|
|
16
16
|
|
|
17
17
|
<!-- Code Signing Paths -->
|
|
@@ -26,4 +26,9 @@
|
|
|
26
26
|
Condition=" '$(SignToolPath)' == '' OR !Exists('$(SignToolPath)') ">
|
|
27
27
|
<Error Text="signtool.exe must be installed. It was expected at '$(SignToolPath)'. This may require an update to the list of supported SDK paths in the WiX installer." />
|
|
28
28
|
</Target>
|
|
29
|
+
|
|
30
|
+
<Target Name="EnsureAzureSignConfigured"
|
|
31
|
+
Condition=" '$(AzureSignDlibPath)' == '' OR !Exists('$(AzureSignDlibPath)') OR '$(AzureSignMetadataFile)' == '' OR !Exists('$(AzureSignMetadataFile)') ">
|
|
32
|
+
<Error Text="Azure Trusted Signing is not configured correctly. AzureSignDlibPath ('$(AzureSignDlibPath)') and AzureSignMetadataFile ('$(AzureSignMetadataFile)') must both point to existing files." />
|
|
33
|
+
</Target>
|
|
29
34
|
</Project>
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
</Target>
|
|
56
56
|
|
|
57
57
|
<!-- Sign the bundled cabinet files -->
|
|
58
|
-
<Target Name="SignCabs"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
SigningTarget="%(SignCabs.FullPath)"/>
|
|
58
|
+
<Target Name="SignCabs"
|
|
59
|
+
DependsOnTargets="EnsureSignToolInstalled;EnsureAzureSignConfigured">
|
|
60
|
+
<Exec Command='"$(SignToolPath)" sign /fd SHA256 /tr $(TimestampUrl) /td SHA256 /dlib "$(AzureSignDlibPath)" /dmdf "$(AzureSignMetadataFile)" "%(SignCabs.FullPath)"' />
|
|
62
61
|
</Target>
|
|
63
62
|
|
|
64
63
|
<!-- Sign the installer -->
|
|
65
|
-
<Target Name="SignMsi"
|
|
66
|
-
|
|
64
|
+
<Target Name="SignMsi"
|
|
65
|
+
DependsOnTargets="EnsureSignToolInstalled;EnsureAzureSignConfigured">
|
|
66
|
+
<Exec Command='"$(SignToolPath)" sign /debug /fd SHA256 /tr $(TimestampUrl) /td SHA256 /dlib "$(AzureSignDlibPath)" /dmdf "$(AzureSignMetadataFile)" "%(SignMsi.FullPath)"' />
|
|
67
67
|
</Target>
|
|
68
68
|
</Project>
|
|
@@ -466,9 +466,17 @@ changes from a working directory. For example, Git, Mercurial and Bazaar.
|
|
|
466
466
|
|
|
467
467
|
.. tip::
|
|
468
468
|
|
|
469
|
-
:option:`-g/--guess-fields <-g>`
|
|
470
|
-
:option:`--guess-description`.
|
|
471
|
-
of the more specific options.
|
|
469
|
+
:option:`-g/--guess-fields <-g>` applies to every field, and takes
|
|
470
|
+
precedence over :option:`--guess-summary` and :option:`--guess-description`.
|
|
471
|
+
Generally, you'll want to use it instead of the more specific options.
|
|
472
|
+
|
|
473
|
+
.. versionchanged:: 7.0
|
|
474
|
+
|
|
475
|
+
:option:`-g/--guess-fields <-g>` now applies to every review request field
|
|
476
|
+
that can be filled in from a commit message, rather than only the summary
|
|
477
|
+
and description. When provided, it also overrides
|
|
478
|
+
:option:`--guess-summary` and :option:`--guess-description` rather than
|
|
479
|
+
just supplying their default.
|
|
472
480
|
|
|
473
481
|
|
|
474
482
|
.. _guessing-behavior:
|
|
@@ -498,9 +506,9 @@ For example:
|
|
|
498
506
|
|
|
499
507
|
$ rbt post --guess-fields=no
|
|
500
508
|
|
|
501
|
-
By default, if no guessing options are specified,
|
|
502
|
-
|
|
503
|
-
fill in the
|
|
509
|
+
By default, if no guessing options are specified, ``auto`` will be used for
|
|
510
|
+
every field. This allows you to run the following and have it automatically
|
|
511
|
+
fill in the fields found in the commit message:
|
|
504
512
|
|
|
505
513
|
.. code-block:: console
|
|
506
514
|
|
|
@@ -530,9 +538,9 @@ values.
|
|
|
530
538
|
On RBTools 0.6 or higher, the default is ``'auto'``. On older versions,
|
|
531
539
|
the default was ``False`` (equivalent to ``'no'``).
|
|
532
540
|
|
|
533
|
-
Setting ``GUESS_FIELDS``
|
|
534
|
-
``GUESS_DESCRIPTION``. Rarely will you need to set
|
|
535
|
-
``GUESS_FIELDS``.
|
|
541
|
+
Setting ``GUESS_FIELDS`` applies to every field, and takes precedence over
|
|
542
|
+
``GUESS_SUMMARY`` and ``GUESS_DESCRIPTION``. Rarely will you need to set
|
|
543
|
+
anything but ``GUESS_FIELDS``.
|
|
536
544
|
|
|
537
545
|
For example, to default to guessing fields for review requests that are either
|
|
538
546
|
newly created or being updated, you can use::
|
|
@@ -540,6 +548,19 @@ newly created or being updated, you can use::
|
|
|
540
548
|
GUESS_FIELDS = 'yes'
|
|
541
549
|
|
|
542
550
|
|
|
551
|
+
.. _configuring-guessing-parsing:
|
|
552
|
+
|
|
553
|
+
Configuring Commit Message Parsing
|
|
554
|
+
----------------------------------
|
|
555
|
+
|
|
556
|
+
When field guessing is enabled, the contents of fields will be parsed from your
|
|
557
|
+
commit messages.
|
|
558
|
+
|
|
559
|
+
If you have commit messages that are formatted in a particular way and would
|
|
560
|
+
like to change how fields are guessed, you may define
|
|
561
|
+
:rbtconfig:`COMMIT_MESSAGE_PARSER`.
|
|
562
|
+
|
|
563
|
+
|
|
543
564
|
.. _automating-rbt-post:
|
|
544
565
|
|
|
545
566
|
Automating rbt post
|