According to https://developer.github.com/v3/#parameters:
For POST, PATCH, PUT, and DELETE requests, parameters
not included in the URL should be encoded as JSON with
a Content-Type of 'application/json'
Closes#407.
Change-Id: Iee60a3ed6e06b85cc64f687fd28e7663c1fc34e3
Both of those endpoints use PUT method, which means they must send
the parameters as a JSON encoded body rather than query parameters.
Source: https://developer.github.com/v3/#parametersFixes#402.
Closes#403.
Change-Id: I444d1ce9ba881200282ff617454addc2e6eb4793
This is largely a style change. In the case of NewRequest and NewUploadRequest, it is completely a noop given current code (since a new request is created, and each header is added only one time). For BasicAuthTransport, it's a noop as long as incoming request doesn't already have "X-GitHub-OTP" header set (and if it did, then this is a better behavior to change its value rather than add a new one).
Even though these changes are largely noops, Header.Set is a simpler primitive to reason about, and it's more representative of the intended action. For "Content-Type", "Accept", and "User-Agent" headers, multiple such headers do not make sense, so it's better to use Header.Set than Header.Add.
Use Timestamp type for GistCommit CommitedAt field.
Add support for ListForks endpoint.
Add missing fields for GistCommit and GistFork types.
Closes#385.
Change-Id: If1379d83173d52c974bb5834a834d97aee2f0ad8
These changes are now official, so the custom media type is no longer
needed.
Fixes#381.
Fixes#382.
Updates #279.
Change-Id: I33cad47c6645c5292f699826ae117b94260a3044
Note that this is an API-breaking change but should have minimal
impact on users of this package due to the nice inference
properties of the Go programming language.
Bumped `libraryVersion` to `2` due to API-breaking change as
discussed in #376.
Fixes#180.
Change-Id: Ib386135e6b8f306d1f54278968c576f3ceccc4e7
An upcoming change to Go 1.7 allows the json package to be able to encode maps
with the integer keys. Thus, this is no longer a good way to generate intentional
JSON failures.
Reference:
f05c3aa24d
Client.Rate() method is unreliable in situations when API calls are made
by others that may hit different rate limit categories (core and search).
Each API call already returns a Response struct that contains an accurate
Rate, so that's a better mechanism to access this information.
See relevant discussion at https://github.com/google/go-github/pull/347#discussion_r61920849.
When possible to do so reliably, i.e., the client knows that the rate
limit is exceeded and reset time is in the future, immediately return
*RateLimitError without making network calls to GitHub API.
Add a unit test covering RateLimits method populating client.rateLimits.
Remove commented out code.
Helps #152 and #153.
In GitHub API, there are currently two categories of rate limits: core
and search. Previously, the client only tracked the rate limit from the
most recent API call. This change makes it track both rate limit
categories.
This will be useful in the following commit.
If `RepositoriesService.DownloadReleaseAsset` encounters an error from
the GitHub API (e.g., 404 Not Found), The error would not be returned
by the method and instead the error payload would be delivered as the
`io.ReadCloser`. This patch resolves this with `CheckResponse`.
Fixes#343