Coder Social home page Coder Social logo

yegor256 / wring Goto Github PK

View Code? Open in Web Editor NEW
29.0 7.0 4.0 653 KB

Smart Inbox for GitHub Notifications

Home Page: http://www.wring.io

License: Other

Shell 0.06% Java 92.50% XSLT 7.20% Procfile 0.06% SCSS 0.18%
github java xml xslt inbox notifications

wring's Introduction

EO principles respected here Managed by Zerocracy DevOps By Rultor.com We recommend IntelliJ IDEA

Build Status PDD status Hits-of-Code Availability at SixNines

Wring.io is a fully automated collector of events you are getting from GitHub and some other systems where you actively participate in discussions. Instead of regularly checking your email and finding what's relevant to you, you configure Wring to pull those events for you and then you read them in one simple web page.

It is free for everybody.

Read about it at this blog post: Wring.io, a Dispatcher of GitHub Notifications

How to contribute

Fork repository, make changes, send us a pull request. We will review your changes and apply them to the master branch shortly, provided they don't violate our quality standards. To avoid frustration, before sending us your pull request please run full Maven build:

$ mvn clean install -Pqulice

To avoid build errors use Maven 3.2+ and Java 8+.

wring's People

Contributors

amihaiemil avatar carlosmiranda avatar paulodamaso avatar renovate[bot] avatar rultor avatar yegor256 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

wring's Issues

boost

Let's make it possible to boost certain events:

{
  "class": "io.wring.agents.github.AgGithub",
  "token": "20b917afef...5358db",
  "boost": [
    "\Qthis is the text to (escape)\E",
    "abc[0-9]+"
  ]
}

If the text specified is found an extra 5 points will be added to the event

UncheckedIOException: io.wring.agents.Agent$UserException: Element 'boost' must be an array

https://sentry.io/zerocracy/wring/issues/363038806/

UserException: Element 'boost' must be an array
    at io.wring.agents.BoostEvents.pattern(BoostEvents.java:134)
    at io.wring.agents.BoostEvents.<init>(BoostEvents.java:73)
    at io.wring.agents.Cycle.lambda$exec$2(Cycle.java:89)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
...
(18 additional frame(s) were not displayed)

UncheckedIOException: io.wring.agents.Agent$UserException: Element 'boost' must be an array
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:61)
    at io.wring.agents.Cycle.exec(Cycle.java:96)
    at io.wring.agents.Cycle.exec(Cycle.java:54)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
...
(11 additional frame(s) were not displayed)

io.wring.agents.Agent$UserException: Element 'boost' must be an array

HTTPS is not supported

Encryption is critical for this kind of applications which use API tokens and can receive notifications from private repositories on Github. Without it any script kiddie connected to your wifi will be able to get access to your Github account via API or read your messages.

javax.json.stream.JsonParsingException for valid regex

I'm trying to add some ignore rules with regex, according to blog post I've wrapped it in / chars:

{
  "class": "io.wring.agents.github.AgGithub",
  "token": "some-token",
  "ignore": [
    "/@[a-z0-9\\-]\\s+This is what I know about this job/"
  ]
}

it was accepted as a new pipe, but now I'm receiving errors in my inbox instead of events:

javax.json.stream.JsonParsingException: Unexpected char 45 at (line no=5, column no=16, offset=136)
	at org.glassfish.json.JsonTokenizer.unexpectedChar(JsonTokenizer.java:601)
	at org.glassfish.json.JsonTokenizer.unescape(JsonTokenizer.java:231)
	at org.glassfish.json.JsonTokenizer.readString(JsonTokenizer.java:184)
	at org.glassfish.json.JsonTokenizer.nextToken(JsonTokenizer.java:379)
	at org.glassfish.json.JsonParserImpl$ArrayContext.getNextEvent(JsonParserImpl.java:518)
	at org.glassfish.json.JsonParserImpl.next(JsonParserImpl.java:363)
	at org.glassfish.json.JsonParserImpl.getArray(JsonParserImpl.java:322)
	at org.glassfish.json.JsonParserImpl.getValue(JsonParserImpl.java:180)
	at org.glassfish.json.JsonParserImpl.getObject(JsonParserImpl.java:339)
	at org.glassfish.json.JsonParserImpl.getObject(JsonParserImpl.java:173)
	at org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:112)
	at io.wring.agents.Cycle.lambda$exec$0(Cycle.java:80)
	at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:84)
	at org.cactoos.func.UncheckedFunc.lambda$apply$0(UncheckedFunc.java:58)
	at org.cactoos.scalar.IoCheckedScalar.value(IoCheckedScalar.java:70)
	at org.cactoos.scalar.UncheckedScalar.value(UncheckedScalar.java:58)
	at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
	at io.wring.agents.Cycle.exec(Cycle.java:99)
	at io.wring.agents.Cycle.exec(Cycle.java:54)
	at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
	at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
	at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:84)
	at org.cactoos.func.UncheckedFunc.lambda$apply$0(UncheckedFunc.java:58)
	at org.cactoos.scalar.IoCheckedScalar.value(IoCheckedScalar.java:70)
	at org.cactoos.scalar.UncheckedScalar.value(UncheckedScalar.java:58)
	at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
	at org.cactoos.func.RunnableOf.run(RunnableOf.java:89)
	at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
	at java.lang.Thread.run(Thread.java:748)

