github_api
Call a GitHub API endpoint and get the resulting JSON response
Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new).
Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body.
Documentation: https://developer.github.com/v3.
| github_api | |
|---|---|
| Supported platforms | ios, android, mac |
| Author | @tommeier |
| Returns | A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json). |
2 Examples
result = github_api(
server_url: "https://api.github.com",
api_token: ENV["GITHUB_TOKEN"],
http_method: "GET",
path: "/repos/:owner/:repo/readme",
body: { ref: "master" }
)
# Alternatively call directly with optional error handling or block usage
GithubApiAction.run(
server_url: "https://api.github.com",
api_token: ENV["GITHUB_TOKEN"],
http_method: "GET",
path: "/repos/:owner/:repo/readme",
error_handlers: {
404 => proc do |result|
UI.message("Something went wrong - I couldn't find it...")
end,
'*' => proc do |result|
UI.message("Handle all error codes other than 404")
end
}
) do |result|
UI.message("JSON returned: #{result[:json]}")
end
Parameters
| Key | Description | Default |
|---|---|---|
server_url |
The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') | https://api.github.com |
api_token |
Personal API Token for GitHub - generate one at https://github.com/settings/tokens | * |
api_bearer |
Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable | |
http_method |
The HTTP method. e.g. GET / POST | GET |
body |
The request body in JSON or hash format | {} |
raw_body |
The request body taken verbatim instead of as JSON, useful for file uploads | |
path |
The endpoint path. e.g. '/repos/:owner/:repo/readme' | |
url |
The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' | |
error_handlers |
Optional error handling hash based on status code, or pass '*' to handle all errors | {} |
headers |
Optional headers to apply | {} |
secure |
Optionally disable secure requests (ssl_verify_peer) | true |
* = default value is dependent on the user's system
Lane Variables
Actions can communicate with each other using a shared hash lane_context, that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ]. The github_api action generates the following Lane Variables:
| SharedValue | Description |
|---|---|
SharedValues::GITHUB_API_STATUS_CODE |
The status code returned from the request |
SharedValues::GITHUB_API_RESPONSE |
The full response body |
SharedValues::GITHUB_API_JSON |
The parsed json returned from GitHub |
To get more information check the Lanes documentation.
Documentation
To show the documentation in your terminal, run
fastlane action github_api
CLI
It is recommended to add the above action into your Fastfile, however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal
fastlane run github_api
To pass parameters, make use of the : symbol, for example
fastlane run github_api parameter1:"value1" parameter2:"value2"
It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:"1,2,3"). Hashes are not currently supported.
It is recommended to add all fastlane actions you use to your Fastfile.
Source code
This action, just like the rest of fastlane, is fully open source, view the source code on GitHub