Merge remote-tracking branch 'origin/master' into olstenlarck-triage-new-issues-app
* origin/master: (51 commits) Move untrivializer to _apps Use full doc url Remove / on host Move to _apps Sync data Update docs Update docs for v4.0.0 Sync data Add Lock Threads app Sync data Sync data Sync data Sync data Sync data Sync data Sync data Update prevent-public doc link to be static Add Prevent Public Repos Probot App Sync data Sync data ...
@@ -9,12 +9,16 @@ authors:
|
||||
- ahmed-taj
|
||||
repository: ahmed-taj/commitlint-bot
|
||||
host: https://commitlint.now.sh
|
||||
stars: 20
|
||||
updated: 2017-11-08 18:31:05 UTC
|
||||
installations: 4
|
||||
stars: 25
|
||||
updated: 2017-12-02 14:17:57 UTC
|
||||
installations: 9
|
||||
organizations:
|
||||
- db-migrate
|
||||
- caarlos0
|
||||
- algolia
|
||||
- ahmed-taj
|
||||
- aVengineers
|
||||
- caiquecastro
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
|
||||
12
_apps/dco.md
@@ -4,24 +4,24 @@ description: Enforce the DCO on Pull Requests
|
||||
slug: dco
|
||||
screenshots:
|
||||
- https://cloud.githubusercontent.com/assets/173/24482273/a35dc23e-14b5-11e7-9371-fd241873e2c3.png
|
||||
stars: 31
|
||||
stars: 36
|
||||
authors:
|
||||
- bkeepers
|
||||
repository: probot/dco
|
||||
updated: 2017-11-02 13:13:46 UTC
|
||||
updated: 2017-12-13 17:18:43 UTC
|
||||
host: https://probot-dco.herokuapp.com
|
||||
installations: 76
|
||||
installations: 98
|
||||
organizations:
|
||||
- hyperledger
|
||||
- gradle
|
||||
- jaegertracing
|
||||
- envoyproxy
|
||||
- linkerd
|
||||
- phpmyadmin
|
||||
- db-migrate
|
||||
- WeblateOrg
|
||||
- theupdateframework
|
||||
- coreinfrastructure
|
||||
- redhat-developer
|
||||
- mainflux
|
||||
- jbosstools
|
||||
---
|
||||
|
||||
|
||||
|
||||
74
_apps/dep.md
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
title: Dep
|
||||
description: A dependency manager for your Pull Requests.
|
||||
slug: dep
|
||||
screenshots:
|
||||
- https://github.com/ahmed-taj/dep/raw/master/docs/assets/comment.png
|
||||
- https://github.com/ahmed-taj/dep/raw/master/docs/assets/status.png
|
||||
authors:
|
||||
- ahmed-taj
|
||||
repository: ahmed-taj/dep
|
||||
host: https://dep.now.sh
|
||||
stars: 8
|
||||
updated: 2017-11-25 11:27:00 UTC
|
||||
installations: 6
|
||||
organizations:
|
||||
- probot
|
||||
- tunnckoCore
|
||||
- laughedelic
|
||||
- philoserf
|
||||
- aVengineers
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/ahmed-taj/dep/raw/master/docs/assets/logo.png" width="256" height="256" alt="bot logo">
|
||||
</p>
|
||||
|
||||
A dependency manager for your Pull Requests.
|
||||
|
||||
## Usage
|
||||
|
||||
1. Browse to [GitHub Apps - dep][apps]
|
||||
2. Accept the permissions
|
||||
3. Allow access to repositories
|
||||
|
||||
If you want to update a pull request dependencies write:
|
||||
|
||||
![comment-screenshot][]
|
||||
|
||||
On the pull request, a status check from `dep` will appear:
|
||||
|
||||
![status-check-screenshot][]
|
||||
|
||||
For best results, enable branch protection (in the repository's settings) and require the `dep` status check to pass before merging:
|
||||
|
||||
![branch-protection-screenshot][]
|
||||
|
||||
[apps]: https://github.com/apps/dep
|
||||
[status-check-screenshot]: https://github.com/ahmed-taj/dep/raw/master/docs/assets/status.png
|
||||
[comment-screenshot]: https://github.com/ahmed-taj/dep/raw/master/docs/assets/comment.png
|
||||
[branch-protection-screenshot]: https://github.com/ahmed-taj/dep/raw/master/docs/assets/settings.png
|
||||
|
||||
## Contributors
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<table>
|
||||
<tr>
|
||||
<th align="center"><a href="https://ahmed.sd"><img src="https://avatars1.githubusercontent.com/u/12673605?v=4" width="100px;" style="max-width:100%;"><br><sub><b>Ahmed T. Ali</b></sub></a><br><a href="https://goo.gl/sJKF5H" title="Blogposts"><g-emoji alias="memo" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png" ios-version="6.0"><img class="emoji" alt=":memo:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4dd.png"></g-emoji></a> <a href="https://github.com/ahmed-taj/dep/commits?author=ahmed-taj" title="Code"><g-emoji alias="computer" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png" ios-version="6.0"><img class="emoji" alt=":computer:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4bb.png"></g-emoji></a> <a href="https://github.com/ahmed-taj/dep/commits?author=ahmed-taj" title="Documentation"><g-emoji alias="book" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4d6.png" ios-version="6.0"><img class="emoji" alt=":book:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4d6.png"></g-emoji></a> <a href="https://github.com/ahmed-taj/dep/commits?author=ahmed-taj" title="Tests"><g-emoji alias="warning" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/26a0.png" ios-version="6.0"><img class="emoji" alt=":warning:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/26a0.png"></g-emoji></a></th>
|
||||
<th align="center"><a href="https://github.com/JasonEtco"><img src="https://avatars1.githubusercontent.com/u/10660468?v=4" width="100px;" style="max-width:100%;"><br><sub><b>Jason Etcovitch</b></sub></a><br><a href="https://twitter.com/JasonEtco" title="Answering Questions"><g-emoji alias="speech_balloon" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4ac.png" ios-version="6.0"><img class="emoji" alt=":speech_balloon:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4ac.png"></g-emoji></a> <a href="https://github.com/probot/ideas/issues/1" title="Ideas, Planning, & Feedback"><g-emoji alias="thinking" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f914.png" ios-version="9.1"><img class="emoji" alt=":thinking:" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f914.png"></g-emoji></a></th>
|
||||
</tr></table>
|
||||
|
||||
|
||||
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
## Credits
|
||||
|
||||
The Logo is designed by [Freepik](https://www.freepik.com/free-vector/green-and-blue-retro-robots-collection_721192.htm). Modified by [Ahmed T. Ali](https://github.com/ahmed-taj).
|
||||
|
||||
Special thanks to [Jason Etcovitch](https://github.com/JasonEtco) for their help, including the original bot idea.
|
||||
|
||||
## License
|
||||
|
||||
MIT © [Ahmed T. Ali](https://github.com/ahmed-taj)
|
||||
@@ -7,11 +7,11 @@ screenshots:
|
||||
authors:
|
||||
- agonzalez0515
|
||||
- Techforchange
|
||||
stars: 90
|
||||
stars: 93
|
||||
repository: hoodiehq/first-timers-bot
|
||||
updated: 2017-11-15 16:43:52 UTC
|
||||
updated: 2017-12-13 16:57:50 UTC
|
||||
host: https://first-timers-bot.now.sh
|
||||
installations: 188
|
||||
installations: 199
|
||||
organizations:
|
||||
- jekyll
|
||||
- processing
|
||||
@@ -22,7 +22,7 @@ organizations:
|
||||
- mikaelbr
|
||||
- terkelg
|
||||
- gr2m
|
||||
- sotayamashita
|
||||
- db-migrate
|
||||
---
|
||||
|
||||
# first-timers-bot
|
||||
|
||||
@@ -9,18 +9,20 @@ authors:
|
||||
- jarrodldavis
|
||||
repository: jarrodldavis/probot-gpg
|
||||
stars: 14
|
||||
updated: 2017-11-08 04:29:24 UTC
|
||||
updated: 2017-12-13 16:57:48 UTC
|
||||
host: http://probot-gpg-production.herokuapp.com
|
||||
installations: 14
|
||||
installations: 20
|
||||
organizations:
|
||||
- saltstack
|
||||
- twuni
|
||||
- mattstratton
|
||||
- twuni
|
||||
- nikolay
|
||||
- luanmuniz
|
||||
- jarrodldavis
|
||||
- squid-lang
|
||||
- eiwuert
|
||||
- kburman
|
||||
- stationgroup
|
||||
---
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -10,11 +10,13 @@ repository: erickzhao/invite-contributors
|
||||
stars: 8
|
||||
updated: 2017-11-06 05:29:49 UTC
|
||||
host: https://vast-stream-78160.herokuapp.com
|
||||
installations: 6
|
||||
installations: 8
|
||||
organizations:
|
||||
- cla-assistant
|
||||
- flyve-mdm
|
||||
- aethonanbot
|
||||
- sydneyhaskell
|
||||
- aVengineers
|
||||
- chaijs
|
||||
- elodiebot
|
||||
- dddpppmmm
|
||||
|
||||
46
_apps/lock.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: Lock Threads
|
||||
description: Locks closed issues and pull requests.
|
||||
slug: lock
|
||||
screenshots:
|
||||
- https://raw.githubusercontent.com/dessant/lock-threads/master/assets/screenshot.png
|
||||
authors:
|
||||
- dessant
|
||||
repository: dessant/lock-threads
|
||||
host: https://probot-lock-threads.glitch.me
|
||||
---
|
||||
|
||||
A GitHub App that locks closed issues and pull requests after
|
||||
a period of inactivity.
|
||||
|
||||
## Usage
|
||||
|
||||
1. **[Install the GitHub App](https://github.com/apps/lock)**
|
||||
2. Create `.github/lock.yml` based on the template below
|
||||
3. It will start scanning for closed issues and/or pull requests within an hour
|
||||
|
||||
#### Configuration
|
||||
|
||||
Create `.github/lock.yml` in the default branch to enable the app.
|
||||
The file can be empty, or it can override any of these default settings:
|
||||
|
||||
```yml
|
||||
# Configuration for lock-threads - https://github.com/dessant/lock-threads
|
||||
|
||||
# Number of days of inactivity before a closed issue or pull request is locked
|
||||
daysUntilLock: 365
|
||||
# Comment to post before locking. Set to `false` to disable
|
||||
lockComment: >
|
||||
This thread has been automatically locked because it has not had recent
|
||||
activity. Please open a new issue for related bugs and link to relevant
|
||||
comments in this thread.
|
||||
# Limit to only `issues` or `pulls`
|
||||
# only: issues
|
||||
```
|
||||
|
||||
## Supporting the Project
|
||||
|
||||
Lock Threads is an MIT-licensed open source project. Its ongoing
|
||||
development is made possible thanks to the support of awesome backers.
|
||||
If you'd like to join them, please consider contributing with
|
||||
[Patreon](https://www.patreon.com/dessant).
|
||||
72
_apps/move.md
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: Move Issues
|
||||
description: Moves issues to a different repository.
|
||||
slug: move
|
||||
screenshots:
|
||||
- https://raw.githubusercontent.com/dessant/move-issues/master/assets/source-issue.png
|
||||
- https://raw.githubusercontent.com/dessant/move-issues/master/assets/target-issue.png
|
||||
authors:
|
||||
- dessant
|
||||
repository: dessant/move-issues
|
||||
host: https://probot-move-issues.glitch.me
|
||||
stars: 4
|
||||
updated: 2017-12-13 03:03:26 UTC
|
||||
installations: 10
|
||||
organizations:
|
||||
- kivy
|
||||
- probot
|
||||
- Dallas-Makerspace
|
||||
- devopsdays
|
||||
- aVengineers
|
||||
- Triadai
|
||||
---
|
||||
|
||||
A GitHub App that Moves issues to a different repository.
|
||||
|
||||
## Usage
|
||||
|
||||
1. **[Install the GitHub App](https://github.com/apps/move)**
|
||||
2. Create `.github/move.yml` based on the template below
|
||||
3. Move an issue by creating a comment with the command: `/move to <repo>`
|
||||
|
||||
#### Configuration
|
||||
|
||||
Create `.github/move.yml` in the default branch to enable the app.
|
||||
The file can be empty, or it can override any of these default settings:
|
||||
|
||||
```yml
|
||||
# Configuration for move-issues - https://github.com/dessant/move-issues
|
||||
|
||||
# Delete the command comment. Ignored when the comment also contains other content
|
||||
deleteCommand: true
|
||||
# Close the source issue after moving
|
||||
closeSourceIssue: true
|
||||
# Lock the source issue after moving
|
||||
lockSourceIssue: false
|
||||
# Set custom aliases for targets
|
||||
# aliases:
|
||||
# r: repo
|
||||
# or: owner/repo
|
||||
```
|
||||
|
||||
#### Command Syntax
|
||||
|
||||
```sh
|
||||
/move [to ][<owner>/]<repo>
|
||||
```
|
||||
|
||||
###### Examples:
|
||||
|
||||
```sh
|
||||
/move to repo
|
||||
/move to owner/repo
|
||||
/move repo
|
||||
/move owner/repo
|
||||
```
|
||||
|
||||
## Supporting the Project
|
||||
|
||||
Move Issues is an MIT-licensed open source project. Its ongoing
|
||||
development is made possible thanks to the support of awesome backers.
|
||||
If you'd like to join them, please consider contributing with
|
||||
[Patreon](https://www.patreon.com/dessant).
|
||||
@@ -9,12 +9,19 @@ authors:
|
||||
- lee-dohm
|
||||
repository: probot/no-response
|
||||
host: https://probot-no-response.herokuapp.com
|
||||
stars: 17
|
||||
stars: 20
|
||||
updated: 2017-11-13 22:25:45 UTC
|
||||
installations: 4
|
||||
installations: 12
|
||||
organizations:
|
||||
- eggjs
|
||||
- rmm5t
|
||||
- electron-userland
|
||||
- probot
|
||||
- db-migrate
|
||||
- guillermocalvo
|
||||
- CyclopsMC
|
||||
- Dallas-Makerspace
|
||||
- aVengineers
|
||||
---
|
||||
|
||||
Automatically closes Issues where the author hasn't responded to a request for more information.
|
||||
|
||||
@@ -10,20 +10,20 @@ authors:
|
||||
- evenchange4
|
||||
repository: evenchange4/gh-polls-bot
|
||||
host: https://gh-polls-bot.now.sh
|
||||
stars: 106
|
||||
updated: 2017-11-09 01:25:41 UTC
|
||||
installations: 46
|
||||
stars: 111
|
||||
updated: 2017-12-13 16:57:39 UTC
|
||||
installations: 60
|
||||
organizations:
|
||||
- apex
|
||||
- chaijs
|
||||
- detailyang
|
||||
- ahmetb
|
||||
- probot
|
||||
- hql287
|
||||
- evhub
|
||||
- Glavin001
|
||||
- jbarlow83
|
||||
- cheton
|
||||
- axetroy
|
||||
- notrab
|
||||
---
|
||||
|
||||
# GitHub Polls Bot
|
||||
|
||||
82
_apps/prevent-public-repos.md
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
# A human-friendly name of your listing
|
||||
title: Prevent Public Repos
|
||||
# A short description of what your app does
|
||||
description: Prevent Repos from being made public in an organization
|
||||
# The slug of your hosted app on GitHub (https://github.com/apps/YOUR-SLUG)
|
||||
slug: prevent-public-repos
|
||||
# Include a few screenshots that show your app in action
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/6920330/33576380-9a90cc92-d90d-11e7-9e61-6512240cdbf6.png
|
||||
# The GitHub usernames of anyone who authored the app
|
||||
authors: [ issc29 ]
|
||||
# The repository where the code is located
|
||||
repository: issc29/probot-prevent-public-repos
|
||||
# The address where this app is deployed
|
||||
host: https://probot-prevent-public-repos.herokuapp.com
|
||||
---
|
||||
|
||||
# Prevent-Public-Repos Probot App
|
||||
|
||||
A GitHub Probot App that monitors and prevents Public Repositories from being created in an organization.
|
||||
|
||||
|
||||
## Features
|
||||
- Can convert newly created Public Repos to Private
|
||||
- Can also be enabled for repos that switch visibility from private to public
|
||||
- Not enabled by default it is possible to restrict visibility changes to org owners [directly in GitHub](https://help.github.com/articles/repository-permission-levels-for-an-organization/#changing-the-visibility-of-repositories).
|
||||
- Will create an issue in the repo explaining the action
|
||||
- Monitor only mode will not change the repo visibility but will still create an issue
|
||||
- Can set configuration parameters by using YAML file set in a specific repo for the entire org
|
||||
- Can exclude certain repos
|
||||
- Can set a list of users/groups to cc on every issue created
|
||||
|
||||
## Get Started
|
||||
|
||||
1. [Configure the GitHub App](https://github.com/apps/prevent-public-repos)
|
||||
2. [Recommended] Create repo named `org-settings` and in it a file `.github/prevent-public-repos.yml` as described in the [How it Works](#How-it-Works) section to configure settings (and override defaults)
|
||||
3. It will then prevent public repos from being created
|
||||
|
||||
## How it Works
|
||||
|
||||
By default when a new repository is created with Public visibility, an Issue will be created in the repository warning that it is Public to the internet [Monitor-Only mode is enabled].
|
||||
|
||||
A `.github/prevent-public-repos.yml` file is recommended to override the [default settings](https://github.com/issc29/probot-prevent-public-repos/blob/master/lib/defaults.js) created in Repository `org-settings`. This repository will contain global settings for the organization.
|
||||
|
||||
```yml
|
||||
# Configuration for Prevent-Public-Repos
|
||||
|
||||
# Turn on Monitor Mode. In this mode the repo visibility is not modified and only an Issue is created
|
||||
monitorOnly: true
|
||||
|
||||
# Enables detection of repos that change visibility from private to public (not just newly created ones)
|
||||
enablePrivateToPublic: false
|
||||
|
||||
# Issue Title when repo is privatized
|
||||
privatizedIssueTitle: '[CRITICAL] Public Repositories are Disabled for this Org'
|
||||
|
||||
# Issue Body when repo is privatized
|
||||
privatizedIssueBody: 'NOTE: Public Repos are disabled for this organization! Repository was automatically converted to a Private Repo. Please contact an admin to override.'
|
||||
|
||||
# Issue Title when monitor mode is enabled
|
||||
monitorIssueTitle: '[CRITICAL] Public Repository Created'
|
||||
|
||||
# Issue Body when monitor mode is enable
|
||||
monitorIssueBody: 'Please note that this repository is publicly visible to the internet!'
|
||||
|
||||
# Users/Groups that should be cc'ed on the issue. Should be users/groups separated by a space.
|
||||
# ccList: '@user123 @user456'
|
||||
|
||||
# Repos to exclude in detection. Should be a List of Strings.
|
||||
# excludeRepos: ['repo1', 'repo2']
|
||||
```
|
||||
|
||||
When setting up this Probot App you can also set a number of Environment Variables
|
||||
|
||||
## Deployment
|
||||
|
||||
See [docs/deploy.md](https://github.com/issc29/probot-prevent-public-repos/blob/master/docs/deploy.md) if you would like to run your own instance of this app.
|
||||
|
||||
Possible Environment Variables:
|
||||
- FILE_NAME [default: '.github/prevent-public-repos.yml'] - Sets the location/file name of the config yml file
|
||||
- ORG_WIDE_REPO_NAME [default: 'org-settings'] - Set the repo where to find the config yml file
|
||||
@@ -8,21 +8,21 @@ authors:
|
||||
- jbjonesjr
|
||||
- bkeepers
|
||||
repository: probot/reminders
|
||||
stars: 8
|
||||
updated: 2017-11-02 15:17:46 UTC
|
||||
stars: 9
|
||||
updated: 2017-12-06 14:56:36 UTC
|
||||
host: https://probot-reminders.herokuapp.com
|
||||
installations: 44
|
||||
installations: 70
|
||||
organizations:
|
||||
- eggjs
|
||||
- chaijs
|
||||
- devtools-html
|
||||
- thibmaek
|
||||
- carambalabs
|
||||
- probot
|
||||
- goreleaser
|
||||
- carambalabs
|
||||
- gillesdemey
|
||||
- coredns
|
||||
- cherrypy
|
||||
- timvideos
|
||||
- db-migrate
|
||||
---
|
||||
|
||||
Use the `/remind` slash command to set a reminder on any comment box on GitHub and you'll get a ping about it again when the reminder is due.
|
||||
|
||||
@@ -5,24 +5,24 @@ description: Requests more info on issues and pull requests with the default tit
|
||||
slug: request-info
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/13410355/28132821-d37bf2a8-66f2-11e7-9e7b-5930ba65d67a.png
|
||||
stars: 11
|
||||
stars: 16
|
||||
authors:
|
||||
- hiimbex
|
||||
repository: behaviorbot/request-info
|
||||
updated: 2017-10-21 13:29:36 UTC
|
||||
updated: 2017-12-07 11:25:34 UTC
|
||||
host: https://probot-request-info.herokuapp.com
|
||||
installations: 49
|
||||
installations: 65
|
||||
organizations:
|
||||
- nlohmann
|
||||
- cdnjs
|
||||
- eggjs
|
||||
- electron-userland
|
||||
- jsonresume
|
||||
- bolt
|
||||
- desktop
|
||||
- benbalter
|
||||
- nozzle
|
||||
- benbalter
|
||||
- terkelg
|
||||
- probot
|
||||
- Glavin001
|
||||
- clippings
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -5,24 +5,24 @@ description: Replies to toxic comments with a maintainer designated reply and a
|
||||
slug: sentiment-bot
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/13410355/29323857-fcfe4b4e-8196-11e7-9a08-6184fd46edbb.png
|
||||
stars: 12
|
||||
stars: 20
|
||||
authors:
|
||||
- hiimbex
|
||||
repository: behaviorbot/sentiment-bot
|
||||
updated: 2017-10-19 15:54:50 UTC
|
||||
updated: 2017-12-07 11:27:04 UTC
|
||||
host: https://probot-sentiment-bot.herokuapp.com
|
||||
installations: 22
|
||||
installations: 27
|
||||
organizations:
|
||||
- nlohmann
|
||||
- MvvmCross
|
||||
- carambalabs
|
||||
- probot
|
||||
- carambalabs
|
||||
- xcodeswift
|
||||
- Dallas-Makerspace
|
||||
- WormieCorp
|
||||
- neetjn
|
||||
- JourneyOver
|
||||
- Mariatta
|
||||
- marclop
|
||||
---
|
||||
|
||||
Replies to toxic comments with a maintainer designated reply and a link to the repo's code of conduct. It does so by taking data from a `.github/config.yml`.
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
title: Settings
|
||||
description: Pull Requests for repository settings
|
||||
slug: settings
|
||||
stars: 171
|
||||
stars: 174
|
||||
authors:
|
||||
- bkeepers
|
||||
repository: probot/settings
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/173/29472917-3fad9db0-841b-11e7-8f6d-a6c63052122b.png
|
||||
updated: 2017-11-02 13:13:36 UTC
|
||||
updated: 2017-12-13 16:57:44 UTC
|
||||
host: https://github-configurer.herokuapp.com
|
||||
installations: 69
|
||||
installations: 78
|
||||
organizations:
|
||||
- apollographql
|
||||
- denysdovhan
|
||||
@@ -18,10 +18,10 @@ organizations:
|
||||
- wp-cli
|
||||
- benbalter
|
||||
- probot
|
||||
- TGMPA
|
||||
- purpleidea
|
||||
- GaryJones
|
||||
- pages-themes
|
||||
- coveralls-clients
|
||||
- cla-assistant
|
||||
---
|
||||
|
||||
This GitHub App syncs repository settings defined in `.github/settings.yml` to GitHub, enabling Pull Requests for repository settings.
|
||||
|
||||
@@ -7,21 +7,21 @@ screenshots:
|
||||
- https://user-images.githubusercontent.com/173/27765705-93f94940-5e7e-11e7-8527-3a91bb64ca70.png
|
||||
authors:
|
||||
- bkeepers
|
||||
stars: 219
|
||||
stars: 241
|
||||
repository: probot/stale
|
||||
updated: 2017-11-12 22:20:31 UTC
|
||||
updated: 2017-12-12 06:40:41 UTC
|
||||
host: https://probot-stale.herokuapp.com
|
||||
installations: 308
|
||||
installations: 375
|
||||
organizations:
|
||||
- atom
|
||||
- facebook
|
||||
- Homebrew
|
||||
- nwjs
|
||||
- fchollet
|
||||
- apollographql
|
||||
- gohugoio
|
||||
- hexojs
|
||||
- bumptech
|
||||
- strongloop
|
||||
- storybooks
|
||||
- sequelize
|
||||
---
|
||||
|
||||
|
||||
@@ -8,12 +8,17 @@ authors:
|
||||
- dessant
|
||||
repository: dessant/support-requests
|
||||
host: https://probot-support-requests.glitch.me
|
||||
stars: 0
|
||||
updated: 2017-11-12 11:15:14 UTC
|
||||
installations: 3
|
||||
stars: 1
|
||||
updated: 2017-12-13 02:58:50 UTC
|
||||
installations: 9
|
||||
organizations:
|
||||
- kivy
|
||||
- MinecraftForge
|
||||
- nozzle
|
||||
- PHPOffice
|
||||
- PHPMap
|
||||
- aVengineers
|
||||
- Triadai
|
||||
---
|
||||
|
||||
A GitHub App that comments on and closes issues labeled as support requests.
|
||||
|
||||
@@ -8,20 +8,20 @@ authors:
|
||||
- JasonEtco
|
||||
repository: JasonEtco/todo
|
||||
host: https://todo-api.jasonet.co
|
||||
stars: 47
|
||||
updated: 2017-11-02 15:33:07 UTC
|
||||
installations: 59
|
||||
stars: 51
|
||||
updated: 2017-12-05 05:46:12 UTC
|
||||
installations: 85
|
||||
organizations:
|
||||
- thibmaek
|
||||
- material-motion
|
||||
- goreleaser
|
||||
- caarlos0
|
||||
- SpoonX
|
||||
- icco
|
||||
- getantibody
|
||||
- drinchev
|
||||
- phatblat
|
||||
- fennecdjay
|
||||
- ChrisMcKenzie
|
||||
- JasonEtco
|
||||
- bobsru
|
||||
- TheKevJames
|
||||
- miklb
|
||||
- mtxr
|
||||
- ignatandrei
|
||||
---
|
||||
## Usage
|
||||
|
||||
|
||||
27
_apps/unfurl-links.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Unfurl Links
|
||||
description: Add context to the links shared in discussions
|
||||
slug: unfurl-links
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/173/32036265-57a501ca-b9e4-11e7-9db3-52374fb7290c.png
|
||||
authors:
|
||||
- bkeepers
|
||||
repository: probot/unfurl
|
||||
host: http://probot-unfurl.herokuapp.com
|
||||
stars: 14
|
||||
updated: 2017-10-29 13:53:48 UTC
|
||||
installations: 27
|
||||
organizations:
|
||||
- reactiveui
|
||||
- probot
|
||||
- goreleaser
|
||||
- caarlos0
|
||||
- wangzuo
|
||||
- xcodeswift
|
||||
- timvideos
|
||||
- getantibody
|
||||
- tunnckoCore
|
||||
- mwarkentin
|
||||
---
|
||||
|
||||
When a link is found in a comment, this app will add more information to the bottom of the comment about the link.
|
||||
52
_apps/untrivializer.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: Untrivializer
|
||||
description: An app that asks if you're really sure something is trivial when you make a comment in Github issues.
|
||||
slug: https://github.com/apps/untrivializer
|
||||
screenshots:
|
||||
- https://raw.githubusercontent.com/entendu/untrivializer/master/docs/ss.png
|
||||
authors: [ entendu ]
|
||||
repository: entendu/untrivializer
|
||||
host: https://puffy-aftermath.glitch.me/
|
||||
---
|
||||
|
||||
# untrivializer
|
||||
|
||||
> a GitHub App built with [probot](https://github.com/probot/probot) that asks in Github comments if you're really sure something is trivial.
|
||||
|
||||

|
||||
|
||||
## But why tho
|
||||
|
||||
A lot of times we'll write up an issue without really thinking it through:
|
||||
|
||||
> We want _X_. Just do thing _Y_ to get it, that should be really simple.
|
||||
|
||||
> Make change _Z_, it should be trivial.
|
||||
|
||||
> Do thing _Foo_, it's super easy.
|
||||
|
||||
Doing those things (almost without fail) takes way, way more time than we think it will. Why? A couple reasons:
|
||||
|
||||
* If we're making a comment like that we're probably not thinking through all the little details anyway,
|
||||
* We're all just [terrible at estimating, _even when we know we're terrible at estimating_](https://en.wikipedia.org/wiki/Planning_fallacy) (it's truly incredible),
|
||||
* We often forget the downstream repercussions of "simple" changes -- one line of code for you might mean 3 hours or more of code review, testing, etc.
|
||||
|
||||
So this little robot tries to detect when you've said something "should be simple" and asks if that's really the case. The default reply is:
|
||||
|
||||
> Did you mean, "_might be straightforward, but could have unforseen complexities that would completely change the prioritization of the issue, so we should let it go through the normal planning and estimation process_"[?](https://en.wikipedia.org/wiki/Planning_fallacy)
|
||||
|
||||
Detection is an ugly regex.
|
||||
|
||||
## Running
|
||||
|
||||
I think you can run this as a Github app here: https://github.com/apps/untrivializer but no guarantees that the backend will stay up. If you'd rather run it yourself (I don't blame you) look below.
|
||||
|
||||
## Setup
|
||||
|
||||
```
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Run the bot
|
||||
npm start
|
||||
```
|
||||
@@ -5,21 +5,23 @@ description: Replies to newly opened pull requests that do no update a file in t
|
||||
slug: update-docs
|
||||
screenshots:
|
||||
- https://user-images.githubusercontent.com/13410355/28179044-97207bee-67b5-11e7-80d0-0c8ede4a325f.png
|
||||
stars: 5
|
||||
stars: 6
|
||||
authors:
|
||||
- hiimbex
|
||||
repository: behaviorbot/update-docs
|
||||
updated: 2017-10-19 16:03:37 UTC
|
||||
updated: 2017-12-08 07:07:31 UTC
|
||||
host: https://probot-update-docs.herokuapp.com
|
||||
installations: 13
|
||||
installations: 17
|
||||
organizations:
|
||||
- adonisjs
|
||||
- xcodeswift
|
||||
- behaviorbot
|
||||
- PHPMap
|
||||
- ilovecode1
|
||||
- marclop
|
||||
- philoserf
|
||||
- marclop
|
||||
- cms-gem-daq-project
|
||||
- aVengineers
|
||||
- robotland
|
||||
---
|
||||
|
||||
|
||||
@@ -8,20 +8,21 @@ screenshots:
|
||||
authors:
|
||||
- tlvince
|
||||
repository: tlvince/validate-commit-msg-bot
|
||||
stars: 3
|
||||
stars: 6
|
||||
updated: 2017-11-09 09:50:12 UTC
|
||||
host: https://validate-commit-msg-bot.now.sh
|
||||
installations: 16
|
||||
installations: 25
|
||||
organizations:
|
||||
- chaijs
|
||||
- SpoonX
|
||||
- angular-pouchdb
|
||||
- axetroy
|
||||
- devcenter-square
|
||||
- christophehurpeau
|
||||
- flyve-mdm
|
||||
- tlvince
|
||||
- nikolay
|
||||
- luanmuniz
|
||||
- Robophil
|
||||
- lostintangent
|
||||
redirect_from: "/apps/validate-commit-msg-bot/"
|
||||
---
|
||||
|
||||
|
||||
@@ -6,24 +6,24 @@ screenshots:
|
||||
- https://user-images.githubusercontent.com/13410355/28288851-679f582a-6af5-11e7-8dd8-b85b6c33e16b.png
|
||||
- https://user-images.githubusercontent.com/13410355/28288547-5f83aa8e-6af4-11e7-9692-eb41d42431e2.png
|
||||
- https://user-images.githubusercontent.com/13410355/28289605-1ab81a76-6af8-11e7-8f78-6a1b3948df36.png
|
||||
stars: 22
|
||||
stars: 23
|
||||
authors:
|
||||
- hiimbex
|
||||
repository: behaviorbot/welcome
|
||||
updated: 2017-10-23 06:55:13 UTC
|
||||
host: https://probot-welcome.herokuapp.com
|
||||
installations: 75
|
||||
installations: 86
|
||||
organizations:
|
||||
- vuejs
|
||||
- electron
|
||||
- kivy
|
||||
- StevenBlack
|
||||
- electron-userland
|
||||
- getinsomnia
|
||||
- MarshallOfSound
|
||||
- benbalter
|
||||
- carambalabs
|
||||
- probot
|
||||
- karthik
|
||||
- carambalabs
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ screenshots:
|
||||
authors:
|
||||
- gr2m
|
||||
repository: gr2m/wip-bot
|
||||
stars: 28
|
||||
updated: 2017-11-05 23:25:40 UTC
|
||||
stars: 34
|
||||
updated: 2017-12-13 17:00:51 UTC
|
||||
host: https://wip-bot.now.sh
|
||||
installations: 153
|
||||
installations: 214
|
||||
organizations:
|
||||
- dotnet
|
||||
- jekyll
|
||||
@@ -18,10 +18,10 @@ organizations:
|
||||
- aurelia
|
||||
- saltstack
|
||||
- Microsoft
|
||||
- PowerShell
|
||||
- eggjs
|
||||
- go-sql-driver
|
||||
- reactiveui
|
||||
- hoodiehq
|
||||
---
|
||||
|
||||
If you don’t want a pull request to be merged accidentally, add the word "wip" or "WIP" to its title and WIP bot will set its status to error. That’s all :)
|
||||
|
||||
@@ -8,6 +8,7 @@ Advanced:
|
||||
- docs/http.md
|
||||
- docs/simulating-webhooks.md
|
||||
- docs/testing.md
|
||||
- docs/logging.md
|
||||
- docs/pagination.md
|
||||
- docs/extensions.md
|
||||
- docs/deployment.md
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<div class="col-lg-4 col-md-6 mb-3 mt-3 d-flex flex-column">
|
||||
<a href="{{ app.url }}" class="d-flex flex-column bg-white rounded-1 box-shadow border text-inherit no-underline flex-1 overflow-hidden" style="height:100%">
|
||||
<a href="{{ app.url }}" class="d-flex flex-column bg-white rounded-1 box-shadow border text-inherit no-underline flex-1" style="height:100%">
|
||||
<h3 class="h4 px-3 pt-3">{{ app.title }}</h3>
|
||||
<p class="text-gray lh-condensed px-3 pb-3">{{ app.description }}</p>
|
||||
<div class="text-gray-light pl-3 pr-2 py-2 bg-gray-light border-top" style="margin-top: auto;">
|
||||
<div class="text-gray-light pl-3 pr-2 py-2 bg-gray-light border-top" style="margin-top: auto; border-bottom-left-radius: 0; border-bottom-right-radius: 0;">
|
||||
<div class="d-flex flex-row">
|
||||
{% if app.installations %}
|
||||
<div class="col-3 tooltipped tooltipped-s" aria-label="{{ app.installations }} installations">{% octicon cloud-download height:16 class:"v-align-middle" %} <span class="v-align-middle">{{ app.installations }}</span></div>
|
||||
|
||||
913
api/4.0.0/Context.html
Normal file
@@ -0,0 +1,913 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Context - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Context</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
|
||||
<h2>
|
||||
Context
|
||||
</h2>
|
||||
|
||||
<div class="class-description"><p>Helpers for extracting information from the webhook event, which can be
|
||||
passed to GitHub API calls.</p></div>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
<h2>Constructor</h2>
|
||||
|
||||
|
||||
<h4 class="name" id="Context"><span class="type-signature"></span>new Context<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5 class="subsection-title">Properties:</h5>
|
||||
|
||||
|
||||
|
||||
<table class="props">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>github</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="global.html#github">github</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"><p>An authenticated GitHub API client</p></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>payload</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="global.html#payload">payload</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"><p>The webhook event payload</p></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>log</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="global.html#logger">logger</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"><p>A logger</p></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="context.js.html">context.js</a>, <a href="context.js.html#line12">line 12</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Members</h3>
|
||||
|
||||
|
||||
|
||||
<div class="section-members">
|
||||
<h4 class="name" id="isBot"><span class="type-signature"></span>isBot<span class="type-signature"> :boolean</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Returns a boolean if the actor on the event was a bot.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="context.js.html">context.js</a>, <a href="context.js.html#line63">line 63</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<h5>Type:</h5>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<span class="param-type"><code>boolean</code></span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="config"><span class="type-signature"></span>config<span class="signature">(fileName, defaultConfig<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Object>}</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Reads the app configuration from the given YAML file in the <code>.github</code>
|
||||
directory of the repository.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="context.js.html">context.js</a>, <a href="context.js.html#line100">line 100</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
<th>Attributes</th>
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>fileName</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>string</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td class="attributes">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>Name of the YAML file in the <code>.github</code> directory</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>defaultConfig</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>object</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td class="attributes">
|
||||
|
||||
<optional><br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>An object of default config options</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section-returns">
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
|
||||
<dl class="param-type">
|
||||
<dt>
|
||||
Type:
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<span class="param-type"><code>Promise.<Object></code></span>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<div class="param-desc">
|
||||
<ul>
|
||||
<li>Configuration object read from the file</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section-examples">
|
||||
<h5>Examples</h5>
|
||||
|
||||
<p class="code-caption">Contents of <code>.github/myapp.yml</code>.</p>
|
||||
|
||||
<pre class="prettyprint"><code>close: true
|
||||
comment: Check the specs on the rotary girder.</code></pre>
|
||||
|
||||
<p class="code-caption">App that reads from <code>.github/myapp.yml</code>.</p>
|
||||
|
||||
<pre class="prettyprint"><code>// Load config from .github/myapp.yml in the repository
|
||||
const config = await context.config('myapp.yml')
|
||||
|
||||
if (config.close) {
|
||||
context.github.issues.comment(context.issue({body: config.comment}))
|
||||
context.github.issues.edit(context.issue({state: 'closed'}))
|
||||
}</code></pre>
|
||||
|
||||
<p class="code-caption">Using a <code>defaultConfig</code> object.</p>
|
||||
|
||||
<pre class="prettyprint"><code>// Load config from .github/myapp.yml in the repository and combine with default config
|
||||
const config = await context.config('myapp.yml', {comment: 'Make sure to check all the specs.'})
|
||||
|
||||
if (config.close) {
|
||||
context.github.issues.comment(context.issue({body: config.comment}));
|
||||
context.github.issues.edit(context.issue({state: 'closed'}))
|
||||
}</code></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="issue"><span class="type-signature"></span>issue<span class="signature">(object<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Return the <code>owner</code>, <code>repo</code>, and <code>number</code> params for making API requests
|
||||
against an issue or pull request. The object passed in will be merged with
|
||||
the repo params.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="context.js.html">context.js</a>, <a href="context.js.html#line52">line 52</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
<th>Attributes</th>
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>object</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>object</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td class="attributes">
|
||||
|
||||
<optional><br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>Params to be merged with the issue params.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section-examples">
|
||||
<h5>Example</h5>
|
||||
|
||||
<pre class="prettyprint"><code>const params = context.issue({body: 'Hello World!'})
|
||||
// Returns: {owner: 'username', repo: 'reponame', number: 123, body: 'Hello World!'}</code></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="repo"><span class="type-signature"></span>repo<span class="signature">(object<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Return the <code>owner</code> and <code>repo</code> params for making API requests against a
|
||||
repository.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="context.js.html">context.js</a>, <a href="context.js.html#line31">line 31</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
<th>Attributes</th>
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>object</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>object</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td class="attributes">
|
||||
|
||||
<optional><br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>Params to be merged with the repo params.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section-examples">
|
||||
<h5>Example</h5>
|
||||
|
||||
<pre class="prettyprint"><code>const params = context.repo({path: '.github/stale.yml'})
|
||||
// Returns: {owner: 'username', repo: 'reponame', path: '.github/stale.yml'}</code></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
729
api/4.0.0/Robot.html
Normal file
@@ -0,0 +1,729 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Robot - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Robot</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
|
||||
<h2>
|
||||
Robot
|
||||
</h2>
|
||||
|
||||
<div class="class-description"><p>The <code>robot</code> parameter available to apps</p></div>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
<h2>Constructor</h2>
|
||||
|
||||
|
||||
<h4 class="name" id="Robot"><span class="type-signature"></span>new Robot<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5 class="subsection-title">Properties:</h5>
|
||||
|
||||
|
||||
|
||||
<table class="props">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>log</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="global.html#logger">logger</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"><p>A logger</p></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line12">line 12</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="on"><span class="type-signature"></span>on<span class="signature">(event, callback)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Listen for <a href="https://developer.github.com/webhooks/">GitHub webhooks</a>,
|
||||
which are fired for almost every significant action that users take on
|
||||
GitHub.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line86">line 86</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>event</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>string</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>the name of the <a href="https://developer.github.com/webhooks/#events">GitHub webhook
|
||||
event</a>. Most events also
|
||||
include an "action". For example, the * <a href="https://developer.github.com/v3/activity/events/types/#issuesevent"><code>issues</code></a>
|
||||
event has actions of <code>assigned</code>, <code>unassigned</code>, <code>labeled</code>, <code>unlabeled</code>,
|
||||
<code>opened</code>, <code>edited</code>, <code>milestoned</code>, <code>demilestoned</code>, <code>closed</code>, and <code>reopened</code>.
|
||||
Often, your bot will only care about one type of action, so you can append
|
||||
it to the event name with a <code>.</code>, like <code>issues.closed</code>.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>callback</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="Robot.html#~webhookCallback">Robot~webhookCallback</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>a function to call when the
|
||||
webhook is received.</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section-examples">
|
||||
<h5>Example</h5>
|
||||
|
||||
<pre class="prettyprint"><code>robot.on('push', context => {
|
||||
// Code was just pushed.
|
||||
});
|
||||
|
||||
robot.on('issues.opened', context => {
|
||||
// An issue was just opened.
|
||||
});</code></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="route"><span class="type-signature"></span>route<span class="signature">(path)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Get an <a href="http://expressjs.com">express</a> router that can be used to
|
||||
expose HTTP endpoints</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line49">line 49</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>path</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code>string</code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>the prefix for the routes</p>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section-returns">
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="param-desc">
|
||||
<p><a href="http://expressjs.com/en/4x/api.html#router">express.Router</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section-examples">
|
||||
<h5>Example</h5>
|
||||
|
||||
<pre class="prettyprint"><code>module.exports = robot => {
|
||||
// Get an express router to expose new HTTP endpoints
|
||||
const app = robot.route('/my-app');
|
||||
|
||||
// Use any middleware
|
||||
app.use(require('express').static(__dirname + '/public'));
|
||||
|
||||
// Add a new route
|
||||
app.get('/hello-world', (req, res) => {
|
||||
res.end('Hello World');
|
||||
});
|
||||
};</code></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Type Definitions</h3>
|
||||
|
||||
|
||||
|
||||
<div class="section-method">
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id="~webhookCallback"><span class="type-signature"></span>webhookCallback<span class="signature">(context)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>Do the thing</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line166">line 166</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>context</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><code><a href="Context.html">Context</a></code></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<p>the context of the event that was triggered,
|
||||
including <code>context.payload</code>, and helpers for extracting information from
|
||||
the payload, which can be passed to GitHub API calls.</p>
|
||||
<pre class="prettyprint source lang-js"><code> module.exports = robot => {
|
||||
robot.on('push', context => {
|
||||
// Code was pushed to the repo, what should we do with it?
|
||||
robot.log(context);
|
||||
});
|
||||
};</code></pre>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
180
api/4.0.0/context.js.html
Normal file
@@ -0,0 +1,180 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>context.js - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">context.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>const path = require('path')
|
||||
const yaml = require('js-yaml')
|
||||
|
||||
/**
|
||||
* Helpers for extracting information from the webhook event, which can be
|
||||
* passed to GitHub API calls.
|
||||
*
|
||||
* @property {github} github - An authenticated GitHub API client
|
||||
* @property {payload} payload - The webhook event payload
|
||||
* @property {logger} log - A logger
|
||||
*/
|
||||
class Context {
|
||||
constructor (event, github, log) {
|
||||
Object.assign(this, event)
|
||||
this.github = github
|
||||
this.log = log
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the `owner` and `repo` params for making API requests against a
|
||||
* repository.
|
||||
*
|
||||
* @param {object} [object] - Params to be merged with the repo params.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* const params = context.repo({path: '.github/stale.yml'})
|
||||
* // Returns: {owner: 'username', repo: 'reponame', path: '.github/stale.yml'}
|
||||
*
|
||||
*/
|
||||
repo (object) {
|
||||
const repo = this.payload.repository
|
||||
|
||||
return Object.assign({
|
||||
owner: repo.owner.login || repo.owner.name,
|
||||
repo: repo.name
|
||||
}, object)
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the `owner`, `repo`, and `number` params for making API requests
|
||||
* against an issue or pull request. The object passed in will be merged with
|
||||
* the repo params.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* const params = context.issue({body: 'Hello World!'})
|
||||
* // Returns: {owner: 'username', repo: 'reponame', number: 123, body: 'Hello World!'}
|
||||
*
|
||||
* @param {object} [object] - Params to be merged with the issue params.
|
||||
*/
|
||||
issue (object) {
|
||||
const payload = this.payload
|
||||
return Object.assign({
|
||||
number: (payload.issue || payload.pull_request || payload).number
|
||||
}, this.repo(), object)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a boolean if the actor on the event was a bot.
|
||||
* @type {boolean}
|
||||
*/
|
||||
get isBot () {
|
||||
return this.payload.sender.type === 'Bot'
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the app configuration from the given YAML file in the `.github`
|
||||
* directory of the repository.
|
||||
*
|
||||
* @example <caption>Contents of <code>.github/myapp.yml</code>.</caption>
|
||||
*
|
||||
* close: true
|
||||
* comment: Check the specs on the rotary girder.
|
||||
*
|
||||
* @example <caption>App that reads from <code>.github/myapp.yml</code>.</caption>
|
||||
*
|
||||
* // Load config from .github/myapp.yml in the repository
|
||||
* const config = await context.config('myapp.yml')
|
||||
*
|
||||
* if (config.close) {
|
||||
* context.github.issues.comment(context.issue({body: config.comment}))
|
||||
* context.github.issues.edit(context.issue({state: 'closed'}))
|
||||
* }
|
||||
*
|
||||
* @example <caption>Using a <code>defaultConfig</code> object.</caption>
|
||||
*
|
||||
* // Load config from .github/myapp.yml in the repository and combine with default config
|
||||
* const config = await context.config('myapp.yml', {comment: 'Make sure to check all the specs.'})
|
||||
*
|
||||
* if (config.close) {
|
||||
* context.github.issues.comment(context.issue({body: config.comment}));
|
||||
* context.github.issues.edit(context.issue({state: 'closed'}))
|
||||
* }
|
||||
*
|
||||
* @param {string} fileName - Name of the YAML file in the `.github` directory
|
||||
* @param {object} [defaultConfig] - An object of default config options
|
||||
* @return {Promise<Object>} - Configuration object read from the file
|
||||
*/
|
||||
async config (fileName, defaultConfig) {
|
||||
const params = this.repo({path: path.posix.join('.github', fileName)})
|
||||
|
||||
try {
|
||||
const res = await this.github.repos.getContent(params)
|
||||
const config = yaml.safeLoad(Buffer.from(res.data.content, 'base64').toString()) || {}
|
||||
return Object.assign({}, defaultConfig, config)
|
||||
} catch (err) {
|
||||
if (err.code === 404) {
|
||||
if (defaultConfig) {
|
||||
return defaultConfig
|
||||
}
|
||||
return null
|
||||
} else {
|
||||
throw err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Context
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
BIN
api/4.0.0/fonts/OpenSans-Bold-webfont.eot
Normal file
1830
api/4.0.0/fonts/OpenSans-Bold-webfont.svg
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
api/4.0.0/fonts/OpenSans-Bold-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-BoldItalic-webfont.eot
Normal file
1830
api/4.0.0/fonts/OpenSans-BoldItalic-webfont.svg
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
api/4.0.0/fonts/OpenSans-BoldItalic-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-Italic-webfont.eot
Normal file
1830
api/4.0.0/fonts/OpenSans-Italic-webfont.svg
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
api/4.0.0/fonts/OpenSans-Italic-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-Light-webfont.eot
Normal file
1831
api/4.0.0/fonts/OpenSans-Light-webfont.svg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
api/4.0.0/fonts/OpenSans-Light-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-LightItalic-webfont.eot
Normal file
1835
api/4.0.0/fonts/OpenSans-LightItalic-webfont.svg
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
api/4.0.0/fonts/OpenSans-LightItalic-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-Regular-webfont.eot
Normal file
1831
api/4.0.0/fonts/OpenSans-Regular-webfont.svg
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
api/4.0.0/fonts/OpenSans-Regular-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-Semibold-webfont.eot
Normal file
1830
api/4.0.0/fonts/OpenSans-Semibold-webfont.svg
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
api/4.0.0/fonts/OpenSans-Semibold-webfont.ttf
Normal file
BIN
api/4.0.0/fonts/OpenSans-Semibold-webfont.woff
Normal file
BIN
api/4.0.0/fonts/OpenSans-SemiboldItalic-webfont.eot
Normal file
1830
api/4.0.0/fonts/OpenSans-SemiboldItalic-webfont.svg
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
api/4.0.0/fonts/OpenSans-SemiboldItalic-webfont.ttf
Normal file
BIN
api/4.0.0/fonts/OpenSans-SemiboldItalic-webfont.woff
Normal file
115
api/4.0.0/github.js.html
Normal file
@@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>github.js - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">github.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>const Bottleneck = require('bottleneck')
|
||||
const GitHubApi = require('github')
|
||||
|
||||
/**
|
||||
* the [github Node.js module](https://github.com/octokit/node-github),
|
||||
* which wraps the [GitHub API](https://developer.github.com/v3/) and allows
|
||||
* you to do almost anything programmatically that you can do through a web
|
||||
* browser.
|
||||
* @typedef github
|
||||
* @see {@link https://github.com/octokit/node-github}
|
||||
*/
|
||||
|
||||
// Default callback should just return the response passed to it.
|
||||
const defaultCallback = response => response
|
||||
|
||||
class EnhancedGitHubClient extends GitHubApi {
|
||||
constructor (options) {
|
||||
super(options)
|
||||
this.limiter = new Bottleneck(1, 1000)
|
||||
this.logger = options.logger
|
||||
}
|
||||
|
||||
handler (params, block, callback) {
|
||||
// Only allow one request at a time with a 1s delay
|
||||
// https://github.com/octokit/node-github/issues/526
|
||||
this.limiter.submit(super.handler.bind(this), params, block, (err, res) => {
|
||||
let msg = `GitHub request: ${block.method} ${block.url}`
|
||||
if (res) {
|
||||
msg += ` - ${res.meta.status}`
|
||||
} else if (err) {
|
||||
msg += ` - ${err.code} ${err.status}`
|
||||
}
|
||||
this.logger.debug({params}, msg)
|
||||
|
||||
if (res) {
|
||||
this.logger.trace(res, 'GitHub response:')
|
||||
}
|
||||
|
||||
callback(err, res)
|
||||
})
|
||||
}
|
||||
|
||||
async paginate (responsePromise, callback = defaultCallback) {
|
||||
let collection = []
|
||||
let response = await responsePromise
|
||||
collection = collection.concat(await callback(response))
|
||||
while (this.hasNextPage(response)) {
|
||||
response = await this.getNextPage(response)
|
||||
collection = collection.concat(await callback(response))
|
||||
}
|
||||
return collection
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = EnhancedGitHubClient
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
359
api/4.0.0/global.html
Normal file
@@ -0,0 +1,359 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Global - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Global</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
|
||||
<h2>
|
||||
|
||||
</h2>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Type Definitions</h3>
|
||||
|
||||
|
||||
|
||||
<div class="section-members">
|
||||
<h4 class="name" id="github">github</h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>the <a href="https://github.com/octokit/node-github">github Node.js module</a>,
|
||||
which wraps the <a href="https://developer.github.com/v3/">GitHub API</a> and allows
|
||||
you to do almost anything programmatically that you can do through a web
|
||||
browser.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="github.js.html">github.js</a>, <a href="github.js.html#line4">line 4</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-see">See:</dt>
|
||||
<dd class="tag-see">
|
||||
<ul>
|
||||
<li><a href="https://github.com/octokit/node-github">https://github.com/octokit/node-github</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section-members">
|
||||
<h4 class="name" id="logger">logger</h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>A logger backed by <a href="https://github.com/trentm/node-bunyan">bunyan</a></p>
|
||||
<p>The default log level is <code>info</code>, but you can change it by setting the
|
||||
<code>LOG_LEVEL</code> environment variable to <code>trace</code>, <code>debug</code>, <code>info</code>, <code>warn</code>,
|
||||
<code>error</code>, or <code>fatal</code>.</p>
|
||||
<p>By default, logs are formatted for readability in development. If you intend
|
||||
to drain logs to a logging service, set <code>LOG_FORMAT=json</code>.</p>
|
||||
<p><strong>Note</strong>: All execptions reported with <code>logger.error</code> will be forwarded to
|
||||
<a href="https://github.com/getsentry/sentry">sentry</a> if the <code>SENTRY_DSN</code> environment
|
||||
variable is set.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="logger.js.html">logger.js</a>, <a href="logger.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Example</h5>
|
||||
|
||||
<pre class="prettyprint"><code>robot.log("This is an info message");
|
||||
robot.log.debug("…so is this");
|
||||
robot.log.trace("Now we're talking");
|
||||
robot.log.info("I thought you should know…");
|
||||
robot.log.warn("Woah there");
|
||||
robot.log.error("ETOOMANYLOGS");
|
||||
robot.log.fatal("Goodbye, cruel world!");</code></pre>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section-members">
|
||||
<h4 class="name" id="payload">payload</h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
<p>A <a href="https://developer.github.com/webhooks/#events">GitHub webhook event</a> payload</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="robot.js.html">robot.js</a>, <a href="robot.js.html#line183">line 183</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
66
api/4.0.0/index.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Home - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
122
api/4.0.0/logger.js.html
Normal file
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>logger.js - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">logger.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* A logger backed by [bunyan](https://github.com/trentm/node-bunyan)
|
||||
*
|
||||
* The default log level is `info`, but you can change it by setting the
|
||||
* `LOG_LEVEL` environment variable to `trace`, `debug`, `info`, `warn`,
|
||||
* `error`, or `fatal`.
|
||||
*
|
||||
* By default, logs are formatted for readability in development. If you intend
|
||||
* to drain logs to a logging service, set `LOG_FORMAT=json`.
|
||||
*
|
||||
* **Note**: All execptions reported with `logger.error` will be forwarded to
|
||||
* [sentry](https://github.com/getsentry/sentry) if the `SENTRY_DSN` environment
|
||||
* variable is set.
|
||||
*
|
||||
* @typedef logger
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* robot.log("This is an info message");
|
||||
* robot.log.debug("…so is this");
|
||||
* robot.log.trace("Now we're talking");
|
||||
* robot.log.info("I thought you should know…");
|
||||
* robot.log.warn("Woah there");
|
||||
* robot.log.error("ETOOMANYLOGS");
|
||||
* robot.log.fatal("Goodbye, cruel world!");
|
||||
*/
|
||||
|
||||
const Logger = require('bunyan')
|
||||
const bunyanFormat = require('bunyan-format')
|
||||
const serializers = require('./serializers')
|
||||
|
||||
// Return a function that defaults to "info" level, and has properties for
|
||||
// other levels:
|
||||
//
|
||||
// robot.log("info")
|
||||
// robot.log.trace("verbose details");
|
||||
//
|
||||
Logger.prototype.wrap = function () {
|
||||
const fn = this.info.bind(this);
|
||||
|
||||
// Add level methods on the logger
|
||||
['trace', 'debug', 'info', 'warn', 'error', 'fatal'].forEach(level => {
|
||||
fn[level] = this[level].bind(this)
|
||||
})
|
||||
|
||||
// Expose `child` method for creating new wrapped loggers
|
||||
fn.child = (attrs) => this.child(attrs, true).wrap()
|
||||
|
||||
// Expose target logger
|
||||
fn.target = logger
|
||||
|
||||
return fn
|
||||
}
|
||||
|
||||
const logger = new Logger({
|
||||
name: 'probot',
|
||||
level: process.env.LOG_LEVEL || 'info',
|
||||
stream: bunyanFormat({outputMode: process.env.LOG_FORMAT || 'short'}),
|
||||
serializers
|
||||
})
|
||||
|
||||
module.exports = logger
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
247
api/4.0.0/robot.js.html
Normal file
@@ -0,0 +1,247 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>robot.js - Documentation</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"></script>
|
||||
<script src="scripts/prettify/lang-css.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
|
||||
<label for="nav-trigger" class="overlay"></label>
|
||||
|
||||
<nav>
|
||||
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Context.html">Context</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#config">config</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#issue">issue</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Context.html#repo">repo</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Robot.html">Robot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#on">on</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Robot.html#route">route</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li>
|
||||
</nav>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">robot.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>const {EventEmitter} = require('promise-events')
|
||||
const express = require('express')
|
||||
const Context = require('./context')
|
||||
const logger = require('./logger')
|
||||
const GitHubApi = require('./github')
|
||||
|
||||
/**
|
||||
* The `robot` parameter available to apps
|
||||
*
|
||||
* @property {logger} log - A logger
|
||||
*/
|
||||
class Robot {
|
||||
constructor ({app, cache, router, catchErrors} = {}) {
|
||||
this.events = new EventEmitter()
|
||||
this.app = app
|
||||
this.cache = cache
|
||||
this.router = router || new express.Router()
|
||||
this.log = logger.wrap()
|
||||
this.catchErrors = catchErrors
|
||||
}
|
||||
|
||||
async receive (event) {
|
||||
return this.events.emit('*', event).then(() => {
|
||||
return this.events.emit(event.event, event)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an {@link http://expressjs.com|express} router that can be used to
|
||||
* expose HTTP endpoints
|
||||
*
|
||||
* @example
|
||||
* module.exports = robot => {
|
||||
* // Get an express router to expose new HTTP endpoints
|
||||
* const app = robot.route('/my-app');
|
||||
*
|
||||
* // Use any middleware
|
||||
* app.use(require('express').static(__dirname + '/public'));
|
||||
*
|
||||
* // Add a new route
|
||||
* app.get('/hello-world', (req, res) => {
|
||||
* res.end('Hello World');
|
||||
* });
|
||||
* };
|
||||
*
|
||||
* @param {string} path - the prefix for the routes
|
||||
* @returns {@link http://expressjs.com/en/4x/api.html#router|express.Router}
|
||||
*/
|
||||
route (path) {
|
||||
if (path) {
|
||||
const router = new express.Router()
|
||||
this.router.use(path, router)
|
||||
return router
|
||||
} else {
|
||||
return this.router
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Listen for [GitHub webhooks](https://developer.github.com/webhooks/),
|
||||
* which are fired for almost every significant action that users take on
|
||||
* GitHub.
|
||||
*
|
||||
* @param {string} event - the name of the [GitHub webhook
|
||||
* event](https://developer.github.com/webhooks/#events). Most events also
|
||||
* include an "action". For example, the * [`issues`](
|
||||
* https://developer.github.com/v3/activity/events/types/#issuesevent)
|
||||
* event has actions of `assigned`, `unassigned`, `labeled`, `unlabeled`,
|
||||
* `opened`, `edited`, `milestoned`, `demilestoned`, `closed`, and `reopened`.
|
||||
* Often, your bot will only care about one type of action, so you can append
|
||||
* it to the event name with a `.`, like `issues.closed`.
|
||||
*
|
||||
* @param {Robot~webhookCallback} callback - a function to call when the
|
||||
* webhook is received.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* robot.on('push', context => {
|
||||
* // Code was just pushed.
|
||||
* });
|
||||
*
|
||||
* robot.on('issues.opened', context => {
|
||||
* // An issue was just opened.
|
||||
* });
|
||||
*/
|
||||
on (event, callback) {
|
||||
if (event.constructor === Array) {
|
||||
event.forEach(e => this.on(e, callback))
|
||||
return
|
||||
}
|
||||
|
||||
const [name, action] = event.split('.')
|
||||
|
||||
return this.events.on(name, async event => {
|
||||
if (!action || action === event.payload.action) {
|
||||
const log = this.log.child({id: event.id})
|
||||
|
||||
try {
|
||||
const github = await this.auth(event.payload.installation.id, log)
|
||||
const context = new Context(event, github, log)
|
||||
|
||||
await callback(context)
|
||||
} catch (err) {
|
||||
log.error({err, event})
|
||||
if (!this.catchErrors) {
|
||||
throw err
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Authenticate and get a GitHub client that can be used to make API calls.
|
||||
*
|
||||
* You'll probably want to use `context.github` instead.
|
||||
*
|
||||
* **Note**: `robot.auth` is asynchronous, so it needs to be prefixed with a
|
||||
* [`await`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)
|
||||
* to wait for the magic to happen.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* module.exports = function(robot) {
|
||||
* robot.on('issues.opened', async context => {
|
||||
* const github = await robot.auth();
|
||||
* });
|
||||
* };
|
||||
*
|
||||
* @param {number} [id] - ID of the installation, which can be extracted from
|
||||
* `context.payload.installation.id`. If called without this parameter, the
|
||||
* client wil authenticate [as the app](https://developer.github.com/apps/building-integrations/setting-up-and-registering-github-apps/about-authentication-options-for-github-apps/#authenticating-as-a-github-app)
|
||||
* instead of as a specific installation, which means it can only be used for
|
||||
* [app APIs](https://developer.github.com/v3/apps/).
|
||||
*
|
||||
* @returns {Promise<github>} - An authenticated GitHub API client
|
||||
* @private
|
||||
*/
|
||||
async auth (id, log = this.log) {
|
||||
const github = new GitHubApi({
|
||||
debug: process.env.LOG_LEVEL === 'trace',
|
||||
host: process.env.GHE_HOST || 'api.github.com',
|
||||
pathPrefix: process.env.GHE_HOST ? '/api/v3' : '',
|
||||
logger: log.child({installation: id})
|
||||
})
|
||||
|
||||
if (id) {
|
||||
const res = await this.cache.wrap(`app:${id}:token`, () => {
|
||||
log.trace(`creating token for installation`)
|
||||
github.authenticate({type: 'integration', token: this.app()})
|
||||
|
||||
return github.apps.createInstallationToken({installation_id: id})
|
||||
}, {ttl: 60 * 59}) // Cache for 1 minute less than GitHub expiry
|
||||
|
||||
github.authenticate({type: 'token', token: res.data.token})
|
||||
} else {
|
||||
github.authenticate({type: 'integration', token: this.app()})
|
||||
}
|
||||
|
||||
return github
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = (...args) => new Robot(...args)
|
||||
|
||||
/**
|
||||
* Do the thing
|
||||
* @callback Robot~webhookCallback
|
||||
* @param {Context} context - the context of the event that was triggered,
|
||||
* including `context.payload`, and helpers for extracting information from
|
||||
* the payload, which can be passed to GitHub API calls.
|
||||
*
|
||||
* ```js
|
||||
* module.exports = robot => {
|
||||
* robot.on('push', context => {
|
||||
* // Code was pushed to the repo, what should we do with it?
|
||||
* robot.log(context);
|
||||
* });
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
|
||||
/**
|
||||
* A [GitHub webhook event](https://developer.github.com/webhooks/#events) payload
|
||||
*
|
||||
* @typedef payload
|
||||
*/
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Wed Dec 13 2017 10:15:16 GMT-0600 (CST) using the Minami theme.
|
||||
</footer>
|
||||
|
||||
<script>prettyPrint();</script>
|
||||
<script src="scripts/linenumber.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
25
api/4.0.0/scripts/linenumber.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/*global document */
|
||||
(function() {
|
||||
var source = document.getElementsByClassName('prettyprint source linenums');
|
||||
var i = 0;
|
||||
var lineNumber = 0;
|
||||
var lineId;
|
||||
var lines;
|
||||
var totalLines;
|
||||
var anchorHash;
|
||||
|
||||
if (source && source[0]) {
|
||||
anchorHash = document.location.hash.substring(1);
|
||||
lines = source[0].getElementsByTagName('li');
|
||||
totalLines = lines.length;
|
||||
|
||||
for (; i < totalLines; i++) {
|
||||
lineNumber++;
|
||||
lineId = 'line' + lineNumber;
|
||||
lines[i].id = lineId;
|
||||
if (lineId === anchorHash) {
|
||||
lines[i].className += ' selected';
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
202
api/4.0.0/scripts/prettify/Apache-License-2.0.txt
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
2
api/4.0.0/scripts/prettify/lang-css.js
Normal file
@@ -0,0 +1,2 @@
|
||||
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
|
||||
/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
|
||||
28
api/4.0.0/scripts/prettify/prettify.js
Normal file
@@ -0,0 +1,28 @@
|
||||
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
|
||||
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
|
||||
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
|
||||
f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
|
||||
(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
|
||||
{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
|
||||
t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
|
||||
"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
|
||||
l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
|
||||
q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
|
||||
q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
|
||||
"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
|
||||
a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
|
||||
for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
|
||||
m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
|
||||
a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
|
||||
j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
|
||||
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
|
||||
H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
|
||||
J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
|
||||
I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
|
||||
["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
|
||||
/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
|
||||
["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
|
||||
hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
|
||||
!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
|
||||
250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
|
||||
PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
|
||||
692
api/4.0.0/styles/jsdoc-default.css
Normal file
@@ -0,0 +1,692 @@
|
||||
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,500i,500,600,600i|Roboto);
|
||||
|
||||
* {
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #4d4e53;
|
||||
background-color: white;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
font-family: 'Source Sans Pro', Helvetica, sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 160%;
|
||||
}
|
||||
|
||||
a,
|
||||
a:active {
|
||||
color: #0095dd;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
p, ul, ol, blockquote {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #000;
|
||||
font-weight: 400;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: 300;
|
||||
font-size: 48px;
|
||||
margin: 1em 0 .5em;
|
||||
}
|
||||
|
||||
h1.page-title {margin-bottom: 10px;font-size: 34px;font-weight: 300;border-bottom: solid 2px #ddd;padding: .5em 0 .5em;margin-top: 0;}
|
||||
|
||||
h2 {
|
||||
font-size: 32px;
|
||||
margin: 1.2em 0 .8em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h3 {
|
||||
/* margin-top: 1em; */
|
||||
/* margin-bottom: 16px; */
|
||||
/* font-weight: bold; */
|
||||
padding: 0;
|
||||
margin: 1em 0 .6em;
|
||||
font-size: 28px;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
/* padding-bottom: 15px; */
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 18px;
|
||||
margin: 1em 0 .2em;
|
||||
color: #4d4e53;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
h5, .container-overview .subsection-title {
|
||||
font-size: 120%;
|
||||
/* letter-spacing: -0.01em; */
|
||||
margin: 20px 0 5px;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 100%;
|
||||
letter-spacing: -0.01em;
|
||||
margin: 6px 0 3px 0;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
tt, code, kbd, samp {
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
||||
background: #f4f4f4;
|
||||
padding: 1px 5px;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
display: block;
|
||||
border-left: 4px solid #eee;
|
||||
margin: 0;
|
||||
padding-left: 1em;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.class-description {
|
||||
font-size: 130%;
|
||||
line-height: 140%;
|
||||
margin-bottom: 1em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.class-description:empty {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
/** Container **/
|
||||
#main {
|
||||
float: right;
|
||||
min-width: 360px;
|
||||
width: calc(100% - 250px);
|
||||
padding: 0 30px 20px 30px;
|
||||
}
|
||||
|
||||
header {
|
||||
display: block
|
||||
}
|
||||
|
||||
section {
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.variation {
|
||||
display: none
|
||||
}
|
||||
|
||||
.signature-attributes {
|
||||
font-size: 60%;
|
||||
color: #aaa;
|
||||
font-style: italic;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
/** Readme **/
|
||||
|
||||
.readme {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.readme h1,
|
||||
.readme h2,
|
||||
.readme h3,
|
||||
.readme h4,
|
||||
.readme h5 {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 16px;
|
||||
font-weight: bold;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.readme h1 {
|
||||
font-size: 2em;
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.readme h2 {
|
||||
font-size: 1.75em;
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.readme h3 {
|
||||
font-size: 1.5em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.readme h4 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
.readme h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.readme img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.readme ul, .readme ol {
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
.readme pre > code {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.readme table {
|
||||
margin-bottom: 1em;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
.readme table tr {
|
||||
background-color: #fff;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.readme table th,
|
||||
.readme table td {
|
||||
padding: 6px 13px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.readme table tr:nth-child(2n) {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
/** Nav **/
|
||||
nav {
|
||||
float: left;
|
||||
display: block;
|
||||
width: 250px;
|
||||
background: #fff;
|
||||
overflow: auto;
|
||||
position: fixed;
|
||||
height: 100%;
|
||||
padding: 10px;
|
||||
border-right: 1px solid #eee;
|
||||
/* box-shadow: 0 0 3px rgba(0,0,0,0.1); */
|
||||
}
|
||||
|
||||
nav li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nav-heading {
|
||||
margin-top: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav-heading a {
|
||||
color: #888;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.nav-item-type {
|
||||
/* margin-left: 5px; */
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
border-radius: 0.2em;
|
||||
margin-right: 5px;
|
||||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.type-function {
|
||||
background: #B3E5FC;
|
||||
color: #0288D1;
|
||||
}
|
||||
|
||||
.type-class {
|
||||
background: #D1C4E9;
|
||||
color: #4527A0;
|
||||
}
|
||||
|
||||
.type-member {
|
||||
background: #C8E6C9;
|
||||
color: #388E3C;
|
||||
}
|
||||
|
||||
.type-module {
|
||||
background: #E1BEE7;
|
||||
color: #7B1FA2;
|
||||
}
|
||||
|
||||
|
||||
/** Footer **/
|
||||
footer {
|
||||
color: hsl(0, 0%, 28%);
|
||||
margin-left: 250px;
|
||||
display: block;
|
||||
padding: 30px;
|
||||
font-style: italic;
|
||||
font-size: 90%;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.ancestors {
|
||||
color: #999
|
||||
}
|
||||
|
||||
.ancestors a {
|
||||
color: #999 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.important {
|
||||
font-weight: bold;
|
||||
color: #950B02;
|
||||
}
|
||||
|
||||
.yes-def {
|
||||
text-indent: -1000px
|
||||
}
|
||||
|
||||
.type-signature {
|
||||
color: #aaa
|
||||
}
|
||||
|
||||
.name, .signature {
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace
|
||||
}
|
||||
|
||||
.details {
|
||||
margin-top: 14px;
|
||||
border-left: 2px solid #DDD;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.details dt {
|
||||
width: 120px;
|
||||
float: left;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.details dd {
|
||||
margin-left: 70px
|
||||
}
|
||||
|
||||
.details ul {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.details ul {
|
||||
list-style-type: none
|
||||
}
|
||||
|
||||
.details li {
|
||||
margin-left: 30px
|
||||
}
|
||||
|
||||
.details pre.prettyprint {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.details .object-value {
|
||||
padding-top: 0
|
||||
}
|
||||
|
||||
.description {
|
||||
margin-bottom: 1em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.code-caption {
|
||||
font-style: italic;
|
||||
font-size: 107%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.prettyprint {
|
||||
font-size: 13px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 3px hsla(0, 0%, 0%, 0.05);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.prettyprint.source {
|
||||
width: inherit
|
||||
}
|
||||
|
||||
.prettyprint code {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
color: #4D4E53;
|
||||
}
|
||||
|
||||
.prettyprint code:empty:before {
|
||||
content: '';
|
||||
}
|
||||
|
||||
.prettyprint > code {
|
||||
padding: 15px
|
||||
}
|
||||
|
||||
.prettyprint .linenums code {
|
||||
padding: 0 15px
|
||||
}
|
||||
|
||||
.prettyprint .linenums li:first-of-type code {
|
||||
padding-top: 15px
|
||||
}
|
||||
|
||||
.prettyprint code span.line {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.prettyprint.linenums {
|
||||
padding-left: 70px;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.prettyprint.linenums ol {
|
||||
padding-left: 0
|
||||
}
|
||||
|
||||
.prettyprint.linenums li {
|
||||
border-left: 3px #ddd solid
|
||||
}
|
||||
|
||||
.prettyprint.linenums li.selected, .prettyprint.linenums li.selected * {
|
||||
background-color: lightyellow
|
||||
}
|
||||
|
||||
.prettyprint.linenums li * {
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
.params, .props {
|
||||
border-spacing: 0;
|
||||
border: 1px solid #ddd;
|
||||
border-collapse: collapse;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
/* margin-left: 15px; */
|
||||
}
|
||||
|
||||
.params .name, .props .name, .name code {
|
||||
color: #4D4E53;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.params td, .params th, .props td, .props th {
|
||||
margin: 0px;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
padding: 10px;
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
.params td {
|
||||
border-top: 1px solid #eee
|
||||
}
|
||||
|
||||
.params thead tr, .props thead tr {
|
||||
background-color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.params .params thead tr, .props .props thead tr {
|
||||
background-color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.params td.description > p:first-child, .props td.description > p:first-child {
|
||||
margin-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.params td.description > p:last-child, .props td.description > p:last-child {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
dl.param-type {
|
||||
/* border-bottom: 1px solid hsl(0, 0%, 87%); */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.param-type dt, .param-type dd {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.param-type dd {
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
color: #454545
|
||||
}
|
||||
|
||||
/* navicon button */
|
||||
.navicon-button {
|
||||
display: none;
|
||||
position: relative;
|
||||
padding: 2.0625rem 1.5rem;
|
||||
transition: 0.25s;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
opacity: .8;
|
||||
}
|
||||
.navicon-button .navicon:before, .navicon-button .navicon:after {
|
||||
transition: 0.25s;
|
||||
}
|
||||
.navicon-button:hover {
|
||||
transition: 0.5s;
|
||||
opacity: 1;
|
||||
}
|
||||
.navicon-button:hover .navicon:before, .navicon-button:hover .navicon:after {
|
||||
transition: 0.25s;
|
||||
}
|
||||
.navicon-button:hover .navicon:before {
|
||||
top: .825rem;
|
||||
}
|
||||
.navicon-button:hover .navicon:after {
|
||||
top: -.825rem;
|
||||
}
|
||||
|
||||
/* navicon */
|
||||
.navicon {
|
||||
position: relative;
|
||||
width: 2.5em;
|
||||
height: .3125rem;
|
||||
background: #000;
|
||||
transition: 0.3s;
|
||||
border-radius: 2.5rem;
|
||||
}
|
||||
.navicon:before, .navicon:after {
|
||||
display: block;
|
||||
content: "";
|
||||
height: .3125rem;
|
||||
width: 2.5rem;
|
||||
background: #000;
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
transition: 0.3s 0.25s;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.navicon:before {
|
||||
top: .625rem;
|
||||
}
|
||||
.navicon:after {
|
||||
top: -.625rem;
|
||||
}
|
||||
|
||||
/* open */
|
||||
.nav-trigger:checked + label:not(.steps) .navicon:before,
|
||||
.nav-trigger:checked + label:not(.steps) .navicon:after {
|
||||
top: 0 !important;
|
||||
}
|
||||
|
||||
.nav-trigger:checked + label .navicon:before,
|
||||
.nav-trigger:checked + label .navicon:after {
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
/* Minus */
|
||||
.nav-trigger:checked + label {
|
||||
transform: scale(0.75);
|
||||
}
|
||||
|
||||
/* Ã and + */
|
||||
.nav-trigger:checked + label.plus .navicon,
|
||||
.nav-trigger:checked + label.x .navicon {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.nav-trigger:checked + label.plus .navicon:before,
|
||||
.nav-trigger:checked + label.x .navicon:before {
|
||||
transform: rotate(-45deg);
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
.nav-trigger:checked + label.plus .navicon:after,
|
||||
.nav-trigger:checked + label.x .navicon:after {
|
||||
transform: rotate(45deg);
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
.nav-trigger:checked + label.plus {
|
||||
transform: scale(0.75) rotate(45deg);
|
||||
}
|
||||
|
||||
.nav-trigger:checked ~ nav {
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
.nav-trigger:checked ~ .overlay {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nav-trigger {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: hsla(0, 0%, 0%, 0.5);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.section-method {
|
||||
margin-bottom: 30px;
|
||||
padding-bottom: 30px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 320px) and (max-width: 680px) {
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
nav {
|
||||
background: #FFF;
|
||||
width: 250px;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: -250px;
|
||||
z-index: 3;
|
||||
padding: 0 10px;
|
||||
transition: left 0.2s;
|
||||
}
|
||||
|
||||
.navicon-button {
|
||||
display: inline-block;
|
||||
position: fixed;
|
||||
top: 1.5em;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: 100%;
|
||||
min-width: 360px;
|
||||
}
|
||||
|
||||
#main h1.page-title {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
#main section {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media only print {
|
||||
nav {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
111
api/4.0.0/styles/prettify-jsdoc.css
Normal file
@@ -0,0 +1,111 @@
|
||||
/* JSDoc prettify.js theme */
|
||||
|
||||
/* plain text */
|
||||
.pln {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* string content */
|
||||
.str {
|
||||
color: hsl(104, 100%, 24%);
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a keyword */
|
||||
.kwd {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a comment */
|
||||
.com {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* a type name */
|
||||
.typ {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a literal value */
|
||||
.lit {
|
||||
color: #006400;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* punctuation */
|
||||
.pun {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* lisp open bracket */
|
||||
.opn {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* lisp close bracket */
|
||||
.clo {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a markup tag name */
|
||||
.tag {
|
||||
color: #006400;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a markup attribute name */
|
||||
.atn {
|
||||
color: #006400;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a markup attribute value */
|
||||
.atv {
|
||||
color: #006400;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a declaration */
|
||||
.dec {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a variable name */
|
||||
.var {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* a function name */
|
||||
.fun {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
132
api/4.0.0/styles/prettify-tomorrow.css
Normal file
@@ -0,0 +1,132 @@
|
||||
/* Tomorrow Theme */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* Pretty printing styles. Used with prettify.js. */
|
||||
/* SPAN elements with the classes below are added by prettyprint. */
|
||||
/* plain text */
|
||||
.pln {
|
||||
color: #4d4d4c; }
|
||||
|
||||
@media screen {
|
||||
/* string content */
|
||||
.str {
|
||||
color: hsl(104, 100%, 24%); }
|
||||
|
||||
/* a keyword */
|
||||
.kwd {
|
||||
color: hsl(240, 100%, 50%); }
|
||||
|
||||
/* a comment */
|
||||
.com {
|
||||
color: hsl(0, 0%, 60%); }
|
||||
|
||||
/* a type name */
|
||||
.typ {
|
||||
color: hsl(240, 100%, 32%); }
|
||||
|
||||
/* a literal value */
|
||||
.lit {
|
||||
color: hsl(240, 100%, 40%); }
|
||||
|
||||
/* punctuation */
|
||||
.pun {
|
||||
color: #000000; }
|
||||
|
||||
/* lisp open bracket */
|
||||
.opn {
|
||||
color: #000000; }
|
||||
|
||||
/* lisp close bracket */
|
||||
.clo {
|
||||
color: #000000; }
|
||||
|
||||
/* a markup tag name */
|
||||
.tag {
|
||||
color: #c82829; }
|
||||
|
||||
/* a markup attribute name */
|
||||
.atn {
|
||||
color: #f5871f; }
|
||||
|
||||
/* a markup attribute value */
|
||||
.atv {
|
||||
color: #3e999f; }
|
||||
|
||||
/* a declaration */
|
||||
.dec {
|
||||
color: #f5871f; }
|
||||
|
||||
/* a variable name */
|
||||
.var {
|
||||
color: #c82829; }
|
||||
|
||||
/* a function name */
|
||||
.fun {
|
||||
color: #4271ae; } }
|
||||
/* Use higher contrast and text-weight for printable form. */
|
||||
@media print, projection {
|
||||
.str {
|
||||
color: #060; }
|
||||
|
||||
.kwd {
|
||||
color: #006;
|
||||
font-weight: bold; }
|
||||
|
||||
.com {
|
||||
color: #600;
|
||||
font-style: italic; }
|
||||
|
||||
.typ {
|
||||
color: #404;
|
||||
font-weight: bold; }
|
||||
|
||||
.lit {
|
||||
color: #044; }
|
||||
|
||||
.pun, .opn, .clo {
|
||||
color: #440; }
|
||||
|
||||
.tag {
|
||||
color: #006;
|
||||
font-weight: bold; }
|
||||
|
||||
.atn {
|
||||
color: #404; }
|
||||
|
||||
.atv {
|
||||
color: #060; } }
|
||||
/* Style */
|
||||
/*
|
||||
pre.prettyprint {
|
||||
background: white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
border: 1px solid #ccc;
|
||||
padding: 10px; }
|
||||
*/
|
||||
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0; }
|
||||
|
||||
/* IE indents via margin-left */
|
||||
li.L0,
|
||||
li.L1,
|
||||
li.L2,
|
||||
li.L3,
|
||||
li.L4,
|
||||
li.L5,
|
||||
li.L6,
|
||||
li.L7,
|
||||
li.L8,
|
||||
li.L9 {
|
||||
/* */ }
|
||||
|
||||
/* Alternate shading for lines */
|
||||
li.L1,
|
||||
li.L3,
|
||||
li.L5,
|
||||
li.L7,
|
||||
li.L9 {
|
||||
/* */ }
|
||||
@@ -1 +1 @@
|
||||
0.11.0
|
||||
4.0.0
|
||||