- Update
package-lock.json
for a vulnerability
- Update dependencies for audit
- supports-color -> 7.0.0
- Fix missing require
- Remove the use of global
_
,path
,config
and thePromise
override- Switch to using relative path requires for everything
- Remove strange
Object.defineProperty
thing from handlers - Remove
WeakMap
"privates" pattern; I don't think I like it - Update all NPM dependencies to latest versions
- Fix all package vulnerabilities
- Update ESLint rules to a 5.15.x set
- Update branch name parsing to allow for branches with a
/
character in the name - Update all notifications to refer to the project by its
path_with_namespace
(Fixes #26) - Normalize GitLab webhook and API result property uses in several cases
- Change to present tense in changelog (!)
- Change all Bluebird coroutines to
async
/await
and default to native promises- Some Bluebird helper functions are still used
- Change failure during initialization to exit with
1
(Fixes #24)- Improve error reporting for various failures of GitLab API configuration
- Change how source/target branch links are built in merge request notifications (Fixes #23)
- Change the commit notification that accompanies a new branch notification to only include any initial, contiguous block of commits made by the user who pushed. If no commits are left after this filtering, no notification is made. (Fixes #28)
- Change uses of
util.inspect
to only print colors if supports-color says it should - Add local ngrok configuration and NPM script for local development
- Add more settings to the .editorconfig
- Add tag notification for moved tags
- Add commit summary of mentioned merge requests as
/!\d+/
(Fixes #25) - Add comprehensive JSDoc for config
- Add systemd unit script example
- Fixed issue with filename casing
I wrote this service only a few months after I had started writing Node.js for the first time. The more time went by, the more what I had written distressed me and became harder to maintain. I finally got some time to rewrite the whole thing, fixing some bugs and adding features in the process. While I'm not willing to send this release to the Ivory Tower, I'm still significantly happier with it.
Enjoy.
- Complete re-write of the whole service from the ground up using ES6 syntax, coroutines, and other delightful, modern things
- Now targeting Node.js 6.x LTS and NPM 5.x
- Added
package-lock.json
- Added
- Designed to work with the v4 GitLab API and other features from GitLab 9.x
- Added
.editorconfig
to enforce line endings and help with Markdown (more info) - Switched from JSHint to ESLint (4.2.0)
- Switched from underscore to lodash (4.17.x)
- Switched to debug for logging and dropped my special logger (Fixes #15)
- In supported terminals, logging output is colored for improved readability
- Updated the
package.json
with some more information and marked the package as private - Updated the
README.md
with new features, up-to-date screenshots and more details- Added a Limitations section that hopefully will cover the constraints of the project
- Added handling for
SIGINT
andSIGTERM
for more graceful exits - Where appropriate, Bluebird coroutines using generator functions are used to simplify asynchronous code
- All code is strict-mode ES6, taking advantage of fun language features where appropriate
- Significant modularization applied to split components into small working parts
- Issue and label caching system slimmed and improved
- Only watched labels are cached rather than all labels of qualifying issues
- All handler code is appropriately connected through uninterrupted promise chains
- Fixes some phantom, unhandled promise return issues and allows Bluebird warnings to remain on 🎉
- Tried using the
WeakMap
"privates" pattern with ES6 classes; I'm still on the fence on this one - Added an attempt at intellingent resolution of GitLab project ID from available information
- When
project_id
is present in webhook objects is inconsistent and this service needs it to look up the project configuration
- When
- Significantly cleaned up and improved HTTP server code
- Significant simplification and reduction in GitLab API calls due to GitLab increasing what is available in webhook messages
- Added support for merge request notifications
- Added support for wiki page notifications
- When a new-branch message is processed, if it includes any commits, those are also notified (Fixes #14)
- When a tag includes a message, it is notified as well
- Re-ordered first line of issue notification to match data-point order of other notification types
- Issue links no longer duplicate issue mentions found in the first line of commit messages
- Improved Markdown-to-Slack-formatting converter
- Headings that are already bolded will be left as such
- Simplification and tightening up of issue handling and label tracking
- Fixed an issue where label update notifications are sent after an issue is closed (Fixes #20)
- Updated dependencies
- bluebird -> 3.4.1
- request-promise -> 4.1.1 (added request as peer dependency)
- Updated bullet regex to make sure it doesn't match initial bold text (Fixes #18)
- Added unique filter for detected issue mentions (Fixes #17)
- Changed cacheIssueLabels to use map->each with concurrency (Fixes #10)
- Refactored initial loading promise chain error handling to actually work properly
- Fixed some issues with missing configuration not falling back to defaults caused by label tracking changes.
- Fixed image link formatting translation (Fixes #12).
- Reversed the commit list in commit notifications for a more useful display order (Fixes #6).
- Added milestone to issue notification header (Fixes #11).
- Updated README and screenshots for changes and to remove init-flavor-specific instructions.
- Updated bluebird to 3.0.x.
- Changed promisified request out for request-promise.
- Added feature information to the README file. See this file for more information on this version's changes.
- Added issue label tracking (Fixes #7).
- Significantly changed the structure of the config.json file.
- Fixed issue with user resolution of similarly-named users (Fixes #5).
- Removed remaining hard-coded URLs (Fixes #8).
- Added limited translation from Markdown to Slack-style formatting. Supported formatting:
- Bold --
**|__
->*
- Italic --
*|_
->_
- Links/Images --
![T](U)|[T](U)
-><U|T>
Since there's no way to send more than one image with an attachment, images are simply converted into links. - Bullets --
*| *
->�|\t�
Initial asterisks indented by one or more spaces are changed to be indented by a single tab. - Headings --
#... T
->*T*
Headings are converted to bolded text.
- Bold --
- Added .jshintrc and cleaned up JSHint issues.
- Updated request module.
- Migrated from q to bluebird.
- Broad cleanup and simplification of promises.
- Minor changes in preparation for partitioning code.
- Rephrased commit message to not imply ownership (Fixes #2).
- Added issue mention summary for commit messages (Fixes #1).
- The entire commit message is searched for issue mentions. If found, they are appended to the first line in the notification.
- Reworked request response/error processing (Fixes #4).
- Cleanup for initial push to GitHub.
- Added MIT license.
- Added TODO.
- Changed configuration variables from URI to URL.
- Added
gitlab_api_base_url
config setting.
- Updated q and request modules.
- Fixed bug where uncaught exceptions were not being logged.
- Added link/image markdown stripping from issue descriptions. Only the URL will show now.
- Re-enabled standard parsing mode for the attachment portion of issue notifications.
- Added
.done()
to promise chains where appropriate. - Updated parser for webhook message schema changes in GitLab 7.9.x.
- Added full support for tag/branch new/delete detection.
- Changed Slack messages to use just line feed (
\n
) rather than carriage return, line feed (\r\n
). - Changed issue notification to fill out the attachment's
title_link
instead of putting a manually-constructed link intitle
.
- Added assignee to issue notifications.
- Fixed bug that prevented notification when there was no GitLab user matching the commit email.
- Changed to single-quoted strings.
- Fixed bug that allowed issue modification notifications to be sent.
- Added CHANGELOG.
- Removed
--force
parameter from usage in init.d bash script. - Added support for new branch webhook messages.
- Changed issue handler to be aware of and report on the new
user
object that contains information about the user who performed the action that triggered the webhook.
- Added support for tag webhook messages.
- Added README.
- Changed configuration to be read from config.json.
- Several improvements to the init.d bash script.
- More resilient to crashes; it will determine if a PID file is stale and remove it.
- Removed
--force
parameter due to the above. - Cleaned up echo output.
- Added logging for uncaught exceptions.
- Changed issue message handling to ignore modifications.
- Removed third-party logging frameworks.
- Added more debug logging output.
- Added support for issue and commit webhook messages.
- Added rudimentary logging.