Guide to Requesting Code Reviews

Code review will operate on a request-by-label basis for clients on VIP Go as of July 15th, 2020.  

Changes

  • To request a review from WordPress VIP, please add the label “[VIP] Review Request” to the pull request
  • A review is no longer mandatory, so branch protection rules have been removed
  • You can now leverage GitHub protection rules that work best for your team’s workflow

What has not changed

  • The PHPCS bot will continue to run on all new pull requests in any branch
  • Service level agreements regarding review timeliness remain unchanged
  • Branches, previously not reviewed by WordPress VIP, will remain un-reviewed
  • No changes for sites on WordPress.com (SVN)

Why the change?

This new process will empower developers to choose when and which pull requests should be reviewed by WordPress VIP, because we recognize that many updates do not require review.

Frequently Asked Questions

How do I request a review?

If you would like a review on your pull request before merging to production, add the label* “[VIP] Review Request“.  Please note that pull requests without the label will not be reviewed.

You can find the labels in the GitHub UI on the right sidebar of your pull request:

* This label will become available on all applicable repositories prior to July 15th, 2020.

Do I need to request a reviewer?

No, simply add the label from the available list of labels when your pull request is ready for review.

How do I merge without review?

After opening a pull request, you may merge to your production branch by clicking on the “Merge pull request” button near the end of the pull request:

Has anything changed in my GitHub repository?

Yes, we’ve added a new label ([VIP] Review Request) and modified the branch protection rules for your primary branch.  However, you are welcome to modify the branch protection rules as needed (e.g. to customize a workflow):

Pull request reviews are no longer required.

When should I skip a review?

We recommend reviews for pull requests with security or performance implications. Reviews are also helpful if your team has questions about development best practices.

For smaller and less complex changes, a review may not be necessary. For example:

  • CSS changes
  • Re-compiling of assets
  • Changes to readme, build scripts, ads.txt, and other non-code files
  • Third-party library or plugin updates (via composer, npm, etc.)
  • Reverts of previous pull requests
  • Immaterial changes such as changing strings or variable names, whitespace changes, reformatting, and other minor refactors

How do I set my own branch protection rules?

Branch protection rules are a set of configurations that allow repository administrators to enforce security policies (i.e. ensuring code is reviewed, preventing accidental branch deletions, etc.) and to require successful automated checks before pull requests can be merged.

