Skip to content
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

Add description for Habitica get_tasks action. #35210

Open
wants to merge 4 commits into
base: next
Choose a base branch
from

Conversation

catsmanac
Copy link
Contributor

@catsmanac catsmanac commented Oct 13, 2024

Proposed change

Add description of a get_tasks action which is being added to the Habitica integration

Type of change

  • Spelling, grammar or other readability improvements (current branch).
  • Adjusted missing or incorrect information in the current documentation (current branch).
  • Added documentation for a new integration I'm adding to Home Assistant (next branch).
  • Added documentation for a new feature I'm adding to Home Assistant (next branch).
  • Removed stale or deprecated documentation.

Additional information

Checklist

  • This PR uses the correct branch, based on one of the following:
    • I made a change to the existing documentation and used the current branch.
    • I made a change that is related to an upcoming version of Home Assistant and used the next branch.
  • The documentation follows the Home Assistant documentation standards.

Summary by CodeRabbit

  • New Features

    • Introduced a new action for retrieving and managing Habitica tasks with advanced filtering options.
  • Documentation

    • Updated documentation to include detailed descriptions and requirements for the new action, enhancing user understanding and usability.

@home-assistant home-assistant bot added Hacktoberfest An PR on this issue (or the PR itself) is eligible towards Hacktoberfest! has-parent This PR has a parent PR in a other repo next This PR goes into the next branch labels Oct 13, 2024
Copy link

netlify bot commented Oct 13, 2024

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit ec5a84f
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/6737835069ac7400081b2bf0
😎 Deploy Preview https://deploy-preview-35210--home-assistant-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

coderabbitai bot commented Oct 13, 2024

📝 Walkthrough

Walkthrough

The changes introduce a new action, habitica.get_tasks, to the Habitica integration documentation. This action allows users to retrieve their Habitica character's task list with various filtering options, including task types, priorities, names, tags, and keywords. The documentation has been updated to provide detailed descriptions of this new action and its data attributes, while existing sections remain unchanged.

Changes

File Change Summary
source/_integrations/habitica.markdown Added new action habitica.get_tasks with details on filtering options and data attributes.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant HabiticaIntegration
    participant HabiticaAPI

    User->>HabiticaIntegration: Request to get tasks
    HabiticaIntegration->>HabiticaAPI: Call get_tasks with filters
    HabiticaAPI-->>HabiticaIntegration: Return task list
    HabiticaIntegration-->>User: Provide filtered task list
Loading

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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

🧹 Outside diff range and nitpick comments (1)
source/_integrations/habitica.markdown (1)

89-97: LGTM! New action documentation added successfully.

The new section for the habitica.get_tasks action is well-structured and provides clear information about its purpose and filtering options.

Minor grammatical correction needed.

In the list of task types, "todo" should be hyphenated to "to-do" for consistency with the rest of the document.

Apply this change:

-Task types   [habit, daily, todo, reward]
+Task types   [habit, daily, to-do, reward]

Consider adding data attributes information.

To improve completeness, consider adding information about the required and optional data attributes for this action, similar to the habitica.cast_skill action documentation above.

Would you like assistance in drafting a data attributes table for this action?

🧰 Tools
🪛 LanguageTool

