| /* |
| Package gerrit provides a client for using the Gerrit API. |
| |
| Construct a new Gerrit client, then use the various services on the client to |
| access different parts of the Gerrit API. For example: |
| |
| instance := "https://go-review.googlesource.com/" |
| client, _ := gerrit.NewClient(instance, nil) |
| |
| // Get all public projects |
| projects, _, err := client.Projects.ListProjects(nil) |
| |
| Set optional parameters for an API method by passing an Options object. |
| |
| // Get all projects with descriptions |
| opt := &gerrit.ProjectOptions{ |
| Description: true, |
| } |
| projects, _, err := client.Projects.ListProjects(opt) |
| |
| The services of a client divide the API into logical chunks and correspond to |
| the structure of the Gerrit API documentation at |
| https://gerrit-review.googlesource.com/Documentation/rest-api.html#_endpoints. |
| |
| Authentication |
| |
| The go-gerrit library supports various methods to support the authentication. |
| This methods are combined in the AuthenticationService that is available at client.Authentication. |
| |
| One way is an authentication via HTTP cookie. |
| Some Gerrit instances hosted like the one hosted googlesource.com (e.g. https://go-review.googlesource.com/, |
| https://android-review.googlesource.com/ or https://gerrit-review.googlesource.com/) support HTTP Cookie authentication. |
| |
| You need the cookie name and the cookie value. |
| You can get them by click on "Settings > HTTP Password > Obtain Password" in your Gerrit instance. |
| There you can receive your values. |
| The cookie name will be (mostly) "o" (if hosted on googlesource.com). |
| Your cookie secret will be something like "git-your@email.com=SomeHash...". |
| |
| instance := "https://gerrit-review.googlesource.com/" |
| client, _ := gerrit.NewClient(instance, nil) |
| client.Authentication.SetCookieAuth("o", "my-cookie-secret") |
| |
| self, _, _ := client.Accounts.GetAccount("self") |
| |
| fmt.Printf("Username: %s", self.Name) |
| |
| // Username: Andy G. |
| |
| Some other Gerrit instances (like https://review.typo3.org/) has auth.gitBasicAuth activated. |
| With this you can authenticate with HTTP Basic like this: |
| |
| instance := "https://review.typo3.org/" |
| client, _ := gerrit.NewClient(instance, nil) |
| client.Authentication.SetBasicAuth("andy.grunwald", "my secrect password") |
| |
| self, _, _ := client.Accounts.GetAccount("self") |
| |
| fmt.Printf("Username: %s", self.Name) |
| |
| // Username: Andy Grunwald |
| |
| Additionally when creating a new client, pass an http.Client that supports further actions for you. |
| For more information regarding authentication have a look at the Gerrit documentation: |
| https://gerrit-review.googlesource.com/Documentation/rest-api.html#authentication |
| |
| */ |
| package gerrit |