-
Notifications
You must be signed in to change notification settings - Fork 3
4.16 session explorer update #277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
madison-oates
wants to merge
27
commits into
main
Choose a base branch
from
4.16-session-explorer-update
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
11d09a9
blurb
madison-oates 5d1b94a
UI updates for session explorer and overview
madison-oates 4b01f6d
image clarity updates
madison-oates e081694
minor updates
madison-oates 2860064
update
madison-oates 51e57af
jira integration
madison-oates b656507
image updates
madison-oates a6bdd30
edits applied
madison-oates 7b1d8a2
KOB-47667 add group actions in appium script and session explorer tim…
tungmhoang b9c130f
KOB-47667 add navigation for new doc
tungmhoang 4c463d9
KOB-47667 small fixes
tungmhoang 1623bc5
KOB-47666 add session tags
tungmhoang bb0b4ad
KOB-47666 complete sesssion tags
tungmhoang 68b2b64
resolve conflict
tungmhoang 016bbf8
address feedbacks
tungmhoang b622716
Merge branch 'main' into 4.16-session-explorer-update
tungmhoang 0d06738
KOB-47666 addressed feedbacks regarding action tagging
tungmhoang 94f8dc2
KOB-46858 add Test Result Analysis guide
tungmhoang d2ab15b
KOB-46858 continue with Test Result Analysis
tungmhoang d72973b
KOB-46858 continue with Test Result Analysis
tungmhoang 557573b
KOB-46858 continue with Test Result Analysis
tungmhoang 06cb7d0
KOB-46858 continue with Test Result Analysis
tungmhoang cd828aa
KOB-46858 fix typo and grammar error after prompting
tungmhoang 1c7655f
test coderabbit ai
tungmhoang 070bdd0
addressed comments from coderabbit AI
tungmhoang e2dbb5a
addressed comments from coderabbit AI
tungmhoang 4049b2b
Update search-for-a-session.adoc
erincbailey File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
141 changes: 141 additions & 0 deletions
141
...ules/automation-testing/pages/scripting/add-action-groups-in-appium-script.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| = Add action groups in Appium script | ||
| :navtitle: Add action groups in Appium script | ||
|
|
||
| To enhance test analysis, you can group related Appium actions. Grouping actions can help in troubleshooting by marking specific phases of a test and aligning them with your testing objectives. | ||
|
|
||
| == Action group Appium setting | ||
|
|
||
| To add actions within your script, use the following Appium setting to assign actions to a specific group. | ||
|
|
||
| [options="header"] | ||
| |======================= | ||
| |Appium setting | Description | Default value | ||
| | `kobiton:setGroup` | Set this field to any string value to assign actions to a group, using that value as the group name. | `''` (blank) | ||
| |======================= | ||
|
|
||
| == Add action group | ||
|
|
||
| Before starting a test action, use the `Update Settings` Appium command to set `'kobiton:setGroup'` to a string. | ||
|
|
||
| .Example (JavaScript) | ||
| [source,javascript] | ||
|
|
||
| await driver.updateSettings({'kobiton:setGroup': 'Test case A5423'}) | ||
|
|
||
| Using the `updateSettings` command, all actions will be added to the group. To assign subsequent actions to a different group, execute the command again with the new group name. | ||
|
|
||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| == Examples | ||
|
|
||
| Below is a complete JavaScript example using `wd` that demonstrates how actions are organized into two distinct groups: `Test login` and `Test home page`. | ||
|
|
||
| .Example (JavaScript) | ||
| [source,javascript] | ||
|
|
||
| ---- | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| import 'babel-polyfill' | ||
| import 'colors' | ||
| import wd from 'wd' | ||
| import {assert} from 'chai' | ||
|
|
||
| const username = process.env.KOBITON_USERNAME | ||
| const apiKey = process.env.KOBITON_API_KEY | ||
| const deviceUdid = process.env.KOBITON_DEVICE_UDID | ||
| const protocol = 'https' | ||
| const host = 'api.kobiton.com' | ||
|
|
||
| if (!username || !apiKey || !deviceUdid) { | ||
| console.log('Error: Environment variables KOBITON_USERNAME, KOBITON_API_KEY or KOBITON_DEVICE_UDID are required to execute script') | ||
| process.exit(1) | ||
| } | ||
|
|
||
| const kobitonServerConfig = {protocol, host, auth: `${username}:${apiKey}`} | ||
|
|
||
| const desiredCaps = { | ||
| sessionName: 'Automation test action groups', | ||
| sessionDescription: 'An automation test with action groups', | ||
| udid: deviceUdid, | ||
| noReset: true, | ||
| fullReset: false, | ||
| browserName: 'chrome', | ||
| autoWebview: 'true', | ||
| } | ||
|
|
||
| let driver | ||
|
|
||
| function sleep(ms) { | ||
| return new Promise((resolve) => setTimeout(resolve, ms)) | ||
| } | ||
|
|
||
| describe('Android Web sample', () => { | ||
| before(async () => { | ||
| driver = wd.promiseChainRemote(kobitonServerConfig) | ||
|
|
||
| driver.on('status', (info) => { | ||
| console.log(info.cyan) | ||
| }) | ||
| driver.on('command', (meth, path, data) => { | ||
| console.log(' > ' + meth.yellow, path.grey, data || '') | ||
| }) | ||
| driver.on('http', (meth, path, data) => { | ||
| console.log(' > ' + meth.magenta, path, (data || '').grey) | ||
| }) | ||
|
|
||
| try { | ||
| await driver.init(desiredCaps) | ||
| } | ||
| catch (err) { | ||
| if (err.data) { | ||
| console.error(`init driver: ${err.data}`) | ||
| } | ||
| throw err | ||
| } | ||
| }) | ||
|
|
||
| it('should perform a simple login', async () => { | ||
| await driver.settings() | ||
|
|
||
| //Start adding actions to group 'Test login' | ||
| await driver.updateSettings({'kobiton:setGroup': 'Test login'}) | ||
|
|
||
| // Send username and password to log in. | ||
| await driver.get('https://the-internet.herokuapp.com/login') | ||
| .waitForElementByName('username') | ||
| .sendKeys('tomsmith') | ||
| .sleep(1000) | ||
| .waitForElementByName('password') | ||
| .sendKeys('SuperSecretPassword!') | ||
| .sleep(3000) | ||
| .keys(wd.SPECIAL_KEYS.Enter) | ||
|
|
||
| // Login completes. Start adding actions to group 'Test home page' | ||
| await driver.updateSettings({'kobiton:setGroup': 'Test home page'}) | ||
| await driver.settings() | ||
|
|
||
| await driver.get('https://the-internet.herokuapp.com/') | ||
| await sleep(2000) | ||
| await driver.title() | ||
|
|
||
| }) | ||
|
|
||
| after(async () => { | ||
| if (driver != null) { | ||
| try { | ||
| await driver.quit() | ||
| } | ||
| catch (err) { | ||
| console.error(`quit driver: ${err}`) | ||
| } | ||
| } | ||
| }) | ||
| }) | ||
| ---- | ||
|
|
||
| == Grouped actions in Session Explorer | ||
|
|
||
| You can review grouped actions in the xref:session-explorer:analytics/use-the-session-timeline.adoc#_action_groups_timeline[Session Explorer timeline]. | ||
|
|
||
| == Limitations/Notes | ||
|
|
||
| * Only supported in Xium and Appium 2 Basic automation sessions. | ||
|
|
||
| * After adding action group, setting the group name to empty assigns the subsequent commands to the previous group. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file removed
BIN
-69.9 KB
docs/modules/devices/images/select-analyse-response-times-context.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 8 additions & 11 deletions
19
docs/modules/devices/partials/network-payload-capture/launch-session-explorer.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,20 +1,17 @@ | ||
| After your session, select *Sessions*. | ||
| In Kobiton, select *Sessions*. | ||
|
|
||
| image:select-sessions-closeup.png[width=1000,alt="Select Sessions tab"] | ||
| image:session-explorer:select-sessions-closeup.png[width=150,alt="Select Sessions tab"] | ||
|
|
||
| Search for your session, then select the *Session ID*. | ||
| xref:session-explorer:search-for-a-session.adoc[Find a session], then select the session in the search result. | ||
|
|
||
| [NOTE] | ||
| Learn more about xref:session-explorer:search-for-a-session.adoc[searching for a session]. | ||
| image:session-explorer:search-session-id-closeup.png[width=1000,alt="Search for a session ID"] | ||
|
|
||
| image:search-your-session-id-closeup.png[width=1000,alt="Search for your session ID"] | ||
| Once you select your session, Session Explorer appears. | ||
|
|
||
| Select *Explorer*. | ||
| image:session-explorer:select-explorer-context.png[width=1000,alt="Select Explorer tab"] | ||
|
|
||
| image:select-explorer-context.png[width=1000,alt="Select Explorer tab"] | ||
| From the dropdown, choose *Response Time Analysis*. | ||
|
|
||
| Select the dropdown and choose *Observer Request / Response Payloads* or *Analyze Response Times*. | ||
|
|
||
| image:select-analyse-response-times-context.png[width=1000,alt="Select Observe Request/ Response Payloads or Analyze Response Times"] | ||
| image:devices:select-analyze-response-time-context.png[width=1000,alt="Select Response Time Analysis"] | ||
|
|
||
| Now you can xref:session-explorer:analytics/review-network-payload-data.adoc[review network payload data] in Session Explorer. |
Binary file modified
BIN
-6.4 KB
(72%)
docs/modules/integrations/images/jira-create-ticket-button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+32.2 KB
(190%)
docs/modules/integrations/images/jira-create-ticket-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-12.1 KB
(38%)
docs/modules/integrations/images/jira-create-ticket-integration.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file modified
BIN
-39.4 KB
(27%)
docs/modules/session-explorer/images/appium-inspector-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+420 KB
(770%)
docs/modules/session-explorer/images/appium-inspector-select-element.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+9.49 KB
(110%)
docs/modules/session-explorer/images/attributes-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-5.13 KB
(53%)
docs/modules/session-explorer/images/capture-payload-indicator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+63.9 KB
(260%)
docs/modules/session-explorer/images/color-contrast-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-26.2 KB
(62%)
docs/modules/session-explorer/images/content-labeling-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-46.4 KB
(51%)
docs/modules/session-explorer/images/copy-crash-log-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file modified
BIN
-190 Bytes
(100%)
docs/modules/session-explorer/images/download-inventory-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+14.4 KB
(130%)
docs/modules/session-explorer/images/download-screenshot-closeup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-24.8 KB
(56%)
docs/modules/session-explorer/images/edit-session-description-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file modified
BIN
+35.8 KB
(170%)
docs/modules/session-explorer/images/expand-dropdown-to-see-details.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-36.5 KB
(8.6%)
docs/modules/session-explorer/images/hover-attribute-closeup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-14.3 KB
(84%)
docs/modules/session-explorer/images/inspect-elements-context.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
Oops, something went wrong.
Diff not rendered.
Binary file modified
BIN
+299 Bytes
(100%)
docs/modules/session-explorer/images/jump-to-step-npc-closeup.png
Oops, something went wrong.
Oops, something went wrong.
Binary file removed
BIN
-68.2 KB
docs/modules/session-explorer/images/launch-session-explorer-context.png
Diff not rendered.
Oops, something went wrong.
Binary file modified
BIN
-2.2 KB
(81%)
docs/modules/session-explorer/images/logs-last-mile-speed.png
Oops, something went wrong.
Oops, something went wrong.
Diff not rendered.
Diff not rendered.
Oops, something went wrong.
Oops, something went wrong.
Diff not rendered.
Binary file modified
BIN
-14.3 KB
(61%)
docs/modules/session-explorer/images/previous-next-closeup.png
Oops, something went wrong.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Binary file modified
BIN
+7.2 KB
(110%)
docs/modules/session-explorer/images/refresh-inventory-closeup.png
Oops, something went wrong.
Binary file modified
BIN
+390 KB
(540%)
docs/modules/session-explorer/images/review-device-log-copied-context.png
Oops, something went wrong.
Binary file modified
BIN
-35.8 KB
(22%)
docs/modules/session-explorer/images/review-device-logs-filter-closeup.png
Oops, something went wrong.
Binary file modified
BIN
-12.2 KB
(70%)
docs/modules/session-explorer/images/review-device-logs-search-closeup.png
Oops, something went wrong.
Binary file modified
BIN
-3.04 KB
(96%)
docs/modules/session-explorer/images/review-system-metrics-context.png
Oops, something went wrong.
Oops, something went wrong.
Binary file modified
BIN
+19.9 KB
(160%)
docs/modules/session-explorer/images/search-session-id-closeup.png
Oops, something went wrong.
Binary file modified
BIN
-53 KB
(37%)
docs/modules/session-explorer/images/see-package-name-size-npc-context.png
Oops, something went wrong.
Binary file modified
BIN
-68.1 KB
(27%)
docs/modules/session-explorer/images/select-a-session-context.png
Oops, something went wrong.
Binary file modified
BIN
-53.5 KB
(29%)
docs/modules/session-explorer/images/select-analyze-response-time-context.png
Oops, something went wrong.
Binary file modified
BIN
+16.5 KB
(130%)
docs/modules/session-explorer/images/select-explorer-context.png
Oops, something went wrong.
Binary file modified
BIN
+20.6 KB
(130%)
docs/modules/session-explorer/images/select-red-dots-context.png
Oops, something went wrong.
Diff not rendered.
Diff not rendered.
Binary file modified
BIN
-87 KB
(6.4%)
docs/modules/session-explorer/images/select-sessions-closeup.png
Oops, something went wrong.
Diff not rendered.
Binary file modified
BIN
-45.5 KB
(33%)
docs/modules/session-explorer/images/session-explorer-accessibility-validation.png
Oops, something went wrong.
Binary file removed
BIN
-95.9 KB
...odules/session-explorer/images/session-explorer-automated-test-case-context.png
Diff not rendered.
Binary file added
BIN
+18.3 KB
docs/modules/session-explorer/images/session-explorer-timeline-group-actions.png
Oops, something went wrong.
Diff not rendered.
Binary file removed
BIN
-48.9 KB
docs/modules/session-explorer/images/session-overview-context copy.png
Diff not rendered.
Binary file modified
BIN
+34.7 KB
(160%)
docs/modules/session-explorer/images/session-overview-context.png
Oops, something went wrong.
Binary file added
BIN
+10.2 KB
docs/modules/session-explorer/images/session-overview-execution-history.png
Oops, something went wrong.
Binary file added
BIN
+20.5 KB
docs/modules/session-explorer/images/session-overview-test-result-analysis.png
Oops, something went wrong.
Diff not rendered.
Binary file modified
BIN
+54.4 KB
(190%)
docs/modules/session-explorer/images/session-search-context.png
Oops, something went wrong.
Binary file modified
BIN
-50.9 KB
(32%)
docs/modules/session-explorer/images/session-tags-context.png
Oops, something went wrong.
Oops, something went wrong.
Diff not rendered.
Diff not rendered.
Binary file modified
BIN
-35 KB
(55%)
docs/modules/session-explorer/images/touch-target-size-context.png
Oops, something went wrong.
Binary file modified
BIN
+25.7 KB
(160%)
docs/modules/session-explorer/images/view-crash-logs-context.png
Oops, something went wrong.
Binary file modified
BIN
-30 KB
(59%)
...odules/session-explorer/images/view-details-accessbility-validation-context.png
Oops, something went wrong.
Binary file modified
BIN
-55.5 KB
(28%)
docs/modules/session-explorer/images/view-test-step-context.png
Oops, something went wrong.
Diff not rendered.
Diff not rendered.
Binary file removed
BIN
-83.5 KB
docs/modules/session-explorer/images/yellow-dots-on-timeline-context.png
Diff not rendered.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,18 @@ | ||
| = Session Explorer analytics | ||
| :navtitle: Analytics | ||
|
|
||
| You can use Session Explorer to reinspect Appium elements, review network payload data, use the session timeline, and more. | ||
| Kobiton's Session Explorer provides powerful insights into your mobile testing sessions. You can use Session Explorer to | ||
| inspect Appium elements, review network payload data, analyze detailed device logs, and | ||
| more. With a session timeline and video replays for step-by-step troubleshooting, it enables faster issue | ||
| identification and efficient app performance optimization. | ||
|
|
||
|
|
||
| == In this section | ||
|
|
||
| * xref:session-explorer:analytics/review-test-result-analysis.adoc[] | ||
| * xref:session-explorer:analytics/use-the-session-timeline.adoc[] | ||
| * xref:session-explorer:analytics/reinspect-appium-elements.adoc[] | ||
| * xref:session-explorer:analytics/review-network-payload-data.adoc[] | ||
| * xref:session-explorer:analytics/review-system-metrics.adoc[] | ||
| * xref:session-explorer:analytics/review-crash-logs.adoc[] | ||
| * xref:session-explorer:analytics/review-device-logs.adoc[] | ||
| * xref:session-explorer:analytics/review-device-logs.adoc[] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.