NumberFormatException in AgGithub

java.lang.NumberFormatException: For input string: "13c4e6dfa8f8a3a8094185e385b2c546db3b6097"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at io.wring.agents.github.AgGithub.push(AgGithub.java:142)
    at io.wring.agents.github.AgGithub.push(AgGithub.java:116)
    at io.wring.agents.JsonAgent.push(JsonAgent.java:86)
    at io.wring.agents.Cycle.log(Cycle.java:191)
    at io.wring.agents.Cycle.wrap(Cycle.java:162)
    at io.wring.agents.Cycle.process(Cycle.java:135)
    at io.wring.agents.Cycle.process(Cycle.java:106)
    at io.wring.agents.Cycle.run(Cycle.java:83)

Internal Application Error when adding empty Pipe

If I try to add an empty Pipe, I get the following internal error:

java.lang.IllegalStateException: [POST http://www.wring.io/pipe-add] failed in 33ms: Cannot auto-detect encoding, not enough chars
    at org.takes.facets.fallback.TkFallback.error(TkFallback.java:233)
    at org.takes.facets.fallback.TkFallback.route(TkFallback.java:112)
    at org.takes.facets.fallback.TkFallback.access$000(TkFallback.java:54)
    at org.takes.facets.fallback.TkFallback$1.act(TkFallback.java:66)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.facets.flash.TkFlash.act(TkFlash.java:108)
    at org.takes.tk.TkGzip$1.act(TkGzip.java:58)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.tk.TkMeasured$1.act(TkMeasured.java:67)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.tk.TkVersioned$1.act(TkVersioned.java:72)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.tk.TkWithHeaders$1.act(TkWithHeaders.java:71)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.http.BkBasic.print(BkBasic.java:100)
    at org.takes.http.BkBasic.accept(BkBasic.java:78)
    at org.takes.http.BkSafe$1.accept(BkSafe.java:51)
    at org.takes.http.BkWrap.accept(BkWrap.java:52)
    at org.takes.http.BkTimeable.accept(BkTimeable.java:89)
    at org.takes.http.BkParallel$1$1.run(BkParallel.java:89)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.json.JsonException: Cannot auto-detect encoding, not enough chars
    at org.glassfish.json.UnicodeDetectingInputStream.detectEncoding(UnicodeDetectingInputStream.java:131)
    at org.glassfish.json.UnicodeDetectingInputStream.(UnicodeDetectingInputStream.java:76)
    at org.glassfish.json.JsonParserImpl.(JsonParserImpl.java:76)
    at org.glassfish.json.JsonReaderImpl.(JsonReaderImpl.java:68)
    at org.glassfish.json.JsonProviderImpl.createReader(JsonProviderImpl.java:131)
    at javax.json.Json.createReader(Json.java:220)
    at io.wring.dynamo.DyPipes.add(DyPipes.java:96)
    at io.wring.tk.TkPipeAdd.act(TkPipeAdd.java:65)
    at org.takes.facets.fork.FkRegex$1.act(FkRegex.java:152)
    at org.takes.facets.fork.FkRegex.route(FkRegex.java:189)
    at org.takes.facets.fork.FkChain.route(FkChain.java:75)
    at org.takes.facets.fork.TkFork.act(TkFork.java:100)
    at org.takes.facets.auth.TkSecure.act(TkSecure.java:86)
    at org.takes.facets.fork.FkAuthenticated.route(FkAuthenticated.java:82)
    at org.takes.facets.fork.FkChain.route(FkChain.java:75)
    at org.takes.facets.fork.TkFork.act(TkFork.java:100)
    at org.takes.facets.forward.TkForward.act(TkForward.java:68)
    at org.takes.facets.fork.FkFixed$1.route(FkFixed.java:56)
    at org.takes.facets.fork.FkWrap.route(FkWrap.java:61)
    at org.takes.facets.fork.FkChain.route(FkChain.java:75)
    at org.takes.facets.fork.TkFork.act(TkFork.java:100)
    at org.takes.facets.auth.TkAuth.act(TkAuth.java:109)
    at org.takes.facets.auth.TkAuth.act(TkAuth.java:89)
    at org.takes.tk.TkWrap.act(TkWrap.java:61)
    at org.takes.facets.fallback.TkFallback.route(TkFallback.java:85)
    ... 23 more

"failed to parse JSON" error

I registered my own pipe and have the following messages in my inbox:

failed to parse JSON:
{
  "class": "io.wring.agents.github.AgGithub",
  "token": "my-tocken-here"
}

java.lang.IllegalArgumentException: event with title "io.wring.agents.github.AgGithub by 0.14.1" not found
	at io.wring.dynamo.DyEvents.event(DyEvents.java:161)
	at io.wring.agents.IgnoreEvents.event(IgnoreEvents.java:112)
	at io.wring.agents.BoostEvents.post(BoostEvents.java:102)
	at io.wring.agents.Exec.run(Exec.java:106)
	at io.wring.agents.Cycle.process(Cycle.java:107)
	at io.wring.agents.Cycle.run(Cycle.java:77)
	at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
	at java.lang.Thread.run(Thread.java:745)

IllegalArgumentException: subject ignored

2016-03-21T23:08Z java.lang.IllegalArgumentException: subject ignored: {"title":"...","url":"https://api.github.com/repos/teamed/xxx/commits/1068878fb76440ec21837fd7bf42ea287dc4c86f","latest_comment_url":"https://api.github.com/repos/teamed/xxx/comments/16792475","type":"Commit"}
    at io.wring.agents.github.AgGithub.push(AgGithub.java:146)
    at io.wring.agents.github.AgGithub.push(AgGithub.java:118)
    at io.wring.agents.JsonAgent.push(JsonAgent.java:86)
    at io.wring.agents.Exec.log(Exec.java:144)
    at io.wring.agents.Exec.body(Exec.java:118)
    at io.wring.agents.Exec.run(Exec.java:84)
    at io.wring.agents.Cycle.process(Cycle.java:104)
    at io.wring.agents.Cycle.run(Cycle.java:77)
    at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
    at java.lang.Thread.run(Thread.java:745)

500 error on delete

I've got an error when delete notification in inbox:

java.lang.IllegalStateException: [GET https://www.wring.io/event-delete?hash=1E73995C39491BAFD3B403635D332EBF&title=io.wring.agents.github.AgGithub+by+1.0-SNAPSHOT] failed in 49ms: Event with title "io.wring.agents.github.AgGithub by 1.0-SNAPSHOT" not found
	at org.takes.facets.fallback.TkFallback.error(TkFallback.java:234)
	at org.takes.facets.fallback.TkFallback.route(TkFallback.java:115)
	at org.takes.facets.fallback.TkFallback.access$000(TkFallback.java:54)
	at org.takes.facets.fallback.TkFallback$1.act(TkFallback.java:66)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.facets.flash.TkFlash.act(TkFlash.java:108)
	at org.takes.tk.TkGzip$1.act(TkGzip.java:58)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.tk.TkMeasured$1.act(TkMeasured.java:67)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.tk.TkVersioned$1.act(TkVersioned.java:73)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.tk.TkWithHeaders$1.act(TkWithHeaders.java:71)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.tk.TkSslOnly.act(TkSslOnly.java:71)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.http.BkBasic.print(BkBasic.java:108)
	at org.takes.http.BkBasic.accept(BkBasic.java:84)
	at org.takes.http.BkSafe$1.accept(BkSafe.java:51)
	at org.takes.http.BkWrap.accept(BkWrap.java:52)
	at org.takes.http.BkTimeable.accept(BkTimeable.java:89)
	at org.takes.http.BkParallel$1$1.run(BkParallel.java:89)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Event with title "io.wring.agents.github.AgGithub by 1.0-SNAPSHOT" not found
	at io.wring.dynamo.DyEvents.event(DyEvents.java:160)
	at io.wring.tk.TkEventDelete.act(TkEventDelete.java:72)
	at org.takes.facets.fork.FkRegex$1.act(FkRegex.java:154)
	at org.takes.facets.fork.FkRegex.route(FkRegex.java:210)
	at org.takes.facets.fork.FkChain.route(FkChain.java:75)
	at org.takes.facets.fork.TkFork.act(TkFork.java:100)
	at org.takes.facets.auth.TkSecure.act(TkSecure.java:86)
	at org.takes.facets.fork.FkAuthenticated.route(FkAuthenticated.java:99)
	at org.takes.facets.fork.FkChain.route(FkChain.java:75)
	at org.takes.facets.fork.TkFork.act(TkFork.java:100)
	at org.takes.facets.forward.TkForward.act(TkForward.java:68)
	at org.takes.facets.fork.FkFixed$1.route(FkFixed.java:56)
	at org.takes.facets.fork.FkWrap.route(FkWrap.java:61)
	at org.takes.facets.fork.FkChain.route(FkChain.java:75)
	at org.takes.facets.fork.TkFork.act(TkFork.java:100)
	at org.takes.facets.auth.TkAuth.act(TkAuth.java:109)
	at org.takes.facets.auth.TkAuth.act(TkAuth.java:89)
	at org.takes.tk.TkWrap.act(TkWrap.java:61)
	at org.takes.facets.fallback.TkFallback.route(TkFallback.java:86)
	... 24 more

Illegal group reference in XePrint

Caused by: java.lang.IllegalArgumentException: Illegal group reference
	at java.util.regex.Matcher.appendReplacement(Matcher.java:857)
	at io.wring.model.XePrint.text(XePrint.java:73)
	at io.wring.tk.TkEvents.source(TkEvents.java:106)
	at org.takes.rs.xe.XeTransform$1.next(XeTransform.java:101)
	at org.takes.rs.xe.XeTransform$1.next(XeTransform.java:93)
	at org.takes.rs.xe.XeChain$1.toXembly(XeChain.java:62)
	at org.takes.rs.xe.XeWrap.toXembly(XeWrap.java:57)
	at org.takes.rs.xe.XeChain$1.toXembly(XeChain.java:63)
	at org.takes.rs.xe.XeWrap.toXembly(XeWrap.java:57)
	at org.takes.rs.xe.XeAppend$1.toXembly(XeAppend.java:73)
	at org.takes.rs.xe.XeWrap.toXembly(XeWrap.java:57)
	at org.takes.rs.xe.XeChain$1.toXembly(XeChain.java:63)
	at org.takes.rs.xe.XeWrap.toXembly(XeWrap.java:57)

NPE in Exec

NullPointerException: None
    at io.wring.agents.Exec.run(Exec.java:96)
    at io.wring.agents.Cycle.lambda$process$2(Cycle.java:114)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
    at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:274)
...
(20 additional frame(s) were not displayed)

IOException: java.lang.NullPointerException
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:74)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
...
(15 additional frame(s) were not displayed)

