Add documentation.

This commit is contained in:
Douwe Maan 2015-08-19 13:58:14 -07:00
parent f3b57ce677
commit 34026c97b4
4 changed files with 112 additions and 13 deletions

View file

@ -95,6 +95,8 @@ production: &base
# repository_downloads_path: tmp/repositories
## Reply by email
# Allow users to comment on issues and merge requests by replying to notification emails.
# For documentation on how to set this up, see http://doc.gitlab.com/ce/reply_by_email/README.md
reply_by_email:
enabled: false
address: "replies+%{reply_key}@gitlab.example.com"

View file

@ -1,14 +1,25 @@
:mailboxes:
# -
# :host: "imap.gmail.com"
# :port: 993
# :ssl: true
# :email: "replies@gitlab.example.com"
# :password: "password"
# :name: "inbox"
# :delivery_method: sidekiq
# :delivery_options:
# :redis_url: redis://localhost:6379
# :namespace: resque:gitlab
# :queue: incoming_email
# :worker: EmailReceiverWorker
-
# # IMAP server host
# :host: "imap.gmail.com"
# # IMAP server port
# :port: 993
# # Whether the IMAP server uses SSL
# :ssl: true
# # Email account username. Usually the full email address.
# :email: "replies@gitlab.example.com"
# # Email account password
# :password: "password"
# # The name of the mailbox where incoming mail will end up. Usually "inbox".
# :name: "inbox"
# # Always "sidekiq".
# :delivery_method: sidekiq
# :delivery_options:
# # The URL to the Redis server used by Sidekiq. Should match the URL in config/resque.yml.
# :redis_url: redis://localhost:6379
# # Always "resque:gitlab".
# :namespace: resque:gitlab
# # Always "incoming_email".
# :queue: incoming_email
# # Always "EmailReceiverWorker"
# :worker: EmailReceiverWorker

View file

@ -29,6 +29,7 @@
- [System hooks](system_hooks/system_hooks.md) Notifications when users, projects and keys are changed.
- [Update](update/README.md) Update guides to upgrade your installation.
- [Welcome message](customization/welcome_message.md) Add a custom welcome message to the sign-in page.
- [Reply by email](reply_by_email/README.md) Allow users to comment on issues and merge requests by replying to notification emails.
## Contributor documentation

View file

@ -0,0 +1,85 @@
# Reply by email
GitLab can be set up to allow users to comment on issues and merge requests by replying to notification emails.
In order to do this, you need access to an IMAP-enabled email account, with a provider or server that supports [email sub-addressing](https://en.wikipedia.org/wiki/Email_address#Sub-addressing). Sub-addressing is a feature where any email to `user+some_arbitrary_tag@example.com` will end up in the mailbox for `user@example.com`, and is supported by providers such as Gmail, Yahoo! Mail, Outlook.com and iCloud, as well as the [Postfix](http://www.postfix.org/) mail server which you can run on-premises.
## Set it up
In this example, we'll use the Gmail address `gitlab-replies@gmail.com`. If you're actually using Gmail with Reply by email, make sure you have [IMAP access enabled](https://support.google.com/mail/troubleshooter/1668960?hl=en#ts=1665018) and [allow less secure apps to access the account](https://support.google.com/accounts/answer/6010255).
### Installations from source
1. Find the `reply_by_email` section in `config/gitlab.yml`, enable the feature and enter the email address including a placeholder for the `reply_key`:
```yaml
reply_by_email:
enabled: true
address: "gitlab-replies+%{reply_key}@gmail.com"
```
As mentioned, the part after `+` is ignored, and this will end up in the mailbox for `gitlab-replies@gmail.com`.
2. Find `config/mail_room.yml.example` and copy it to `config/mail_room.yml`:
```sh
cp config/mail_room.yml.example config/mail_room.yml
```
3. Uncomment the configuration options in `config/mail_room.yml` and fill in the details for your specific IMAP server and email account:
```yaml
:mailboxes:
-
# IMAP server host
:host: "imap.gmail.com"
# IMAP server port
:port: 993
# Whether the IMAP server uses SSL
:ssl: true
# Email account username. Usually the full email address.
:email: "gitlab-replies@gmail.com"
# Email account password
:password: "[REDACTED]"
# The name of the mailbox where incoming mail will end up. Usually "inbox".
:name: "inbox"
# Always "sidekiq".
:delivery_method: sidekiq
:delivery_options:
# The URL to the Redis server used by Sidekiq. Should match the URL in config/resque.yml.
:redis_url: redis://localhost:6379
# Always "resque:gitlab".
:namespace: resque:gitlab
# Always "incoming_email".
:queue: incoming_email
# Always "EmailReceiverWorker"
:worker: EmailReceiverWorker
```
4. Find `lib/support/init.d/gitlab.default.example` and copy it to `/etc/default/gitlab`:
```sh
sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
```
5. Edit `/etc/default/gitlab` to enable `mail_room`:
```sh
mail_room_enabled=true
```
6. Restart GitLab
```sh
sudo service gitlab restart
```
8. Reply by email should now be working.
Note: If you're running GitLab in development mode and using `foreman`, make sure to also uncomment the `mail_room` line in your `Procfile`.
### Omnibus package installations
TODO