GithubHelp home page GithubHelp logo

danger / danger-js Goto Github PK

View Code? Open in Web Editor NEW
5.2K 28.0 360.0 9.53 MB

⚠️ Stop saying "you forgot to …" in code review

Home Page: http://danger.systems/js/

License: MIT License

JavaScript 5.19% TypeScript 94.34% Ruby 0.04% Shell 0.32% Dockerfile 0.12%
code-review danger ci travis jenkins circle danger-js github-actions

danger-js's Introduction

Danger 🚫

License Gem CI

Formalize your Pull Request etiquette.


What is Danger?VisionHelping OutPlugin Development


What is Danger?

Danger runs during your CI process, and gives teams the chance to automate common code review chores.

This provides another logical step in your process, through this Danger can help lint your rote tasks in daily code review.

You can use Danger to codify your teams norms. Leaving humans to think about harder problems.

For example?

You can:

  • Enforce CHANGELOGs
  • Enforce links to Trello/JIRA in PR/MR bodies
  • Enforce using descriptive labels
  • Look out for common anti-patterns
  • Highlight interesting build artifacts
  • Give specific files extra focus

Danger provides the glue to let you build out the rules specific to your team's culture, offering useful metadata and a comprehensive plugin system to share common issues.

Getting Started

Alright. So, actually, you may be in the wrong place. From here on in, this README is going to be for people who are interested in working on and improving on Danger.

We keep all of the end-user documentation at https://danger.systems.

Some quick links: Guides Index, DSL Reference, Getting Started and What does Danger Do?.

I'm here to help out!

Brilliant. So, let's get you set up.

git clone https://github.com/danger/danger.git
cd danger
bundle install
bundle exec rake spec

This sets everything up and runs all of the tests.

Theory

Danger has a VISION.md file, which sums up the ideas around what Danger is. It is the lower bounds of what Danger means. Orta has written on handling and creating Danger on the Artsy blog, too.

Documentation

The code you write may end up in the public part of the website — the easiest way to tell is that it is vastly overdocumented. If you are working in a space that looks over-documented, please be extra considerate to add documentation. We expect the consumers of that documentation to be non-rubyists, thus you should avoid specific jargon and try to provide duplicate overlapping examples.

Testing

So far, we've not really figured out the right way to make tests for our CLI commands. When we have done so, they've ended up being brittle. So, ideally, try to move any logic that would go into a command into separate classes, and test those. We're okay with the command not having coverage, but ideally the classes that make up what it does will.

I'd strongly recommend using bundle exec guard to run your tests as you work. Any changes you make in the lib, or specs will have corresponding tests run instantly.

Debugging

Ruby is super dynamic. One of the best ways to debug Ruby code is by using pry. We include pry for developers: when you have a problem, copy these two lines just before your problem and follow the instructions from "I Want To Be A Danger Wizard."

require 'pry'
binding.pry

License, Contributor's Guidelines and Code of Conduct

We try to keep as much discussion as possible in GitHub issues, but also have a pretty inactive Slack --- if you'd like an invite, ping @Orta a DM on Twitter with your email. It's mostly interesting if you want to stay on top of Danger without all the emails from GitHub.

This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs.

This project subscribes to the Moya Contributors Guidelines which TLDR: means we give out push access easily and often.

Contributors subscribe to the Contributor Code of Conduct based on the Contributor Covenant version 1.3.0.

danger-js's People

Contributors

acecilia avatar alex3165 avatar azz avatar bigkraig avatar codestergit avatar cysp avatar deecewan avatar dependabot[bot] avatar drawks avatar dtinth avatar f-meloni avatar fbartho avatar glensc avatar greenkeeper[bot] avatar hellocore avatar ivankatliarchuk avatar kwonoj avatar lode avatar macklinu avatar mokagio avatar mxstbr avatar namuol avatar notjosh avatar nsfmc avatar orta avatar peril-staging[bot] avatar rogerluan avatar rohit-gohri avatar soyn avatar sunshinejr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

