Conversation
WalkthroughEditorial and structural updates across LMS integration docs: new "Open Student Assignments" page, navigation text fixes, removal of legacy LTI 1.x and some Dynamic Registration sections, Canvas mapping overhaul with media, video/embed updates, typo and formatting fixes. Changes
Sequence Diagram(s)sequenceDiagram
participant Teacher
participant LMS
participant Codio
Teacher->>LMS: Click "Open Assignment" (LTI 1.3 launch)
LMS->>Codio: LTI 1.3 launch + custom parameters (actual_user_*)
Codio->>Codio: Map params -> identify user & assignment context
alt LMS supports direct student view
Codio->>Teacher: Render requested student's assignment
else Unsupported
Codio->>Teacher: Fallback to teacher dashboard
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Additional brief suggestions for reviewers:
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 0
🔭 Outside diff range comments (2)
source/instructors/admin/integration/lti1-3Canvas.rst (1)
226-231: Malformed HTML tag will break the rendered page
<strong>Details<strong>is missing the closing slash. Browsers often recover, but Sphinx HTML validation will flag this.-21. Copy the number in the <strong>Details<strong> column (for use in Parts 2 and 3) +21. Copy the number in the <strong>Details</strong> column (for use in Parts 2 and 3)source/instructors/admin/integration/lms-systems/d2l.rst (1)
64-66: Update UI directions for consistency with other docsMost updated pages instruct users to click their username in the top-right corner. D2L docs still say “bottom left”, which is outdated and will confuse readers.
-1. Click your user name in the bottom left of your dashboard. +1. Click your username in the top-right corner of the dashboard, then select **Organizations**.
🧹 Nitpick comments (7)
source/instructors/admin/integration/lti1-3DynReg.rst (1)
30-34: Tighten wording and sentence flow in step 5The comma-spliced sentence reads a little clumsily and can be trimmed for clarity.
-5. The **Dynamic Registration URL** is at the bottom of the list, you can copy it by clicking on the **Dynamic Registration URL** button. +5. Scroll to the bottom of the list and click **Dynamic Registration URL** to copy it.source/instructors/admin/integration/lti1-3Canvas.rst (1)
15-16: Mark URL as literal for correct RST renderingPlacing bare URLs in running text sometimes trips Sphinx link parsing. Wrapping the deep-linking URL in back-ticks makes it render as a literal and avoids unexpected auto-linking.
-The deep linking url is : https://apollo.codio.com/lti/resource_selection +The deep-linking URL is ``https://apollo.codio.com/lti/resource_selection``.source/instructors/admin/integration/lms-systems/schoology.rst (1)
135-156: Polish grammar and align example keys to parameter names
- “existed user” → “existing user”.
- Examples use the
actual_user_*key prefix while the Parameter column lists plain names (id,"123") or clarify in prose that the LMS will prependactual_user_when sending.-This will be used for registration if | "actual_user_email": "lms-admin@email.com" -custom_actual_user_id is not matched to an existed user. | +Used for registration if ``custom_actual_user_id`` does not match an existing user. | "actual_user_email": "lms-admin@email.com"Also, “This should not be Student-like role.” → “This role must not be student-like.”
source/instructors/admin/integration/lms-systems/blackboard.rst (3)
9-10: Consider reference-style link to tame the very long URLInlining the entire Blackboard help URL makes the paragraph hard to read. A reference link keeps the prose tidy:
… which allows for an easy way to integrate and to map Codio course assignments to your LMS. See the `Blackboard LTI provider setup documentation`_ for details. .. _Blackboard LTI provider setup documentation: https://library.blackboard.com/ref/df5b20ed-ce8d-4428-a595-a0091b23dda3/Content/_admin_app_system/admin_app_basic_lti_tool_providers.htm
29-30: Minor consistency tweaks
- “user name” → “username” (the single-word form is used elsewhere).
- Period missing after step 7 previously fixed—good catch.
110-110: Singular form reads better
Users account creationsounds plural. Changing the reference to “User account creation” improves flow without breaking the link target.-To add students/teachers see :ref:`Users account creation <lms-users>` +To add students/teachers see :ref:`User account creation <lms-users>`source/instructors/admin/integration/lms-systems/d2l.rst (1)
162-188: Replicate grammar fixes from Schoology tableSame “existed user” and “Student-like role” wording appears here. Apply the same corrections to keep terminology aligned across LMS docs.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
source/instructors/admin/integration/lms-systems/blackboard.rst(4 hunks)source/instructors/admin/integration/lms-systems/d2l.rst(1 hunks)source/instructors/admin/integration/lms-systems/google-classroom.rst(1 hunks)source/instructors/admin/integration/lms-systems/schoology.rst(1 hunks)source/instructors/admin/integration/lti-app.rst(0 hunks)source/instructors/admin/integration/lti1-3BS-D2L.rst(0 hunks)source/instructors/admin/integration/lti1-3Blackboard.rst(0 hunks)source/instructors/admin/integration/lti1-3Canvas.rst(1 hunks)source/instructors/admin/integration/lti1-3DynReg.rst(1 hunks)
💤 Files with no reviewable changes (3)
- source/instructors/admin/integration/lti1-3BS-D2L.rst
- source/instructors/admin/integration/lti1-3Blackboard.rst
- source/instructors/admin/integration/lti-app.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst
⚙️ CodeRabbit Configuration File
**/*.rst: Review files for:
- Consistent formatting (e.g., headings, lists, links).
- Clear and concise language.
- Correct grammar and spelling.
- Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
- Adherence to style guides (e.g., consistent tone, terminology).
Suggest improvements to enhance readability and accessibility.
Files:
source/instructors/admin/integration/lms-systems/google-classroom.rstsource/instructors/admin/integration/lms-systems/schoology.rstsource/instructors/admin/integration/lti1-3DynReg.rstsource/instructors/admin/integration/lms-systems/d2l.rstsource/instructors/admin/integration/lms-systems/blackboard.rstsource/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (2)
source/instructors/admin/integration/lms-systems/google-classroom.rst (1)
67-69: No issues – extra trailing newlines are harmless and align with RST/POSIX conventionsAdding a blank line (or two) at the end of the file is fine; it keeps the editor happy and doesn’t affect the rendered output.
source/instructors/admin/integration/lti1-3Canvas.rst (1)
410-413: Heading level is off by one
Connecting/mapping assignments in Canvasis currently set with---(H2) but it sits inside another H2 section, leading to skipped hierarchy (H2 ➜ H2). Consider demoting to~~~or promoting the parent.
shajason
left a comment
There was a problem hiding this comment.
Coderabbit also found a couple of things that need fixing. No rush in turning this around!
| +----------------------+-----------------------------------------------------------------------------------------------------+ | ||
| | Mentor | TEACHER (with :ref:`read only <add-teachers>` access to the course} | | ||
| +----------------------+-----------------------------------------------------------------------------------------------------+ | ||
|
|
There was a problem hiding this comment.
Why did this get added here?
| .. Note:: LTI and external tool materials that have grading enabled in Schoology do not trigger submission notifications, grading reminders, or overdue notifications because Schoology does not automatically detect submissions from external tools. | ||
|
|
||
|
|
||
| Open Student Assignments Directly from LMS |
There was a problem hiding this comment.
Why did this get added here?
There was a problem hiding this comment.
Actionable comments posted: 2
🔭 Outside diff range comments (1)
source/instructors/admin/integration/lti1-3Canvas.rst (1)
110-132: Replace inline HTML buttons/scripts with copy-friendly code blocksEmbedding JavaScript copy buttons in reST can break under stricter CSPs, impair accessibility, and complicate builds. Prefer plain code blocks; Sphinx’s copybutton extension (if enabled) will add a copy UI automatically.
- <div class="small"> - 17. Expand each of the following fields, and copy the static links below:<br><br> - <strong>Link Selection</strong><br> - Select <strong>LtiDeepLinkingRequest</strong><br> - <span style="color: teal;">Target Link URI:</span> - https://apollo.codio.com/lti/resource_selection - <button onclick="copyRSTUrl1()">Copy URL</button><br> - <script> function copyRSTUrl1() { - const url = "https://apollo.codio.com/lti/resource_selection"; - navigator.clipboard.writeText(url).then(() => { - alert('URL copied to clipboard!'); }).catch(err => { - console.error('Failed to copy: ', err); }); } </script> - <span style="color: teal;">Icon Url:</span><br> - https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png - <button onclick="copyRSTUrl2()">Copy URL</button><br> - <script> function copyRSTUrl2() { - const url = "https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png"; - navigator.clipboard.writeText(url).then(() => { - alert('URL copied to clipboard!'); }).catch(err => { - console.error('Failed to copy: ', err); }); } </script> - </div> + <div class="small"> + 17. Expand each of the following fields, and copy the static links below:<br><br> + <strong>Link Selection</strong><br> + Select <strong>LtiDeepLinkingRequest</strong><br> + <em>Target Link URI</em>: + </div> + +.. code-block:: none + + https://apollo.codio.com/lti/resource_selection + +.. raw:: html + + <div class="small"> + <em>Icon URL</em>: + </div> + +.. code-block:: none + + https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
🧹 Nitpick comments (17)
source/instructors/admin/integration/open-student-assignments-lms.rst (2)
16-22: Promote “Custom parameters” to a proper subsection headingUse a reST heading rather than bold text for consistency and navigation.
LTI 1.3 """"""" -**Custom parameters** +Custom parameters +~~~~~~~~~~~~~~~~~
56-57: Normalize directive case and improve clarity; add a mailto link
- Use lowercase directive for consistency with “important”.
- Clarify the sentence and add a mailto: link.
-.. Note:: The parameters should be set by LMS dynamically based on current user, not statically. If you need assistance contact help@codio.com +.. note:: + These parameters must be set dynamically by the LMS based on the current user (not configured statically). + If you need assistance, contact <mailto:help@codio.com>.source/instructors/admin/integration/lms-systems/blackboard.rst (3)
29-31: Minor style polish for UI instructions (optional)Hyphenate “top-right” (compound adjective) for consistency with similar docs.
-6. Click your username in the top right corner of your dashboard. +6. Click your username in the top-right corner of your dashboard.
84-85: Clearer phrasing for the 3-dots UI control (optional)Spell out “three” for readability, or reference the menu name if available.
-27. Once the assignment has been added to the course, you should click the 3 dots to the right of that assignment and select **LTI Integration URL**. +27. Once the assignment has been added to the course, click the three dots to the right of that assignment and select **LTI Integration URL**.
110-110: Add comma and end punctuation for claritySmall grammar fix.
-To add students/teachers see :ref:`User account creation <lms-users>` +To add students/teachers, see :ref:`User account creation <lms-users>`.source/instructors/admin/integration/lti1-3Canvas.rst (7)
99-101: Important note is clear; consider broadening accessibility guidance (optional)Given the heavy use of copy buttons later, add a brief accessibility hint to also show the raw URLs for keyboard-only users.
.. important:: - When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors. + When copying links, use the copy button adjacent to each link to ensure accuracy and prevent linking errors. + For accessibility, the full URLs are also shown so they can be copied manually.
121-123: Standardize “URL” capitalizationUse “URL” (all caps) for consistency.
- <span style="color: teal;">Icon Url:</span><br> + <span style="color: teal;">Icon URL:</span><br>Also applies to: 152-154, 182-183, 211-212
312-315: Clarify placeholder example and casingAvoid capitalized hostnames; use a neutral placeholder domain.
- <strong>Note: replace [CANVAS DOMAIN] with your institution’s - domain in steps 5-7. Make sure to remove the brackets. Example: - https://Codio.instructure.com/api/lti/security/jwks </strong><br><br> + <strong>Note: replace [CANVAS DOMAIN] with your institution’s + domain in steps 5–7. Remove the brackets. Example: + https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br>
324-327: Use “ID” consistentlyStandard capitalization for acronyms.
- 4. <strong>Deployment Id:</strong> copied in Part 2<br><br> + 4. <strong>Deployment ID:</strong> copied in Part 2<br><br>
378-384: Resolve potential contradiction about using the LTI Integration URLThis note warns against using the LTI Integration URL, while later sections describe mapping “by LTI integration URL.” Clarify the context (e.g., not using it directly in the External Tool field vs. using it in Codio mapping).
- <strong>Note: Do not use LTI Integration URL to assign an assignment</strong><br><br> + <strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas + External Tool URL field when creating an assignment. Instead, use the deep link + “Find” flow (recommended) or follow the “Connect by LTI Integration URL” method + described below.Would you like me to adjust the later “How to connect…” section to cross-reference this note explicitly?
393-393: Remove unnecessary articleMinor grammar improvement.
-You can customize the width and height of the Codio window embedded in the Canvas. The default width is 1000 pixels and height is 800 pixels, change those values if you need and press **Save Changes**. +You can customize the width and height of the Codio window embedded in Canvas. The default width is 1000 pixels and height is 800 pixels; change those values if needed and press **Save Changes**.
416-443: Improve capitalization/grammar of mapping section headingsUse consistent title case and clarify phrasing.
-How to connect assignment by lti integration url of assignment +How to Connect an Assignment by LTI Integration URL -How to connect assignment by resource selection preview +How to Connect an Assignment via Resource Selection Preview -How to connect assignment by endpoint url +How to Connect an Assignment by Endpoint URL -How to connect assignment with custom param +How to Connect an Assignment with a Custom Parametersource/instructors/getstarted/howto.rst (5)
11-12: Remove stray line-block markerA standalone “|” can render unexpectedly; use a blank line for spacing.
-| +
34-35: Tighten heading wordingSingular “Guide” reads better here.
-Editing Existing Guides Content +Editing Existing Guide Content
60-61: Remove stray line-block markerSame spacing issue as above.
-| +
69-72: Polish link text grammar (optional)Add an article and use plural for clarity.
- - | `Editable, Interactive Course Resources for Intro CS in Python, Java, C++ <https://codio.wistia.com/medias/yhjwxe1cgp>`_ - | `Assigning Codio Resource <https://codio.wistia.com/medias/kpwbszlupk>`_ + - | `Editable, Interactive Course Resources for Intro CS in Python, Java, and C++ <https://codio.wistia.com/medias/yhjwxe1cgp>`_ + | `Assigning a Codio Resource <https://codio.wistia.com/medias/kpwbszlupk>`_
77-80: Refine link text for consistencyDrop “video” from the link text.
- | `Student Codio IDE Overview video <https://codio.wistia.com/medias/7aevzapmtp>`_ + | `Student Codio IDE Overview <https://codio.wistia.com/medias/7aevzapmtp>`_
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
source/instructors/admin/integration/intro.rst(1 hunks)source/instructors/admin/integration/lms-systems/blackboard.rst(4 hunks)source/instructors/admin/integration/lms-systems/d2l.rst(2 hunks)source/instructors/admin/integration/lms-systems/schoology.rst(1 hunks)source/instructors/admin/integration/lti1-3Canvas.rst(4 hunks)source/instructors/admin/integration/lti1-3DynReg.rst(1 hunks)source/instructors/admin/integration/open-student-assignments-lms.rst(1 hunks)source/instructors/getstarted/howto.rst(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- source/instructors/admin/integration/lms-systems/schoology.rst
- source/instructors/admin/integration/lti1-3DynReg.rst
- source/instructors/admin/integration/lms-systems/d2l.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst
⚙️ CodeRabbit Configuration File
**/*.rst: Review files for:
- Consistent formatting (e.g., headings, lists, links).
- Clear and concise language.
- Correct grammar and spelling.
- Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
- Adherence to style guides (e.g., consistent tone, terminology).
Suggest improvements to enhance readability and accessibility.
Files:
source/instructors/admin/integration/intro.rstsource/instructors/admin/integration/open-student-assignments-lms.rstsource/instructors/admin/integration/lms-systems/blackboard.rstsource/instructors/getstarted/howto.rstsource/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (6)
source/instructors/admin/integration/intro.rst (1)
17-17: Expose new page in navigation: looks goodThe toctree entry correctly references the new page in the same directory and will build the nav item.
source/instructors/admin/integration/lms-systems/blackboard.rst (2)
9-9: Switch to HTTPS: good catchUpdating the Blackboard link to HTTPS improves security and avoids mixed content issues.
102-103: Corrected checkbox label: looks goodMatches the Blackboard UI label and fixes the typo.
source/instructors/admin/integration/lti1-3Canvas.rst (1)
15-15: Deep-linking URL formatting: goodInline code formatting improves readability and avoids link auto-detection issues.
source/instructors/getstarted/howto.rst (2)
9-10: Intro sentence reads well; approvedClear, concise, and sets expectations.
89-90: Note directive: approvedClear and helpful global note about start time.
| .. important:: | ||
| Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard. | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Fix directive indentation and tighten the Important note wording
The leading space before the directive may break rendering. Also, split the long sentence for readability.
- .. important::
- Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard.
+.. important::
+ Not all LMS platforms support this direct integration feature.
+ Please verify that your LMS is compatible before relying on it for your workflow.
+ If your LMS doesn't support direct assignment access, use the traditional method of accessing assignments through the teacher dashboard.📝 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.
| .. important:: | |
| Not all LMS systems support this direct integration feature. Please verify that your specific LMS platform is compatible with this functionality before relying on it for your workflow. If your LMS doesn't support direct assignment access, you'll need to use the traditional method of accessing assignments through the teacher dashboard. | |
| .. important:: | |
| Not all LMS platforms support this direct integration feature. | |
| Please verify that your LMS is compatible before relying on it for your workflow. | |
| If your LMS doesn't support direct assignment access, use the traditional method of accessing assignments through the teacher dashboard. |
🤖 Prompt for AI Agents
In source/instructors/admin/integration/open-student-assignments-lms.rst around
lines 13 to 15, the ".. important::" directive has a leading space that can
break rendering and the note is a long run-on sentence; remove the leading space
so the directive is flush with the left margin and rephrase/split the content
into two shorter sentences with tightened wording (e.g., state that not all LMS
platforms support direct integration and tell the reader to verify
compatibility, and add a second sentence explaining to use the teacher dashboard
if direct access is not available).
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | Parameter | Description | Example | | ||
| +==================+===============================================================+==================================================+ | ||
| | id | id= lms user identification | "actual_user_id": "123" | | ||
| | | | | | ||
| | | This is equivalent of sub when the request is executed | | | ||
| | | without changing the current user. | | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | email | email= actual user email | | | ||
| | | | | | ||
| | | Used for registration if ``custom_actual_user_id`` | "actual_user_email": "lms-admin@email.com" | | ||
| | | does not match an existing user. | | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | role | role= actual user role | | | ||
| | | | | | ||
| | | This role must not be student-like. | "actual_user_role": "Instructor" | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | given_name | given_name= actual user given name | "actual_user_given_name": "Name" | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | family_name | family_name= actual user family name | "actual_user_family_name": "Family" | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
| | full_name | full_name= actual user full name | | | ||
| | | | | | ||
| | | This could be omitted if | "actual_user_full_name": "Name Family" | | ||
| | | custom_actual_user_name_family and | | | ||
| | | custom_actual_user_name_given passed. | | | ||
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Clarify and standardize the grid table content (grammar, consistency, and code formatting)
- Wrap parameter names and keys in code literals.
- Use consistent terminology (e.g., “identifier,” “equivalent to”).
- Ensure the Example column only contains example values.
- Align “full_name” guidance with earlier given/family name parameters and fix inconsistent names.
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| Parameter | Description | Example |
-+==================+===============================================================+==================================================+
-| id | id= lms user identification | "actual_user_id": "123" |
-| | | |
-| | This is equivalent of sub when the request is executed | |
-| | without changing the current user. | |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| email | email= actual user email | |
-| | | |
-| | Used for registration if ``custom_actual_user_id`` | "actual_user_email": "lms-admin@email.com" |
-| | does not match an existing user. | |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| role | role= actual user role | |
-| | | |
-| | This role must not be student-like. | "actual_user_role": "Instructor" |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| given_name | given_name= actual user given name | "actual_user_given_name": "Name" |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| family_name | family_name= actual user family name | "actual_user_family_name": "Family" |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
-| full_name | full_name= actual user full name | |
-| | | |
-| | This could be omitted if | "actual_user_full_name": "Name Family" |
-| | custom_actual_user_name_family and | |
-| | custom_actual_user_name_given passed. | |
-+------------------+---------------------------------------------------------------+--------------------------------------------------+
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| Parameter | Description | Example |
++==================+=======================================================================+==============================================+
+| ``id`` | LMS user identifier. | ``"actual_user_id": "123"`` |
+| | Equivalent to the ``sub`` claim when the request is executed | |
+| | without changing the current user. | |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``email`` | Actual user email. Used for registration if | ``"actual_user_email": "lms-admin@email.com"`` |
+| | ``custom_actual_user_id`` does not match an existing user. | |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``role`` | Actual user role. Must not be student-like (e.g., use Instructor, | ``"actual_user_role": "Instructor"`` |
+| | TA, or Admin). | |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``given_name`` | Actual user given name. | ``"actual_user_given_name": "Name"`` |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``family_name`` | Actual user family name. | ``"actual_user_family_name": "Family"`` |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+
+| ``full_name`` | Actual user full name. Optional if | ``"actual_user_full_name": "Name Family"`` |
+| | ``custom_actual_user_given_name`` and | |
+| | ``custom_actual_user_family_name`` are passed. | |
++------------------+-----------------------------------------------------------------------+----------------------------------------------+📝 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.
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | Parameter | Description | Example | | |
| +==================+===============================================================+==================================================+ | |
| | id | id= lms user identification | "actual_user_id": "123" | | |
| | | | | | |
| | | This is equivalent of sub when the request is executed | | | |
| | | without changing the current user. | | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | email | email= actual user email | | | |
| | | | | | |
| | | Used for registration if ``custom_actual_user_id`` | "actual_user_email": "lms-admin@email.com" | | |
| | | does not match an existing user. | | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | role | role= actual user role | | | |
| | | | | | |
| | | This role must not be student-like. | "actual_user_role": "Instructor" | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | given_name | given_name= actual user given name | "actual_user_given_name": "Name" | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | family_name | family_name= actual user family name | "actual_user_family_name": "Family" | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| | full_name | full_name= actual user full name | | | |
| | | | | | |
| | | This could be omitted if | "actual_user_full_name": "Name Family" | | |
| | | custom_actual_user_name_family and | | | |
| | | custom_actual_user_name_given passed. | | | |
| +------------------+---------------------------------------------------------------+--------------------------------------------------+ | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | Parameter | Description | Example | | |
| +==================+=======================================================================+==============================================+ | |
| | ``id`` | LMS user identifier. | ``"actual_user_id": "123"`` | | |
| | | Equivalent to the ``sub`` claim when the request is executed | | | |
| | | without changing the current user. | | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | ``email`` | Actual user email. Used for registration if | ``"actual_user_email": "lms-admin@email.com"`` | | |
| | | ``custom_actual_user_id`` does not match an existing user. | | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | ``role`` | Actual user role. Must not be student-like (e.g., use Instructor, | ``"actual_user_role": "Instructor"`` | | |
| | | TA, or Admin). | | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | ``given_name`` | Actual user given name. | ``"actual_user_given_name": "Name"`` | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | ``family_name`` | Actual user family name. | ``"actual_user_family_name": "Family"`` | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ | |
| | ``full_name`` | Actual user full name. Optional if | ``"actual_user_full_name": "Name Family"`` | | |
| | | ``custom_actual_user_given_name`` and | | | |
| | | ``custom_actual_user_family_name`` are passed. | | | |
| +------------------+-----------------------------------------------------------------------+----------------------------------------------+ |
🤖 Prompt for AI Agents
In source/instructors/admin/integration/open-student-assignments-lms.rst lines
27-54, the parameter table needs grammar, formatting and consistency fixes: wrap
all parameter names and example keys as inline code, change "id"
label/description to "identifier" and reword “equivalent of” to “equivalent to”,
ensure the Example column contains only example values (remove labels like id=
or email= and the explanatory text), standardize wording for role to "must not
be a student or student-like role", and make the full_name guidance consistent
with given_name/family_name by correcting and ordering the custom field names
(use custom_actual_user_name_given and custom_actual_user_name_family) and
remove duplicated explanatory lines so examples are just the sample values.
There was a problem hiding this comment.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
source/instructors/admin/integration/lti1-3Canvas.rst (1)
111-122: Use code blocks (+sphinx-copybutton) instead of inline JS copy buttonsInline <script>/onclick buttons can be blocked by CSP and reduce accessibility/localization. Replace them with literal code blocks and enable the Sphinx copybutton extension if you want a one-click copy affordance.
Files to update / findings:
- source/instructors/admin/integration/lti1-3Canvas.rst — replace the inline JS copy button (snippet at ~lines 111–122).
- source/conf.py — checked; no copybutton (sphinx_copybutton) entry found.
- student-source/conf.py — checked; no copybutton (sphinx_copybutton) entry found.
Suggested replacement (example diff):
- <span style="color: teal;">Target Link URI:</span> - https://apollo.codio.com/lti/resource_selection - <button onclick="copyRSTUrl1()">Copy URL</button><br> - <script> function copyRSTUrl1() { const url = "https://apollo.codio.com/lti/resource_selection"; navigator.clipboard.writeText(url).then(() => { alert('URL copied to clipboard!'); }).catch(err => { console.error('Failed to copy: ', err); }); } </script> + <span style="color: teal;">Target Link URI:</span> + + .. code-block:: text + + https://apollo.codio.com/lti/resource_selectionIf you want copy buttons for literal blocks, add 'sphinx_copybutton' to the extensions list in the relevant conf.py (and install the package). Apply the same replacement pattern for other copy buttons on the page.
🧹 Nitpick comments (12)
source/instructors/admin/integration/lti1-3BS-D2L.rst (1)
26-28: Streamline the important note and align wording with other pages.Recommend tightening the language and using “next to” instead of “adjacent to” for clarity and consistency with Canvas docs.
Apply this diff:
- .. important:: - When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors. + .. important:: + When copying links, use the copy button next to each link to ensure accuracy and prevent linking errors.source/instructors/admin/integration/lti1-3Canvas.rst (11)
15-15: Standardize “Deep Linking” capitalization and hyphenation.Use the LTI term “Deep Linking” (capitalized, no hyphen) for consistency.
-The deep-linking URL is ``https://apollo.codio.com/lti/resource_selection``. +The Deep Linking URL is ``https://apollo.codio.com/lti/resource_selection``.
22-24: Tighten the important note wording.Drop “please” and prefer “next to” over “adjacent to” for plain, direct language.
- .. important:: - When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors. + .. important:: + When copying links, use the copy button next to each link to ensure accuracy and prevent linking errors.
153-163: Use “Icon URL” (not “Icon Url”).Align capitalization across the page.
- <span style="color: teal;">Icon Url:</span><br> + <span style="color: teal;">Icon URL:</span><br>
183-191: Use “Icon URL” (not “Icon Url”).Same capitalization fix as above for consistency.
- <span style="color: teal;">Icon Url:</span><br> + <span style="color: teal;">Icon URL:</span><br>
211-221: Use “Icon URL” (not “Icon Url”).Apply the consistent capitalization here as well.
- <span style="color: teal;">Icon Url:</span><br> + <span style="color: teal;">Icon URL:</span><br>
314-316: Clarify the bracket note and reduce redundancy.Reword for flow and to avoid repeating “replace”.
- <strong>Note: replace [CANVAS DOMAIN] with your institution’s - domain in steps 5–7. Remove the brackets. Example: - https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br> + <strong>Note: In steps 5–7, replace [CANVAS DOMAIN] with your institution’s + domain (omit the brackets). For example: + https://yourinstitution.instructure.com/api/lti/security/jwks</strong><br><br>
379-383: Convert the inline HTML “Note” to a proper rst admonition outside the table.Admonitions inside grid-table cells are brittle and less accessible. Place a rst admonition below the table for consistent rendering.
Replace the inline HTML note:
- <strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas - External Tool URL field when creating an assignment. Instead, use the deep link - “Find” flow (recommended) or follow the “Connect by LTI Integration URL” method - described below. <br><br>Then add this admonition immediately after the table block:
.. warning:: Do not paste the LTI Integration URL directly into the Canvas External Tool URL field when creating an assignment. Use the Deep Linking “Find” flow (recommended), or follow the “Connect by LTI Integration URL” method below.
386-388: End the recommendation with a period.Minor punctuation for completeness.
- <li> Recommended: Select Load in a new tab</li></ul><br> + <li> Recommended: Select Load in a new tab.</li></ul><br>
400-401: Polish the iframe guidance and terminology.Prefer “iframe” and tighten phrasing.
-You can customize the width and height of the Codio window embedded in Canvas. The default width is 1000 pixels and height is 800 pixels; change those values if needed and press **Save Changes**. +You can customize the width and height of the Codio iframe embedded in Canvas. The default width is 1000 pixels and the default height is 800 pixels; change these values as needed and click **Save Changes**.
423-424: Make the “How to Connect” headings parallel.Use a consistent preposition across all four headings. “Using” reads naturally in each case.
-How to Connect an Assignment by LTI Integration URL +How to Connect an Assignment using an LTI Integration URL @@ -How to Connect an Assignment via Resource Selection Preview +How to Connect an Assignment using Resource Selection Preview @@ -How to Connect an Assignment by Endpoint URL +How to Connect an Assignment using an Endpoint URL @@ -How to Connect an Assignment with a Custom Parameter +How to Connect an Assignment using a Custom ParameterAlso applies to: 430-431, 437-438, 444-445
426-449: Add accessible alternatives for video embeds.Provide text links to the videos and/or transcripts below each embed to support users with blocked scripts, screen readers, or low bandwidth.
Example (add after each embed):
If the video does not load, view it at: https://fast.wistia.com/embed/medias/bzowzoyfz1
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these settings in your CodeRabbit configuration.
📒 Files selected for processing (6)
source/instructors/admin/integration/lms-systems/blackboard.rst(4 hunks)source/instructors/admin/integration/lti1-3BS-D2L.rst(1 hunks)source/instructors/admin/integration/lti1-3Canvas.rst(8 hunks)source/instructors/admin/integration/lti1-3DynReg.rst(1 hunks)source/instructors/admin/integration/open-student-assignments-lms.rst(1 hunks)source/instructors/getstarted/howto.rst(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- source/instructors/getstarted/howto.rst
- source/instructors/admin/integration/open-student-assignments-lms.rst
- source/instructors/admin/integration/lti1-3DynReg.rst
- source/instructors/admin/integration/lms-systems/blackboard.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst
⚙️ CodeRabbit Configuration File
**/*.rst: Review files for:
- Consistent formatting (e.g., headings, lists, links).
- Clear and concise language.
- Correct grammar and spelling.
- Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
- Adherence to style guides (e.g., consistent tone, terminology).
Suggest improvements to enhance readability and accessibility.
Files:
source/instructors/admin/integration/lti1-3Canvas.rstsource/instructors/admin/integration/lti1-3BS-D2L.rst
🔇 Additional comments (2)
source/instructors/admin/integration/lti1-3Canvas.rst (2)
232-232: Good clarification on “Details” column usage.Clear instruction and correct capitalization. No changes needed.
393-394: Good use of a formal rst note directive.Clear, concise, and correctly formatted admonition.
Summary by CodeRabbit
New Features
Documentation