Skip to content

Changed Vale and markdownlint worklows to run on just the changed lines#5830

Open
himeshsiriwardana wants to merge 12 commits intowso2:masterfrom
himeshsiriwardana:change-vale-action
Open

Changed Vale and markdownlint worklows to run on just the changed lines#5830
himeshsiriwardana wants to merge 12 commits intowso2:masterfrom
himeshsiriwardana:change-vale-action

Conversation

@himeshsiriwardana
Copy link
Contributor

@himeshsiriwardana himeshsiriwardana commented Jan 12, 2026

Purpose

$subject

Summary by CodeRabbit

  • Chores
    • Adjusted CI style/lint workflows to focus checks on changed Markdown and to surface results more clearly; refined filtering to target added content.
  • Documentation
    • Rewrote and expanded SMS OTP guide: clarified intro, added prerequisites, provided step-by-step configuration and parameter details (expiry, numeric-only, length, resend attempts, provider), and updated the setup/try-it flow.
  • Documentation
    • Small wording and formatting tweaks to single-page app registration guidance.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 12, 2026

Walkthrough

Updated CI workflows (minor lint filter change and a no-op markdownlint line change) and expanded the SMS OTP passwordless login docs with clearer prerequisites and a new configuration section; two SPA docs received trivial whitespace/wording edits.

Changes

Cohort / File(s) Summary
CI workflows
.github/workflows/markdownlint.yml, .github/workflows/style-checker.yml
Small workflow edits: markdownlint.yml shows a non-functional line change; style-checker.yml changes Vale filter_mode from diff_context to added.
SMS OTP docs
en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md
Expanded intro and prerequisites; replaced "Set up SMS OTP" with a detailed "Configure SMS OTP" section including parameters (expiry phrasing, numeric-only, length, resend attempts); retained enable/try sections.
SPA docs (minor)
en/identity-server/next/docs/guides/applications/register-single-page-app.md, en/includes/guides/applications/register-single-page-app.md
Trailing newline added and a tiny wording tweak in include; no functional changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped into CI with a curious grin,
Reviewdog chased typos, and linting did begin.
SMS codes snug, instructions clear and bright,
Docs trimmed and tidy—ready for the night.
A carrot celebration for the PR's good flight. 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description is largely incomplete. It only contains a 'Purpose' section with '$subject' placeholder and is missing critical required sections including Related PRs, Test environment, and Security checks. Complete the description by replacing '$subject' with actual purpose details and filling in all required template sections: Related PRs, Test environment, and Security checks.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: updating Vale and markdownlint workflows to run only on changed lines, which aligns with the actual workflow file modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@himeshsiriwardana himeshsiriwardana changed the title Change vale action Changed Vale and markdownlint comments to run on just the changed lines Jan 12, 2026
@himeshsiriwardana himeshsiriwardana changed the title Changed Vale and markdownlint comments to run on just the changed lines Changed Vale and markdownlint worklows to run on just the changed lines Jan 12, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/markdownlint.yml:
- Around line 16-30: The changed-files step is emitting comma-separated paths
which reviewdog expects as newline-separated; update the
tj-actions/changed-files step (uses: tj-actions/changed-files@v46, id:
changed-files) to set separator: "\n" so that
steps.changed-files.outputs.all_changed_files produces newline-separated file
paths consumed by the reviewdog/action-markdownlint step (paths: ${{
steps.changed-files.outputs.all_changed_files }}).

In @.github/workflows/style-checker.yml:
- Around line 23-27: The workflow references the mutable branch tag
"errata-ai/vale-action@reviewdog"; pin the action to the stable release by
replacing that with the specific version tag (for example
"errata-ai/vale-action@v2.1.1") in the step that currently reads uses:
errata-ai/vale-action@reviewdog so the action is reproducible and secure.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 13241e6 and 84232c9.

📒 Files selected for processing (2)
  • .github/workflows/markdownlint.yml
  • .github/workflows/style-checker.yml
🔇 Additional comments (2)
.github/workflows/markdownlint.yml (2)

12-14: LGTM!

Using fetch-depth: 0 is correct for enabling proper diff detection between the PR branch and base branch.


22-23: Good use of conditional execution.

The if condition properly guards against running the linter when no markdown files have changed, avoiding unnecessary workflow failures.

Comment on lines 16 to 30
- uses: tj-actions/changed-files@v46
id: changed-files
with:
files: '**/*.md'
separator: ","

