Code Monkey home page Code Monkey logo

0pdd's Introduction

0pdd's People

Contributors

blablatdinov avatar dependabot[bot] avatar firedev avatar golyalpha avatar h1alexbel avatar lastk avatar llorllale avatar mbao01 avatar mesut avatar pbenety avatar pdacostaporto avatar pnatashap avatar renovate[bot] avatar rultor avatar silasreinagel avatar snugghash avatar valentin-eb avatar vivekimsit 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  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

0pdd's Issues

0pdd.rb:33-35: This puzzle is just a test. It has to pr...

The puzzle 1-e4c85f20 in 0pdd.rb (lines 33-35) has to be resolved: This puzzle is just a test. It has to prove that the system works. Right after that I will remove it and it has to be removed from Github.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 30 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

repository renaming

What will happen if repository is renamed? We will re-submit all tickets to a new one -- that would be a big disaster. Let's find a way to prevent that.

0pdd.rb:44-46: Let's implement this entry point, where ...:

Puzzle 3-04ce612e in 0pdd.rb has to be resolved: Let's implement this entry point, where we will render all puzzles we have for a particular project. Let's not forget about security too.. The puzzle was created by Yegor Bugayenko on 12-Dec-16.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

notify users on new puzzles

Let's make it possible to configure in .0pdd.yml the list of users who should get notifications when new puzzles are posted. We should just post an extra message to them, asking to pay attention to the ticket. Something like this:

alerts:
  github:
    - yegor256
    - davvd

These two people will get a notification message: @yegor256 and @davvd

0pdd.rb:32-34: We don't have an SVG badge for GitHub, w...

The puzzle 15-a1d6817e in 0pdd.rb (lines 32-34) has to be resolved: We don't have an SVG badge for GitHub, which will show how many puzzles we have at the moment in the repo. Let's create it, in SVG format (and maybe in PNG too).

The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 30 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:23-26: This is just a test puzzle 3. This is ju...

The puzzle 31-bd057c47 in 0pdd.rb (lines 23-26) has to be resolved: This is just a test puzzle 3. This is just a test puzzle 3. This is just a test puzzle 3. This is just a test puzzle 3.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:41-43: This feature is not implemented now and ...

The puzzle 15-1dc72086 in 0pdd.rb (lines 41-43) has to be resolved: This feature is not implemented now and it makes it very difficult to track the status of puzzles in a repo. Let's add this simple converter from XML to HTML (through XSLT).

The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 30 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

A couple of ideas

Since this is at the beginning of its life, I assume this is the right moment to suggest some ideas.

  1. Instead of webhooks, you could spin a checker somewhere, that would read notifications and post them to the /hook endpoint? I wrote such an EJB for a project of mine and decided to pull it out and make it reusable. Here it is.
    The user doesn't have to do any settings to the repo and the load is small, only containing the repo's fullname and issue number where the bot was mentioned. The lookup logic, avoiding spam and whatnot is up to the receiver to implement,

I think, instead of having it check my whole repo at every push, it would be more efficient to have it check when I tell it to: "@ 0pdd check please" - you could have a script for rultor at merge time: check for todo's in the changed files and comment if there are any.

  1. Why the write access needs? You already have rultor for automatic merging, so you might as well have it make pull requests and ask rultor to merge. I would add 0pdd as a commander in .rultor.yml. This way I could also check that the puzzles were correctly removed and see what other changes the bot did to my repo. Of course, if I choose to trust it completely, I add it as an architect and rultor won't ask for review.

I mean, if I like your work enough to use 0pdd, chances are very high that I already use rultor, so I have 2 of your bots, both needing write access. Besides, for write access, someone has to log into the bots account and accept the invitation and that takes time :)

/issues/unknown: 404 - Not Found

PATCH https://api.github.com/repos/foo/foo/issues/unknown: 404 - Not Found // See: https://developer.github.com/v3/issues/#edit-an-issue