danger-js's Issues

Add debug/verbose mode

Via #52 (comment), it would be nice to log network requests/responses and other important information in a --debug or --verbose mode. When a bug report is submitted, having this information would be helpful in debugging via GitHub issues. :octocat:

An in-range update of ts-jest is breaking the build 🚨

Version 18.0.2 of ts-jest just got published.

Branch Build failing 🚨
Dependency ts-jest
Current Version 18.0.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As ts-jest is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • ci/circleci Your tests passed on CircleCI! Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Commits

The new version differs by 11 commits .

  • 19efd63 Merge pull request #100 from kulshekhar/kulshekhar-patch-1
  • d7665e7 Bump package version
  • 4ab2db9 Merge pull request #98 from emilniklas/master
  • 50495c4 Change from CompilerOptions numbers to TS enum constants
  • f910ca8 Add ability to resolve "extends" directive in tsconfig.json
  • 78c353c Merge pull request #96 from kulshekhar/kulshekhar-patch-1
  • 25aae66 Update AUTHORS
  • bb34bff Merge pull request #95 from fmatoss/patch-1
  • a9f3532 Add installation steps for React Native in README
  • 1e0f635 Merge pull request #94 from kulshekhar/kulshekhar-patch-1
  • 2f275a1 Update AUTHORS

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of jest is breaking the build 🚨

Version 19.0.1 of jest just got published.

Branch Build failing 🚨
Dependency jest
Current Version 19.0.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As jest is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build is in progress Details

  • continuous-integration/appveyor/branch AppVeyor build succeeded Details

  • ci/circleci Your tests failed on CircleCI Details

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Support transformations

@cpojer @nsfmc and I had a chat in reactiflux jest about how Jest handles both process separation and babel transformations. The work is done inside jest-runtime which should do basically every thing we'd need to handle both process separations and babel transformation of source.

nsfmc - Today at 4:01 PM
it basically should behave like the way jest does in that when danger ingests a dangerfile.js, it can do things like import {bar} from './foo'

cpojer - Today at 4:01 PM
lol

nsfmc - Today at 4:01 PM
so right now, just naively setting up that vm context with the NODE_PATH of the project, i can import stuff from node_modules which is NotBad™, but i figured i would examine how jest Made It Look So Easy

cpojer - Today at 4:02 PM
haha
so you are trying to sandbox stuff in a vm, is that it?

nsfmc - Today at 4:02 PM
i won't speak for @orta but i don't know that sandboxing for sake of security is strictly necessary

cpojer - Today at 4:03 PM
well, it's not really secure, you can almost always break out of it

nsfmc - Today at 4:03 PM
like, my impression is just that you want to run the script as if it were running from node
but you want to inject the context with danger-specific things

orta - Today at 4:03 PM
Yeah, I was planning on adding a true process separation for Danger + DangerRunner for security later down the line

nsfmc - Today at 4:04 PM
i started poking at the problem a little over a week ago and then life caught up with me

cpojer - Today at 4:05 PM
so the way you can do it, use jest-runtime + fork a process
with jest-runtime you get a custom require implementation as well, so it'll work really well and you don't have to worry about it

nsfmc - Today at 4:05 PM
oooooh

orta - Today at 4:06 PM
yeah, that is basically what we want I think

cpojer - Today at 4:06 PM
and it will work as long as Jest works

orta - Today at 4:06 PM
hah, and could be less deps for anyone using jest for their projects too

cpojer - Today at 4:07 PM
yea, it doesn't increase deps then :smiley:

nsfmc - Today at 4:08 PM
cool, that's neat, i am not married to working on that, but i may hit it up if i have some free time @orta

orta - Today at 4:09 PM
yeah, that's legit - I have no expectations

nsfmc - Today at 4:09 PM
rockin