- name: Markdownlint via reviewdog
if: steps.changed-files.outputs.any_changed == 'true'
uses: reviewdog/action-markdownlint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
filter_mode: diff
fail_on_error: true
paths: ${{ steps.changed-files.outputs.all_changed_files }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

reviewdog/action-markdownlint paths parameter documentation

💡 Result:

Do you mean the GitHub Actions workflow trigger "paths" (on: push / pull_request paths) or an input named "paths" on the reviewdog/action-markdownlint GitHub Action?


🌐 Web query:

site:github.com reviewdog/action-markdownlint action.yml paths input

💡 Result:

I searched GitHub for reviewdog/action-markdownlint and didn't find a repository or an action.yml for that name. I did find many reviewdog actions (e.g., action-eslint, action-shellcheck, action-actionlint) and separate markdownlint actions (markdownlint-cli / actionshub/markdownlint). See examples: [1][2][3].

If you want, tell me whether you meant:

  • a reviewdog-provided action for markdownlint (which doesn't appear to exist), or
  • a standalone markdownlint GitHub Action (e.g., markdownlint-cli), and I’ll fetch that action.yml and check for a "paths" / "paths"‑style input.

Sources:
[1] reviewdog/action-eslint (example reviewdog action).
[2] reviewdog/action-shellcheck (example reviewdog action).
[3] actionshub/markdownlint / markdownlint-cli (markdownlint actions on GitHub).


🌐 Web query:

site:github.com reviewdog/action-markdownlint

💡 Result:

I couldn't find an active GitHub repository named reviewdog/action-markdownlint. I did find:

  • A package/registry entry for reviewdog/action-markdownlint (package listing, last release >1 year ago). [1]
  • The reviewdog organization hosts many other action-* repos (e.g., action-remark-lint) and the main reviewdog project. [2][3]
  • Note: several reviewdog actions were reported compromised in March 2025 (affecting reviewdog/action-setup and actions that used it). Consider this if you planned to use any reviewdog actions. [4]

Sources:

  1. Package usage listing for reviewdog/action-markdownlint. [1]
  2. reviewdog organization / reviewdog repo. [2]
  3. reviewdog/action-remark-lint (example reviewdog action). [3]
  4. GitHub Advisory / incident report for compromised reviewdog actions (Mar 2025). [4]

🏁 Script executed:

cat -n .github/workflows/markdownlint.yml

Repository: wso2/docs-is

Length of output: 986


🌐 Web query:

reviewdog/action-markdownlint v1 action.yml github

💡 Result:

I couldn't find a repository named reviewdog/action-markdownlint or an action.yml for that exact repo/tag on GitHub. The reviewdog org has many action templates (e.g., action-template) and other linter actions, but no action-markdownlint repository appears to exist. [1][2]

If you meant a general Markdown linter action, the GitHub Marketplace recommends alternatives (e.g., DavidAnson/markdownlint-cli2-action or GitHub Super-Linter). [3]

References

  • reviewdog organization / action templates and actions. [1]
  • reviewdog main repo (reviewdog CLI + actions info). [2]
  • GitHub Marketplace — markdown-lint / alternatives. [3]

If you want, I can:

  • search for a specific fork/third-party repo named action-markdownlint, or
  • show how to create a reviewdog-based markdownlint action (example action.yml). Which would you prefer?

🏁 Script executed:

# Search for any GitHub issues or documentation mentioning the markdownlint action
rg -i "markdownlint" --type md --type yml .github/

Repository: wso2/docs-is

Length of output: 83


🏁 Script executed:

# Check if there are any recent commits or issues related to this workflow
git log --oneline -20 -- .github/workflows/markdownlint.yml

Repository: wso2/docs-is

Length of output: 137


🏁 Script executed:

# Check the recent commit to see what changed
git show 84232c95c -- .github/workflows/markdownlint.yml

Repository: wso2/docs-is

Length of output: 1227


🏁 Script executed:

# Search for any mention of action-markdownlint in the entire repo
rg "action-markdownlint" .

Repository: wso2/docs-is

Length of output: 38


🏁 Script executed:

# Search for any documentation about this workflow
find . -name "README*" -o -name "WORKFLOW*" | head -10

Repository: wso2/docs-is

Length of output: 103


🌐 Web query:

"reviewdog/action-markdownlint" separator paths format github issues

💡 Result:

Short answer: when an action accepts a "paths" (or "globs") input that is a single string list, provide entries separated by newlines by default; if the action exposes a "separator" input you can change that (e.g., to a comma) and pass a single-line, separator‑joined string. Use quoting / multiline YAML scalar so GitHub Actions preserves newlines.

Examples / references:

  • markdownlint-cli2-action: globs default to newline-separated; has a separator input (defaults to \n) so you can pass globs: 'a.md,b.md' with separator: ','. [1]
  • reviewdog-style actions commonly accept a single-string paths input (newline‑separated) — see detect-secrets and other reviewdog actions that document a paths/workdir input and examples using a single string. Quote/multiline where shown. [2][3]

If you want, paste the exact action.yml or your workflow snippet and I’ll show the exact YAML you should use.

Sources:

  1. DavidAnson/markdownlint-cli2-action (separator / globs docs). [1]
  2. reviewdog/action-detect-secrets (paths/workdir input examples). [2]
  3. example gist & reviewdog action examples demonstrating newline/multiline inputs. [3]

🌐 Web query:

"reviewdog/action-markdownlint" comma separated paths

💡 Result:

Short answer: reviewdog actions expect path/glob inputs as newline-separated lines (not comma-separated). Use newlines or convert commas to newlines (e.g. with bash parameter expansion or yq). Example:

with:
path: |
docs
README.md
subdir/*.md

If you have a comma list, convert it before passing (example in a run step):

  • run: echo "${{ inputs.PATHS//,/\n }}" > paths.txt

Sources: reviewdog action input docs (examples show newline-separated path/glob inputs) and markdownlint/action pattern docs. [1][2]

References
[1] reviewdog action-shellcheck inputs (path: directories are separated by lines). [turn0search2]
[2] markdownlint-cli2-action (globs are newline-delimited). [turn0search6]


Separator mismatch: paths expects newline-separated values, not comma-separated.

The tj-actions/changed-files step outputs comma-separated paths, but reviewdog/action-markdownlint expects newline-separated file paths. Change the separator to "\n":

🔧 Proposed fix
      - uses: tj-actions/changed-files@v46
        id: changed-files
        with:
          files: '**/*.md'
-         separator: ","
+         separator: "\n"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: tj-actions/changed-files@v46
id: changed-files
with:
files: '**/*.md'
separator: ","
- name: Markdownlint via reviewdog
if: steps.changed-files.outputs.any_changed == 'true'
uses: reviewdog/action-markdownlint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
filter_mode: diff
fail_on_error: true
paths: ${{ steps.changed-files.outputs.all_changed_files }}
- uses: tj-actions/changed-files@v46
id: changed-files
with:
files: '**/*.md'
separator: "\n"
- name: Markdownlint via reviewdog
if: steps.changed-files.outputs.any_changed == 'true'
uses: reviewdog/action-markdownlint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
filter_mode: diff
fail_on_error: true
paths: ${{ steps.changed-files.outputs.all_changed_files }}
🤖 Prompt for AI Agents
In @.github/workflows/markdownlint.yml around lines 16 - 30, The changed-files
step is emitting comma-separated paths which reviewdog expects as
newline-separated; update the tj-actions/changed-files step (uses:
tj-actions/changed-files@v46, id: changed-files) to set separator: "\n" so that
steps.changed-files.outputs.all_changed_files produces newline-separated file
paths consumed by the reviewdog/action-markdownlint step (paths: ${{
steps.changed-files.outputs.all_changed_files }}).

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md (1)

16-16: Fix article-noun agreement.

The line uses "an mobile" but should use "a mobile" since "mobile" starts with a consonant sound.

📝 Proposed fix
-- [Update the user profile of the users]({{base_path}}/guides/users/manage-users/#update-the-profile) with an mobile number to which the user will receive the OTP.
+- [Update the user profile of the users]({{base_path}}/guides/users/manage-users/#update-the-profile) with a mobile number to which the user will receive the OTP.
🧹 Nitpick comments (1)
en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md (1)

4-4: Good improvement to clarity and conciseness.

The rewrite successfully converts passive voice to active voice, making the description more direct and easier to understand.

Optional: Minor refinement for grammatical precision

If you want to be more grammatically precise, consider making "authentication method" or similar the subject:

-SMS OTP (One-Time Password) sends a password valid for a short duration to the user's registered mobile number. The user must enter the password to log in.
+SMS OTP (One-Time Password) is an authentication method that sends a password valid for a short duration to the user's registered mobile number. The user must enter the password to log in.

However, the current wording is acceptable and commonly used in technical documentation.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 84232c9 and 6207468.

📒 Files selected for processing (1)
  • en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md (1)

14-14: Grammar error: incorrect article.

"an mobile number" should be "a mobile number" (use "a" before consonant sounds).

📝 Proposed fix
-- [Update the user profile of the users]({{base_path}}/guides/users/manage-users/#update-the-profile) with an mobile number to which the user will receive the OTP.
+- [Update the user profile of the users]({{base_path}}/guides/users/manage-users/#update-the-profile) with a mobile number to which the user will receive the OTP.
🤖 Fix all issues with AI agents
In @.github/workflows/markdownlint.yml:
- Around line 31-38: The workflow step "Run Markdownlint on changed files" calls
reviewdog but never installs it and uses "npx markdownlint-cli" unnecessarily;
add an explicit step before that (named like "Install reviewdog") that installs
reviewdog into the PATH (matching how style-checker.yml does it), and change the
run command in "Run Markdownlint on changed files" to invoke markdownlint
directly (e.g., "markdownlint ${{ steps.changed-files.outputs.all_changed_files
}}") instead of "npx markdownlint-cli ...", keeping the reviewdog invocation the
same.

In @.github/workflows/style-checker.yml:
- Around line 27-31: Update the "Install Vale" step in
.github/workflows/style-checker.yml to fetch and install the current Vale
release instead of v2.26.3: change the download URL and archive name used in the
curl command to the latest release (e.g., v3.13.0 and
Vale-3.13.0-linux-amd64.tar.gz) in the step named "Install Vale", and ensure the
subsequent move of the extracted binary to /usr/local/bin/vale still matches the
archive contents; optionally update any checksums or version references
elsewhere in the workflow to reflect the new version.
🧹 Nitpick comments (1)
.github/workflows/style-checker.yml (1)

33-36: Pin Reviewdog to a specific version for reproducibility and security.

The installer script is fetched from the master branch, which could change unexpectedly and introduces a supply-chain risk. Pin to the latest stable release (v0.21.0) instead.

♻️ Suggested improvement
       # Step 4: Install Reviewdog
       - name: Install Reviewdog
         run: |
-          curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /usr/local/bin
+          curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/v0.21.0/install.sh | sh -s -- -b /usr/local/bin v0.21.0
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6207468 and 86b1866.

📒 Files selected for processing (3)
  • .github/workflows/markdownlint.yml
  • .github/workflows/style-checker.yml
  • en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md
🔇 Additional comments (2)
.github/workflows/style-checker.yml (1)

38-45: LGTM!

The Vale execution step is well-structured: it correctly gates on any_changed, pipes output to reviewdog with appropriate flags (-filter-mode=diff ensures only changed lines are reviewed), and properly passes GITHUB_TOKEN.

en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md (1)

4-6: LGTM!

The documentation is well-structured with clear prerequisites, setup instructions, and a comprehensive settings table. The content accurately describes the SMS OTP passwordless login flow.

Also applies to: 20-53

Comment on lines 31 to 38
# Step 4: Run Markdownlint via Reviewdog
- name: Run Markdownlint on changed files
if: steps.changed-files.outputs.any_changed == 'true'
run: |
npx markdownlint-cli ${{ steps.changed-files.outputs.all_changed_files }} | \
reviewdog -f=markdownlint -name=markdownlint -reporter=github-pr-review -filter-mode=diff -fail-on-error
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Missing Reviewdog installation causes workflow failure.

The workflow invokes reviewdog but no step installs it. Unlike style-checker.yml, this workflow is missing the Reviewdog installation step. The workflow will fail with reviewdog: command not found.

Also, since markdownlint-cli is installed globally in Step 3, npx is unnecessary—you can invoke markdownlint directly.

🔧 Proposed fix

Add a Reviewdog installation step and simplify the markdownlint invocation:

       # Step 3: Install markdownlint-cli
       - name: Install markdownlint-cli
         run: npm install -g markdownlint-cli
 
+      # Step 4: Install Reviewdog
+      - name: Install Reviewdog
+        run: |
+          curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /usr/local/bin
+
-      # Step 4: Run Markdownlint via Reviewdog
+      # Step 5: Run Markdownlint via Reviewdog
       - name: Run Markdownlint on changed files
         if: steps.changed-files.outputs.any_changed == 'true'
         run: |
-          npx markdownlint-cli ${{ steps.changed-files.outputs.all_changed_files }} | \
+          markdownlint ${{ steps.changed-files.outputs.all_changed_files }} | \
           reviewdog -f=markdownlint -name=markdownlint -reporter=github-pr-review -filter-mode=diff -fail-on-error
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Step 4: Run Markdownlint via Reviewdog
- name: Run Markdownlint on changed files
if: steps.changed-files.outputs.any_changed == 'true'
run: |
npx markdownlint-cli ${{ steps.changed-files.outputs.all_changed_files }} | \
reviewdog -f=markdownlint -name=markdownlint -reporter=github-pr-review -filter-mode=diff -fail-on-error
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Step 3: Install markdownlint-cli
- name: Install markdownlint-cli
run: npm install -g markdownlint-cli
# Step 4: Install Reviewdog
- name: Install Reviewdog
run: |
curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /usr/local/bin
# Step 5: Run Markdownlint via Reviewdog
- name: Run Markdownlint on changed files
if: steps.changed-files.outputs.any_changed == 'true'
run: |
markdownlint ${{ steps.changed-files.outputs.all_changed_files }} | \
reviewdog -f=markdownlint -name=markdownlint -reporter=github-pr-review -filter-mode=diff -fail-on-error
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
🤖 Prompt for AI Agents
In @.github/workflows/markdownlint.yml around lines 31 - 38, The workflow step
"Run Markdownlint on changed files" calls reviewdog but never installs it and
uses "npx markdownlint-cli" unnecessarily; add an explicit step before that
(named like "Install reviewdog") that installs reviewdog into the PATH (matching
how style-checker.yml does it), and change the run command in "Run Markdownlint
on changed files" to invoke markdownlint directly (e.g., "markdownlint ${{
steps.changed-files.outputs.all_changed_files }}") instead of "npx
markdownlint-cli ...", keeping the reviewdog invocation the same.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/markdownlint.yml:
- Around line 8-11: The workflow's lint job runs Reviewdog but lacks explicit PR
write permissions so posting comments can fail; update the workflow by adding a
permissions block granting pull-requests: write (either at the top-level
permissions or scoped to the lint job) so the job 'lint' can create/update pull
request comments for Reviewdog.

In
`@en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md`:
- Line 34: The sentence in the table cell is redundant; replace "Specifies the
expiry time of the OTP. The generated OTP won't be valid after this expiry
time." with a tighter phrasing such as "Specifies when the OTP expires; it will
be invalid after this time." Update the table cell text in
add-passwordless-login-with-sms-otp.md accordingly to remove the repeated phrase
"expiry time" and keep the meaning concise.
🧹 Nitpick comments (1)
.github/workflows/markdownlint.yml (1)

31-35: Pin Reviewdog install to a versioned release.

Fetching an install script from master is mutable and can change unexpectedly. Pin to a release version.

♻️ Proposed change
       - name: Install Reviewdog
         run: |
-          curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /usr/local/bin
+          REVIEWDOG_VERSION=vX.Y.Z
+          curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | \
+            sh -s -- -b /usr/local/bin "${REVIEWDOG_VERSION}"

Comment on lines 8 to 11
jobs:
lint:
runs-on: ubuntu-latest

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add explicit PR write permissions for Reviewdog.

Reviewdog needs pull-requests: write to post comments. Without explicit permissions, the job can fail under read-only org defaults.

🔧 Proposed fix
 jobs:
   lint:
     runs-on: ubuntu-latest
+    permissions:
+      contents: read
+      pull-requests: write
🤖 Prompt for AI Agents
In @.github/workflows/markdownlint.yml around lines 8 - 11, The workflow's lint
job runs Reviewdog but lacks explicit PR write permissions so posting comments
can fail; update the workflow by adding a permissions block granting
pull-requests: write (either at the top-level permissions or scoped to the lint
job) so the job 'lint' can create/update pull request comments for Reviewdog.

<tr>
<td><code>SMS OTP expiry time</code></td>
<td>Specifies the expiry time of the OTP. The generated OTP will not be valid after this expiry time.</td>
<td>Specifies the expiry time of the OTP. The generated OTP won't be valid after this expiry time.</td>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Tighten wording to avoid redundancy.

“expiry time” + “after this expiry time” is repetitive.

✏️ Suggested tweak
-           <td>Specifies the expiry time of the OTP. The generated OTP won't be valid after this expiry time.</td>
+           <td>Specifies the OTP expiry time. The generated OTP won’t be valid after this time.</td>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<td>Specifies the expiry time of the OTP. The generated OTP won't be valid after this expiry time.</td>
<td>Specifies the OTP expiry time. The generated OTP won't be valid after this time.</td>
🤖 Prompt for AI Agents
In
`@en/includes/guides/authentication/passwordless-login/add-passwordless-login-with-sms-otp.md`
at line 34, The sentence in the table cell is redundant; replace "Specifies the
expiry time of the OTP. The generated OTP won't be valid after this expiry
time." with a tighter phrasing such as "Specifies when the OTP expires; it will
be invalid after this time." Update the table cell text in
add-passwordless-login-with-sms-otp.md accordingly to remove the repeated phrase
"expiry time" and keep the meaning concise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant