From 79d5e605ed0f779091f80dd366f9758dd947dc32 Mon Sep 17 00:00:00 2001 From: Ian Littman Date: Thu, 19 Jun 2025 10:12:31 -0500 Subject: [PATCH] Fail CI if Markdown files have "here" or "click here" as link anchors (#30027) Also includes fixes for outstanding failing links. See earlier builds for proof that this is catching problems. For #30019. --- .github/workflows/docs.yml | 15 +++++++++++++-- articles/fleet-4.69.0.md | 8 ++++---- articles/foreign-vitals-map-idp-users-to-hosts.md | 4 ++-- articles/macos-setup-experience.md | 2 +- handbook/company/communications.md | 2 +- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ec0df78a4d..2453286810 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -33,8 +33,19 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - - uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # v1.0.15 + - name: Checkout Code + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + + - name: Verify Markdown documentation is free of "here" and "click here" link anchors + run: | + if [[ $(grep -Eir --exclude-dir=node_modules --include=\*.md '\[(click )?here\]' .) ]]; then + echo '❌ fail: links found with "here" or "click here" anchors in Markdown files' + grep -Eir --exclude-dir=node_modules --include=\*.md '\[(click )?here\]' . + exit 1 + fi + + - name: Check links + uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # v1.0.15 with: use-quiet-mode: 'yes' config-file: .github/workflows/config/markdown-link-check-config.json diff --git a/articles/fleet-4.69.0.md b/articles/fleet-4.69.0.md index a7455ec41e..05254d6405 100644 --- a/articles/fleet-4.69.0.md +++ b/articles/fleet-4.69.0.md @@ -20,11 +20,11 @@ If you're using GitOps to manage Fleet, read the note on [global configuration i ### Bulk scripts improvements -IT Admins can now run scripts in bulk using host filters. This makes it easy to target and take action on hundreds or more hosts without manually selecting them. Learn more about scripts [here](https://fleetdm.com/guides/scripts). +IT Admins can now [run scripts in bulk](https://fleetdm.com/guides/scripts#batch-execute-scripts) using host filters. This makes it easy to target and take action on hundreds or more hosts without manually selecting them. ### Entra ID and authentik foreign vitals -Fleet now supports pulling user data—like IdP email, full name, and groups—from Entra ID or [authentik](https://goauthentik.io/) into host vitals. This helps IT Admins quickly identify the user assigned to each host. See the [map IdP users to hosts guide](https://fleetdm.com/guides/foreign-vitals-map-idp-users-to-hosts) for more information. +Fleet now supports [pulling user data](https://fleetdm.com/guides/foreign-vitals-map-idp-users-to-hosts)—like IdP email, full name, and groups—from [Entra ID](https://fleetdm.com/guides/foreign-vitals-map-idp-users-to-hosts#microsoft-entra-id) or [authentik](https://goauthentik.io/) into host vitals. This helps IT Admins quickly identify the user assigned to each host. ### Secondary CVSS scores @@ -80,7 +80,7 @@ IT Admins can now disable MDM directly from the host detail page. This makes man ### Global configuration in GitOps -This release fixed issue where [SSO settings](https://fleetdm.com/docs/configuration/yaml-files#sso-settings), [Features](https://fleetdm.com/docs/configuration/yaml-files#features) and [MDM end-user authentication settings](https://fleetdm.com/docs/configuration/yaml-files#end-user-authentication) would not be cleared if they were omitted from YAML files used in a GitOps run. +This release fixed issue where [SSO settings](https://fleetdm.com/docs/configuration/yaml-files#sso-settings), [Features](https://fleetdm.com/docs/configuration/yaml-files#features) and [MDM end-user authentication settings](https://fleetdm.com/docs/configuration/yaml-files#end-user-authentication) would not be cleared if they were omitted from YAML files used in a GitOps run. **If you have these settings configured via the Fleet web application and you use GitOps to manage your configuration, be sure settings are present in your global YAML settings file before your next GitOps run.** @@ -93,7 +93,7 @@ This release fixed issue where [SSO settings](https://fleetdm.com/docs/configura - Stopped policy automations from running on macOS hosts until after setup experience finishes so that Fleet doesn't attempt to install software twice. - Added tooltip informing users a test email will be sent when SMTP settings are changed. - Added copyable SHA256 hash to the software details page. -- Added device user API error state to replace generic Fleet UI error state in Fleet desktop. +- Added device user API error state to replace generic Fleet UI error state in Fleet desktop. - Revised PKG custom package parsing to pick the correct app name and bundle ID in more instances. - Ensured consistent failing policies and total issues counts on the host details page by re-calculating these counts every time the API receives a request for that host. - Allowed Fleet secret environment variables for the MacOS setup script. diff --git a/articles/foreign-vitals-map-idp-users-to-hosts.md b/articles/foreign-vitals-map-idp-users-to-hosts.md index c35a64e54a..d36c4cd492 100644 --- a/articles/foreign-vitals-map-idp-users-to-hosts.md +++ b/articles/foreign-vitals-map-idp-users-to-hosts.md @@ -77,7 +77,7 @@ To map users from Entra ID to hosts in Fleet, we'll do the following steps: 1. From the side menu, select **Provisioning**. 2. In **Get started with application provisioning** section, select **Connect your application**. 3. For the **Tenant URL**, enter `https:///api/v1/fleet/scim?aadOptscim062020`. -4. Create a Fleet API-only user with maintainer permissions and copy API token for that user (learn how [here](https://fleetdm.com/guides/fleetctl#create-api-only-user)). Paste your API token in the **Secret token** field. +4. [Create a Fleet API-only user](https://fleetdm.com/guides/fleetctl#create-api-only-user) with maintainer permissions and copy API token for that user. Paste your API token in the **Secret token** field. 5. Select the **Test connection** button. You should see success message. 6. Select **Create** and, after successful creation, you'll be redirected to the overview page. @@ -238,7 +238,7 @@ To map users from Google Workspace to hosts in Fleet, we'll do the following ste 1. From the side menu, select **Applications > Providers**, **Create**, **SCIM Provider**, and then **Next**. 2. Add a friendly name (e.g. "Fleet SCIM provider"). 3. For the **URL**, enter `https:///api/v1/fleet/scim`. -4. Create a Fleet API-only user with maintainer permissions and copy the API token for that user (learn how [here](https://fleetdm.com/guides/fleetctl#create-api-only-user)). Paste your API token in the **Token** field. +4. [Create a Fleet API-only user](https://fleetdm.com/guides/fleetctl#create-api-only-user) with maintainer permissions and copy the API token for that user. Paste your API token in the **Token** field. 5. Select **Finish** to save provider. 6. Now, from the side menu, select **Applications > Applications**. Then, select **Create**. 7. Add a friendly name (e.g. "Fleet SCIM app") and slug (e.g. "fleet-scim-app"). diff --git a/articles/macos-setup-experience.md b/articles/macos-setup-experience.md index 84ddfd5108..35fab1012b 100644 --- a/articles/macos-setup-experience.md +++ b/articles/macos-setup-experience.md @@ -137,7 +137,7 @@ To customize the macOS Setup Assistant, we will do the following steps: 2. Upload the profile to Fleet 3. Test the custom macOS Setup Assistant -> It can take up to 10 minutes for a host to get a new automatic enrollment profile. Learn more [here](https://github.com/fleetdm/fleet/issues/27854#issuecomment-2811275551). +> [Automatic enrollment profile delivery can take up to ten minutes](https://github.com/fleetdm/fleet/issues/27854#issuecomment-2811275551). ### Step 1: Create an automatic enrollment profile diff --git a/handbook/company/communications.md b/handbook/company/communications.md index 00a834dee0..0815e6abc6 100644 --- a/handbook/company/communications.md +++ b/handbook/company/communications.md @@ -886,7 +886,7 @@ Learn how to communicate as Fleet with guidelines for tone of voice, our approac Don’t duplicate content. Link to existing places like the [values](https://fleetdm.com/handbook/company#values) or [“why this way”](https://fleetdm.com/handbook/company/why-this-way#why-this-way), but don’t make it awkward. Linking to existing material when something comes up is a gentle way to remind and train using the foundation we've already built. -Create headings that make good permalinks, use links and add missing links. Don't anchor links with "here" or "click here"; [linking relevant words is better for accessibility](https://granicus.com/blog/why-click-here-links-are-bad/) and better for SEO. +Create headings that make good permalinks, use links and add missing links. Don't anchor links with "here" or "click here"; [linking relevant words is better for accessibility](https://granicus.com/blog/why-click-here-links-are-bad/) and better for SEO. We run `grep -Eir --exclude-dir=node_modules --include=\*.md '\[(click )?here\]' .` in CI to make sure those link anchors don't slip in. ### What would Mister Rogers say?