npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mr-issue

v0.1.0

Published

Gitlab webhook listener to update Redmine Issues based on Merge Request activity

Downloads

2

Readme

mr-issue

What's all this churning and bubbling? You call this is a radar screen?

No sir, we call it "Mr. Issue".

Redmine issues and version tracking are far superior to Gitlab; however, Gitlab git integration and Merge Requests for code reviews are far superior to Redmine. But, keeping issues and Merge Requests in sync is a nightmare. Until now...

Introducing mr-issue, a Gitlab webhook listener that is able to find issues referenced in the body of Merge Requests and then update the issue in Redmine. mr-issue can update the corresponding Redmine issue's attributes.

Tutorial

  • Configure mr-issue
    • mr-issue has a single configuration file that is straightforward. There is an example config at conf/app-config.exmple.js.
  • Install dependencies
    • You'll need NodeJS. I've only tested on Node 0.10, but other versions should work. If you're new to NodeJS or using Ubuntu, I've found nvm invaluable.
nvm install 0.10
nvm use 0.10
npm install
  • Launch mr-issue
    • node app.js
  • Reference issue in Merge Requests body.
  • If a Merge Request will close an issue, simply write closes #<issue num>. Closing issues #666? Write closes #666 somewhere in the Merge Request body. Yes, it's that easy.
  • Multiple issues can be referenced in a MR: closes #123 closes #124 closes #456
  • ????
  • Profit!

Available Actions

  • Assigned To: assign the issue to a user by either specifying a user ID or a user login name.
  • Status: set the issue status to either a status ID or a status name.
  • Merge Request Field: it's helpful to bind an issue to the Merge Request link. So, add a new issue custom field named "Merge Request" and mr-issue will automatically update the issue field to the URL of the Merge Request.
  • Comment: post a comment to the issue.

Merge Request Events

mr-issue can update the issue differently depending on the Merge Request webhook that is fired, whether the MR was just opened or merged. Typical issue workflow is:

  • MR Opened: assign the issue to the quality assurance or testing lead, post a comment ("Merge Request submitted") and change the issue status Feedback.
  • MR Merged: post a comment ("Merge Request accepted") and set the issue status to Closed.

Configuration

The conf/app-config.js file is used to configure mr-issue. The example configuration file conf/app-config.example.js has several examples. The highlights are:

  • Per-project configuration for both Redmine and Gitlab.
  • Global configuration for all projects.
  • Impersonate the issue update as the user who created and/or merged the Merge Request.

License

mr-issue is licensed under the BSD ISC license. Do just about anything, but please submit bug reports and/or pull requests on Github.