43 Commits
Author SHA1 Message Date
Steve Hipwell 9fbf4bef19 feat!: Refactor request context (#4151)
BREAKING CHANGE: All internal calls now provide `Context` via the `Request` itself.
2026-04-24 14:45:31 -04:00
Oleksandr Redko 33cf038ac1 docs: Add apiVersion to GitHub API link (#4147) 2026-04-11 10:47:17 -04:00
Glenn Lewis a2063a76fb chore: Remove unnecessary use of new and &SomeStruct{} and add new extraneousnew custom linter (#4106) 2026-03-18 17:12:53 -04:00
Glenn Lewis 4505771989 Prefer %v over %d,%s and add fmtpercentv custom linter (#3756) 2025-10-05 21:39:53 -04:00
zyfy29 3a062d174a chore: Add new lint rule to make sure exported names documented (#3682) 2025-08-18 09:45:29 -04:00
Rupok Ghosh db8be8bc7f refactor!: Change GitService methods to pass required params by-value instead of by-ref (#3654)
BREAKING CHANGE: `GitService` methods now pass required params by-value instead of by-ref.
2025-08-04 15:02:50 -04:00
Oleksandr Redko a81b973f77 refactor: Fix gocritic.paramTypeCombine lint issues (#3655) 2025-07-28 11:26:12 -04:00
Alexis Couvreur 3c06fc105f fix!: Remove unused Stats field from Commit struct (#3395)
BREAKING CHANGE: The unused `Stats` field is removed from the `Commit` struct.

Fixes: #3394.
2024-12-18 12:27:11 -05:00
Oleksandr Redko 4cfd6bdc10 refactor: Enable perfsprint; fix appeared lint issues (#3324) 2024-10-11 08:59:20 -04:00
WillAbides a54bc7da1d Use metadata to reconcile go-github with GitHub's OpenAPI descriptions (#2919) 2023-11-03 10:26:59 -04:00
WillAbides aa3fcbe7aa Remove openpgp and change CreateCommit signature (#2935)
Fixes: #2932.
2023-09-21 09:58:34 -04:00
Julián Crespo 8e34527de8 Move to Protonmail PGP (#2666)
Fixes: #2317.
2023-03-08 16:03:04 -05:00
Victory Osikwemhe cdecead485 Change all fields from time.Time to github.Timestamp (#2646) 2023-01-26 16:39:42 -05:00
Glenn Lewis 7a7a7f0943 Update URLs (#2373)
Fixes: #2360.
2022-05-24 08:43:48 -04:00
Glenn Lewis a64f3a6d08 Update URLs (#1659) 2020-12-02 10:39:08 -05:00
Glenn Lewis 159b448168 Switch to new GitHub v3 API Documentation website (#1621) 2020-09-01 18:30:47 -04:00
Glenn Lewis e4b511744f Add pointers to structs in slices (#1443) 2020-02-28 09:37:37 -05:00
Anandkumar Patel cbe45b0df7 Add SignKey GPG entity param to allow easier signing of commits (#1198) 2019-06-22 12:36:27 -04:00
Liam Galvin 00add49aab Add signature field to commit creation (#1124)
Fixes #1123.
2019-02-19 21:18:50 -05:00
Palash Nigam c40b4abe46 GitHub Signing API: Remove custom media type (#1067)
Fixes #761.
2018-12-12 20:21:07 -05:00
Kevin Burke dd29b543e1 Fix spelling error (#1031) 2018-10-08 20:35:23 -04:00
Shagun Khemka 29a3681d05 Remove custom media type for global node IDs (#925)
Fixes #919.
2018-08-10 11:23:19 -04:00
Anubha Kushwaha cbeb72eaf5 Support preview GraphQL API v4 Node IDs. (#817)
Add NodeID field to objects that now expose it.

Reference: https://developer.github.com/changes/2017-12-19-graphql-node-id/.
2018-01-09 16:35:34 -05:00
Aleksandar Mirilovic 175a6b4bae Fixing issue with commit search results deserialization #601 (#602)
Fix issue with commit search results deserialization

Fixes #601.
2017-03-31 14:57:54 -07:00
Glenn Lewis 8a99328032 Document Git.CreateCommit and PullRequests.Edit arguments (#539)
Document Git.CreateCommit and PullRequests.Edit arguments

Additionally, protect code from potential panic in CreateCommit.

Fixes #531.
2017-03-08 12:45:55 -08:00
Dmitri Shuralyov 23d6cb9cac Add support for context package to all endpoints. (#529)
This is a large breaking API change. It is unavoidable and necessary
to resolve #526. This breaking change is part of bump to libraryVersion 3.

It adds ctx context.Context as first parameter to all endpoint methods,
including Do.

Updating for this API change should be easy and the compiler will help
catch instances that need to be updated. For example:

	main.go:193: not enough arguments in call to gh.Activity.MarkRepositoryNotificationsRead
		have (string, string, time.Time)
		want (context.Context, string, string, time.Time)
	...

You should pass the available context as first parameter. If your code
does not have context.Context available and you want to maintain previous
normal behavior, use context.Background(). Don't pass nil context; use
context.TODO() instead if you wish to delay figuring out the best context
to use. Then you can address the TODO at a later time.

Refer to documentation of package context at https://godoc.org/context
for more information.

This commit also changes ./tests/fields to use context.Background()
instead of deprecated oauth2.NoContext.

Resolves #526.
2017-02-20 16:05:42 -05:00
Kevin Burke 82629e0459 Use HTTPS for all developer.github.com links. (#551)
Avoids a redirect and possible tampering.
2017-02-17 20:59:02 -05:00
Dmitri Shuralyov 493b233dca Use single space after period. (#549)
This commit was largely generated by:

	perl -i -npe 's,^(\s*// .+[a-z]\.)  +([A-Z]),$1 $2,' $(git grep -l -E '^\s*//(.+\.)  +([A-Z])')

With additional manual followups to catch the few remaining missed
cases, such as inside non-go files, spaces after question marks, etc.

Fixes #548.
2017-02-15 16:14:26 -05:00
Nick Spragg 30a21ee1a3 Return nil error explicitly when there is no error. (#546)
Helps #536.
Follows #542.
2017-02-13 17:27:33 -05:00
Glenn Lewis a6edb1171a add support for git signing API methods
Fixes #334.

Change-Id: I9b10ae5e7679f5196778d9eb3ded6168d7facfc3
2016-06-13 12:58:45 -07:00
Glenn Lewis 5f4a113632 go-github: add useful fields to Webhooks
Change-Id: Ia4888efa18c557a31af7093cfa449a67650afa20
2016-02-19 15:18:54 -08:00
Dmitri Shuralyov 1e55bf6be8 Add CommentCount to Commit.
This integer exposes the number of comments that have been posted for that commit on GitHub.

It is documented at https://developer.github.com/v3/repos/commits/.
2015-01-21 08:59:41 -08:00
Diego Lapiduz be720bc862 Add missing quote mark 2014-07-22 08:25:43 -07:00
Tobias Schmidt 5be211b578 Fix CreateCommit
The input and response types for commit messages differ in the API.
While commit.Tree and commit.Parents are objects with fields when
returned by the GitHub API, the attributes are plain strings when
creating new commits.

See: https://developer.github.com/v3/git/commits/#create-a-commit
2014-07-22 08:17:16 -07:00
Chris Schaefer 871e9750ea Add support for RepositoriesService ListBranches 2014-03-31 10:17:05 -07:00
Will Norris 7452bae91f return nil resource on error
this change also includes some additional minor code cleanup

fixes #58
2013-09-24 11:44:46 -07:00
Konrad Malawski 1eaf38380d implement repos_commits API 2013-09-04 16:29:31 -07:00
Will Norris 303846dd04 redeclare String() as value method throughout 2013-08-21 15:17:53 -07:00
Will Norris 8f77def830 add Stringify function
This provides somewhat reasonable string representations of GitHub
structs.  This is specifically designed for this library and takes a
number of shortcuts where it can, so is not suitable as a general
purpose solution.  That said, I am exporting this function because it is
useful for things like printing out slices of GitHub structs, as can be
seen in examples/example.go.

I am certainly open to suggestions for what exactly the stringified
output should look like.  Currently, I think I've found a reasonable
compromise between fmt's "%v" and "%s" output.
2013-08-20 13:39:59 -07:00
Will Norris 3072d069f2 switch singular GitHub struct fields to pointers
Like a51d6b4303, this change makes me sad, mainly because it is a
breaking change for all clients, and makes common tasks like reading
data out of structs slightly more work, with no direct benefit. Notably,
developers will need to make sure and check for nil values before trying
to dereference these pointers.  Sadly, the change is still necessary, as
is more fully explained in issue #19.  We can make the nil pointer
checks a little easier by adding some Get* funcs like goprotobuf does.

I spent a lot of time over the last few weeks exploring this change
(switching fields to pointers) versus the much larger change of using
protocol buffers for all GitHub data types.  While the goprotobuf
library is very mature and feature-rich (it's used heavily inside of
Google), it's the wrong tool for this task, since we're not actually
using the proto wire format.  While it does address the immediate
concern in #19, it makes way too many other things terribly awkward.

One of the biggest drawbacks of this change is that it will make the
string output from fmt.Printf("%v") next to useless, since all pointer
values are displayed as their memory address.  To handle that, I'll be
writing a custom String() function for these structs that is heavily
inspired by goprotobuf and internals from go's fmt package.
2013-08-20 13:21:47 -07:00
Will Norris a51d6b4303 return Response object from all API functions
The truth is, this change makes me sad.  It's a breaking change
for all clients and it adds more complexity to the library surface.  In
most cases, clients will simply drop the Response object on the floor
(which is actually all the library itself was doing before this
change... now we're just pushing that off to the client).

Initially, the Response object will be primarily of interest for
functions that return paginated result sets, since the Response.NextPage
field is the only way to know for sure if there are more pages that
should be fetched.  And this is really the cleanest way to get at that
data, so in that respect this change isn't so bad.

It's also worth noting that returning the raw Response object makes a
lot more since in a GitHub library than it may in others, given how
GitHub makes liberal (read: proper) use of HTTP request and response
headers.  Other APIs, like Google's various APIs for example, tend to
push things like pagination links into the response body.  While this is
certainly less of a purist view in terms of REST, it does make the lives
of client developers a lot easier, since then the response body contains
everything you need to know.  But whatever; this is how GitHub rolls, so
we'll roll right along with them.  (Somewhat ironically we are ignoring
the RESTful links in the GitHub response bodies, since we're actually
calling the API in an RPC style and don't do anything with those links.)

We still don't have an easy way to set arbitrary request headers, but
that's a problem for another day.

Fixes #22
2013-08-01 14:31:55 -07:00
Billy Lynch 17e6197971 Various gofmt fixes from restructuring. 2013-08-01 12:14:08 -04:00
Billy Lynch 1e532bd48b Restructured Git Data Service files. 2013-08-01 11:19:58 -04:00