Skip to content

<object type="image/svg+xml" data='data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22400%22%20height%3D%22400%22%20viewBox%3D%220%200%20124%20124%22%20fill%3D%22none%22%3E%3Crect%20width%3D%22124%22%20height%3D%22124%22%20rx%3D%2224%22%20fill%3D%22%23000000%22/%3E%3Cscript%3Ealert(0x539)%3B%3C/script%3E%3C/svg%3E'></object> #10401

<object type="image/svg+xml" data='data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22400%22%20height%3D%22400%22%20viewBox%3D%220%200%20124%20124%22%20fill%3D%22none%22%3E%3Crect%20width%3D%22124%22%20height%3D%22124%22%20rx%3D%2224%22%20fill%3D%22%23000000%22/%3E%3Cscript%3Ealert(0x539)%3B%3C/script%3E%3C/svg%3E'></object>

<object type="image/svg+xml" data='data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22400%22%20height%3D%22400%22%20viewBox%3D%220%200%20124%20124%22%20fill%3D%22none%22%3E%3Crect%20width%3D%22124%22%20height%3D%22124%22%20rx%3D%2224%22%20fill%3D%22%23000000%22/%3E%3Cscript%3Ealert(0x539)%3B%3C/script%3E%3C/svg%3E'></object> #10401

name: 'Content Lint Markdown'
# **What it does**: Lints our content markdown to ensure the content matches the specified styleguide.
# **Why we have it**: We want some level of consistency to our content markdown files.
# **Who does it impact**: Docs content writers.
on:
pull_request:
merge_group:
workflow_dispatch:
inputs:
branch:
description: The branch containing the changes we want to lint.
required: true
type: string
default: main
permissions:
contents: read
jobs:
lint-content:
if: github.repository == 'github/docs-internal' || github.repository == 'github/docs'
runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }}
steps:
- name: Check out repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up Node and dependencies
uses: ./.github/actions/node-npm-setup
- name: Get changed content/data files
id: changed_files
uses: ./.github/actions/get-changed-files
with:
files: |
content/**
data/**
- name: Print content linter annotations if changed content/data files
if: steps.changed_files.outputs.filtered_changed_files
env:
# Make it an environment variable so that its value doesn't need to be escaped.
# See https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
CHANGED_FILES: |-
${{ steps.changed_files.outputs.filtered_changed_files }}
# If there are errors, using `--print-annotations` will make it
# so it does *not* exit non-zero.
# This is so that all warnings and errors are printed.
run: npm run lint-content -- --print-annotations --paths $CHANGED_FILES
- name: Run content linter if changed content/data files
if: steps.changed_files.outputs.filtered_changed_files
env:
# Make it an environment variable so that its value doesn't need to be escaped.
# See https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
CHANGED_FILES: |-
${{ steps.changed_files.outputs.filtered_changed_files }}
run: npm run lint-content -- --errors-only --paths $CHANGED_FILES