aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: d0c98ade740c1ebdc5f931e9807306951fbc1fa1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# slack2gitlab-emoji-sync

> syncs emojis from Slack to GitLab ❗

No Slack Enterprise Grid or API access required. The script uses Slack's
desktop app logs to extract custom emojis and sync them to GitLab.

## Requirements

- Perl or Docker
- Slack _native_ 🚎 ie the desktop app

## Usage

### Locally

1. Open Slack, click the emoji picker, switch to the custom page, and slowly
   scroll until you reach the end of the list.

1. Then run the sync script:

```sh
export SLACK_WORKSPACE="..."    # https://slack.com/help/articles/221769328-Locate-your-Slack-URL-or-ID
export GITLAB_TOKEN="..."       # https://gitlab.com/-/user_settings/personal_access_tokens
export GITLAB_GROUP_PATH="..."  # eg my_group
export GITLAB_URL="..."         # optional, defaults to https://gitlab.com
export SLACK_LOGS_DIR="..."     # optional, defaults to $HOME/Library/Application Support/Slack/logs/default
./sync <filter>                 # where filter is a regex to match emoji names in Slack, eg '.*' for all emojis
```

### Docker

1. Build the Docker image:

```sh
docker build -t slack2gitlab-emoji-sync .
```

2. Open Slack, click the emoji picker, and slowly scroll until you reach the
   end of the list.

3. Run the sync script:

    _Note: Adjust the Slack logs directory depending on your OS._

```sh
docker run --rm -it \
    -e SLACK_WORKSPACE="..." \
    -e GITLAB_TOKEN="..." \
    -e GITLAB_GROUP_PATH="..." \
    -e SLACK_LOGS_DIR="/slack-logs" \
    -v "$HOME/Library/Application Support/Slack/logs/default":/slack-logs \
    slack2gitlab-emoji-sync <filter>  # where filter is a regex to match emoji names in Slack, eg '.*' for all emojis
```

## Caveats

- If the same custom emoji is under different names in Slack, only the first
  one is synced.