UncheckedIOException: java.io.IOException: java.lang.NullPointerException
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:61)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
...
(14 additional frame(s) were not displayed)

NPE in JsonAgent

java.lang.NullPointerException: null
    at org.glassfish.json.JsonObjectBuilderImpl$JsonObjectImpl.getString(JsonObjectBuilderImpl.java:199)
    at io.wring.agents.JsonAgent.agent(JsonAgent.java:94)
    at io.wring.agents.JsonAgent.toString(JsonAgent.java:81)
    at io.wring.agents.Exec.run(Exec.java:85)
    at io.wring.agents.Cycle.lambda$process$2(Cycle.java:114)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
    at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:274)
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:66)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
    at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:266)
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:66)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at org.cactoos.func.RunnableOf.run(RunnableOf.java:89)
    at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
    at java.lang.Thread.run(Thread.java:745)
java.io.IOException: java.lang.NullPointerException
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:74)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
    at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:266)
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:66)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at org.cactoos.func.RunnableOf.run(RunnableOf.java:89)
    at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
    at java.lang.Thread.run(Thread.java:745)
java.io.UncheckedIOException: java.io.IOException: java.lang.NullPointerException
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:61)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
    at org.cactoos.func.FuncOf.apply(FuncOf.java:104)
    at org.cactoos.func.FuncWithFallback.apply(FuncWithFallback.java:266)
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:66)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at org.cactoos.func.RunnableOf.run(RunnableOf.java:89)
    at com.jcabi.log.VerboseRunnable.run(VerboseRunnable.java:198)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.jcabi.log.VerboseThreads$Wrap.run(VerboseThreads.java:220)
    at java.lang.Thread.run(Thread.java:745)