/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/response/raise_error.rb:16:in `on_complete'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/response.rb:9:in `block in call'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/response.rb:61:in `on_complete'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/response.rb:8:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'
/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/middleware/follow_redirects.rb:61:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/rack_builder.rb:139:in `build_response'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/connection.rb:377:in `run_request'
/app/vendor/bundle/ruby/2.2.0/gems/faraday-0.11.0/lib/faraday/connection.rb:177:in `patch'
/app/vendor/bundle/ruby/2.2.0/gems/sawyer-0.8.1/lib/sawyer/agent.rb:94:in `call'
/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/connection.rb:154:in `request'
/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/connection.rb:46:in `patch'
/app/vendor/bundle/ruby/2.2.0/gems/octokit-4.6.2/lib/octokit/client/issues.rb:130:in `close_issue'
/app/objects/github_tickets.rb:75:in `close'
/app/objects/puzzles.rb:88:in `block in close'
/app/vendor/bundle/ruby/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:187:in `block in each'
/app/vendor/bundle/ruby/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:186:in `upto'
/app/vendor/bundle/ruby/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:186:in `each'
/app/objects/puzzles.rb:88:in `close'
/app/objects/puzzles.rb:41:in `deploy'
/app/objects/job.rb:42:in `proceed'

default labels

Let's make it possible to configure default labels for all GitHub issues created by @0pdd. Somewhere in .0pdd.yml let's create a config section for it:

tags:
  - bug
  - urgent

0pdd.rb: 44-46: Let's implement this entry point, where ...:

Puzzle 3-04ce612e in 0pdd.rb has to be resolved: Let's implement this entry point, where we will render all puzzles we have for a particular project. Let's not forget about security too.. The puzzle was created by @yegor Bugayenko on 12-Dec-16

    If you have any technical questions, don't ask me,         submit new tickets instead. The task will be "done" when         the problem is fixed and the text of the puzzle is         removed from the source code.

0pdd.rb:33-35: This puzzle is just a test. It has to pr...

The puzzle 31-641f9fa5 in 0pdd.rb (lines 33-35) has to be resolved: This puzzle is just a test. It has to prove that the system works just well. Right after that I will remove it and it has to be removed from Github.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

Pull requests instead of write access

It would be better, I think, if the bot made PRs instead of asking for write permissions.

Moreover, it could scan the root folder of the repo for .rultor.yml, check if it has commandment rights and if so, it should ask rultor to merge the pr. This way also the build is run and it assures that no mistake was made while removing puzzles.

I think the integration with rultor is quite elegant. And if there i no rultor in the project, I still think people would rather check what the bot changed before merging. Since the bot does not run a build, it would be risky to just merge changes directly.

github_tickets.rb:36-39: This mechanism of body abbreviation is r...

The puzzle 3-9fa46796 in objects/github_tickets.rb (lines 36-39) has to be resolved: This mechanism of body abbreviation is rather primitive and doesn't produce readable texts very often. Instead of cutting the text at the hard limit (40 chars) we have to cut it at the end of the word, staying closer to the limit..

The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 20 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:23-25: We lose errors when they happen with the...

The puzzle 1-1c2ee73f in 0pdd.rb (lines 23-25) has to be resolved: We lose errors when they happen with the source code. They just drop into the log and that's it. Instead, we must email them to the repository owner or a predefined email from .0pdd.yml

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 30 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

puzzles.rb:35-38: It's not really effective to always save...

The puzzle 3-09c2d743 in objects/puzzles.rb has to be resolved: It's not really effective to always save the XML document back to storage, even when it was not really modified. Would be much better to check whether any modifications have been made and skip that SAVE() operation.. The puzzle was created by Yegor Bugayenko on 13-Dec-16.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

job.rb:34-37: We may lose the moment of update and for...

The puzzle 13-4c2685d4 in objects/job.rb (lines 34-37) has to be resolved: We may lose the moment of update and forget to create an issue or close it. For many reasons that may happen. No matter why, we have to do the second check once in a while and update GitHub issues. Maybe every hour or so.

The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 30 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

Doesn't seem to work for a certain repo

This is the repo: https://www.github.com/opencharles/charles-rest

I push puzzles and 0pdd doesn't open issues.
It used to work at some point, now it doesn't

I looked in Settings/Webhooks, and the calls to the webhook endpoint
get HTTP 503 server error response

I checked and the format is right, including one space indentation for all the new lines.

----
Later edit:

Response is 200 now (503 was my fault, bad content-type header), but still nothing happens.

Here is the stacktrace

puzzles.rb:87-89: Let's post notification messages to...

The puzzle 41-15a94873 in objects/puzzles.rb (lines 87-89) has to be resolved: Let's post notification messages to tickets where other puzzles were waiting for the resolution of this one. Let's update them with a summary information of what is left.

The puzzle was created by Yegor Bugayenko on 15-Feb-17.

Estimate: 30 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD.

chat bot

Let's create a chat bot, which will respond to GitHub messages, with some status information about puzzles.

0pdd.rb: 44-46: Let's implement this entry point, where ...:

Puzzle 3-04ce612e in 0pdd.rb has to be resolved: Let's implement this entry point, where we will render all puzzles we have for a particular project. Let's not forget about security too.. The puzzle was created by @yegor Bugayenko on 12-Dec-16

    If you have any technical questions, don't ask me,         submit new tickets instead. The task will be "done" when         the problem is fixed and the text of the puzzle is         removed from the source code.

0pdd.rb:23-26: This is just a test puzzle 2. This is ju...

The puzzle 31-30e0dcda in 0pdd.rb (lines 23-26) has to be resolved: This is just a test puzzle 2. This is just a test puzzle 2. This is just a test puzzle 2. This is just a test puzzle 2.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:33-35: Let's create robots.txt entry point with...

The puzzle 1-6a5fba58 in 0pdd.rb (lines 33-35) has to be resolved: Let's create robots.txt entry point with an an empty content. Should be pretty easy. Maybe there will be some other static resources, let's add them too.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:23-26: This is just a test puzzle. This is just...

The puzzle 31-3016794f in 0pdd.rb (lines 23-26) has to be resolved: This is just a test puzzle. This is just a test puzzle. This is just a test puzzle. This is just a test puzzle.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

3-04ce612e: :44-46

Let's implement this entry point, where we will render all puzzles we have for a particular project. Let's not forget about security too.

3-04ce612e: :44-46

Let's implement this entry point, where we will render all puzzles we have for a particular project. Let's not forget about security too.

0pdd.rb:33-35: Page not found is not implemented. When ...

The puzzle 3-41f7e700 in 0pdd.rb (lines 33-35) has to be resolved: Page not found is not implemented. When I open a URL that doesn't exist I see a default sinatra "not found" page, which is annoying.

The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 15 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

.pdd config to email bugs

Let's make it possible to configure .0pdd.yml file for email reports. When something goes wrong after the push we must be able to send a stacktrace to the owner of the repo. That's what .0pdd.yml will be used for:

errors:
  email: [email protected]

0pdd.rb:48-51: For some reason, at the moment of this P...

The puzzle 3-5ec03020 in 0pdd.rb (lines 48-51) has to be resolved: For some reason, at the moment of this PUSH event arrival the repository is not ready yet and we don't have the current version of it. Let's introduce some delay or some other method, so that we can wait until the repo is in proper state.. The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 20 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:58-60: Let's add GZIP compression to this...

The puzzle 41-ab139346 in 0pdd.rb (lines 58-60) has to be resolved: Let's add GZIP compression to this output, since most XML files are rather big and it would be beneficial to see them compressed in the browser.

The puzzle was created by Yegor Bugayenko on 15-Feb-17.

Estimate: 30 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

Alternative to webhooks

Instead of having the users configure webhooks on their repos, you could have a running checker, that would check for notifications like comment mentions and ping the bot at /hook endpoint.

I wrote such a checker so it, or something similar, could be used.

Instead of checking the whole repo at each push event, the bot would check it only when commanded. It could also be commanded by rultor after a merge.

0pdd.rb:33-35: Let's create robots.txt entry point with...

The puzzle 1-6a5fba58 in 0pdd.rb (lines 33-35) has to be resolved: Let's create robots.txt entry point with an an empty content. Should be pretty easy. Maybe there will be some other static resources, let's add them too.

The puzzle was created by Yegor Bugayenko on 22-Dec-16.

Estimate: 15 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

0pdd.rb:52-56: At the moment we're not thread-safe. If ...

The puzzle 2-f47a3215 in 0pdd.rb (lines 52-56) has to be resolved: At the moment we're not thread-safe. If two PUSH events arrive at the same time we will/may have troubles with concurrent modification of S3 objects and Git repository. Let's introduce some queing system, which will put all requests into a pipeline and proceed them one by one.. The puzzle was created by Yegor Bugayenko on 13-Dec-16.

Estimate: 30 minutes, Role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code.

show total repositories count

Let's render this total repo counter on the front page. We will have to go through all S3 objects in the bucket and count them. Will take a lot of time, so let's invent some caching mechanism. Maybe, let's use stateful.co counter and increment it every time we create a new S3 object, which we've never seen before.

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.