orta - Today at 4:09 PM
my xmas plan was to build hosted danger, wherein this is a blocker on that

cpojer - Today at 4:09 PM
you may not even need jest-runtime, you can just run in a separate process in node
but if you need transforms, jest-runtime might work well

orta - Today at 4:09 PM
so I will have to do it by EOY sort of thing
yeah, I think transforms are important
and I'll definitely need to control what you can import

nsfmc - Today at 4:10 PM
does/will hosted-danger have the capacity to install arbitrary modules?  kinda curious about how that would work

orta - Today at 4:10 PM
it will have to IMO, standard library isn't enough
hah, we can take over for a sec :stuck_out_tongue:
I was debating whitelisting "safe" modules

nsfmc - Today at 4:11 PM
yeah, i mean, i can mostly see the runkit approach (no clue what they do) or something where you upload modules of your own along with a dangerfile

cpojer - Today at 4:11 PM
feel free to send PRs to jest-runtime to add certain options too
blacklisting modules should be easy
but as soon as you have access to fs and eval…

orta - Today at 4:12 PM
exactly, all over then :smiley:

An in-range update of babel-preset-es2015 is breaking the build 🚨

Version 6.22.0 of babel-preset-es2015 just got published.

Branch Build failing 🚨
Dependency babel-preset-es2015
Current Version 6.18.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As babel-preset-es2015 is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

jest-environment-node missing

Trying to add to artsy/elderfield#42


> [email protected] danger /home/travis/build/artsy/elderfield
> danger
module.js:327
    throw err;
    ^
Error: Cannot find module 'jest-environment-node'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/home/travis/build/artsy/elderfield/node_modules/danger/distribution/runner/DangerfileRunner.js:131:28)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)

"Danger" bot doesn't need to ask for strict mode for ES Modules

The relevant code in dangerfile:

// Ensure the use of 'use strict'; on all files
const noStrictFiles = newJsFiles.filter(filepath => {
  const content = fs.readFileSync(filepath).toString();
  return !includes(content, 'use strict');
});

Basically ES modules are strict mode by default, so the check should look for use of "import"/"export" to determine if flagging is required.

Investigate the usage of greenkeeper.io

(This is not meant as some kind of advertisement, just an idea)