Pull request review notification

A contributor creates a pull request and assigns me as a reviewer - Wring doesn't manage this notification. Is it possible to manage this type of notification with Wring?

DoD:

  • will work only for repo with configured webhook
  • user documentation is updated about new feature

Unable to login

When I click login link, it redirects me on the same page, but with error in url parameters:
https://www.wring.io/?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fapps%2Fmanaging-oauth-apps%2Ftroubleshooting-authorization-request-errors%2F%23redirect-uri-mismatch

IllegalArgumentException: Event with title "Internal error (java.lang.NullPointerException): null by 1.0-SNAPSHOT" not found

IllegalArgumentException: Event with title "Internal error (java.lang.NullPointerException): null by 1.0-SNAPSHOT" not found
    at io.wring.dynamo.DyEvents.event(DyEvents.java:160)
    at io.wring.agents.IgnoreEvents.event(IgnoreEvents.java:112)
    at io.wring.agents.BoostEvents.post(BoostEvents.java:102)
    at io.wring.agents.Exec.run(Exec.java:106)
    at io.wring.agents.Cycle.lambda$process$2(Cycle.java:114)
...
(23 additional frame(s) were not displayed)

IOException: java.lang.IllegalArgumentException: Event with title "Internal error (java.lang.NullPointerException): null by 1.0-SNAPSHOT" not found
    at org.cactoos.func.IoCheckedFunc.apply(IoCheckedFunc.java:74)
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:59)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
...
(15 additional frame(s) were not displayed)