Go to your repository branch settings (https://github.com/wpcomvip/{myrepo}/settings/branches), choose a branch, and begin customizing.  More information about branch protection rules. Please note: rules can be customized after  VIP’s branch protection rules are removed on July 15th, 2020. 

What can I use branch protection rules for?

GitHub continually adds features to their protection rules, but here are some current potential use cases for imposing restrictions:

  • Ensuring that the PHPCS bot scans all changes by enforcing pull requests on certain branches
  • Internal code reviews on pull requests by requiring at least one approving review before merging
  • Restricting which users can merge pull requests

What types of workflows can I use for pull requests?

You may combine branch protection rules and GitHub’s pull request features with your own internal processes and/or tools to customize your workflow. Some examples:

  • If you have your own private repository and CI/CD creating pull requests in your VIP repository, you can automate selectively adding the label to pull requests (i.e. if your release manager gives it a “Needs VIP Review” label in the private repo, your automation adds the VIP label in the VIP repo)
  • If you would like to start (or already have been) requiring internal reviews on pull requests, you can re-establish the rules to require pull requests
  • If you have certain designated team members to decide when to merge a pull request, you can add their names to a list of people allowed to merge
  • WordPress VIP has a CI/CD option that can be used post-merge to run code builds, so that only source files are present in your main branch and built files are not part of a changeset during reviews

What if I want to require review on all PRs?

We understand that some WordPress VIP clients may wish to continue with the required review policy for the foreseeable future, or may not wish to change an existing custom review configuration (i.e. for dual-deployment). If these situations apply to you, please reach out to your Relationship Manager or VIP Support, and we’ll be happy to discuss your needs and ensure that your repositories reflect your requirements.

What if I have concerns or questions?

We realize everyone has a different workflow and we are here to assist you with this change. Please reach out to your account team or open a ticket with us.

 

General ticket guidelines

VIP is here to help anytime you have a technical issue that needs investigating, and we strive to respond as completely and as accurately as possible. By working together with us and following the guidelines outlined on this page, we will be able to troubleshoot and investigate a reported issue to reach a timely resolution. Not sure how to report a problem? The best way is to head over to your support dashboard, and submit a ticket.

All set? Let’s get started.

  • In the body of your request, include the domain name(s) that correspond to the VIP Go environment you are referring to.
  • Please open up a new ticket for each individual request.
  • Note that we reserve “Urgent” tickets for times when there are important security issues or your site cannot be accessed. Please refrain from using the “Urgent” indicator otherwise.
  • If the ticket submitted has insufficient information, this will increase the feedback cycle time for resolving the issue.

Prior to submitting a ticket

Please collect the following information:

  • What steps have you taken to investigate this issue so far?
  • What have you determined from looking at New Relic?
  • What have you determined from using the Query Monitor?
  • Is the site down for everyone, or just you?
  • Have you isolated advertisements or other third-party content as possible sources of the problem?
  • Have your developers replicated this issue on non-production environments?

Submitting a ticket

Please send along the information gathered in the previous step, along with:

  • URLs affected: front end, wp-admin, or both?
  • Steps to replicate the issue – this very important so we can start analyzing the problem right away.
  • Description of issue + supporting screenshots, error messages, and support details if applicable.
  • What is the expected behavior?
  • How does the actual behaviour differ from the expectation?
  • Timings of issue occurrence.
  • Impact/number of users affected?

Additional and supporting information

  • Which network are affected users on? e.g. office, home, mobile
  • Which browser(s) the issue is appearing on?
  • If one user, what is the user’s source IP? http://whatismyip.akamai.com/
  • If one or more users only, usernames of the affected users?
  • Have there been recent deployments?
  • Have there been network changes on your side? (e.g. incl. DNS if applicable or internal network)
  • A traceroute and HTTP headers
  • HAR file for the failing or problematic requests
  • Screen share or videos demonstrating the issue

Retiring sites from VIP Go

When you wish to retire a site from VIP Go, we ask that you notify the VIP team via a support ticket 30 days in advance of the site retirement date. At the end of this period, we will normally retire the site(s) along with the non-production environment(s) and update your account’s billing details as per our agreement.

In the case of selective retirement of subsites within a Multisite, we will delete/archive the requested sites and production monitoring for these subsites sites will be disabled.

In order to archive or migrate the site to other hosting, you will need several elements, and we cover these below.

Codebase / GitHub repository

You may wish to first read  about the structure of your VIP Go codebase.

If the GitHub repository will no longer be used by an active VIP Go site, once the site(s) have been retired, the associated GitHub repository will be removed as well so please ensure you have a local copy of the repository saved. You can either download a copy of the code in your VIP Go repository as it is, clone a copy of the Git repository, to retain the version history and all changes, or we can transfer the repository to your GitHub account, to retain all version history, GitHub issues, GitHub pages, etc.

Download a copy of your codebase

  1. Navigate to your VIP Go repository on GitHub
  2. Select “Clone or Download” from the front page of your repository
  3. Select “Download ZIP”
  4. Check the contents, and save the file

Clone your repository

GitHub maintains documentation on cloning a GitHub repository.

Transfer a repository

If you would like to transfer your VIP Go repository to your GitHub account, please contact us; read more about repository transfers.

Files and data

If you would like an archive of all files that have been uploaded to your site, please contact us. The archive will be supplied with the same directory structure as the file uploads. The data will be supplied as SQL from the mysqldump client.

Accessing VIP support

The following tools help you navigate the VIP Go environment and to communicate with the VIP Team.

Your VIP Dashboard

The VIP Dashboard is the home for managing your VIP Go applications. The VIP Dashboard lists all your VIP Go apps, their various environments, plus site management tools and settings.

Your support dashboard

Your welcome email from WordPress.com VIP includes a link to log into your support dashboard. This is the best method to communicate with VIP on technical or urgent issues. By logging in, you can easily see all of the communication between VIP and your organization.

Before opening a ticket, please ensure you follow our ticket guidelines.

VIP documentation

Our VIP Go Documentation is an important resource to share with your development team. It includes information on how to submit a theme for review, and how to access your code.

VIP Lobby

It’s very important that all members of your team subscribe to the VIP Lobby. This is where we post security updates, upgrade notices, and actionable items. To ensure you receive the latest updates, you’ll want to subscribe to new posts. When logged in, you can do this by clicking “Subscribe to Email Updates” or the “Follow” button in the bottom right-hand corner.

VIP News

Wondering what innovative things our other VIP clients are doing, or what new features we are building out? Be sure to visit VIP News, where we share interesting case studies, important new features, and updates about WordPress core.

Ready to get started?

Drop us a note.

No matter where you are in the planning process, we’re happy to help, and we’re actual humans here on the other side of the form. 👋 We’re here to discuss your challenges and plans, evaluate your existing resources or a potential partner, or even make some initial recommendations. And, of course, we’re here to help any time you’re in the market for some robust WordPress awesomeness.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.