A rails engine for customer care.
Personal Homepage
user page
A modern datepicker
astjohn/coffee-script-project-template 1
Build system for CoffeeScript projects compiled with Google's Closure Compiler
Spell check dictionaries for Sublime Text.
astjohn/has_threaded_comments 1
Add an entire threaded comment system to your Rails application with only 7 lines of code.
pushState + ajax = pjax
A lightweight, flexible library for Facebook with support for OAuth authentication, the Graph and REST APIs, realtime updates, and test users.
Bare minimum websockets (hybi13/RFC) client for Android
push eventSitata/bamboo
commit sha aa8c45827b26f8e995469e7e1e554fd38e62a6b6
Accept timeout option in test helpers (#605) What changed? ============ We update all test helpers in `Bamboo.Test` to accept a `:timeout` option. Once we get the timeout, we forward it to ExUnit's `assert_receive` as the second argument. Refutation helpers will use the `timeout` option passed in (if any), and then fallback to 100ms (if not in shared mode) or the configured `refute_timeout` if on `shared_mode`.
commit sha dbc920356113ed483dfb1b6f02c6b419a6f25664
Set default timeout in test helpers to 100 (#607) Commit aa8c458 introduced the ability to accept a timeout option in test helpers. To consolidate logic, it extracted a `get_timeout/1` function, but it incorrectly set the default value to 1000 ms. This commit corrects that by setting it to 100 ms. We also take the opportunity to use the `get_timeout/1` helper from the `refute_timeout/1` function, thus we consolidate all fetching of the `:timeout` option to the `get_timeout/1` helper.
commit sha 6aa74c3ff16604aeba853c34cd525c6b7f46b33f
Turn some test helpers from macros -> functions (#604) What changed? ============ We change three test helpers in `Bamboo.Test` from macros into regular functions: - `assert_delivered_email/1` - `assert_delivered_email_with/1` - `refute_email_delivered_with/1` There are other helpers that are already functions: - `assert_no_emails_delivered/0` - `refute_delivered_email/1` The only macro we leave as a macro (because it needs to be one) is `assert_delivered_email_matches/1` Why? ---- There seems no reason for those functions to be macros, and they only add extra complexity. > Macros should only be used as a last resort - from Elixir's [getting started docs](https://elixir-lang.org/getting-started/meta/macros.html) A side benefit ------------- A side benefit of doing this is that we can make most of the private functions truly private with `defp`. With the macros, we had to make them public (to access them from the macros), and we set `@doc false` so they wouldn't show up in docs.
commit sha 2fe49add34e3eff155398442499ed45c13f0cefb
Add support for Sendgrid unique arguments (#609) Closes https://github.com/thoughtbot/bamboo/issues/592 Adds support for Sendgrid unique arguments. It includes a `with_unique_args` helper function in the SendGridHelper.
commit sha 506e25ff9a5b42d259a00c76e0b7e0d55162163f
Release version 2.2.0
commit sha 019260cf1bd35df5fe729af91c4f71c38a85a74c
Merge tag 'v2.2.0' into inline_attachments_mailgun
push time in 9 days
pull request commentthoughtbot/bamboo
Enable inline attachments for mailgun.
It's been a while. Updating our own branch and coming back around to this. Here's the mailgun docs: https://documentation.mailgun.com/en/latest/api_reference.html#api-reference https://documentation.mailgun.com/en/latest/api-sending.html#sending
If you'd like to verify what I went through with Mailgun, feel free to email them. As far as I know, their stance hasn't changed on the matter.
comment created time in 2 months
push eventSitata/bamboo
commit sha 2650a217468ba798ce6c0a85220e581c126d349e
Escape HTML in preview email subject and text body (#548) We escape HTML in the preview email's subject and text body. The rest of the email preview remains the same.
commit sha 6f2662ebeb2cdca498c0c0dcd327c4637c963494
Minor sendgrid api docs fixes (#554) A couple of docs fixes for a missing comma and incorrect function name.
commit sha 198b5042ff1521999ce9c51f4326ee5065dac650
Show attachments in viewer (#553) Fixes #520 What changed? ============ Adds support for viewing attachments in SentEmailViewerPlug. It be tested manually by running `mix bamboo.start_sent_email_viewer`. Co-authored-by: Nathan Hadfield <[email protected]>
commit sha d1c06d63878d7d344346f958d07b91433db53937
Correct backticks typo in SendGridHelper docs Corrects triple backticks typo in SendGridHelper docs.
commit sha c24de755baa0feb9b87fd721aca5c1430d5ee57a
Bump to version 1.6.0 Bump Bamboo's version to 1.6.0. See Changelog for changes.
commit sha b062b66e93fac429773f31f202feeeaa7edad7f0
Set new maintainer
commit sha 8d447ec6012ee9e2932aff0c4d2982b901526f86
Add date of v1.6 release in Changelog
commit sha f92367819614c0036488bd8896323512c5db4ca6
Relax formatter opts (#557) closes #499 What changed? ============ `Bamboo.Formatter:format_email_address` allows for ignoring `_opts` (the second argument). But the it throws a type error after Elixir 1.9.1 if no options are passed because the typespec requires a map with `:type`. This commit relaxes that typespec constraint to make the `:type` optional.
commit sha a0be525560c4bf143d3205d1b9af1852d1b285f9
Specify elixir version in mix.exs project to 1.6
commit sha 8c5780319c5e2c936d04a2e1d9594be20a525c9b
Remove unneeded `@email_view_module` in Bamboo.Phoenix (#559) What changed? ============ We remove an unnecessary setting of the view being passed to `Bamboo.Phoenix` as `@email_view_module`. By setting it to a module attribute, we create a compile time dependency, when we can simply pass it into the `render_email` function.
commit sha a479fd4fa208fec09b57a64f443dfc303be5f45a
fix: typespec in generated code (#561) A small typespec fix. `@spec` for `deliver_now/2` when using `Bamboo.Mailer` defines tuple for when we call it with `response: true` option. However the slots in the tuple are reversed from actual implementation, causing dialyzer warning in our code. Impl is: ```ex response = adapter.deliver(email, config) {email, response} ``` https://github.com/thoughtbot/bamboo/blob/8c5780319c5e2c936d04a2e1d9594be20a525c9b/lib/bamboo/mailer.ex#L149-L150
commit sha b9bea5b4a33ea296e2f8b63f5075fbb9088b3471
Elixir 1.11 warnings (#556) Address Elixir 1.11 warnings: * Using new child specifications * Removing two calls to @doc for the same function * Added :mime to dpes since it is used in `lib/bamboo/attachment.ex` and not directly referenced. * Exclude IEx from xref since it's used in `lib/mix/start_sent_email_viewer_task.ex` This commit also updates dev dependencies.
commit sha 21371640ecda35307f265e84842a90dcb4c5557f
Update phoenix.ex docs (#564) Update module and directory names in docs to be compatible with current Phoenix practice. - `web/` -> `my_app_web`, and - `MyApp` -> `MyAppWeb` where appropriate
commit sha 4626eea528c30114b8fffedbcc2d570f599116d7
Improve attachment support detection (#567) This fixes a subtle bug which we encountered on one project in tests. The problem is that `function_exported?` returns false if the module is not loaded (see [here](https://hexdocs.pm/elixir/Kernel.html?#function_exported?/3)). Consequently, if the beam is started in interactive mode (default when mix is used), Bamboo may incorrectly conclude that attachments are not supported. This can lead to some strange behaviour in tests. For example, we had a test failing if executed in isolation, but sometimes the test would pass if all the tests are running. The test would always pass if the test adapter is recompiled while invoking `mix test`. Note that the same issue can occur in prod if OTP release is not used.
commit sha 92342026121e0013fc1a2c0ff7801a6ad4dc178e
Fix mailgun adapter error reporting (#521) Mailgun adapter was raising errors with encoded body. This caused the api_error handler to report one large string as the param. This was hard to debug and know which email was throwing the error because printable_limit config of `inspect\2` was truncating the string to 4092 characters. Dude to the way maps are sorted alphabetically we only got to see from= and html= params which didn't contain enough information to know which email it is. This change converts the body of mailgun request back to a map so we can see all params for the failed request. For consistency between encode_body and decode_body use Plug instead of URI directly. This is makes more sense when looking at both encode and decode in the context of the module.
commit sha 4080bd67eb13347c57de50dc32fefaa473e6c423
Fix Email.address() typespec (#570) What changed? ============ In https://github.com/thoughtbot/bamboo/pull/386, evuez pointed out that the `Bamboo.Email.address()` typespec shows `String.t() | {String.t(), String.t()}`. But no adapter actually supports the `String.t()` type. Given that the code was introduced [before the typespecs](https://github.com/thoughtbot/bamboo/pull/150) (and thus we can treat the code as the source of truth when in doubt), and since `Bamboo.Email.get_address/1`'s explicit intent is to abstract the internal representation of email addresses in case Bamboo changes how it stores them: > Gets just the email address from a normalized email address. > Normalized email addresses are 2 item tuples {name, address}. This gets the address part of the tuple. Use this instead of calling elem(address, 1) so that if Bamboo changes how email addresses are represented your code will still work I think the correct change here is to remove the `String.t()` portion of the typespec rather than update the code to handle that typespec. In other words, I think we made a typo when introducing the typespec. So this PR would be merged instead of #386.
commit sha e5cefc3fbe9b5e334ac9bddbf51c7d03c699c78c
Clarify mailer test setup Clarify mailer test setup so that its easier to understand how we're overriding the default config with `@tag adapter` in tests.
commit sha 06545bb5d26ae74dccb1099a0bc88b55b99bc872
Update min version of hackney to 1.15.2 (#575) There's an issue with older versions of hackney that results in failed HTTPS requests with this error: ``` {:error, {:option, :server_only, :honor_cipher_order}} ``` See https://github.com/thoughtbot/bamboo/issues/512.
commit sha 0bf46587ba2af763bcbe45c0f78834df75953601
Add support for Mailgun recipient variables (#566) Adds support for Mailgun recipient variables. This commit adds a `recipient_variables/2` Mailgun Helper to set recipient variables that are then JSON-encoded. For more documentation see: https://documentation.mailgun.com/en/latest/user_manual.html#recipient-variables
commit sha c0630200c1ec039f1500d3f42ee9421231dbc201
Introduce Bamboo.Template and Bamboo.View (#576) What changed? ============= We introduce two new modules `Bamboo.Template` and `Bamboo.View` so that Bamboo users can use HTML and text templates without having to rely on Phoenix (not all Bamboo users use Phoenix). The implementation is based heavily on Phoenix's Template and View modules. So a huge thanks to them for all the hard work. Example usage: ```elixir defmodule MyApp.EmailView do use Bamboo.View, path: "path/to/this/view/templates" end defmodule MyApp.Email do use Bamboo.Template, view: MyApp.EmailView def welcome_email do new_email() |> put_layout({MyApp.EmailLayout, :email}) |> render(:welcome_email) end end ``` The goal is for `Bamboo.Template` to coexist with `Bamboo.Phoenix`, and `Bamboo.Phoenix` can be moved to a separate package in the future. Difference from Bamboo.Phoenix ----------------------------- Unlike `Bamboo.Phoenix`, `Bamboo.Template` allows for defining the view with `put_view/2` for cases when we don't have to rely on the view defined in `use Bamboo.Template, view: EmailView`. We can also specify the layouts when calling `use Bamboo.Template`. That way, if someone is always using the same view and template, they can specify it once at the top level of their `Email` module. Note on separation of concerns: all manipulation of assigns, etc. happens in `Bamboo.Template` and the rendering of an email and a template (as well as the compiling of the templates) happens in `Bamboo.View`. Difference from Phoenix Views ----------------------------- When using `Bamboo.View` we have to specify the relative path (relative to the root of the project) where the templates for that view will live (instead of the root path as is done in `Phoenix.View`). We could do fancier things where we auto detect the location based on the module name, but that seems a little magical and perhaps unnecessary for now. We can always add that if we need it. For now, we can specify a view, and set the path for its templates. Note on alternate implementation -------------------------------- The first pass at doing this used`EEx.function_from_file` instead `EEx.compile_file` and unquoting the compiled file as we define the function. But I ran into issues with the `function_from_file` approach because assigns needed to be keyword lists instead of maps. At that point, I looked at the approach `Phoenix.Template` uses, and decided to follow their approach of using `EEx.compile_file`. See [Phoenix.Template's approach]: https://github.com/phoenixframework/phoenix/blob/e05af0ad5527c9a192de122f3e43d7ed4c7a4c9f/lib/phoenix/template.ex#L346-L365 Note on updated Bamboo.Phoenix tests ------------------------------------ Even though there were no changes to `Bamboo.Phoenix`, there were a couple of changes to `bamboo/phoenix_test`. That happened because we tried to reuse as many as the test templates as possible. We did separate a `PhoenixLayoutView` since the layouts render their contents differently. `Bamboo.Phoenix` uses a version of Phoenix that still uses `render @view_module, @view_template, assigns` in the layout. But `Bamboo.View` is using `@inner_content`, like more recent versions of Phoenix. We also have to include the `function_in_view/0` function in `bamboo/phoenix_test`'s `EmailView` since the view compiles a new template that calls that function.
push time in 2 months
push eventSitata/bamboo
commit sha 2650a217468ba798ce6c0a85220e581c126d349e
Escape HTML in preview email subject and text body (#548) We escape HTML in the preview email's subject and text body. The rest of the email preview remains the same.
commit sha 6f2662ebeb2cdca498c0c0dcd327c4637c963494
Minor sendgrid api docs fixes (#554) A couple of docs fixes for a missing comma and incorrect function name.
commit sha 198b5042ff1521999ce9c51f4326ee5065dac650
Show attachments in viewer (#553) Fixes #520 What changed? ============ Adds support for viewing attachments in SentEmailViewerPlug. It be tested manually by running `mix bamboo.start_sent_email_viewer`. Co-authored-by: Nathan Hadfield <[email protected]>
commit sha d1c06d63878d7d344346f958d07b91433db53937
Correct backticks typo in SendGridHelper docs Corrects triple backticks typo in SendGridHelper docs.
commit sha c24de755baa0feb9b87fd721aca5c1430d5ee57a
Bump to version 1.6.0 Bump Bamboo's version to 1.6.0. See Changelog for changes.
commit sha b062b66e93fac429773f31f202feeeaa7edad7f0
Set new maintainer
commit sha 8d447ec6012ee9e2932aff0c4d2982b901526f86
Add date of v1.6 release in Changelog
commit sha f92367819614c0036488bd8896323512c5db4ca6
Relax formatter opts (#557) closes #499 What changed? ============ `Bamboo.Formatter:format_email_address` allows for ignoring `_opts` (the second argument). But the it throws a type error after Elixir 1.9.1 if no options are passed because the typespec requires a map with `:type`. This commit relaxes that typespec constraint to make the `:type` optional.
commit sha a0be525560c4bf143d3205d1b9af1852d1b285f9
Specify elixir version in mix.exs project to 1.6
commit sha 8c5780319c5e2c936d04a2e1d9594be20a525c9b
Remove unneeded `@email_view_module` in Bamboo.Phoenix (#559) What changed? ============ We remove an unnecessary setting of the view being passed to `Bamboo.Phoenix` as `@email_view_module`. By setting it to a module attribute, we create a compile time dependency, when we can simply pass it into the `render_email` function.
commit sha a479fd4fa208fec09b57a64f443dfc303be5f45a
fix: typespec in generated code (#561) A small typespec fix. `@spec` for `deliver_now/2` when using `Bamboo.Mailer` defines tuple for when we call it with `response: true` option. However the slots in the tuple are reversed from actual implementation, causing dialyzer warning in our code. Impl is: ```ex response = adapter.deliver(email, config) {email, response} ``` https://github.com/thoughtbot/bamboo/blob/8c5780319c5e2c936d04a2e1d9594be20a525c9b/lib/bamboo/mailer.ex#L149-L150
commit sha b9bea5b4a33ea296e2f8b63f5075fbb9088b3471
Elixir 1.11 warnings (#556) Address Elixir 1.11 warnings: * Using new child specifications * Removing two calls to @doc for the same function * Added :mime to dpes since it is used in `lib/bamboo/attachment.ex` and not directly referenced. * Exclude IEx from xref since it's used in `lib/mix/start_sent_email_viewer_task.ex` This commit also updates dev dependencies.
commit sha 21371640ecda35307f265e84842a90dcb4c5557f
Update phoenix.ex docs (#564) Update module and directory names in docs to be compatible with current Phoenix practice. - `web/` -> `my_app_web`, and - `MyApp` -> `MyAppWeb` where appropriate
commit sha 4626eea528c30114b8fffedbcc2d570f599116d7
Improve attachment support detection (#567) This fixes a subtle bug which we encountered on one project in tests. The problem is that `function_exported?` returns false if the module is not loaded (see [here](https://hexdocs.pm/elixir/Kernel.html?#function_exported?/3)). Consequently, if the beam is started in interactive mode (default when mix is used), Bamboo may incorrectly conclude that attachments are not supported. This can lead to some strange behaviour in tests. For example, we had a test failing if executed in isolation, but sometimes the test would pass if all the tests are running. The test would always pass if the test adapter is recompiled while invoking `mix test`. Note that the same issue can occur in prod if OTP release is not used.
commit sha 92342026121e0013fc1a2c0ff7801a6ad4dc178e
Fix mailgun adapter error reporting (#521) Mailgun adapter was raising errors with encoded body. This caused the api_error handler to report one large string as the param. This was hard to debug and know which email was throwing the error because printable_limit config of `inspect\2` was truncating the string to 4092 characters. Dude to the way maps are sorted alphabetically we only got to see from= and html= params which didn't contain enough information to know which email it is. This change converts the body of mailgun request back to a map so we can see all params for the failed request. For consistency between encode_body and decode_body use Plug instead of URI directly. This is makes more sense when looking at both encode and decode in the context of the module.
commit sha 4080bd67eb13347c57de50dc32fefaa473e6c423
Fix Email.address() typespec (#570) What changed? ============ In https://github.com/thoughtbot/bamboo/pull/386, evuez pointed out that the `Bamboo.Email.address()` typespec shows `String.t() | {String.t(), String.t()}`. But no adapter actually supports the `String.t()` type. Given that the code was introduced [before the typespecs](https://github.com/thoughtbot/bamboo/pull/150) (and thus we can treat the code as the source of truth when in doubt), and since `Bamboo.Email.get_address/1`'s explicit intent is to abstract the internal representation of email addresses in case Bamboo changes how it stores them: > Gets just the email address from a normalized email address. > Normalized email addresses are 2 item tuples {name, address}. This gets the address part of the tuple. Use this instead of calling elem(address, 1) so that if Bamboo changes how email addresses are represented your code will still work I think the correct change here is to remove the `String.t()` portion of the typespec rather than update the code to handle that typespec. In other words, I think we made a typo when introducing the typespec. So this PR would be merged instead of #386.
commit sha e5cefc3fbe9b5e334ac9bddbf51c7d03c699c78c
Clarify mailer test setup Clarify mailer test setup so that its easier to understand how we're overriding the default config with `@tag adapter` in tests.
commit sha 06545bb5d26ae74dccb1099a0bc88b55b99bc872
Update min version of hackney to 1.15.2 (#575) There's an issue with older versions of hackney that results in failed HTTPS requests with this error: ``` {:error, {:option, :server_only, :honor_cipher_order}} ``` See https://github.com/thoughtbot/bamboo/issues/512.
commit sha 0bf46587ba2af763bcbe45c0f78834df75953601
Add support for Mailgun recipient variables (#566) Adds support for Mailgun recipient variables. This commit adds a `recipient_variables/2` Mailgun Helper to set recipient variables that are then JSON-encoded. For more documentation see: https://documentation.mailgun.com/en/latest/user_manual.html#recipient-variables
commit sha c0630200c1ec039f1500d3f42ee9421231dbc201
Introduce Bamboo.Template and Bamboo.View (#576) What changed? ============= We introduce two new modules `Bamboo.Template` and `Bamboo.View` so that Bamboo users can use HTML and text templates without having to rely on Phoenix (not all Bamboo users use Phoenix). The implementation is based heavily on Phoenix's Template and View modules. So a huge thanks to them for all the hard work. Example usage: ```elixir defmodule MyApp.EmailView do use Bamboo.View, path: "path/to/this/view/templates" end defmodule MyApp.Email do use Bamboo.Template, view: MyApp.EmailView def welcome_email do new_email() |> put_layout({MyApp.EmailLayout, :email}) |> render(:welcome_email) end end ``` The goal is for `Bamboo.Template` to coexist with `Bamboo.Phoenix`, and `Bamboo.Phoenix` can be moved to a separate package in the future. Difference from Bamboo.Phoenix ----------------------------- Unlike `Bamboo.Phoenix`, `Bamboo.Template` allows for defining the view with `put_view/2` for cases when we don't have to rely on the view defined in `use Bamboo.Template, view: EmailView`. We can also specify the layouts when calling `use Bamboo.Template`. That way, if someone is always using the same view and template, they can specify it once at the top level of their `Email` module. Note on separation of concerns: all manipulation of assigns, etc. happens in `Bamboo.Template` and the rendering of an email and a template (as well as the compiling of the templates) happens in `Bamboo.View`. Difference from Phoenix Views ----------------------------- When using `Bamboo.View` we have to specify the relative path (relative to the root of the project) where the templates for that view will live (instead of the root path as is done in `Phoenix.View`). We could do fancier things where we auto detect the location based on the module name, but that seems a little magical and perhaps unnecessary for now. We can always add that if we need it. For now, we can specify a view, and set the path for its templates. Note on alternate implementation -------------------------------- The first pass at doing this used`EEx.function_from_file` instead `EEx.compile_file` and unquoting the compiled file as we define the function. But I ran into issues with the `function_from_file` approach because assigns needed to be keyword lists instead of maps. At that point, I looked at the approach `Phoenix.Template` uses, and decided to follow their approach of using `EEx.compile_file`. See [Phoenix.Template's approach]: https://github.com/phoenixframework/phoenix/blob/e05af0ad5527c9a192de122f3e43d7ed4c7a4c9f/lib/phoenix/template.ex#L346-L365 Note on updated Bamboo.Phoenix tests ------------------------------------ Even though there were no changes to `Bamboo.Phoenix`, there were a couple of changes to `bamboo/phoenix_test`. That happened because we tried to reuse as many as the test templates as possible. We did separate a `PhoenixLayoutView` since the layouts render their contents differently. `Bamboo.Phoenix` uses a version of Phoenix that still uses `render @view_module, @view_template, assigns` in the layout. But `Bamboo.View` is using `@inner_content`, like more recent versions of Phoenix. We also have to include the `function_in_view/0` function in `bamboo/phoenix_test`'s `EmailView` since the view compiles a new template that calls that function.
push time in 2 months
push eventSitata/jwt-google-tokens
commit sha 09a572835de3a585c292fda0fea9e3613a985b21
Loosen timex dependency.
push time in 2 months
push eventSitata/jwt-google-tokens
commit sha f895231a2cb3f453bafddf9e0c3ac154582a66b8
Added new Jwt.Display.display module as a convinience to display the claims of a token easily. Updated dependencies versions as many were outdated.
commit sha 71688f2033f2a0bd38ab533af585d34d60fb2b24
Updated handling of Poison.Parser.parse! response.
commit sha 9878357c5f6b79ad65361315ddb68786a82dd0f7
Moved plugs to own directory and reanmed to better express intent in preparation for new cookie verification plug.
commit sha b41d568d8e23426ad5a040723ef54d8dbeff2e13
Extracted function to set the test time to external function.
commit sha 7f69b11bb4e5d108d4c0652ae685030ab78be975
Started cookie plug from auth header plug. The cookie plug will read a cookie with a jwt token and extract the claims from it. The idea of this plug is to be configurable so that it can be used in web pages instead of the Auth header one which is mroe geared to json APIs. The configuration of the plug should allow for configurable responses instead of just returning a simple 401 error, e.g. have a custom redirect page to go to in case of a token validation error.
commit sha 679544846877dabae417a2da728fdb79e5ffab8a
Updated cowboy and plug versions
commit sha 35c4e6ddbd7547af981d22e30b5d7ed59b46d1f2
Merge pull request #22 from amezcua/feature/plug-verify-cookie Feature/plug verify cookie
commit sha 177257821934bdb745e7d22ce044dc526a2a2e4d
Removed Poison and added Jason instead.
commit sha fdb625b6f54afd2d49707b03012648396ee5d3bd
Run mix format on the complete project. Renamed some variables.
commit sha 560e1e6f19e719da7bcb860781f941588f2d6437
Merge pull request #23 from amezcua/develop Develop to master
commit sha ec5fb2d976f82fb306a79aee4ab8d5e2666bc223
Create elixir.yml Setup github actions to run tests on commit
commit sha e34e7f2e03236b2c82c6d2d5a854d2db2fccb4fc
Merge pull request #24 from amezcua/setup-gh-action Setup gh action
commit sha c064efe553a81974a3b7d90f3db09702473cdc13
Removed ci badge
commit sha 40fb2224474bec181d32969276f9298702f96de1
Merge pull request #25 from amezcua/develop Develop
push time in 2 months