Repository: PyGithub/PyGithub

Issue:
Missing new options for controlling the default commit title on the Repository
Hi,

I was investigating how to implement the new options around default commit messages when merging a pull request:

https://github.blog/changelog/2022-08-23-new-options-for-controlling-the-default-commit-message-when-merging-a-pull-request/ 

Based on the above this can be implemented via the API using:
`squash_merge_commit_title` and `squash_merge_commit_message` as seen on the API: https://docs.github.com/en/rest/repos/repos#update-a-repository

I can't find this being implemented on `PyGithub` but I can see we can modify on the `edit` repo the type of merge: https://github.com/PyGithub/PyGithub/blob/master/github/Repository.py#L1564-L1566

Is this something that people would be interested about?

Thanks,


Discussion:
+1 

hacking this for now with:
```python
        requester: Requester = self._client._Github__requester     # type: ignore

        # squash merging commits default to pull request title and description
        post_parameters = {
            "squash_merge_commit_title": "PR_TITLE",
            "squash_merge_commit_message": "PR_BODY"
        }
        _, _ = requester.requestJsonAndCheck(
            "POST", f"{requester.base_url}/repos/{org_name}/{repo_name}", input=post_parameters
        )
```        
Looks like all is needed here is adding the `squash_*` attributes to `Repository`. Any volunteers?

https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#update-a-repository

Resolving patch:
diff --git a/github/Organization.py b/github/Organization.py
--- a/github/Organization.py
+++ b/github/Organization.py
@@ -476,6 +476,14 @@ def create_repo(
         allow_rebase_merge: Opt[bool] = NotSet,
         delete_branch_on_merge: Opt[bool] = NotSet,
         allow_update_branch: Opt[bool] = NotSet,
+        is_template: Opt[bool] = NotSet,
+        allow_auto_merge: Opt[bool] = NotSet,
+        use_squash_pr_title_as_default: Opt[bool] = NotSet,
+        squash_merge_commit_title: Opt[str] = NotSet,
+        squash_merge_commit_message: Opt[str] = NotSet,
+        merge_commit_title: Opt[str] = NotSet,
+        merge_commit_message: Opt[str] = NotSet,
+        custom_properties: Opt[dict[str, Any]] = NotSet,
     ) -> github.Repository.Repository:
         """
         :calls: `POST /orgs/{org}/repos <https://docs.github.com/en/rest/reference/repos>`_
@@ -498,6 +506,19 @@ def create_repo(
         assert is_optional(allow_rebase_merge, bool), allow_rebase_merge
         assert is_optional(delete_branch_on_merge, bool), delete_branch_on_merge
         assert is_optional(allow_update_branch, bool), allow_update_branch
+        assert is_optional(is_template, bool), is_template
+        assert is_optional(allow_auto_merge, bool), allow_auto_merge
+        assert is_optional(use_squash_pr_title_as_default, bool), use_squash_pr_title_as_default
+        assert squash_merge_commit_title in ["PR_TITLE", "COMMIT_OR_PR_TITLE", NotSet], squash_merge_commit_title
+        assert squash_merge_commit_message in [
+            "PR_BODY",
+            "COMMIT_MESSAGES",
+            "BLANK",
+            NotSet,
+        ], squash_merge_commit_message
+        assert merge_commit_title in ["PR_TITLE", "MERGE_MESSAGE", NotSet], merge_commit_title
+        assert merge_commit_message in ["PR_TITLE", "PR_BODY", "BLANK", NotSet], merge_commit_message
+        assert is_optional(custom_properties, dict), custom_properties
         post_parameters = NotSet.remove_unset_items(
             {
                 "name": name,
@@ -518,6 +539,14 @@ def create_repo(
                 "allow_rebase_merge": allow_rebase_merge,
                 "delete_branch_on_merge": delete_branch_on_merge,
                 "allow_update_branch": allow_update_branch,
+                "is_template": is_template,
+                "allow_auto_merge": allow_auto_merge,
+                "use_squash_pr_title_as_default": use_squash_pr_title_as_default,
+                "squash_merge_commit_title": squash_merge_commit_title,
+                "squash_merge_commit_message": squash_merge_commit_message,
+                "merge_commit_title": merge_commit_title,
+                "merge_commit_message": merge_commit_message,
+                "custom_properties": custom_properties,
             }
         )
 


Test patch: