# GitHub Projects Support

[GitHub Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) is GitHub's flexible and configurable planning and task management system. Logilica supports GitHub Projects boards by importing them as **Planning data**.

Given the highly customisable nature of GitHub Projects, Logilica uses a number of heuristics and rules to map and model planning data from GitHub Projects.

These rules are based on matching either [labels](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels) on [GitHub Issues](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues), or on a [custom field](https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields) within an issue. The values of these fields or labels are then mapped into the Logilica data model. Unless stated otherwise, all matching is done *case-insensitively*.

### Issue Types

GitHub Project Issue types are detected in two ways:

* A label on the issue that begins with `kind/` or `type/` the text following the `/` is taken as the **issue type name**.
* The value of a custom field named either `kind` or `type` is taken as the **issue type name**.

**Note**: when both these are present, the custom field takes precedence

### Issue Status

Logilica matches against GitHub's issue status field and maps this internally to one of three states

* **Todo** - any item whose issue state is unset or matches `todo` or `to do`
* **In Progress** - any item whose issue state matches `in progress` or `in review`
* **Done** - any item whose issue state matches `done`

### Sprints

Logilica detects Sprints through the values used in a custom [iteration field](https://docs.github.com/en/issues/planning-and-tracking-with-projects/understanding-fields/about-iteration-fields) within imported issues. The custom iteration field must be named `sprint`.

### Other Fields

In addition to the above, the below fields are also supported:

* **Priority** - matches the value that appears after a label that starts with `priority/` or a custom field on an issue with the name `priority`.
* **Story Points** - matches on a custom field within an issue named `story point`

## Best Practices

For Logilica to most accurately reflect the GitHub Projects data, we recommend following a few best practices in your GitHub Projects setup:

* Use labels or custom fields to define issue types with the convention explained [above](#issue-types).
* Use issue status such as `todo` , `in progress` and `done` as explained [above](#issue-status).
* Make sure you are using the `iteration field` to define sprints.
* Define story points and priorities as described [above](#other-fields).

For more questions consult the GitHub Projects [documentation](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) or connect with your Logilica support representative.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.logilica.com/advanced/integrations-data-mapping/github-projects-support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
