Allow hiding of some hosting services and SCMs during repository config.

Review Request #10879 — Created Feb. 3, 2020 and submitted

Information

Review Board
release-3.0.x

Reviewers

This introduces new attributes to HostingService to completely hide a
hosting service from configuration or to hide specific supported SCMs.
This is done to keep some level of support enabled in Review Board for
hosting service configuration or their SCMs that may no longer be
supported by the service itself.

If configuring an instance that is using an otherwise-hidden hosting
service or SCM, it will continue to be shown during repository
configuration. This ensures that loading a repository doesn't result in
us showing incorrect information.

To mark a HostingService as hidden, simply set visible = False on
the class.

To mark SCMs on a HostingService as hidden, the visible_scmtools
attribute needs to be set to a list of all the visible SCMTool
IDs/names. If this is not set (None is the default), then any code
that accesses it will need to fall back on supported_scmtools (this is
because we would need a class-level property, which we can't do at this
time).

Unit tests passed.

Tested creating and editing repositories with visible HostingServices.

Tested setting some services and SCMs on a service as hidden and verifying
that they didn't show up by default. Then tested by editing repositories
that were using those and verified that they were showing up and could be
saved.

Summary ID
Allow hidding of some hosting services and SCMs during repository config.
This introduces new attributes to `HostingService` to completely hide a hosting service from configuration or to hide specific supported SCMs. This is done to keep some level of support enabled in Review Board for hosting service configuration or their SCMs that may no longer be supported by the service itself. If configuring an instance that is using an otherwise-hidden hosting service or SCM, it will continue to be shown during repository configuration. This ensures that loading a repository doesn't result in us showing incorrect information. To mark a `HostingService` as hidden, simply set `visible = False` on the class. To mark SCMs on a `HostingService` as hidden, the `visible_scmtools` attribute needs to be set to a list of all the visible SCMTool IDs/names. If this is not set (`None` is the default), then any code that accesses it will need to fall back on `supported_scmtools` (this is because we would need a class-level property, which we can't do at this time).
5e8750ee91a7fa1011b6174fb66bdad1b5b0eb91
Description From Last Updated

Typo in summary: hidding -> hiding

daviddavid
david
  1. 
      
  2. Show all issues

    Typo in summary: hidding -> hiding

  3. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-3.0.x (a775605)