diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 61fa2d6..75f9306 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -12,6 +12,7 @@
 import fnmatch
 import os
 import re
+import subprocess
 import sys
 import traceback
 
@@ -32,6 +33,8 @@
 
 AUTHORS_FILE_NAME = 'AUTHORS'
 
+DOCS_PREVIEW_URL = 'https://skia.org/?cl='
+
 
 def _CheckChangeHasEol(input_api, output_api, source_file_filter=None):
   """Checks that files end with atleast one \n (LF)."""
@@ -239,6 +242,61 @@
   return results
 
 
+def PostUploadHook(cl, change, output_api):
+  """git cl upload will call this hook after the issue is created/modified.
+
+  This hook does the following:
+  * Adds a link to preview docs changes if there are any docs changes in the CL.
+  * Adds 'NOTRY=true' if the CL contains only docs changes.
+  """
+
+  results = []
+  atleast_one_docs_change = False
+  all_docs_changes = True
+  for affected_file in change.AffectedFiles():
+    affected_file_path = affected_file.LocalPath()
+    file_path, _ = os.path.splitext(affected_file_path)
+    if 'site' == file_path.split(os.path.sep)[0]:
+      atleast_one_docs_change = True
+    else:
+      all_docs_changes = False
+    if atleast_one_docs_change and not all_docs_changes:
+      break
+
+  issue = cl.issue
+  rietveld_obj = cl.RpcServer()
+  if issue and rietveld_obj:
+    original_description = rietveld_obj.get_description(issue)
+    new_description = original_description
+
+    # If the change includes only doc changes then add NOTRY=true in the
+    # CL's description if it does not exist yet.
+    if all_docs_changes and not re.search(
+        r'^NOTRY=true$', original_description, re.M | re.I):
+      new_description += '\nNOTRY=true'
+      results.append(
+          output_api.PresubmitNotifyResult(
+              'This change has only doc changes. Automatically added '
+              '\'NOTRY=true\' to the CL\'s description'))
+
+    # If there is atleast one docs change then add preview link in the CL's
+    # description if it does not already exist there.
+    if atleast_one_docs_change and not re.search(
+        r'^DOCS_PREVIEW=.*', original_description, re.M | re.I):
+      # Automatically add a link to where the docs can be previewed.
+      new_description += '\nDOCS_PREVIEW= %s%s' % (DOCS_PREVIEW_URL, issue)
+      results.append(
+          output_api.PresubmitNotifyResult(
+              'Automatically added a link to preview the docs changes to the '
+              'CL\'s description'))
+
+    # If the description has changed update it.
+    if new_description != original_description:
+      rietveld_obj.update_description(issue, new_description)
+
+    return results
+
+
 def CheckChangeOnCommit(input_api, output_api):
   """Presubmit checks for the change on commit.
 
diff --git a/codereview.settings b/codereview.settings
index 0dba340..f8e8c9d 100644
--- a/codereview.settings
+++ b/codereview.settings
@@ -5,3 +5,4 @@
 BUG_PREFIX: skia:
 TRYSERVER_SVN_URL: https://skia-try.googlecode.com/svn
 PROJECT: skia
+RUN_POST_UPLOAD_HOOK: True
