diff --git a/CHANGELOG.md b/CHANGELOG.md index d4354ca..9c5969f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,15 @@ -## 0.4.0 - Not released Yet +## 0.4.0 - #791 Fix double escaping of problem title in list view.(@felixbuenemann) - #790 Fix favicon location.(@felixbuenemann) - #716 Fix inline comments styles.(@oelmekki) -- Update to rails 4.1.(@arthurnn) +- #778 Update to rails 4.1.(@arthurnn) - #682 Namespace fingerprint classes better.(@csaunders) - Drop ruby support for versions 1.9.x, and 2.0.x.(@arthurnn) -- #773 Only leave GitHub issue tracker on vanila errbit, as the others could be added just using the plugin.(@arthurnn) +- #773 Only leave GitHub issue tracker on vanila errbit, as the others could be + added just using the plugin.(@arthurnn) - #768 Update to Mongoid 4.0 and rails to 4.0 (@arthurnn) +- #820 Environment-only configuration ## 0.3.0 diff --git a/README.md b/README.md index 3ac88ec..03ff049 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,11 @@ [gemnasium-img-url]:https://gemnasium.com/errbit/errbit.png [gemnasium-url]:https://gemnasium.com/errbit/errbit - - ### The open source, self-hosted error catcher - Errbit is a tool for collecting and managing errors from other applications. -It is [Airbrake](http://airbrake.io) (formerly known as Hoptoad) API compliant, -so if you are already using Airbrake, you can just point the `airbrake` gem to your Errbit server. - +It is [Airbrake](http://airbrake.io) API compliant, so if you are already using +Airbrake, you can just point the `airbrake` gem to your Errbit server. @@ -52,10 +48,10 @@ so if you are already using Airbrake, you can just point the `airbrake` gem to y
- Errbit may be a good fit for you if: -* Your exceptions may contain sensitive data that you don't want sitting on someone else's server +* Your exceptions may contain sensitive data that you don't want sitting on + someone else's server * Your application is behind a firewall * You'd like to brand your error catcher * You want to add customer features to your error catcher @@ -64,26 +60,18 @@ Errbit may be a good fit for you if: If this doesn't sound like you, you should probably stick with a hosted service such as [Airbrake](http://airbrake.io). - Mailing List ------------ -Join the Google Group at https://groups.google.com/group/errbit to receive updates and notifications. - -Demo ----- - -There is a demo available at [http://errbit-demo.herokuapp.com/](http://errbit-demo.herokuapp.com/) - -Email: demo@errbit-demo.herokuapp.com
-Password: password +Join the Google Group at https://groups.google.com/group/errbit to receive +updates and notifications. # Requirements -The list of requirements to install Errbit are : +The list of requirements to install Errbit are: - * Ruby 2.1.0 or higher - * MongoDB 2.2.0 or higher +* Ruby 2.1.0 or higher +* MongoDB 2.2.0 or higher Installation ------------ @@ -92,49 +80,11 @@ Installation Rails applications. If you're uncomfortable with any steps below then Errbit is not for you. -**Set up your local box or server(Ubuntu):** - - * Install MongoDB. Follow the directions [here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages), then: - -```bash -apt-get update -apt-get install mongodb-10gen -``` - - * Install libxml, libzip, libssl and libcurl - -```bash -apt-get install libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libzip-dev libssl-dev -``` - - * Install Bundler - -```bash -gem install bundler -``` - -**Running Locally:** - - * Install dependencies - -```bash -bundle install -``` - - * Install MongoDB. Follow the directions [here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages), then: - - * Bootstrap Errbit. This will seed the database. Make sure you copy the - username and password down someplace safe. - -```bash -rake errbit:bootstrap -``` - - * Start Server - -```bash -rails s -``` +* [Install MongoDB](https://www.mongodb.org/downloads) +* git clone https://github.com/errbit/errbit.git +* bundle install +* bundle exec rake errbit:bootstrap +* bundle exec rails server Configuration ------------- @@ -152,57 +102,63 @@ See [notes on deployment](docs/deployment.md) Authentication -------------- ### Configuring GitHub authentication: -* Set GITHUB_AUTHENTICATION to true +* Set GITHUB_AUTHENTICATION=true * Register your instance of Errbit at https://github.com/settings/applications -If you hosted Errbit at errbit.example.com, you would fill in: +If you host Errbit at errbit.example.com, you would fill in: - - - -
URL:http://errbit.example.com/
Callback URL:http://errbit.example.com/users/auth/github
+
+
URL +
http://errbit.example.com +
Callback URL +
http://errbit.example.com/users/auth/github +
* After you have registered your app, set GITHUB_CLIENT_ID and GITHUB_SECRET with your app's Client ID and Secret key. When you start your applicatoin, you should see the option to **Sign in with -GitHub** on the Login page. - -You will also be able to link your GitHub profile to your user account on your -**Edit profile** page. - -If you have signed in with GitHub, or linked your GitHub profile, and the App -has a GitHub repo configured, then you will be able to create issues on GitHub. -You will still be able to create an issue on the App's configured issue -tracker. - -You can change the requested account permissions by setting -`GITHUB_ACCESS_SCOPE` to: - - - - - -
['repo'] Allow creating issues for public and private repos.
['public_repo'] Only allow creating issues for public repos.
[] No permission to create issues on any repos.
+GitHub** on the Login page. You will also be able to link your GitHub profile +to your user account on your **Edit profile** page. + +If you have signed in with GitHub, or linked your GitHub profile, and you're +working with an App that has a GitHub repo configured, then you will be able to +create issues on GitHub. If you use another issue tracker, see [Issue +Trackers](#issue-trackers). + +You can change the OAuth scope Errbit requests from GitHub by setting +`GITHUB_ACCESS_SCOPE`. The default ['repo'] is very permissive, but there are a +few others that could make sense for your needs: + +
+
GITHUB_ACCESS_SCOPE="['repo']"
+
Allow creating issues for public and private repos
+
GITHUB_ACCESS_SCOPE="['public_repo']"
+
Allow creating issues for public repos only
+
GITHUB_ACCESS_SCOPE="[]"
+
No permissions at all, but allows errbit login through github
+
* GITHUB_ORG_ID is an optional environment variable you can set to your own - github organization id. If set, any user of the specified GitHub organization - can login. If it is their first time, an account will automatically be - created for them. + github organization id. If set, only users of the specified GitHub + organization can log in to Errbit through GitHub. Errbit will provision + accounts for new users. ### Configuring LDAP authentication: - * Set `USER_HAS_USERNAME` to `true` - * Follow the instructions at https://github.com/cschiewek/devise_ldap_authenticatable - to set up the devise_ldap_authenticatable gem. - * 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. - * Create a new initializer (e.g. ```config/initializers/devise_ldap.rb```) and add the following code to enable ldap authentication in the User-model: +* Set USER_HAS_USERNAME=true +* Follow the instructions at + https://github.com/cschiewek/devise_ldap_authenticatable to set up the + devise_ldap_authenticatable gem. +* Set ```config.ldap_create_user = true``` in ```config/initializers/devise.rb```, this enables creating the users from LDAP, otherwhise login will not work. +* Create a new initializer (e.g. ```config/initializers/devise_ldap.rb```) and add the following code to enable ldap authentication in the User-model: + ```ruby Errbit::Config.devise_modules << :ldap_authenticatable ``` - * If you are authenticating by `username`, you will need to set the user's email manually - before authentication. You must add the following lines to `app/models/user.rb`: +* If you are authenticating by `username`, you will need to set the user's email manually +before authentication. You must add the following lines to `app/models/user.rb`: ```ruby def ldap_before_save @@ -215,8 +171,8 @@ Errbit::Config.devise_modules << :ldap_authenticatable end ``` - * Now login with your user from LDAP, this will create a user in the database - * Open a rails console and set the admin flag for your user: +* Now login with your user from LDAP, this will create a user in the database +* Open a rails console and set the admin flag for your user: ```ruby user = User.first @@ -237,114 +193,55 @@ rake assets:precompile This will ensure that your application stays up to date with any schema changes. +### Upgrading errbit from version 0.3 to 0.4 -### Upgrading errbit from version 0.2 to 0.3 - -The MongoDB connection file `config/mongoid.yml` has changed between version 0.2 and -0.3. We have provided a new example configuration file to use at `config/mongoid.example.yml`. - -This change is not needed if you use ENV variables to -define access to your MongoDB database. - - -## User information in error reports - -Errbit can now display information about the user who experienced an error. -This gives you the ability to ask the user for more information, -and let them know when you've fixed the bug. - -If you are running a Rails application and would like to include information -about the current user in your error reports, you can replace the `airbrake` -gem in your Gemfile with `airbrake_user_attributes`. -This gem is a wrapper around the `airbrake` gem and will automatically -inject information about the user into any error reports, -so long as your controllers respond to a `#current_user` method. -The user's attributes are filtered to remove authentication fields. - -If user information is received with an error report, -it will be displayed under the *User Details* tab: - - -![User details tab](http://errbit.github.com/errbit/images/error_user_information.png) - -(This tab will be hidden if no user information is available.) +* All configuration is now done through the environment. See + [configuration](docs/configuration.md) +* Ruby 1.9 and 2.0 are no longer offically supported. Please upgrade to Ruby + 2.1+ +* Errbit now maintains an issue tracker only for github. If you're using + another issue tracker integration, you may need to maintain it yourself. See + (issue trackers)[#issue-trackers] Javascript error notifications -------------------------------------- -You can log javascript errors that occur in your application by including +You can log javascript errors that occur in your application by including the [airbrake-js](https://github.com/airbrake/airbrake-js) javascript library. -First you need to add airbrake-shim.js to your site and set some basic configuration -options: - -``` - -``` - -Or you can just add shim file and set these options using: +Install airbrake-js according to the docs at +[airbrake-js](https://github.com/airbrake/airbrake-js) and set your project and +host as early as possible: -``` +```javascript Airbrake.setProject("ERRBIT API KEY", "ERRBIT API KEY"); Airbrake.setHost("http://errbit.yourdomain.com"); ``` -And that's it. - -Testing API V3 using ruby airbrake client ------------------------------------------ - -If you want you test standard airbrake ruby gem with API V3. To do that you -need to change your airbrake initializer file to something like this: - -``` -Airbrake.configure do |config| - config.api_key = ENV['airbrake_api_key'] - config.host = ENV['airbrake_host'] - config.port = ENV['airbrake_port'].to_i - config.secure = ENV['airbrake_secure'] == 'true' - config.project_id = ENV['airbrake_api_key'] -end - -class Airbrake::Sender - def json_api_enabled? - true - end -end -``` - -It is important to set project_id option to the same value as api_key, because -project_id is required for building url to api endpoint. And airbrake has a bug -that removes api_key from endpoint url. The only way to get this value is by passing -it as project_id. This little monkey-patch is required because airbrake gem only -uses v3 api when host is set to collect.airbrake.io. - -V3 request don't have framework option so you won't see this value in your error -notices in errbit. Besides that everything looks the same. It was tested using -rake airbrake:test for both v2 and v3. - Using custom fingerprinting methods ----------------------------------- -Errbit allows you to use your own Fingerprinting Strategy. -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: +Errbit collates errors into groups using a fingerprinting strategy. If you find +your errors are not getting grouped the way you would expect, you may need to +implement your own strategy. A fingerprinting strategy is just a class that +implements a ::generate class method. See the classes in +`app/models/fingerprint/` if you need some inspiration. You can install it with +an initializer like: ```ruby -# config/fingerprint.rb -ErrorReport.fingerprint_strategy = Fingerprint::MD5 +# config/initializers/fingerprint.rb +ErrorReport.fingerprint_strategy = MyStrategy ``` -The easiest way to add custom fingerprint methods is to simply subclass `Fingerprint` - Plugins and Integrations ------------------------ -You can extend Errbit by adding Ruby gems and plugins which are generally also -gems. It's nice to keep track of which gems are core Errbit dependencies and -which gems are your own dependencies. If you want to add gems to your own -Errbit, place them in a new file called `UserGemfile`. If you want to use a -file with a different name, you can pass the name of that file in an -environment variable named `USER_GEMFILE`. For example, if you wanted to use -errbit_jira_plugin, you could: +You can extend Errbit by adding Ruby gems and plugins which are typically gems. +It's nice to keep track of which gems are core Errbit dependencies and which +gems are your own dependencies. If you want to add gems to your own Errbit, +place them in a new file called `UserGemfile` and Errbit will treat that file +as an additional Gemfile. If you want to use a file with a different name, you +can pass the name of that file in an environment variable named `USER_GEMFILE`. +If you want to use errbit_jira_plugin, just add it to UserGemfile: ```bash echo "gem 'errbit_jira_plugin'" > UserGemfile @@ -361,38 +258,29 @@ supported issue tracker plugin is If you want to implement your own issue tracker plugin, read the README.md file at [errbit_plugin](https://github.com/errbit/errbit_plugin). -Notification Service --------------------- -**Flowdock Notification** - -Allow notification to [Flowdock](https://www.flowdock.com/). See -[complete documentation](docs/notifications/flowdock/index.md) - - What if Errbit has an error? ---------------------------- -Errbit will log it's own errors to an internal app named **Self.Errbit**. -The **Self.Errbit** app will be automatically created whenever the first error happens. +Errbit will log it's own errors to an internal app named **Self.Errbit**. The +**Self.Errbit** app is automatically created when the first error happens. -If your Errbit instance has logged an error, we would appreciate a bug report on GitHub Issues. -You can post this manually at [https://github.com/errbit/errbit/issues](https://github.com/errbit/errbit/issues), +If your Errbit instance has logged an error, we would appreciate a bug report +on GitHub Issues. You can post this manually at +[https://github.com/errbit/errbit/issues](https://github.com/errbit/errbit/issues), or you can set up the GitHub Issues tracker for your **Self.Errbit** app: - * 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`.) - + * 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`.) * In the **Issue Tracker** section, click **GitHub Issues**. - * Fill in the **Account/Repository** field with **errbit/errbit**. - * Fill in the **Username** field with your github username. - - * 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). - + * 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). * Save the settings by clicking **Update App** (or **Add App**) - - * You can now easily post bug reports to GitHub Issues by clicking the **Create Issue** button on a **Self.Errbit** error. - + * You can now easily post bug reports to GitHub Issues by clicking the + **Create Issue** button on a **Self.Errbit** error. Use Errbit with applications written in other languages ------------------------------------------------------- @@ -415,17 +303,14 @@ Solutions known to work are listed below: -TODO ----- - -* Add ability for watchers to be configured for types of notifications they should receive - - People using Errbit ------------------- -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). -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. +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). You may +[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. Special Thanks @@ -440,8 +325,7 @@ Special Thanks * [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. * [Thoughtbot](http://thoughtbot.com) - For being great open-source advocates and setting the bar with [Airbrake](http://airbrake.io). -See the [contributors graph](https://github.com/errbit/errbit/graphs/contributors) for further details. - +See the [contributors graph](https://github.com/errbit/errbit/graphs/contributors) for more details. Contributing to Errbit ------------ @@ -456,4 +340,4 @@ Check the .travis.yml file to see how tests are run Copyright --------- -Copyright (c) 2010-2014 Errbit Team. See LICENSE for details. +Copyright (c) 2010-2015 Errbit Team -- libgit2 0.21.2