# {py:mod}`drafty_dev.tools.add_changes`

```{py:module} drafty_dev.tools.add_changes
```

```{autodoc2-docstring} drafty_dev.tools.add_changes
:parser: drafty_dev.docs.docstrings
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`Issue <drafty_dev.tools.add_changes.Issue>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.Issue
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`Change <drafty_dev.tools.add_changes.Change>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.Change
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
````

### Functions

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`add_change <drafty_dev.tools.add_changes.add_change>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.add_change
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`get_issue_from_active_branch <drafty_dev.tools.add_changes.get_issue_from_active_branch>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.get_issue_from_active_branch
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`get_change <drafty_dev.tools.add_changes.get_change>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.get_change
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`get_connected_prs <drafty_dev.tools.add_changes.get_connected_prs>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.get_connected_prs
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`query_gh_issue <drafty_dev.tools.add_changes.query_gh_issue>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.query_gh_issue
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
* - {py:obj}`sanitize <drafty_dev.tools.add_changes.sanitize>`
  - ```{autodoc2-docstring} drafty_dev.tools.add_changes.sanitize
    :parser: drafty_dev.docs.docstrings
    :summary:
    ```
````

### API

````{py:function} add_change(typ: drafty_dev.tools.types.ChangeType = 'change')
:canonical: drafty_dev.tools.add_changes.add_change

```{autodoc2-docstring} drafty_dev.tools.add_changes.add_change
:parser: drafty_dev.docs.docstrings
```
````

`````{py:class} Issue
:canonical: drafty_dev.tools.add_changes.Issue

Bases: {py:obj}`typing.NamedTuple`

```{autodoc2-docstring} drafty_dev.tools.add_changes.Issue
:parser: drafty_dev.docs.docstrings
```

````{py:attribute} owner
:canonical: drafty_dev.tools.add_changes.Issue.owner
:type: str
:value: >
   None

```{autodoc2-docstring} drafty_dev.tools.add_changes.Issue.owner
:parser: drafty_dev.docs.docstrings
```

````

````{py:attribute} repo
:canonical: drafty_dev.tools.add_changes.Issue.repo
:type: str
:value: >
   None

```{autodoc2-docstring} drafty_dev.tools.add_changes.Issue.repo
:parser: drafty_dev.docs.docstrings
```

````

````{py:attribute} issue
:canonical: drafty_dev.tools.add_changes.Issue.issue
:type: int
:value: >
   None

```{autodoc2-docstring} drafty_dev.tools.add_changes.Issue.issue
:parser: drafty_dev.docs.docstrings
```

````

`````

````{py:function} get_issue_from_active_branch() -> drafty_dev.tools.add_changes.Issue
:canonical: drafty_dev.tools.add_changes.get_issue_from_active_branch

```{autodoc2-docstring} drafty_dev.tools.add_changes.get_issue_from_active_branch
:parser: drafty_dev.docs.docstrings
```
````

`````{py:class} Change
:canonical: drafty_dev.tools.add_changes.Change

```{autodoc2-docstring} drafty_dev.tools.add_changes.Change
:parser: drafty_dev.docs.docstrings
```

````{py:attribute} id
:canonical: drafty_dev.tools.add_changes.Change.id
:type: int
:value: >
   None

```{autodoc2-docstring} drafty_dev.tools.add_changes.Change.id
:parser: drafty_dev.docs.docstrings
```

````

````{py:attribute} name
:canonical: drafty_dev.tools.add_changes.Change.name
:type: str
:value: >
   None

```{autodoc2-docstring} drafty_dev.tools.add_changes.Change.name
:parser: drafty_dev.docs.docstrings
```

````

`````

````{py:function} get_change(owner: str, repo: str, issue: int) -> drafty_dev.tools.add_changes.Change
:canonical: drafty_dev.tools.add_changes.get_change

```{autodoc2-docstring} drafty_dev.tools.add_changes.get_change
:parser: drafty_dev.docs.docstrings
```
````

````{py:function} get_connected_prs(owner: str, repo: str, issue: int, first: int) -> list[dict[str, typing.Any]]
:canonical: drafty_dev.tools.add_changes.get_connected_prs

```{autodoc2-docstring} drafty_dev.tools.add_changes.get_connected_prs
:parser: drafty_dev.docs.docstrings
```
````

````{py:function} query_gh_issue(owner: str, repo: str, issue: int, query: str = 'title') -> dict[str, typing.Any]
:canonical: drafty_dev.tools.add_changes.query_gh_issue

```{autodoc2-docstring} drafty_dev.tools.add_changes.query_gh_issue
:parser: drafty_dev.docs.docstrings
```
````

````{py:function} sanitize(query: str) -> str
:canonical: drafty_dev.tools.add_changes.sanitize

```{autodoc2-docstring} drafty_dev.tools.add_changes.sanitize
:parser: drafty_dev.docs.docstrings
```
````
