Commit 896b8e22b53446eca0a70049c0d1b027256081f3
1 parent
c0b84268
Exists in
master
and in
1 other branch
review docs and prep rc0.4
Showing
2 changed files
with
109 additions
and
223 deletions
Show diff stats
CHANGELOG.md
| 1 | -## 0.4.0 - Not released Yet | |
| 1 | +## 0.4.0 | |
| 2 | 2 | |
| 3 | 3 | - #791 Fix double escaping of problem title in list view.(@felixbuenemann) |
| 4 | 4 | - #790 Fix favicon location.(@felixbuenemann) |
| 5 | 5 | - #716 Fix inline comments styles.(@oelmekki) |
| 6 | -- Update to rails 4.1.(@arthurnn) | |
| 6 | +- #778 Update to rails 4.1.(@arthurnn) | |
| 7 | 7 | - #682 Namespace fingerprint classes better.(@csaunders) |
| 8 | 8 | - Drop ruby support for versions 1.9.x, and 2.0.x.(@arthurnn) |
| 9 | -- #773 Only leave GitHub issue tracker on vanila errbit, as the others could be added just using the plugin.(@arthurnn) | |
| 9 | +- #773 Only leave GitHub issue tracker on vanila errbit, as the others could be | |
| 10 | + added just using the plugin.(@arthurnn) | |
| 10 | 11 | - #768 Update to Mongoid 4.0 and rails to 4.0 (@arthurnn) |
| 12 | +- #820 Environment-only configuration | |
| 11 | 13 | |
| 12 | 14 | ## 0.3.0 |
| 13 | 15 | ... | ... |
README.md
| ... | ... | @@ -9,15 +9,11 @@ |
| 9 | 9 | [gemnasium-img-url]:https://gemnasium.com/errbit/errbit.png |
| 10 | 10 | [gemnasium-url]:https://gemnasium.com/errbit/errbit |
| 11 | 11 | |
| 12 | - | |
| 13 | - | |
| 14 | 12 | ### The open source, self-hosted error catcher |
| 15 | 13 | |
| 16 | - | |
| 17 | 14 | Errbit is a tool for collecting and managing errors from other applications. |
| 18 | -It is [Airbrake](http://airbrake.io) (formerly known as Hoptoad) API compliant, | |
| 19 | -so if you are already using Airbrake, you can just point the `airbrake` gem to your Errbit server. | |
| 20 | - | |
| 15 | +It is [Airbrake](http://airbrake.io) API compliant, so if you are already using | |
| 16 | +Airbrake, you can just point the `airbrake` gem to your Errbit server. | |
| 21 | 17 | |
| 22 | 18 | <table> |
| 23 | 19 | <tr> |
| ... | ... | @@ -52,10 +48,10 @@ so if you are already using Airbrake, you can just point the `airbrake` gem to y |
| 52 | 48 | </tr> |
| 53 | 49 | </table> |
| 54 | 50 | |
| 55 | - | |
| 56 | 51 | Errbit may be a good fit for you if: |
| 57 | 52 | |
| 58 | -* Your exceptions may contain sensitive data that you don't want sitting on someone else's server | |
| 53 | +* Your exceptions may contain sensitive data that you don't want sitting on | |
| 54 | + someone else's server | |
| 59 | 55 | * Your application is behind a firewall |
| 60 | 56 | * You'd like to brand your error catcher |
| 61 | 57 | * You want to add customer features to your error catcher |
| ... | ... | @@ -64,26 +60,18 @@ Errbit may be a good fit for you if: |
| 64 | 60 | If this doesn't sound like you, you should probably stick with a hosted service such as |
| 65 | 61 | [Airbrake](http://airbrake.io). |
| 66 | 62 | |
| 67 | - | |
| 68 | 63 | Mailing List |
| 69 | 64 | ------------ |
| 70 | 65 | |
| 71 | -Join the Google Group at https://groups.google.com/group/errbit to receive updates and notifications. | |
| 72 | - | |
| 73 | -Demo | |
| 74 | ----- | |
| 75 | - | |
| 76 | -There is a demo available at [http://errbit-demo.herokuapp.com/](http://errbit-demo.herokuapp.com/) | |
| 77 | - | |
| 78 | -Email: demo@errbit-demo.herokuapp.com<br/> | |
| 79 | -Password: password | |
| 66 | +Join the Google Group at https://groups.google.com/group/errbit to receive | |
| 67 | +updates and notifications. | |
| 80 | 68 | |
| 81 | 69 | # Requirements |
| 82 | 70 | |
| 83 | -The list of requirements to install Errbit are : | |
| 71 | +The list of requirements to install Errbit are: | |
| 84 | 72 | |
| 85 | - * Ruby 2.1.0 or higher | |
| 86 | - * MongoDB 2.2.0 or higher | |
| 73 | +* Ruby 2.1.0 or higher | |
| 74 | +* MongoDB 2.2.0 or higher | |
| 87 | 75 | |
| 88 | 76 | Installation |
| 89 | 77 | ------------ |
| ... | ... | @@ -92,49 +80,11 @@ Installation |
| 92 | 80 | Rails applications. If you're uncomfortable with any steps below then Errbit is not |
| 93 | 81 | for you. |
| 94 | 82 | |
| 95 | -**Set up your local box or server(Ubuntu):** | |
| 96 | - | |
| 97 | - * Install MongoDB. Follow the directions [here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages), then: | |
| 98 | - | |
| 99 | -```bash | |
| 100 | -apt-get update | |
| 101 | -apt-get install mongodb-10gen | |
| 102 | -``` | |
| 103 | - | |
| 104 | - * Install libxml, libzip, libssl and libcurl | |
| 105 | - | |
| 106 | -```bash | |
| 107 | -apt-get install libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libzip-dev libssl-dev | |
| 108 | -``` | |
| 109 | - | |
| 110 | - * Install Bundler | |
| 111 | - | |
| 112 | -```bash | |
| 113 | -gem install bundler | |
| 114 | -``` | |
| 115 | - | |
| 116 | -**Running Locally:** | |
| 117 | - | |
| 118 | - * Install dependencies | |
| 119 | - | |
| 120 | -```bash | |
| 121 | -bundle install | |
| 122 | -``` | |
| 123 | - | |
| 124 | - * Install MongoDB. Follow the directions [here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages), then: | |
| 125 | - | |
| 126 | - * Bootstrap Errbit. This will seed the database. Make sure you copy the | |
| 127 | - username and password down someplace safe. | |
| 128 | - | |
| 129 | -```bash | |
| 130 | -rake errbit:bootstrap | |
| 131 | -``` | |
| 132 | - | |
| 133 | - * Start Server | |
| 134 | - | |
| 135 | -```bash | |
| 136 | -rails s | |
| 137 | -``` | |
| 83 | +* [Install MongoDB](https://www.mongodb.org/downloads) | |
| 84 | +* git clone https://github.com/errbit/errbit.git | |
| 85 | +* bundle install | |
| 86 | +* bundle exec rake errbit:bootstrap | |
| 87 | +* bundle exec rails server | |
| 138 | 88 | |
| 139 | 89 | Configuration |
| 140 | 90 | ------------- |
| ... | ... | @@ -152,57 +102,63 @@ See [notes on deployment](docs/deployment.md) |
| 152 | 102 | Authentication |
| 153 | 103 | -------------- |
| 154 | 104 | ### Configuring GitHub authentication: |
| 155 | -* Set GITHUB_AUTHENTICATION to true | |
| 105 | +* Set GITHUB_AUTHENTICATION=true | |
| 156 | 106 | * Register your instance of Errbit at https://github.com/settings/applications |
| 157 | 107 | |
| 158 | -If you hosted Errbit at errbit.example.com, you would fill in: | |
| 108 | +If you host Errbit at errbit.example.com, you would fill in: | |
| 159 | 109 | |
| 160 | -<table> | |
| 161 | - <tr><th>URL:</th><td><a href="http://errbit.example.com/">http://errbit.example.com/</a></td></tr> | |
| 162 | - <tr><th>Callback URL:</th><td><a href="http://errbit.example.com/users/auth/github">http://errbit.example.com/users/auth/github</a></td></tr> | |
| 163 | -</table> | |
| 110 | +<dl> | |
| 111 | +<dt>URL | |
| 112 | +<dd>http://errbit.example.com | |
| 113 | +<dt>Callback URL | |
| 114 | +<dd>http://errbit.example.com/users/auth/github | |
| 115 | +</dl> | |
| 164 | 116 | |
| 165 | 117 | * After you have registered your app, set GITHUB_CLIENT_ID and GITHUB_SECRET |
| 166 | 118 | with your app's Client ID and Secret key. |
| 167 | 119 | |
| 168 | 120 | When you start your applicatoin, you should see the option to **Sign in with |
| 169 | -GitHub** on the Login page. | |
| 170 | - | |
| 171 | -You will also be able to link your GitHub profile to your user account on your | |
| 172 | -**Edit profile** page. | |
| 173 | - | |
| 174 | -If you have signed in with GitHub, or linked your GitHub profile, and the App | |
| 175 | -has a GitHub repo configured, then you will be able to create issues on GitHub. | |
| 176 | -You will still be able to create an issue on the App's configured issue | |
| 177 | -tracker. | |
| 178 | - | |
| 179 | -You can change the requested account permissions by setting | |
| 180 | -`GITHUB_ACCESS_SCOPE` to: | |
| 181 | - | |
| 182 | -<table> | |
| 183 | - <tr><th>['repo'] </th><td>Allow creating issues for public and private repos.</td></tr> | |
| 184 | - <tr><th>['public_repo'] </th><td>Only allow creating issues for public repos.</td></tr> | |
| 185 | - <tr><th>[] </th><td>No permission to create issues on any repos.</td></tr> | |
| 186 | -</table> | |
| 121 | +GitHub** on the Login page. You will also be able to link your GitHub profile | |
| 122 | +to your user account on your **Edit profile** page. | |
| 123 | + | |
| 124 | +If you have signed in with GitHub, or linked your GitHub profile, and you're | |
| 125 | +working with an App that has a GitHub repo configured, then you will be able to | |
| 126 | +create issues on GitHub. If you use another issue tracker, see [Issue | |
| 127 | +Trackers](#issue-trackers). | |
| 128 | + | |
| 129 | +You can change the OAuth scope Errbit requests from GitHub by setting | |
| 130 | +`GITHUB_ACCESS_SCOPE`. The default ['repo'] is very permissive, but there are a | |
| 131 | +few others that could make sense for your needs: | |
| 132 | + | |
| 133 | +<dl> | |
| 134 | +<dt>GITHUB_ACCESS_SCOPE="['repo']"</dt> | |
| 135 | +<dd>Allow creating issues for public and private repos</dd> | |
| 136 | +<dt>GITHUB_ACCESS_SCOPE="['public_repo']"</dt> | |
| 137 | +<dd>Allow creating issues for public repos only</dd> | |
| 138 | +<dt>GITHUB_ACCESS_SCOPE="[]"</dt> | |
| 139 | +<dd>No permissions at all, but allows errbit login through github</dd> | |
| 140 | +</dl> | |
| 187 | 141 | |
| 188 | 142 | * GITHUB_ORG_ID is an optional environment variable you can set to your own |
| 189 | - github organization id. If set, any user of the specified GitHub organization | |
| 190 | - can login. If it is their first time, an account will automatically be | |
| 191 | - created for them. | |
| 143 | + github organization id. If set, only users of the specified GitHub | |
| 144 | + organization can log in to Errbit through GitHub. Errbit will provision | |
| 145 | + accounts for new users. | |
| 192 | 146 | |
| 193 | 147 | ### Configuring LDAP authentication: |
| 194 | 148 | |
| 195 | - * Set `USER_HAS_USERNAME` to `true` | |
| 196 | - * Follow the instructions at https://github.com/cschiewek/devise_ldap_authenticatable | |
| 197 | - to set up the devise_ldap_authenticatable gem. | |
| 198 | - * Ensure to set ```config.ldap_create_user = true``` in ```config/initializers/devise.rb```, this enables creating the users from LDAP, otherwhise login will not work. | |
| 199 | - * Create a new initializer (e.g. ```config/initializers/devise_ldap.rb```) and add the following code to enable ldap authentication in the User-model: | |
| 149 | +* Set USER_HAS_USERNAME=true | |
| 150 | +* Follow the instructions at | |
| 151 | + https://github.com/cschiewek/devise_ldap_authenticatable to set up the | |
| 152 | + devise_ldap_authenticatable gem. | |
| 153 | +* Set ```config.ldap_create_user = true``` in ```config/initializers/devise.rb```, this enables creating the users from LDAP, otherwhise login will not work. | |
| 154 | +* Create a new initializer (e.g. ```config/initializers/devise_ldap.rb```) and add the following code to enable ldap authentication in the User-model: | |
| 155 | + | |
| 200 | 156 | ```ruby |
| 201 | 157 | Errbit::Config.devise_modules << :ldap_authenticatable |
| 202 | 158 | ``` |
| 203 | 159 | |
| 204 | - * If you are authenticating by `username`, you will need to set the user's email manually | |
| 205 | - before authentication. You must add the following lines to `app/models/user.rb`: | |
| 160 | +* If you are authenticating by `username`, you will need to set the user's email manually | |
| 161 | +before authentication. You must add the following lines to `app/models/user.rb`: | |
| 206 | 162 | |
| 207 | 163 | ```ruby |
| 208 | 164 | def ldap_before_save |
| ... | ... | @@ -215,8 +171,8 @@ Errbit::Config.devise_modules << :ldap_authenticatable |
| 215 | 171 | end |
| 216 | 172 | ``` |
| 217 | 173 | |
| 218 | - * Now login with your user from LDAP, this will create a user in the database | |
| 219 | - * Open a rails console and set the admin flag for your user: | |
| 174 | +* Now login with your user from LDAP, this will create a user in the database | |
| 175 | +* Open a rails console and set the admin flag for your user: | |
| 220 | 176 | |
| 221 | 177 | ```ruby |
| 222 | 178 | user = User.first |
| ... | ... | @@ -237,114 +193,55 @@ rake assets:precompile |
| 237 | 193 | |
| 238 | 194 | This will ensure that your application stays up to date with any schema changes. |
| 239 | 195 | |
| 196 | +### Upgrading errbit from version 0.3 to 0.4 | |
| 240 | 197 | |
| 241 | -### Upgrading errbit from version 0.2 to 0.3 | |
| 242 | - | |
| 243 | -The MongoDB connection file `config/mongoid.yml` has changed between version 0.2 and | |
| 244 | -0.3. We have provided a new example configuration file to use at `config/mongoid.example.yml`. | |
| 245 | - | |
| 246 | -This change is not needed if you use ENV variables to | |
| 247 | -define access to your MongoDB database. | |
| 248 | - | |
| 249 | - | |
| 250 | -## User information in error reports | |
| 251 | - | |
| 252 | -Errbit can now display information about the user who experienced an error. | |
| 253 | -This gives you the ability to ask the user for more information, | |
| 254 | -and let them know when you've fixed the bug. | |
| 255 | - | |
| 256 | -If you are running a Rails application and would like to include information | |
| 257 | -about the current user in your error reports, you can replace the `airbrake` | |
| 258 | -gem in your Gemfile with `airbrake_user_attributes`. | |
| 259 | -This gem is a wrapper around the `airbrake` gem and will automatically | |
| 260 | -inject information about the user into any error reports, | |
| 261 | -so long as your controllers respond to a `#current_user` method. | |
| 262 | -The user's attributes are filtered to remove authentication fields. | |
| 263 | - | |
| 264 | -If user information is received with an error report, | |
| 265 | -it will be displayed under the *User Details* tab: | |
| 266 | - | |
| 267 | - | |
| 268 | - | |
| 269 | - | |
| 270 | -(This tab will be hidden if no user information is available.) | |
| 198 | +* All configuration is now done through the environment. See | |
| 199 | + [configuration](docs/configuration.md) | |
| 200 | +* Ruby 1.9 and 2.0 are no longer offically supported. Please upgrade to Ruby | |
| 201 | + 2.1+ | |
| 202 | +* Errbit now maintains an issue tracker only for github. If you're using | |
| 203 | + another issue tracker integration, you may need to maintain it yourself. See | |
| 204 | + (issue trackers)[#issue-trackers] | |
| 271 | 205 | |
| 272 | 206 | Javascript error notifications |
| 273 | 207 | -------------------------------------- |
| 274 | 208 | |
| 275 | -You can log javascript errors that occur in your application by including | |
| 209 | +You can log javascript errors that occur in your application by including the | |
| 276 | 210 | [airbrake-js](https://github.com/airbrake/airbrake-js) javascript library. |
| 277 | 211 | |
| 278 | -First you need to add airbrake-shim.js to your site and set some basic configuration | |
| 279 | -options: | |
| 280 | - | |
| 281 | -``` | |
| 282 | -<script src="airbrake-shim.js" data-airbrake-project-id="ERRBIT API KEY" data-airbrake-project-key="ERRBIT API KEY" data-airbrake-environment-name="production" data-airbrake-host="http://errbit.yourdomain.com"></script> | |
| 283 | -``` | |
| 284 | - | |
| 285 | -Or you can just add shim file and set these options using: | |
| 212 | +Install airbrake-js according to the docs at | |
| 213 | +[airbrake-js](https://github.com/airbrake/airbrake-js) and set your project and | |
| 214 | +host as early as possible: | |
| 286 | 215 | |
| 287 | -``` | |
| 216 | +```javascript | |
| 288 | 217 | Airbrake.setProject("ERRBIT API KEY", "ERRBIT API KEY"); |
| 289 | 218 | Airbrake.setHost("http://errbit.yourdomain.com"); |
| 290 | 219 | ``` |
| 291 | 220 | |
| 292 | -And that's it. | |
| 293 | - | |
| 294 | -Testing API V3 using ruby airbrake client | |
| 295 | ------------------------------------------ | |
| 296 | - | |
| 297 | -If you want you test standard airbrake ruby gem with API V3. To do that you | |
| 298 | -need to change your airbrake initializer file to something like this: | |
| 299 | - | |
| 300 | -``` | |
| 301 | -Airbrake.configure do |config| | |
| 302 | - config.api_key = ENV['airbrake_api_key'] | |
| 303 | - config.host = ENV['airbrake_host'] | |
| 304 | - config.port = ENV['airbrake_port'].to_i | |
| 305 | - config.secure = ENV['airbrake_secure'] == 'true' | |
| 306 | - config.project_id = ENV['airbrake_api_key'] | |
| 307 | -end | |
| 308 | - | |
| 309 | -class Airbrake::Sender | |
| 310 | - def json_api_enabled? | |
| 311 | - true | |
| 312 | - end | |
| 313 | -end | |
| 314 | -``` | |
| 315 | - | |
| 316 | -It is important to set project_id option to the same value as api_key, because | |
| 317 | -project_id is required for building url to api endpoint. And airbrake has a bug | |
| 318 | -that removes api_key from endpoint url. The only way to get this value is by passing | |
| 319 | -it as project_id. This little monkey-patch is required because airbrake gem only | |
| 320 | -uses v3 api when host is set to collect.airbrake.io. | |
| 321 | - | |
| 322 | -V3 request don't have framework option so you won't see this value in your error | |
| 323 | -notices in errbit. Besides that everything looks the same. It was tested using | |
| 324 | -rake airbrake:test for both v2 and v3. | |
| 325 | - | |
| 326 | 221 | Using custom fingerprinting methods |
| 327 | 222 | ----------------------------------- |
| 328 | 223 | |
| 329 | -Errbit allows you to use your own Fingerprinting Strategy. | |
| 330 | -If you are upgrading from a very old version of errbit, you can use the `Fingerprint::MD5` for compatibility. The fingerprint strategy can be changed by adding an initializer to errbit: | |
| 224 | +Errbit collates errors into groups using a fingerprinting strategy. If you find | |
| 225 | +your errors are not getting grouped the way you would expect, you may need to | |
| 226 | +implement your own strategy. A fingerprinting strategy is just a class that | |
| 227 | +implements a ::generate class method. See the classes in | |
| 228 | +`app/models/fingerprint/` if you need some inspiration. You can install it with | |
| 229 | +an initializer like: | |
| 331 | 230 | |
| 332 | 231 | ```ruby |
| 333 | -# config/fingerprint.rb | |
| 334 | -ErrorReport.fingerprint_strategy = Fingerprint::MD5 | |
| 232 | +# config/initializers/fingerprint.rb | |
| 233 | +ErrorReport.fingerprint_strategy = MyStrategy | |
| 335 | 234 | ``` |
| 336 | 235 | |
| 337 | -The easiest way to add custom fingerprint methods is to simply subclass `Fingerprint` | |
| 338 | - | |
| 339 | 236 | Plugins and Integrations |
| 340 | 237 | ------------------------ |
| 341 | -You can extend Errbit by adding Ruby gems and plugins which are generally also | |
| 342 | -gems. It's nice to keep track of which gems are core Errbit dependencies and | |
| 343 | -which gems are your own dependencies. If you want to add gems to your own | |
| 344 | -Errbit, place them in a new file called `UserGemfile`. If you want to use a | |
| 345 | -file with a different name, you can pass the name of that file in an | |
| 346 | -environment variable named `USER_GEMFILE`. For example, if you wanted to use | |
| 347 | -errbit_jira_plugin, you could: | |
| 238 | +You can extend Errbit by adding Ruby gems and plugins which are typically gems. | |
| 239 | +It's nice to keep track of which gems are core Errbit dependencies and which | |
| 240 | +gems are your own dependencies. If you want to add gems to your own Errbit, | |
| 241 | +place them in a new file called `UserGemfile` and Errbit will treat that file | |
| 242 | +as an additional Gemfile. If you want to use a file with a different name, you | |
| 243 | +can pass the name of that file in an environment variable named `USER_GEMFILE`. | |
| 244 | +If you want to use errbit_jira_plugin, just add it to UserGemfile: | |
| 348 | 245 | |
| 349 | 246 | ```bash |
| 350 | 247 | echo "gem 'errbit_jira_plugin'" > UserGemfile |
| ... | ... | @@ -361,38 +258,29 @@ supported issue tracker plugin is |
| 361 | 258 | If you want to implement your own issue tracker plugin, read the README.md file |
| 362 | 259 | at [errbit_plugin](https://github.com/errbit/errbit_plugin). |
| 363 | 260 | |
| 364 | -Notification Service | |
| 365 | --------------------- | |
| 366 | -**Flowdock Notification** | |
| 367 | - | |
| 368 | -Allow notification to [Flowdock](https://www.flowdock.com/). See | |
| 369 | -[complete documentation](docs/notifications/flowdock/index.md) | |
| 370 | - | |
| 371 | - | |
| 372 | 261 | What if Errbit has an error? |
| 373 | 262 | ---------------------------- |
| 374 | 263 | |
| 375 | -Errbit will log it's own errors to an internal app named **Self.Errbit**. | |
| 376 | -The **Self.Errbit** app will be automatically created whenever the first error happens. | |
| 264 | +Errbit will log it's own errors to an internal app named **Self.Errbit**. The | |
| 265 | +**Self.Errbit** app is automatically created when the first error happens. | |
| 377 | 266 | |
| 378 | -If your Errbit instance has logged an error, we would appreciate a bug report on GitHub Issues. | |
| 379 | -You can post this manually at [https://github.com/errbit/errbit/issues](https://github.com/errbit/errbit/issues), | |
| 267 | +If your Errbit instance has logged an error, we would appreciate a bug report | |
| 268 | +on GitHub Issues. You can post this manually at | |
| 269 | +[https://github.com/errbit/errbit/issues](https://github.com/errbit/errbit/issues), | |
| 380 | 270 | or you can set up the GitHub Issues tracker for your **Self.Errbit** app: |
| 381 | 271 | |
| 382 | - * Go to the **Self.Errbit** app's edit page. If that app does not exist yet, go to the apps page and click **Add a new App** to create it. (You can also create it by running `rake airbrake:test`.) | |
| 383 | - | |
| 272 | + * Go to the **Self.Errbit** app's edit page. If that app does not exist yet, | |
| 273 | + go to the apps page and click **Add a new App** to create it. (You can also | |
| 274 | + create it by running `rake airbrake:test`.) | |
| 384 | 275 | * In the **Issue Tracker** section, click **GitHub Issues**. |
| 385 | - | |
| 386 | 276 | * Fill in the **Account/Repository** field with **errbit/errbit**. |
| 387 | - | |
| 388 | 277 | * Fill in the **Username** field with your github username. |
| 389 | - | |
| 390 | - * If you are logged in on [GitHub](https://github.com), you can find your **API Token** on this page: [https://github.com/account/admin](https://github.com/account/admin). | |
| 391 | - | |
| 278 | + * If you are logged in on [GitHub](https://github.com), you can find your | |
| 279 | + **API Token** on this page: | |
| 280 | + [https://github.com/account/admin](https://github.com/account/admin). | |
| 392 | 281 | * Save the settings by clicking **Update App** (or **Add App**) |
| 393 | - | |
| 394 | - * You can now easily post bug reports to GitHub Issues by clicking the **Create Issue** button on a **Self.Errbit** error. | |
| 395 | - | |
| 282 | + * You can now easily post bug reports to GitHub Issues by clicking the | |
| 283 | + **Create Issue** button on a **Self.Errbit** error. | |
| 396 | 284 | |
| 397 | 285 | Use Errbit with applications written in other languages |
| 398 | 286 | ------------------------------------------------------- |
| ... | ... | @@ -415,17 +303,14 @@ Solutions known to work are listed below: |
| 415 | 303 | </tr> |
| 416 | 304 | </table> |
| 417 | 305 | |
| 418 | -TODO | |
| 419 | ----- | |
| 420 | - | |
| 421 | -* Add ability for watchers to be configured for types of notifications they should receive | |
| 422 | - | |
| 423 | - | |
| 424 | 306 | People using Errbit |
| 425 | 307 | ------------------- |
| 426 | 308 | |
| 427 | -See our wiki page for a [list of people and companies around the world who use Errbit](https://github.com/errbit/errbit/wiki/People-using-Errbit). | |
| 428 | -Feel free to [edit this page](https://github.com/errbit/errbit/wiki/People-using-Errbit/_edit), and add your name and country to the list if you are using Errbit. | |
| 309 | +See our wiki page for a [list of people and companies around the world who use | |
| 310 | +Errbit](https://github.com/errbit/errbit/wiki/People-using-Errbit). You may | |
| 311 | +[edit this | |
| 312 | +page](https://github.com/errbit/errbit/wiki/People-using-Errbit/_edit), and add | |
| 313 | +your name and country to the list if you are using Errbit. | |
| 429 | 314 | |
| 430 | 315 | |
| 431 | 316 | Special Thanks |
| ... | ... | @@ -440,8 +325,7 @@ Special Thanks |
| 440 | 325 | * [Relevance](http://thinkrelevance.com) - For giving me Open-source Fridays to work on Errbit and all my awesome co-workers for giving feedback and inspiration. |
| 441 | 326 | * [Thoughtbot](http://thoughtbot.com) - For being great open-source advocates and setting the bar with [Airbrake](http://airbrake.io). |
| 442 | 327 | |
| 443 | -See the [contributors graph](https://github.com/errbit/errbit/graphs/contributors) for further details. | |
| 444 | - | |
| 328 | +See the [contributors graph](https://github.com/errbit/errbit/graphs/contributors) for more details. | |
| 445 | 329 | |
| 446 | 330 | Contributing to Errbit |
| 447 | 331 | ------------ |
| ... | ... | @@ -456,4 +340,4 @@ Check the .travis.yml file to see how tests are run |
| 456 | 340 | Copyright |
| 457 | 341 | --------- |
| 458 | 342 | |
| 459 | -Copyright (c) 2010-2014 Errbit Team. See LICENSE for details. | |
| 343 | +Copyright (c) 2010-2015 Errbit Team | ... | ... |