UncheckedIOException: java.io.IOException: java.lang.IllegalArgumentException: Event with title "Internal error (java.lang.NullPointerException): null by 1.0-SNAPSHOT" not found
    at org.cactoos.func.UncheckedFunc.apply(UncheckedFunc.java:61)
    at io.wring.agents.Cycle.process(Cycle.java:117)
    at io.wring.agents.Cycle.exec(Cycle.java:75)
    at io.wring.agents.Cycle.exec(Cycle.java:56)
    at org.cactoos.func.FuncOf.lambda$new$3(FuncOf.java:88)
...
(14 additional frame(s) were not displayed)

AssertionError: HTTP response status is not equal to 200:

https://sentry.io/zerocracy/wring/issues/334675232/

AssertionError: HTTP response status is not equal to 200:
404 Not Found [https://api.github.com/repos/zerocracy/farm/issues/242/comments]
Server: GitHub.com
Date: Thu, 24 Aug 2017 06:27:28 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Status: 404 Not Found
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4961
X-RateLimit-Reset: 1503558943
X-OAuth-Scopes: notifications
X-Accepted-OAuth-Scopes: repo
X-GitHub-Media-Type: github.v3
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Runtime-Rack: 0.027776
X-GitHub-Request-Id: D921:22E16:CB3483:1A14D63:599E71D0

{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
Expected: HTTP response with status 200
     but: was <404 Not Found [https://api.github.com/repos/zerocracy/farm/issues/242/comments]
Server: GitHub.com
Date: Thu, 24 Aug 2017 06:27:28 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Status: 404 Not Found
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4961
X-RateLimit-Reset: 1503558943
X-OAuth-Scopes: notifications
X-Accepted-OAuth-Scopes: repo
X-GitHub-Media-Type: github.v3
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Runtime-Rack: 0.027776
X-GitHub-Request-Id: D921:22E16:CB3483:1A14D63:599E71D0

{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}>
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
    at com.jcabi.http.response.RestResponse.assertStatus(RestResponse.java:111)
    at com.jcabi.github.RtValuePagination$Items.fetch(RtValuePagination.java:193)
    at com.jcabi.github.RtValuePagination$Items.hasNext(RtValuePagination.java:179)
    at com.jcabi.github.Smarts$1.hasNext(Smarts.java:87)
...
(37 additional frame(s) were not displayed)

HTTP response status is not equal to 200:
404 Not Found [https://api.github.com/repos/zerocracy/farm/issues/242/comments]
Server: GitHub.com
Date: Thu, 24 Aug 2017 06:27:28 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Status: 404 Not Found
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4961
X-RateLimit-Reset: 1503558943
X-OAuth-Scopes: notifications
X-Accepted-OAuth-Scopes: repo
X-GitHub-Media-Type: github.v3
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Runtime-Rack: 0.027776
X-GitHub-Request-Id: D921:22E16:CB3483:1A14D63:599E71D0

{"message":"Not Found","documentation_url":"https://developer....

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.