Should greenkeeper (https://greenkeeper.io) help to keep the dependencies up-to-date? Right now, there aren't a lot of normal npm- dependencies, but it could help to keep them somehow on the latest version.

The bot sends a PR if there's a new version of a dependency and increments the version.

[DSL] Add support for pulling in all the commits for a PR

They're on a separate API call curl https://api.github.com/repos/artsy/emission/pulls/327/commits (see this branch )

I think we should just expose the full data like we do for github.pr - as this is github specific ( it's an API call, and would be different between github/gitlab ) then I think it probably needs to go on github so maybe github.commits seems fine?

I'd also be interested in discussion about having two versions: git.commits and github.commits the git version could just have the raw cross-API data ( message, parent tree, committer, author ) whereas the github version can contain the full metadata (comments etc)

This means you can write a rule like

const mergeCommits = danger.github.commits.select(commit => commit.commit.message.includes("merge")
if (mergeCommits.length > 0){ fail("I said no merges! sigh")

Running local PR tests doesn't work: Could not find a CI source for this run

~/source/alexa/alexa-app/dblock (danger-js)$ DANGER_GITHUB_API_TOKEN=... DANGER_TEST_REPO=matt-kruse/alexa-app DANGER_TEST_PR='90' npm run danger

> [email protected] danger /Users/dblock/source/alexa/alexa-app/dblock
> danger

Could not find a CI source for this run

npm ERR! Darwin 16.1.0
npm ERR! argv "/Users/dblock/.nvm/versions/node/v5.9.1/bin/node" "/Users/dblock/.nvm/versions/node/v5.9.1/bin/npm" "run" "danger"
npm ERR! node v5.9.1
npm ERR! npm  v3.7.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] danger: `danger`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] danger script 'danger'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the alexa-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     danger
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs alexa-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls alexa-app
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/dblock/source/alexa/alexa-app/dblock/npm-debug.log

An in-range update of tslint is breaking the build 🚨

Version 4.4.2 of tslint just got published.

Branch Build failing 🚨
Dependency tslint
Current Version 4.4.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As tslint is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • ci/circleci Your tests passed on CircleCI! Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Release Notes v4.4.2
  • [bugfix] whitespace rule caused false positive on EOF (#2131)
  • [bugfix] WebStorm fails because json formatter parameter has extra space (#2132)
Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of lint-staged is breaking the build 🚨

Version 3.2.7 of lint-staged just got published.

Branch Build failing 🚨
Dependency lint-staged
Current Version 3.2.6
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As lint-staged is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • ci/circleci Your tests passed on CircleCI! Details

  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Release Notes v3.2.7

<a name"3.2.7">

3.2.7 (2017-01-18)

Bug Fixes

Commits

The new version differs by 1 commits .

  • 41ae0cb fix: Generate absolute paths for all paths relative to git root (#121)

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of @types/jest is breaking the build 🚨

Version 16.0.5 of @types/jest just got published.

Branch Build failing 🚨
Dependency @types/jest
Current Version 16.0.4
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As @types/jest is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • ci/circleci Your tests passed on CircleCI! Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Opinion time: Test file naming

Hello there, in Peril I started adding an underscore before the name of a test file so that it shows lower in the file browser when doing an open quickly

screen shot 2017-01-31 at 9 53 10 am

Was thinking of making this change in Danger (and making a rule in the Dangerfile), anyone got opinions on better ideas or think as-is is 👍 ?

Run Danger against existing PRs

danger pr https://github.com/github/fetch/pull/413 should run the local Dangerfile.js against that PR. There is an implementation of this in Danger-rb.

Cannot find module 'jest-runtime'

I tried playing around with Danger, but I immediately hit a wall when trying to run it. Running on Windows, but I'm not sure if that has anything to do with it.

From my package.json:

  "scripts": {
    "danger": "danger"
  },
  "devDependencies": {
    "danger": "^0.7.0"
  }
> npm run danger

> [email protected] danger C:\foo
> danger

module.js:472
    throw err;
    ^

Error: Cannot find module 'jest-runtime'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\foo\node_modules\danger\distribution\runner\DangerfileRunner.js:80:20)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

Support async code in dangerfile

How does async code works in dangerfile? I gave quick try like

const fs = require("fs");
const os = require("os");
const summary = require("lcov-summary");

const file = fs.readFileSync("./coverage/lcov.info", "utf-8");

summary(file, (err, results) => {
  console.log('here');
  if (err) {
    warn("cannot retrieve code coverage");
  } else {
    console.log('there');
    const total = results
      .split(os.EOL)
      .filter((result) => result.match(/Total Coverage/))[0];
    message(total);
    warn(total);
    fail('fail');
  }
});

to write down simple message inside of callback. Callback's executed, but none of danger messages are written down. is this expected?

[DSL] Migrate in some generic helper functions

From jestjs/jest#2508

danger.github.linkFiles ->

// Takes a list of file paths, and converts it into clickable links
const linkableFiles = (paths: Array<string>): string => {
  const repoURL = danger.github.pr.head.repo.html_url;
  const ref = danger.github.pr.head.ref;
  const links = paths.map(path => {
    return createLink(`${repoURL}/blob/${ref}/${path}`, path);
  });
  return toSentence(links);
};

I think we probably also need util functions that are specific to universal Danger use-cases, mainly as the JS core lib is relatively weak:

danger.utils.sentence:

// ["1", "2", "3"] to "1, 2 and 3"
const toSentence = (array: Array<string>) : string => {
  if (array.length === 1) { return array[0]; }
  return array.slice(0, array.length - 1).join(', ') + ' and ' + array.pop();
};

danger.utils.href:

// ("/href/thing", "name") to "<a href="/href/thing">name</a>"
const createLink = (href: string, text: string): string => 
  `<a href='${href}'>${text}</a>`;

Run danger for failed PRs

Hi there,

This seems like a great project !

My use-case is to update failed PRs with a comment containing the text from the failed travis test that was run. This is so that I can automate asking users to take a look at the errors. And also one does not have to manually click the travis link to look what the error was.

How can I write a Dangerfile to achieve this ?

Document the public API

Right now when writing dangerfiles, I reference the TypeScript interfaces within the codebase. It would be helpful to bring the public API out into the open somehow.

The reason I bring this up is because I'm introducing Danger-js into some codebases at work and want people to get involved, but it becomes a bit more challenging when the API documentation is within the codebase and spans multiple files.

Would it make sense to maintain an index.d.ts file like Redux does that could also be used to generate a simple API documentation website or something like that?

I wanted to get a conversation started on this to see what some plans are down the line and what I can help with in the near future. 👍

Sidenote: how will danger-js be integrated into the Danger website reference when it hits 1.0? Is there a way we can consider documenting this codebase's API in a way that would more easily integrate into the official website down the road?

Run `danger pr` on a specific commit in a PR

Use case: often times, a PR is opened with lint errors or danger failures, and those errors are quickly fixed and pushed up to GitHub. I would like to run danger pr against a specific commit in a PR that has danger errors instead of the latest commit, which is fixed.

Running a command like:

danger pr https://github.com/danger/danger-js/pull/99/commits/7fe319d55ce4195ab9c8d439414028b134a63eca

could test my dangerfile.js changes against 7fe319d (assuming there were some danger failures in those code changes).

This would be an alternative to running:

export DANGER_FAKE_CI="YEP"
export DANGER_GITHUB_API_TOKEN='xxxxxxxxxx'  # a github api token
export DANGER_TEST_REPO='danger/danger-js'
git checkout branch-for-pr-99
DANGER_TEST_PR='99' npm run danger

which would leave a comment on the PR in GitHub.

Thoughts?

Add a Danger comment preview summary

Currently dangerfile support markdown via markdown() explicitly, while any other messages are using HTML template tables.

Case of HTML templates, notifications other than github page sometimes does not able to display full contents, by HTML tags takes most of texts and actual contents are being trimmed. For example, below is our current slack github hook notification -

image

can't see actual messages and have to open github page.

What about github template renders all contents via markdown by default, then introduce some configuration to select HTML based templates instead? In those cases, danger messages will behave

  1. if template's markdown
    message() === markdown(), all other messages will be rendered to markdown as well

  2. if template's html
    message() !== markdown(), user selectively choose between message & markdown to render contents. All other messages will be rendered into HTML table.

Investigate an easy way to execute commandline tools

I'll want something that takes flow & ESLint's JSON output and allows us to show errors for that. In ruby this is as simple as

`echo "OK"`

I don't know what that should look like in JS, perhaps we'll need something like?

danger.run("flow check --json", output: "json", (result: any) => {
  if (!result.passed) {
    fail("Boo! Better fix them types")
  }
})

Given the prevalence of JSON output, we can optionally handle the transition from text for users too

Document release process

@orta thanks for giving me NPM publish access (#116 (comment)). I wanted to open an issue to add documentation to the README about publishing this package.

My assumptions on how this would go:

  • Bump the version number. In the case of #116, I would run npm version patch to create an 0.10.1 bugfix version (which would also create a git tag). We could coordinate on minor and especially major version releases, but I would feel comfortable shipping 0.10.1 as a bugfix release.
  • Push that commit to GitHub
  • Run npm publish, which would build and publish danger to NPM

Could you please clarify? I'll turn this issue into a PR with documentation. Thanks! 😄 🚢

EDIT: should have checked before opening the issue, but 0.10.1 was shipped in 8775f48, which looks like we just:

  • Bump the version number manually
  • Modify the changelog to include the new version number
  • Commit that and push to GitHub
  • Run npm publish?

Natural language responses

I really like the style of the eslint bot, which responds like this:

screen shot 2017-01-21 at 08 26 11

I've noticed that with the "tabular" robotic style people sometimes ignore the bot. Making it respond in natural language would help with that, as we could make it seem like a normal user on the first glance.

Not sure what the API for this would look like, thought I'd kick off a discussion!

An in-range update of babel-plugin-transform-regenerator is breaking the build 🚨

Version 6.22.0 of babel-plugin-transform-regenerator just got published.

Branch Build failing 🚨
Dependency babel-plugin-transform-regenerator
Current Version 6.21.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As babel-plugin-transform-regenerator is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Port codebase to TypeScript

Via #71 (comment)

Is this something we'd like to move forward with? I personally enjoy writing TS. Haven't converted Flow to TS before, so I'm not sure if it's something we could do incrementally or maybe doing it all in one shot isn't a difficult task.

Any thoughts? /cc @orta @kwonoj

An in-range update of tslint is breaking the build 🚨

Version 4.4.0 of tslint just got published.

Branch Build failing 🚨
Dependency tslint
Current Version 4.3.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As tslint is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • ci/circleci CircleCI is running your tests Details

  • continuous-integration/appveyor/branch Waiting for AppVeyor build to complete Details

  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v4.4.0
  • [new-rule] arrow-return-shorthand (#1972)
  • [new-rule] no-unbound-method (#2089)
  • [new-rule] no-boolean-literal-compare (#2013)
  • [new-rule] no-unsafe-any (#2047)
  • [new-rule] no-unnecessary-qualifier (#2008)
  • [new-rule] no-unnecessary-initializer (#2106)
  • [new-rule] await-promise (#2102)
  • [new-rule] no-floating-promises (#1632)
  • [new-rule] strict-type-predicates (#2046)
  • [new-rule] no-misused-new (#1963)
  • [new-rule] prefer-method-signature (#2028)
  • [new-rule] prefer-function-over-method (#2037)
  • [new-rule-option] allow-fast-null-checks added to no-unused-expression (#1638)
  • [new-rule-option] comment-format-rule adds ignore-words and ignore-pattern options (#1757)
  • [new-rule-option] whitespace adds check-preblock option (#2002)
  • [new-rule-option] strict-boolean-expressions adds allow-null-union, allow-undefined-union, allow-string, and allow-number and (#2033)
  • [new-fixer] align (#2097)
  • [new-fixer] no-trailing-whitespace (#2060)
  • [bugfix] no-magic-numbers false positive on default parameter values (#2004)
  • [bugfix] no-empty-interface allow empty interface with 2 or more parents (#2070)
  • [bugfix] no-trailing-whitespace fixed for comments and EOF (#2060)
  • [bugfix] no-empty no longer fails for private or protected constructor (#1976)
  • [bugfix] tslint:disable/tslint-enable now handles multiple rules and fixes what code is enabled/disabled (#2061)
  • [bugfix] no-inferrable-types now validates property declarations (#2081)
  • [bugfix] unified-signatures false positive (#2016)
  • [bugfix] whitespace finds all whitespace errors in JsxExpressions and TemplateExpressions (#2036)
  • [bugfix] comment-format no more false positives in JsxText (#2036)
  • [enhancement] --test option now accepts glob (#2079)

Thanks to our contributors!

  • Alexander Rusakov
  • Andrii Dieiev
  • @andy-ms
  • Andy Hanson
  • Josh Goldberg
  • Kei Son
  • Klaus Meinhardt
  • Krati Ahuja
  • Martin Probst
  • Mohsen Azimi
  • Romke van der Meulen
  • cameron-mcateer
Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of typescript is breaking the build 🚨

Version 2.2.1 of typescript just got published.

Branch Build failing 🚨
Dependency typescript
Current Version 2.2.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As typescript is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/appveyor/branch AppVeyor build succeeded Details

  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • ci/circleci Your tests failed on CircleCI Details

Release Notes TypeScript 2.2

For release notes, check out the release announcement

For new features, check out the What's new in TypeScript 2.2.

For breaking changes, check out the Breaking changes in TypeScript 2.2 page.

For the complete list of fixed issues, check out the issues fixed in Typescript 2.2 RC and after Typescript 2.2 RC.

Download:

Special thanks to all contributors to this release:

  • Alexander Rusakov
  • Anatoly Ressin
  • Andreas Martin
  • Andrew Ochsner
  • Basarat Ali Syed
  • Dahan Gong
  • Dan Corder
  • David Sheldrick
  • @falsandtru
  • @flowmemo
  • Herrington Darkholme
  • Homa Wong
  • Joel Day
  • Kagami Sascha Rosylight
  • Klaus Meinhardt
  • Kārlis Gaņģis
  • Manish Giri
  • Masahiro Wakame
  • Raj Dosanjh
  • Slawomir Sadziak
  • Tingan Ho
  • Yuichi Nukiyama
Commits

The new version differs by 218 commits .

  • a29e8cf Update LKG
  • 1120971 Fix #14136: Make Object.create return any all the time
  • 6b5c448 Merge pull request #14131 from Microsoft/release-2.2_default_import_name
  • 125a8fa Merge pull request #14133 from aozgaa/MissingPropertyFix-2.2
  • b62b467 add periods
  • f2770a1 widen type, index signature, and add tests
  • a4cf12e cleanup
  • d9e0fff use getBaseTypeOfLiteralType
  • 150e2fb add tests
  • f133a67 wip testing
  • 2187e67 Get Widened Type
  • 533262c wip
  • ee13f31 Handle undefined import name
  • 510b384 Update LKG
  • 08fe20e [release-2.2] use separate process to probe if drive is safe to watch (#14098) (#14124)

There are 218 commits in total. See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Improve shipped flow typings

screen shot 2016-12-14 at 10 07 22 am

distribution/danger.js will need to include all of the exported functions / vars - so that the import statement autocompletes. These can just be empty functions.

CodeShip is not working correctly

Mostly leaving this here as a reminder for me to fix it when I get home:

yarn danger v0.20.3
$ danger 
OK, looks good Codeship on GitHub
Error:  TypeError: Cannot convert  or null to object
at Function.from (native)
at _toConsumableArray (dangerfile.js:1:303)
at Object.<anonymous> (dangerfile.js:10:101)
at Runtime._execModule (~/node_modules/jest-runtime/build/index.js:442:13)
at Runtime.requireModule (~/node_modules/jest-runtime/build/index.js:296:14)
at ~/node_modules/danger/distribution/runner/DangerfileRunner.js:110:25
at ensureCleanDangerfile (~/node_modules/danger/distribution/runner/DangerfileRunner.js:131:5)
at Object.<anonymous> (~/node_modules/danger/distribution/runner/DangerfileRunner.js:109:13)
at step (~/node_modules/danger/distribution/runner/DangerfileRunner.js:32:23)
at Object.next (~/node_modules/danger/distribution/runner/DangerfileRunner.js:13:53)
error Command failed with exit code 1.
not running danger

An in-range update of tslint is breaking the build 🚨

Version 4.5.0 of tslint just got published.

Branch Build failing 🚨
Dependency tslint
Current Version 4.4.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As tslint is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/appveyor/branch AppVeyor build succeeded Details

  • continuous-integration/travis-ci/push The Travis CI build failed Details

  • ci/circleci Your tests failed on CircleCI Details

Release Notes v4.5.0
  • [new-rule] no-import-side-effect (#2155)
  • [new-rule] match-default-export-name (#2117)
  • [new-rule] no-non-null-assertion (#2221)
  • [new-rule] ban-types (#2175)
  • [new-rule] no-duplicate-super (#2038)
  • [new-rule] newline-before-return (#2173)
  • [new-rule-option] completed-docs adds options for location, type, and privacy. Also adds interfaces, enums, types (#2095)
  • [new-rule-option] no-inferrable-types adds option ignore-properties (#2178)
  • [new-rule-option] typedef adds options object-destructuring and array-destructuring options (#2146)
  • [new-rule-option] member-ordering adds option alphabetize (#2101)
  • [new-rule-option] no-trailing-whitespace adds option ignore-jsdoc (#2177)
  • [new-rule-option] no-trailing-whitespace adds option ignore-comments option (#2153)
  • [new-fixer] no-inferrable-types automatically remove inferrable type annotations (#2178)
  • [new-fixer] no-any (#2165)
  • [new-fixer] noConsecutiveBlankLines (#2201)
  • [new-fixer] object-literal-shorthand (#2165)
  • [bugfix] no-switch-case-fallthrough handle break, throw, continue and return nested in block, if-else and switch (#2218)
  • [bugfix] no-switch-case-fallthrough allow empty case clauses before default clause (#2218)
  • [bugfix] no-mergeable-namespace ignore property types that can't be merged (#2105)
  • [bugfix] object-literal-key-quotes no need to quote a float if its .toString() is the same. (#2144)
  • [bugfix] no-consecutive-blank-lines Correctly apply fixes at EOF (#2239)
  • [bugfix]: Fixes installation issue with node 7.5 (#2212)
  • [bugfix]: quotemark now handles escaped chars (#2224)
  • [enhancement] Don't exit when a rule requires type checking but type checking is not enabled (#2188)
  • [enhancement] no-switch-case-fallthrough allow single line comment // falls through (#2218)
  • [enhancement] no-unbound-method allows property access and binary expressions (#2143)
Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Fix failing Appveyor builds

We've been noticing a lot of queued Appveyor builds that won't build when PRs are opened. All of the failing builds in the screenshot are due to Appveyor builds being cancelled when PRs are merged.

screen shot 2017-01-29 at 9 21 04 pm

Is this an issue with our Appveyor config, or is this something we need to communicate to Appveyor? Either way, here's an issue for checking it out.

An in-range update of debug is breaking the build 🚨

Version 2.6.2 of debug just got published.

Branch Build failing 🚨
Dependency debug
Current Version 2.6.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

As debug is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this 💪


Status Details
  • ci/circleci CircleCI is running your tests Details

  • continuous-integration/appveyor/branch AppVeyor build succeeded Details

  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 7 commits .

See the full diff.

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Support inline comments

Danger-rb's methods support the following parameters:

warn (message: String, sticky=false: Boolean, file=nil: String, line=nil: String)

These methods allow for adding a warning/error/messages inline on a specific file. What would be involved in porting that functionality to Danger-js?

The current type definition of warn in Danger-js is:

warn(message: MarkdownString): void

Could we just add more parameters? Would we accept an options object as a second parameter?

// perhaps this
warn(message: MarkdownString, file=undefined: String, line=undefined: String)

// or
warn(message: MarkdownString, options: { file: String, line: String })

Also, where would sticky: Boolean come into play - would that be a part of this work, or should that be a part of a separate issue?

An in-range update of babel-cli is breaking the build 🚨

Version 6.22.2 of babel-cli just got published.

Branch Build failing 🚨
Dependency babel-cli
Current Version 6.22.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As babel-cli is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪


Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details

  • ci/circleci Your tests passed on CircleCI! Details

  • continuous-integration/appveyor/branch AppVeyor build cancelled Details

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.