* Upgrade discord.js to 12.2.0
* Use cache accessors in Discord client
* Replace sendMessage with send
* Use avatarURL method
* Update test stubs for discord.js 12
* Disconnect clients at end of tests
* Fix disabling webhook mentions when bot lacks permissions
* Upgrade irc-upd to 0.11.0
* Bump lodash to ^4.17.19 in package.json
* Upgrade simple-markdown to ^0.7.2
* Upgrade strip-json-comments to ^3.1.1
* Upgrade winston to ^3.3.3
* Upgrade commander to ^5.1.0
* Upgrade commander to ^6.0.0
* Create NodeJS Action
Looks like Travis is a bit broken, and I don't have admin access to the repo over there. For now, as I have admin access to this repo here, let's try out GitHub Actions to replace the old CI.
* Create save-coverage script for Coveralls
* Delete .travis.yml
* Add Docker Hub workflow
* Remove docker-deploy.sh
* Consistently use this.bot in tests
Some tests were subtly testing broken behavior,
as this.addUser was not correctly adding a user
to the given bot's guild.
* Group up webhook tests in contexts
* Fix webhooks for users with no avatars
Fixes#529.
* Fix avatars not displaying via webhooks
Avatars that were 2048x2048 would break webhooks displaying avatars, defaulting to 128x128 fixes that.
* travis-ci fix
* Fix null-checks
* Fix travis-ci tests for avatar size
* Run npx babel-upgrade, removing unnecessary stage0 plugins
* Move from babel-preset-node6 to @babel/preset-env
* Update nyc to work with updated babel
* Revert "Revert "Merge branch 'docker-test'""
This reverts commit 2b4bcb1136.
* Use node 12 for docker image
* More thoroughly limit deploy to master pushes
* Use discordirc/discord-irc repo for Docker
* Tag git commit image for Docker hub
* Add .dockerignore
* Add ircPreventMention
(This adds a zero-width character to nicknames to prevent IRC-side pings.)
Original commits:
- Add ircPreventMention code
- Document ircPreventMention
- Make ircNickColor wrap the displayUsername
- Fix build errors
- Default ircPreventMention to false
* Correct that ircPreventMention is off by default
* Test ircPreventMention
Only tests turning it on; extant tests ensure it's off by default.
Adds a format option for a default avatar URL to send if the user isn't found on IRC. Takes the user's nickname as an argument so it can be passed to a web service.
Fixes#383.
Somehow, upgrading either mocha or nyc (?) appears to make
the current test command skip test/bot-events.test.js.
I do not know why, but quoting it (so mocha globs it
instead) seems to fix this.
(This happened between 2.7.0 and 2.7.1.)
Discord already has permissions for whether the bot can ping everyone,
and the webhook send method has a `disableEveryone` option, so let's
defer to the inbuilt Discord permission for this.
When permissions can't be found (shouldn't happen), defaults to
disabling the pings.
Fixes#494
The deploy section of the deploy phase used to skip anyway,
but it still ran a worker to get to the point where it decided
to skip. This stops it earlier.
The Dockerfile references the code locally, so this move fixes
its `COPY . /bot` line.
docker-compose is primarily for combining container services,
and doesn't add much here, so we're removing it for now.
The README has been updated to explain how to run discord-irc
with a specific configuration file through Docker (locally
and from Docker Hub).
* use non-deprecated form of `Array.find`
The older form emitted a deprecation warning in nodejs, cluttering up the log.
* refactor to make lines shorter
required by code style guidelines
(Fixes #384.)
On the Discord side of things, animated emoji get a prefixed 'a' to the
identifier string, so that instead of the normal emoji string:
`<:test:330064465703862273>`
you instead get:
`<a:test:330064465703862273>`
This commit fixes parseText to also process the animated form into `:test:`.
irc-colors changed to use \x1d instead of \x16 for v1.4.1, which breaks
this test (erroneously); fix it by expecting the corrected character.
Motivation behind upstream change:
https://github.com/fent/irc-colors.js/issues/13
Some dependencies have changed version, and the package-lock.json file
hasn't been updated to reflect that. This rebuilds it to make it more in
line with the package.json file.
Node 8 has been out for a while, and should be supported as it seems
likely a lot of the userbase will be using it. Test it in Travis to make
sure there are no idiosyncracies between the versions.
From Travis logs:
As of npm@5, `prepublish` scripts will run only for `npm publish`.
(In npm@4 and previous versions, it also runs for `npm install`.)
See the deprecation note in `npm help scripts` for more information.
This was also causing discord-irc to fail to transpile when installed
using npm from source.
This modifies the script to run on the `prepare` hook, so it should
transpile when installed directly from source too.
* Add a note about how to install optional charset converter dependencies
Fixes part of #252 and #237.
* Default ircOptions.encoding to utf-8 if node-irc can convert encodings
Also warn when started if the IRC library cannot convert between
encodings, in case users rely on this behavior.
* Improve config check and warning message around encodings
When the client reconnects to IRC after a timeout, the bot nickname
is often still in use (the client receives an `err_nicknameinuse`
message), and the bot is given an alternate nickname by the server.
In this case, it is almost always desirable to try to change the
nickname back to the configured nickname, so we enable `autoRenick`
by default.
NOTE: `autoRenick` can be disabled by specifying `autoRenick: false`
in `ircOptions` in the discord-irc configuration file, or the
behavior can be modified with the `renickCount` and `renickDelay`
options. See the node-irc documentation for more details.
* I think this should work?
* Added test for multi-character command prefixes
(accidentally pushed to wrong branch there but let's hope no one notices)
* Fixed bot test. That looks better.
Windows doesn't support the inline evaluation `$(find..)` and also
doesn't support the find command. `nyc` can handle this itself, as can
it appears `_mocha` (i.e. this command works both without and with the
`--` given just before the globbing), so it doesn't seem the find
command is necessary.
This allows `npm test` to function on Windows using PowerShell. For some
reason the coverage report is missing data, but it misses data without
this change also.
When an IRC user uses a custom emoji reference (e.g.
:testemoji:), it should be translated into the actual
emoji for Discord users, instead of appearing in plain
text.
This also adds tests to ensure other emoji-like phrases
do not get converted or cause the bot to crash.
The irc module does not appear to be very actively maintained, and has
quite a few issues causing issues in this project itself.
This fork, maintained by me, has a few fixes to some major issues
already.
Changelogs:
- v0.6.0 - https://github.com/Throne3d/node-irc/releases/tag/v0.6.0
- v0.6.1 - https://github.com/Throne3d/node-irc/releases/tag/v0.6.1
Should fix#199, #200, as well as some issues not previously noted
(crash if unbanning a user who is not banned, crash in circumstances
with a poor internet connection).
It may also allow us to remove our workaround for the quit and nick
events having all channels in the associated array.
As the irc library can change the nick of the bot when
connecting (e.g. because the nick is currently taken, by
some other user), `this.nickname` may not correspond to the
current nickname and so when receiving a join event upon
joining a channel (prior to the names event), the current
guard against this can pass despite it being an event for
the bot.
This modifies it to check against ircClient.nick where
relevant, and also modifies the test stubs to allow adding
the nickname to the config and exposing this functionality
in tests.
To see the failure before this patch, enable
`ircStatusNotices` and run two copies of the bot; the
second should crash upon joining a channel, as it will have
a modified nickname (e.g. 'testbot1').
Attempts to fix#216's crash but is unlikely to fix the
underlying issue (that somehow the client isn't saving
a list of nicks in a channel, either because the server
isn't sending a names event, or the node-irc library is
processing it poorly, or otherwise).
Fixes#217.
- Reorganize the comments describing how to format the custom
formatting options
- Make 'author' and 'nickname' synonyms in the custom formatting
- Add a 'side' parameter for commandPrelude (takes 'Discord' or
'IRC', depending on whether the message was from Discord or IRC)
- Add debug messages upon sending command messages
- Add similar functionality for command messages sent in IRC to
Discord, as from Discord to IRC
- Add tests for the above and custom formatting of it
Should fix#216, by lowercasing the channel name when
it receives each event. This also adds debug messages
to make it easier to see when the bot is actually
receiving (and presumably processing) these events.
Keep a list of users in each channel, using the names event
in addition to the join/part events, so as to prevent spamming
unnecessary channels when the quit event is raised with all
channels from a server.
Fixes#213.
- Do not discard reason from part messages
- Output to each channel in the quit messages
- Add tests for join/part/quit events
- Add test that sendSpecialToDiscord doesn't send messages
to outside the channel mapping
If a channel is referenced in Discord, e.g. <#1234>, and the
referenced channel ID does not exist, the bot will presently
crash. This fixes it to display '#deleted-channel', as it
does on the Discord side of the mirror.
* resolvesreactiflux/discord-irc#63 nicknames
Use per server nickname instead of username.
* Fix whitespace
* Make server-nicknames pass testing
* Make server-nicknames pass testing (reverted from commit 89da7e09d499e3012416d489bc0a27149f7896c5)
* Stub server.detailsOfUser(username) for tests
* WIP - fix nickname mentions
Not tested yet since I'm not on my development machine
* createServerStub as arrow function
* User mentions from Discord to IRC should also use nicknames
* Allow mentions using server nicknames from IRC
* Yet another mention symbol.
I should consider using a regex at this point... but hotfix
* Correct merge mistakes
* FOSS-1 make nickname mentions work with new API version
* FOSS-1 mention by server-nickname fixed & tests fixed
* FOSS-1 add a test for server nickname mentions
* Test nickname != username when trying to mention by username
Test to make sure you can't mention someone by username if their nickname differs
* Refactor nickname mention code for readability
* Convert discordemail to token
* Update fixtures with new format
* Update README with instructions for making a discord bot.
* Update the stub to loginWithToken
Now I know why they are there.
* Remove the npm run build line
Its no longer needed since npm install calls npm build
* Forgot a qoute in the sample config -_-
* I didn't change all fixtures to use loginWithToken
This project adheres to [Semantic Versioning](http://semver.org/).
## [2.9.0] - 2020-10-03
This release comes with a (relatively large) change to use discord.js v12!
There were a lot of breaking changes in the upstream library, including removal of support for Node <12, which prompted a 2.9.0-alpha release before this main version.
Everything seemed to go fine, which is why you're now receiving this latest update!
### Added
* IRC nick colors are now customizable in the config (thanks to [KWeaver87](https://github.com/reactiflux/discord-irc/pull/561))
### Changed
* Upgrade discord.js to 12.3.1 (the pre-release came with 12.2.0) - this changes a lot of how the bot works behind the scenes, and prepares us for upcoming Discord API changes - [#555](https://github.com/reactiflux/discord-irc/pull/555), [#564](https://github.com/reactiflux/discord-irc/pull/564)
* Add support for Node 14 ([#549](https://github.com/reactiflux/discord-irc/pull/549)); drop support for Node 6, 8 and 10 ([#550](https://github.com/reactiflux/discord-irc/pull/550))
### Fixed
* A bunch of vulnerabilities listed in `npm audit` are now gone - [#544](https://github.com/reactiflux/discord-irc/pull/544), [#548](https://github.com/reactiflux/discord-irc/pull/548), [#551](https://github.com/reactiflux/discord-irc/pull/551), [#552](https://github.com/reactiflux/discord-irc/pull/552), [#553](https://github.com/reactiflux/discord-irc/pull/553), [#562](https://github.com/reactiflux/discord-irc/pull/562)
* Log messages now typically take up one line again (fixing a relatively long-standing bug, at this point – oops!) - [#554](https://github.com/reactiflux/discord-irc/pull/554)
* Mentioning the same user more than once in a single message is now fixed (thanks to [Qyriad](https://github.com/reactiflux/discord-irc/pull/541))
* Our Discord client now uses a retry limit of 3 (rather than 1) on internal server errors (hopefully fixing [#461](https://github.com/reactiflux/discord-irc/issues/461)) - [#565](https://github.com/reactiflux/discord-irc/pull/565)
## [2.8.1] - 2020-03-16
### Fixed
* Large avatars failed to display when bridging through webhooks - (thanks to [Miosame](https://github.com/reactiflux/discord-irc/pull/511), follow up in [#530](https://github.com/reactiflux/discord-irc/pull/530))
* Update acorn to 7.1.1 - [#534](https://github.com/reactiflux/discord-irc/pull/534)
* Remove code coverage instrumentation from `dist/` files - [#536](https://github.com/reactiflux/discord-irc/pull/536)
## [2.8.0] - 2019-12-14
### Added
*`format.webhookAvatarURL`, to customize the unrecognized user webhook avatar (thanks to [Geo1088](https://github.com/reactiflux/discord-irc/pull/419))
*`parallelPingFix`, disabled by default, to prevent users of both Discord and IRC getting pings whenever their messages are mirrored to IRC (thanks to [qaisjp](https://github.com/reactiflux/discord-irc/pull/243) originally, follow up in [#502](https://github.com/reactiflux/discord-irc/pull/502) and [#520](https://github.com/reactiflux/discord-irc/pull/520))
*`ignoreUsers.discordIds`, to ignore specific Discord users through the bridge by ID instead of name (thanks to [nsavch](https://github.com/reactiflux/discord-irc/pull/508))
* A basic Docker image, found at [discordirc/discord-irc](https://hub.docker.com/r/discordirc/discord-irc)! This may not be often updated with the release tags we publish on GitHub, but it should contain a `latest` tag in addition to whichever Git hash is available on main (thanks to [gdude2002](https://github.com/reactiflux/discord-irc/pull/421), follow up in [#498](https://github.com/reactiflux/discord-irc/pull/498))
### Changed
* Add support for Node 13, drop testing for Node 6 - [#521](https://github.com/reactiflux/discord-irc/pull/521)
* Support multi-character command prefixes - [#301](https://github.com/reactiflux/discord-irc/pull/301)
* Enable auto-renicking by default, so the bot tries to get the target nickname after it fails - [#302](https://github.com/reactiflux/discord-irc/pull/302)
* Add the ability to ignore IRC/Discord users by nickname - [#322](https://github.com/reactiflux/discord-irc/pull/322)
### Fixed
* Improve IRC → Discord mentions around non-word characters and nickname prefix matches - [#273](https://github.com/reactiflux/discord-irc/pull/273)
* Default to UTF-8 encoding when bridging messages to prevent character corruption - [#315](https://github.com/reactiflux/discord-irc/pull/315)
* Fix a crash when using the bot in a group DM - [#316](https://github.com/reactiflux/discord-irc/pull/316)
* Use a `prepare` script for transpiling instead of `prepublish`, fixing `npm` installation direct from the GitHub repository - [#323](https://github.com/reactiflux/discord-irc/pull/323)
* Update dependencies:
- discord.js to 11.2.1
- sinon to ^4.0.1
- irc-upd to 0.8.0 - [#313](https://github.com/reactiflux/discord-irc/pull/313)
- simple-markdown to ^0.3.1
- coveralls to ^3.0.0
- mocha to ^4.0.0
- winston to 2.4.0
### Changed
* Add a link to the IRC spec in the README - [#307](https://github.com/reactiflux/discord-irc/pull/307)
* Drop testing for Node 7, add testing for Node 8 - [#329](https://github.com/reactiflux/discord-irc/pull/329)
## [2.4.2] - 2017-08-21
### Fixed
* Tests: Use globbing instead of `find` so tests work on Windows - [#279](https://github.com/reactiflux/discord-irc/pull/279)
### Changed
* Update dependency irc-upd to [0.7.0](https://github.com/Throne3d/node-irc/releases/tag/v0.7.0) - [#284](https://github.com/reactiflux/discord-irc/pull/284)
* Tests: Use Discord objects to simplify code - [#272](https://github.com/reactiflux/discord-irc/pull/272)
## [2.4.1] - 2017-07-16
### Added
* Falsy command preludes are no longer sent (previously would choose default prelude) - [#260](https://github.com/reactiflux/discord-irc/pull/260)
### Fixed
* Update link to IRC library in README so it points to the new irc-upd library - [#264](https://github.com/reactiflux/discord-irc/pull/264)
* Update dependency commander to 2.11.0 - [#262](https://github.com/reactiflux/discord-irc/pull/262)
* Fix deprecation warning on `TextChannel#sendMessage` - [#267](https://github.com/reactiflux/discord-irc/pull/267)
* Fix reconnection by updating dependency irc-upd to 0.6.2 - [#270](https://github.com/reactiflux/discord-irc/pull/270)
## [2.4.0] - 2017-07-01
This project now uses [irc-upd](https://github.com/Throne3d/node-irc) as a dependency, instead of the old [irc](https://github.com/martynsmith/node-irc) package – this fork should be better maintained and will solve some bugs, detailed below.
### Added
* Allow commandCharacters to work for messages sent to Discord - [#221](https://github.com/reactiflux/discord-irc/pull/221).
* Send nick changes from IRC to Discord with `ircStatusNotices` - [#235](https://github.com/reactiflux/discord-irc/pull/235), [#241](https://github.com/reactiflux/discord-irc/pull/241).
* Translate custom emoji references from IRC to Discord - [#256](https://github.com/reactiflux/discord-irc/pull/256).
### Fixed
* Use `ircClient.nick` instead of `nickname` when checking if the `ircStatusNotices` event is for the bot, to prevent a potential crash - [#257](https://github.com/reactiflux/discord-irc/pull/257).
* Use the updated `irc-upd` library instead of `irc`, causing IRC messages to now be split by byte instead of character (fixing [#199](https://github.com/reactiflux/discord-irc/issues/199)) and adding support for certain Unicode characters in nicknames (fixing [#200](https://github.com/reactiflux/discord-irc/issues/200)) - [#258](https://github.com/reactiflux/discord-irc/pull/258).
* Update dependencies:
- discord.js to 11.1.0
- check-env to 1.3.0
- chai to ^4.0.2
- nyc to ^11.0.3
- commander to 2.10.0
- eslint to ^4.1.1
## [2.3.3] - 2017-04-29
### Fixed
* Warn if a part/quit is received and no channelUsers is set -
* Fix IRC quit messages sending to all channels by tracking users - [#214](https://github.com/reactiflux/discord-irc/pull/214#pullrequestreview-31156291).
## [2.3.0] - 2017-04-03
A huge thank you to [@Throne3d](https://github.com/Throne3d),
> Connects [Discord](https://discordapp.com/) and IRC channels by sending messages back and forth.
A mostly feature complete port of [slack-irc](https://github.com/ekmartin/slack-irc).
> Connects [Discord](https://discord.com/) and [IRC](https://www.ietf.org/rfc/rfc1459.txt) channels by sending messages back and forth.
## Example

## Installation and usage
Either by installing through npm:
**Note**: discord-irc requires Node.js version 12 or newer, as it depends on [discord.js](https://github.com/hydrabolt/discord.js).
Future versions may require newer Node.js versions, though we should support active releases.
Before you can run discord-irc you need to create a configuration file by
following the instructions [here](https://github.com/reactiflux/discord-irc#configuration).
After you've done that you can replace `/path/to/config.json` in the commands
below with the path to your newly created configuration file - or just `config.json` if it's
in the same directory as the one you're starting the bot from.
When you've done that you can install and start the bot either through npm:
```bash
$ npm install -g discord-irc
$ discord-irc --config /path/to/config.json
@@ -19,7 +27,7 @@ or by cloning the repository:
```bash
In the repository folder:
$ npm install
$ npm run build# Transpile ES6 to ES5 using Babel
$ npm run build
$ npm start -- --config /path/to/config.json # Note the extra double dash
```
@@ -30,8 +38,26 @@ import config from './config.json';
discordIRC(config);
```
## Docker
As an alternative to running discord-irc directly on your machine, we provide a [Docker container image](https://hub.docker.com/r/discordirc/discord-irc).
After creating a configuration file, you can fetch the image from Docker Hub and run it with the following command:
```bash
docker run -v /path/to/config:/config/config.json discordirc/discord-irc
```
If you've checked out the repository already, you can build the Docker image locally and run that instead:
```bash
docker build -t discord-irc .
docker run -v /path/to/config:/config/config.json discord-irc
```
Note that the path to the config file on the host (`/path/to/config`) _must_ be a valid absolute path to a config file.
Otherwise, you may get the error "illegal operation on a directory".
## Configuration
Create a discord user and join the server you want to connect to IRC.
First you need to create a Discord bot user, which you can do by following the instructions [here](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token).
### Example configuration
```js
@@ -40,8 +66,7 @@ Create a discord user and join the server you want to connect to IRC.
{
"nickname":"test2",
"server":"irc.testbot.org",
"discordEmail":"user@mail.com",
"discordPassword":"letmein123",
"discordToken":"botwantsin123",
"channelMapping":{
"#other-discord":"#new-irc-channel"
}
@@ -51,28 +76,82 @@ Create a discord user and join the server you want to connect to IRC.
{
"nickname":"test",
"server":"irc.bottest.org",
"discordEmail":"user@mail.com",
"discordPassword":"letmein123",
"discordToken":"botwantsin123",
"autoSendCommands":[// Commands that will be sent on connect
["PRIVMSG","NickServ","IDENTIFY password"],
["MODE","test","+x"],
["AUTH","test","password"]
],
"channelMapping":{// Maps each Discord-channel to an IRC-channel, used to direct messages to the correct place
"#discord":"#irc channel-password"// Add channel keys after the channel name
"#discord":"#irc channel-password",// Add channel keys after the channel name
"1234567890":"#channel"// Use a discord channel ID instead of its name (so you can rename it or to disambiguate)
},
"ircOptions":{// Optional node-irc options
"floodProtection":false,// On by default
"floodProtectionDelay":1000// 500 by default
"floodProtectionDelay":1000,// 500 by default
"port":"6697",// 6697 by default
"secure":true,// enable SSL, false by default
"sasl":true,// false by default
"username":"test",// nodeirc by default
"password":"p455w0rd"// empty by default
},
"format":{// Optional custom formatting options
// Patterns, represented by {$patternName}, are replaced when sending messages
"commandPrelude":"Command sent by {$nickname}",// Message sent before a command
"ircText":"<{$displayUsername}> {$text}",// When sending a message to IRC
"urlAttachment":"<{$displayUsername}> {$attachmentURL}",// When sending a Discord attachment to IRC
"discord":"**<{$author}>** {$withMentions}",// When sending a message to Discord
// Other patterns that can be used:
// {$discordChannel} (e.g. #general)
// {$ircChannel} (e.g. #irc)
"webhookAvatarURL":"https://robohash.org/{$nickname}"// Default avatar to use for webhook messages
},
"ircNickColor":false,// Gives usernames a color in IRC for better readability (on by default)
"ircNickColors":['light_blue','dark_blue','light_red','dark_red','light_green','dark_green','magenta','light_magenta','orange','yellow','cyan','light_cyan'],// Which irc-upd colors to use
"parallelPingFix":true,// Prevents users of both IRC and Discord from being mentioned in IRC when they speak in Discord (off by default)
// Makes the bot hide the username prefix for messages that start
// with one of these characters (commands):
"commandCharacters":["!","."]
"commandCharacters":["!","."],
"ircStatusNotices":true,// Enables notifications in Discord when people join/part in the relevant IRC channel
"ignoreUsers":{
"irc":["irc_nick1","irc_nick2"],// Ignore specified IRC nicks and do not send their messages to Discord.
"discord":["discord_nick1","discord_nick2"],// Ignore specified Discord nicks and do not send their messages to IRC.
"discordIds":["198528216523210752"]// Ignore specified Discord ids and do not send their messages to IRC.
The `ircOptions` object is passed directly to node-irc ([available options](http://node-irc.readthedocs.org/en/latest/API.html#irc.Client)).
The `ircOptions` object is passed directly to irc-upd ([available options](https://node-irc-upd.readthedocs.io/en/latest/API.html#irc.Client)).
To retrieve a discord channel ID, write `\#channel` on the relevant server – it should produce something of the form `<#1234567890>`, which you can then use in the `channelMapping` config.
### Webhooks
Webhooks lets you override nicknames and avatars, so messages coming from IRC
If you encounter trouble with some characters being corrupted from some clients (particularly umlauted characters, such as `ä` or `ö`), try installing the optional dependencies `iconv` and `node-icu-charset-detector`.
The bot will produce a warning when started if the IRC library is unable to convert between encodings.
Further information can be found in [the installation section of irc-upd](https://github.com/Throne3d/node-irc#character-set-detection).
## Tests
Run the tests with:
@@ -81,24 +160,9 @@ $ npm test
```
## Style Guide
discord-irc uses a slightly modified version of the
discord-irc follows the [Airbnb Style Guide](https://github.com/airbnb/javascript).
[ESLint](http://eslint.org/) is used to make sure this is followed correctly, which can be run with:
```bash
$ npm run lint
```
The deviations from the Airbnb Style Guide can be seen in the [.eslintrc](.eslintrc) file.
## License
(The MIT License)
Copyright (c) 2015 Martin Ek <mail@ekmartin.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.