Closes#784Closes#785
First commit fixes a small bug that I observed while trying to record some new test fixtures: the stringification of the headers is not correctly printed as a list of tuples, but as an `iteritems` object, so I forced the list evaluation.
Second commit adds the missing properties `allow_merge_commit`, `allow_rebase_merge`, `allow_squash_merge`, and `has_projects` to the `Repository` class.
Note however that I ran into some trouble while modifying the `edit` method of the `Repository` class to make use of the new properties, specifically while writing tests, so I will fix the `edit` method in a future PR.
Fixes ##840
Adding archival support to Repository.edit
No unit tests are included for this change because while you can archive a repository via the edit API, there is no way to un-archive a repository via the edit API. (See: https://developer.github.com/v3/repos/#edit )
The API docs for Repository.get_git_tree specify that the URL parameter
for fetching a tree recursively should be ?recursive=1, not a truthy
value. To not change the API we present, check if it is True before
setting it to 1. Change another callsite of Repository.get_git_tree to
specify recursive=False to make sure it doesn't appear in the query
string.
Fixes#560
The description attribute handling requirement is
a custom media type in the Accept header:
application/vnd.github.symmetra-preview+json
Limitation: Repository.get_labels does not report description,
possibly something has changed in the preview API.
* Added is_draft and is_prerelease property to GitRelease
* Added target_commitish option to Repository.create_git_release()
* Added test for Repository.create_git_release()
* Renamed attr of GitRelease: is_draft, is_prerelease -> draft, prerelease
* Add flag for maintainer can modify when creating pull requests
* Change default to be None to let github decide the behaviour
* Update docstring
* Follow conventions from other functions
When there's no data, requestJsonAndCheck(), or rather
__structuredFromJson() returns None rather than {}.
As both None & {} evaluates to false, 'if not data:' will give the
correct behaviour regardless of returning {} or None.