[grammar] ~93-~93: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...done on: - Task types [habit, daily, todo, reward] - Task priorities [trivial, ea...

(TO_DO_HYPHEN)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 8a9f78b and 8503332.

📒 Files selected for processing (1)
  • source/_integrations/habitica.markdown (1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/habitica.markdown

[grammar] ~93-~93: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...done on: - Task types [habit, daily, todo, reward] - Task priorities [trivial, ea...

(TO_DO_HYPHEN)

@catsmanac catsmanac marked this pull request as draft October 14, 2024 11:24
@catsmanac catsmanac marked this pull request as ready for review October 14, 2024 19:35
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

🧹 Outside diff range and nitpick comments (1)
source/_integrations/habitica.markdown (1)

89-100: LGTM! Consider a minor formatting adjustment for consistency.

The new habitica.get_tasks action is well-documented and provides valuable functionality for retrieving tasks with various filtering options. The description and table are clear and informative.

For consistency with other tables in the document, consider wrapping the data attribute names in the table with backticks. For example:

| Data attribute | Optional | Description                                                                                              |
| -------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `config_entry` | no       | Choose the Habitica character to retrieve tasks from.                                                    |
| `type`         | yes      | Filter tasks by type.                                                                                    |
| `priority`     | yes      | Filter tasks by difficulty.                                                                              |
| `task`         | yes      | Select specific tasks by matching their name (or task ID).                                               |
| `tag`          | yes      | Filter tasks that have one or more of the selected tags.                                                 |
| `keyword`      | yes      | Filter tasks by keyword, searching across titles, notes, and checklists.                                 |
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 8503332 and a352361.

📒 Files selected for processing (1)
  • source/_integrations/habitica.markdown (1 hunks)
🧰 Additional context used
🔇 Additional comments (1)
source/_integrations/habitica.markdown (1)

Line range hint 1-100: Overall changes look good and align with PR objectives.

The addition of the habitica.get_tasks action enhances the Habitica integration by allowing users to retrieve tasks with various filtering options. This new functionality is well-documented and seamlessly integrated into the existing markdown file.

The changes align with the PR objectives and the AI-generated summary, providing a clear description of the new get_tasks action. The rest of the file remains unchanged, maintaining consistency with the existing documentation.

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: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a352361 and f4bcbac.

📒 Files selected for processing (1)
  • source/_integrations/habitica.markdown (1 hunks)

Comment on lines 133 to 239
### Action `habitica.get_tasks`

Fetch tasks from your Habitica account, with optional filters to narrow down the results for more precise task retrieval.

| Data attribute | Optional | Description |
| -------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| config_entry | no | Choose the Habitica character to retrieve tasks from. |
| type | yes | Filter tasks by type. |
| priority | yes | Filter tasks by difficulty. |
| task | yes | Select specific tasks by matching their name (or task ID). |
| tag | yes | Filter tasks that have one or more of the selected tags. |
| keyword | yes | Filter tasks by keyword, searching across titles, notes, and checklists. |

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Documentation needs additional details for better usability.

While the basic structure is good, the documentation would be more helpful with the following additions:

  1. Add possible values for the filters:

    • What are the valid task types? (e.g., "habits", "dailies", "todos")
    • What are the valid priority levels?
    • What format should the tag names be in?
  2. Include example usage:

    • Add a basic example of fetching all tasks
    • Add an example with filters
    • Consider adding an automation example like the other sections
  3. Document the return format:

    • What structure/format is the returned data in?
    • What fields are included for each task?

Here's a suggested expansion of the documentation:

 ### Action `habitica.get_tasks`
 
 Fetch tasks from your Habitica account, with optional filters to narrow down the results for more precise task retrieval.
 
 | Data attribute | Optional | Description                                                                                              |
 | -------------- | -------- | -------------------------------------------------------------------------------------------------------- |
 | config_entry   | no       | Choose the Habitica character to retrieve tasks from.                                                    |
-| type           | yes      | Filter tasks by type.                                                                                    |
+| type           | yes      | Filter tasks by type. Valid types: "habits", "dailies", "todos", "rewards".                             |
-| priority       | yes      | Filter tasks by difficulty.                                                                              |
+| priority       | yes      | Filter tasks by difficulty. Valid values: 0.1 (Trivial), 1 (Easy), 1.5 (Medium), 2 (Hard).              |
 | task           | yes      | Select specific tasks by matching their name (or task ID).                                               |
 | tag            | yes      | Filter tasks that have one or more of the selected tags.                                                 |
 | keyword        | yes      | Filter tasks by keyword, searching across titles, notes, and checklists.                                 |
+
+#### Example Usage
+
+Basic usage to fetch all tasks:
+```yaml
+service: habitica.get_tasks
+data:
+  config_entry: your_config_entry
+```
+
+Fetch only high-priority daily tasks:
+```yaml
+service: habitica.get_tasks
+data:
+  config_entry: your_config_entry
+  type: dailies
+  priority: 2
+```
+
+#### Response Format
+
+The action returns a list of tasks, where each task contains:
+- `id`: Unique task identifier
+- `text`: Task title/description
+- `type`: Task type (habit/daily/todo/reward)
+- `priority`: Task difficulty
+[Additional fields to be documented...]

source/_integrations/habitica.markdown Outdated Show resolved Hide resolved
source/_integrations/habitica.markdown Outdated Show resolved Hide resolved
@catsmanac catsmanac changed the title Add description for habita get_tasks action. Add description for Habitica get_tasks action. Nov 10, 2024
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: 1

🧹 Outside diff range and nitpick comments (1)
source/_integrations/habitica.markdown (1)

217-217: Fix hyphenation in task types.

For consistency with the rest of the documentation, "todos" should be hyphenated as "to-dos".

🧰 Tools
🪛 LanguageTool

[grammar] ~217-~217: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe. Valid types: "habits", "dailies", "todos", "rewards". ...

(TO_DO_HYPHEN)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f4bcbac and df8f697.

📒 Files selected for processing (1)
  • source/_integrations/habitica.markdown (1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/habitica.markdown

[grammar] ~217-~217: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe. Valid types: "habits", "dailies", "todos", "rewards". ...

(TO_DO_HYPHEN)

catsmanac and others added 4 commits November 15, 2024 17:21
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
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: 1

🧹 Outside diff range and nitpick comments (2)
source/_integrations/habitica.markdown (2)

234-234: Fix hyphenation in task type.

For consistency with the rest of the documentation, "todos" should be hyphenated as "to-dos".

-| type           | yes      | Filter tasks by type.  Valid types: "habits", "dailies", "todos", "rewards".                                                                                     |
+| type           | yes      | Filter tasks by type. Valid types: "habits", "dailies", "to-dos", "rewards".                                                                                     |
🧰 Tools
🪛 LanguageTool

[grammar] ~234-~234: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe. Valid types: "habits", "dailies", "todos", "rewards". ...

(TO_DO_HYPHEN)


231-238: Fix table formatting inconsistencies.

The table has inconsistent spacing and alignment. Some lines have extra spaces that should be removed.

-| Data attribute | Optional | Description                                                                                              |
-| -------------- | -------- | -------------------------------------------------------------------------------------------------------- |
-| config_entry   | no       | Choose the Habitica character to retrieve tasks from.                                                    |
-| type           | yes      | Filter tasks by type.  Valid types: "habits", "dailies", "to-dos", "rewards".                                                                                     |
-| priority       | yes      | Filter tasks by difficulty. Valid values: "trivial", "easy", "medium", "hard".                                                                              |
-| task           | yes      | Select specific tasks by matching their name (or task ID).                                               |
-| tag            | yes      | Filter tasks that have one or more of the selected tags.                                                 |
-| keyword        | yes      | Filter tasks by keyword, searching across titles, notes, and checklists.                                 |
+| Data attribute | Optional | Description |
+| -------------- | -------- | ----------- |
+| config_entry   | no       | Choose the Habitica character to retrieve tasks from. |
+| type           | yes      | Filter tasks by type. Valid types: "habits", "dailies", "to-dos", "rewards". |
+| priority       | yes      | Filter tasks by difficulty. Valid values: "trivial", "easy", "medium", "hard". |
+| task           | yes      | Select specific tasks by matching their name (or task ID). |
+| tag            | yes      | Filter tasks that have one or more of the selected tags. |
+| keyword        | yes      | Filter tasks by keyword, searching across titles, notes, and checklists. |
🧰 Tools
🪛 LanguageTool

[grammar] ~234-~234: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe. Valid types: "habits", "dailies", "todos", "rewards". ...

(TO_DO_HYPHEN)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between df8f697 and ec5a84f.

📒 Files selected for processing (1)
  • source/_integrations/habitica.markdown (1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/habitica.markdown

[grammar] ~234-~234: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe. Valid types: "habits", "dailies", "todos", "rewards". ...

(TO_DO_HYPHEN)

Comment on lines +227 to +239
### Action `habitica.get_tasks`

Fetch tasks from your Habitica account, with optional filters to narrow down the results for more precise task retrieval.

| Data attribute | Optional | Description |
| -------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| config_entry | no | Choose the Habitica character to retrieve tasks from. |
| type | yes | Filter tasks by type. Valid types: "habits", "dailies", "todos", "rewards". |
| priority | yes | Filter tasks by difficulty. Valid values: "trivial", "easy", "medium", "hard". |
| task | yes | Select specific tasks by matching their name (or task ID). |
| tag | yes | Filter tasks that have one or more of the selected tags. |
| keyword | yes | Filter tasks by keyword, searching across titles, notes, and checklists. |

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add examples and return format documentation.

Following the pattern of other actions in the documentation, this section would benefit from examples and return format details.

Add the following sections after the data attributes table:

#### Examples

Fetch all tasks:
```yaml
service: habitica.get_tasks
data:
  config_entry: your_config_entry

Fetch high-priority dailies:

service: habitica.get_tasks
data:
  config_entry: your_config_entry
  type: dailies
  priority: hard

Fetch tasks with specific tag and keyword:

service: habitica.get_tasks
data:
  config_entry: your_config_entry
  tag: work
  keyword: urgent

Return Format

The action returns a list of tasks, where each task contains:

  • id: Unique task identifier
  • text: Task title
  • type: Task type (habit/daily/to-do/reward)
  • priority: Task difficulty
  • notes: Additional task notes (if any)
  • checklist: List of checklist items (if any)
  • tags: List of associated tags
  • due: Due date (for to-dos, if set)
  • frequency: Repeat frequency (for dailies)
  • streak: Current completion streak

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[grammar] ~234-~234: It appears that a hyphen is missing in the plural noun “to-dos”?
Context: ...pe.  Valid types: "habits", "dailies", "todos", "rewards".                           ...

(TO_DO_HYPHEN)

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Hacktoberfest An PR on this issue (or the PR itself) is eligible towards Hacktoberfest! has-parent This PR has a parent PR in a other repo next This PR goes into the next branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants