Git Product home page Git Product logo

strider's People

Contributors

bitwit avatar constantx avatar dependabot[bot] avatar janruehling avatar jaredly avatar kauegimenes avatar kfatehi avatar knownasilya avatar marcuspoehls avatar marekventur avatar michaelmior avatar microadam avatar mistergaskill avatar nepoxx avatar niallo avatar oliversalzburg avatar ortuna avatar peterbraden avatar pgte avatar rio avatar saraf avatar smashwilson avatar tbouron avatar tomgco avatar trgr avatar viniciusgama avatar voffkaa avatar wpjunior avatar xdissent avatar xgalen 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  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

strider's Issues

Github Webhook Failed

Error message:

22 Mar 17:40:13 - info: received a correctly signed webhook for repo https://github.com/myorg/myrepo on master branch - starting task on user [email protected]'s behalf

/home/strider/strider/node_modules/mongoose/lib/utils.js:413
throw err;
^
TypeError: Cannot read property 'ssh_url' of undefined
at exports.webhook_secret (/home/strider/strider/routes/index.js:255:39)
at exports.verify_webhook_req_secret (/home/strider/strider/lib/github.js:669:16)
at model.UserSchema.methods.get_repo_config (/home/strider/strider/lib/models.js:169:12)
at Promise.exports.verify_webhook_req_secret (/home/strider/strider/lib/github.js:668:12)
at Promise.onResolve (/home/strider/strider/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8)
at Promise.EventEmitter.emit (events.js:96:17)
at Promise.emit (/home/strider/strider/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38)
at Promise.fulfill (/home/strider/strider/node_modules/mongoose/node_modules/mpromise/lib/promise.js:92:20)
at /home/strider/strider/node_modules/mongoose/lib/query.js:1791:13
at model.Document.init (/home/strider/strider/node_modules/mongoose/lib/document.js:241:11)

Move default tracked config.js to config.js.sample

It is bad to have config.js be tracked in VCS. Solution is I think:

  • git mv config.js config.js.sample (to untrack it)
  • Add config.js to .gitignore
  • Before deployment to Heroku etc, you must cp config.js.sample config.js, edit config.js, git add & git commit config.js to local repo.
  • Strider should detect & explain failure if it finds a config.js.sample but no config.js
  • Document the additional step for Heroku deployment
  • Updating the deadlift web installer [ https://github.com/niallo/deadlift ] to support the additional step.

Fix manual setup

As reported in #7 and #8, manual setup seems to have problems at least when running on Heroku.

Plugins have no socket.io hook

Currently, plugins can add routes, static content, template blocks etc. However, they don't have any way to hook into the socket.io subsystem.

Access to the main socket.io object would make it easy for plugins to do server-push.

Document Strider extension system. Plugins are fun and people don't know about them.

Strider has a lightweight extension (aka plugin) system which makes it fun and easy to extend and customize.

Indeed, much of Strider is actually implemented as extensions (strider-simple-worker, strider-python, strider-sauce, gostrider etc)

Strider extensions are just NPM packages with a tiny bit of extra meta-data.

We should document this so people know about it and can get started developing and publishing extensions!

Auth with Github failed

On my local, auth with github redirected to
http://localhost:3000/auth/github/callback?code=926656513c756bf10338
with the below error.

On heroku, the auth just redirect back to /login, seems like it failed somewhere in passport.

Express
500 TypeError: Cannot read property 'name' of undefined
at ghUserLink (./lib/auth.js:39:34)
at Strategy.setupGithubAuth [as _verify] (./lib/auth.js:63:7)
at OAuth2Strategy.authenticate.params.response_type (./node_modules/passport-github/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:141:20)
at Strategy.userProfile (./node_modules/passport-github/lib/passport-github/strategy.js:95:7)
at passBackControl (./node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:107:9)
at IncomingMessage.exports.OAuth2._executeRequest.request.on.callbackCalled (./node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:124:7)
at IncomingMessage.EventEmitter.emit (events.js:126:20)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at CleartextStream.socketOnData [as ondata] (http.js:1430:20)

Web-based set up wizard

Add an initial setup wizard which walks enduser through configuring server name (with guess based on HTTP_X_FORWARDED_FOR etc), Github OAuth application and email transport.

This depends on #2 and is related to #1.

Problem identification

I configured few node.js project to run tests.
After pressing button "Test" I can see "Sending start message..." message but after refreshing the page the job is gone.

How can I identify what is the problem? How to see logs or monitor job?

Read configuration from MongoDB

To the extent that it is possible, configuration should be stored in a MongoDB document with fallback to config.js and everypaas values.

Github connection fails after following all the steps

After following all the required steps I can login on strider on heroku. When clicking connect to Github I get the Github auth page, after clicking Allow i get:

Express
500 Error: Step getCode of github is promising: code ; however, the step returns nothing. Fix the step by returning the expected values OR by returning a Promise that promises said values.
at Object.Step.exec (/app/node_modules/everyauth/lib/step.js:69:11)
at RouteTriggeredSequence.materializedMethods.start (/app/node_modules/everyauth/lib/stepSequence.js:39:39)
at RouteTriggeredSequence.routeHandler (/app/node_modules/everyauth/lib/routeTriggeredSequence.js:16:13)
at nextMiddleware (/app/node_modules/connect/lib/middleware/router.js:175:25)
at param (/app/node_modules/connect/lib/middleware/router.js:183:17)
at pass (/app/node_modules/connect/lib/middleware/router.js:191:11)
at Object.router (/app/node_modules/connect/lib/middleware/router.js:197:7)
at next (/app/node_modules/connect/lib/http.js:204:15)
at Promise.everyauth.middleware.connect.router.modules (/app/node_modules/everyauth/index.js:43:11)
at Promise.addBack (/app/node_modules/mongoose/lib/promise.js:128:8)

Strider didn't fire my webhook

I have created a small Express app based on Node-Stride, then added to the webhooks list on the repo's config page, but looks like Strider didn't fire any post request on test/deploy.

UI has no concept of job queue

Job queues exist on the backend, but the UI doesn't make it clear that this is what is happening.

In other words, you can kick off multiple jobs in the UI and the backend will queue them internally. But the front-end doesn't communicate this is what is happening properly.

Path to node.lib is wrong on Windows

The VCBuild.exe is called, but it's trying to load node.lib at the wrong path

LINK : fatal error LNK1181: cannot open input file 'C:\Users\Webdev\.node-gyp\0.10.0\\node.lib'

the correct path is 'C:\Users\Webdev\.node-gyp\0.10.0\\Release\\node.lib' (or depending on the OS version, 'C:\Users\Webdev\.node-gyp\0.10.0\\x64\\node.lib', 'C:\Users\Webdev\.node-gyp\0.10.0\\ia32\\node.lib')

Add -m "module path" CLI flag to bin/strider to enhance usage as a dependency

Being able to specify where to load Strider extensions from on the filesystem. This is handy especially in cases where you are building a custom Strider through having your app depend on it.

For example, you can create your app, add Strider as a dependency, then set "start" script to "./node_modules/strider/bin/strider -m ./node_modules".

Webhook test from Github crashes strider on heroku

Clicking the 'Test webhook' button after manual configuration results in this heroku log:

2012-11-06T11:13:26+00:00 app[web.1]: 6 Nov 11:13:26 - info: received a correctly signed webhook for repo https://github.com/** on master branch - starting task on user **'s behalf
2012-11-06T11:13:26+00:00 app[web.1]: 
2012-11-06T11:13:26+00:00 app[web.1]: /app/node_modules/mongoose/lib/utils.js:413
2012-11-06T11:13:26+00:00 app[web.1]:         throw err;
2012-11-06T11:13:26+00:00 app[web.1]:               ^
2012-11-06T11:13:26+00:00 app[web.1]: TypeError: Cannot read property 'undefined' of undefined
2012-11-06T11:13:26+00:00 app[web.1]:     at exports.webhook_secret (/app/routes/index.js:252:54)
2012-11-06T11:13:26+00:00 app[web.1]:     at exports.verify_webhook_req_secret (/app/github.js:669:16)
2012-11-06T11:13:26+00:00 app[web.1]:     at model.UserSchema.methods.get_repo_config (/app/models.js:169:12)
2012-11-06T11:13:26+00:00 app[web.1]:     at Promise.exports.verify_webhook_req_secret (/app/github.js:668:12)
2012-11-06T11:13:26+00:00 app[web.1]:     at Promise.addBack (/app/node_modules/mongoose/lib/promise.js:128:8)
2012-11-06T11:13:26+00:00 app[web.1]:     at Promise.EventEmitter.emit (events.js:93:17)
2012-11-06T11:13:26+00:00 app[web.1]:     at Promise.emit (/app/node_modules/mongoose/lib/promise.js:66:38)
2012-11-06T11:13:26+00:00 app[web.1]:     at Promise.complete (/app/node_modules/mongoose/lib/promise.js:77:20)
2012-11-06T11:13:26+00:00 app[web.1]:     at Query.findOne (/app/node_modules/mongoose/lib/query.js:1533:15)
2012-11-06T11:13:26+00:00 app[web.1]:     at model.Document.init (/app/node_modules/mongoose/lib/document.js:229:11)
2012-11-06T11:13:26+00:00 heroku[router]: Error H13 (Connection closed without response) -> POST strider-topicus.herokuapp.com/webhook/c4ec126114d63d346a08a221430bbdc53564c7203368cf23a251f193eaf92c0f dyno=web.1 queue= wait= service= status=503 bytes=
2012-11-06T11:13:27+00:00 heroku[web.1]: Process exited with status 1
2012-11-06T11:13:27+00:00 heroku[web.1]: State changed from up to crashed

Document running Strider on dotCloud

Strider runs great on dotCloud (free & paid), and the polyglot environment & vertical scaling they support is nice. We should document how to deploy there.

refactor front-end templates & views

Jade is non-standard and poses a barrier to people contributing, as does the mishmash of backbone, apres and handrolled JS.

Suggestions for better solutions welcome.

Manual setup of github project results in error

After filling out the details and following the steps as described, i click the 'Continue' button.
This results in a heroku error log:

2012-11-06T11:16:30+00:00 app[web.1]: 6 Nov 11:16:30 - info: org: topicusonderwijs - name: proudcrowd
2012-11-06T11:16:30+00:00 app[web.1]: 6 Nov 11:16:30 - debug: generate_keypair() command: ssh-keygen args: -t,dsa,-N,,-C,[email protected],-f,/tmp/_topicusonderwijs_proudcrowd
2012-11-06T11:16:30+00:00 app[web.1]: t\"repo\": \"proudcrowd\"\n}"
2012-11-06T11:16:30+00:00 app[web.1]: 6 Nov 11:16:30 - debug: post_manual_setup() - output: "{\n\t\"webhook\": \"https://strider-topicus.herokuapp.com//webhook/c4ec126114d6asd346asd8aasd1430bbdc53564c7203368cf23a251f193eaf92c0f\",\n\t\"deploy_key_title\": \"StriderDeployKey - https://strider-topicus.herokuapp.com/ - [email protected]\",\n\t\"deploy_public_key\": \"ssh-dss ************key was here**********\\n\",\n\t\"org\": \"topicusonderwijs\",\n\
2012-11-06T11:16:35+00:00 app[web.1]: 6 Nov 11:16:35 - error: TypeError: Cannot read property 'undefined' of undefined
2012-11-06T11:16:35+00:00 app[web.1]:     at exports.jobs_start (/app/routes/api/jobs.js:70:63)
2012-11-06T11:16:35+00:00 app[web.1]:     at model.UserSchema.methods.get_repo_config (/app/models.js:169:12)
2012-11-06T11:16:35+00:00 app[web.1]:     at exports.jobs_start (/app/routes/api/jobs.js:65:12)
2012-11-06T11:16:35+00:00 app[web.1]:     at callbacks (/app/node_modules/express/lib/router/index.js:272:11)
2012-11-06T11:16:35+00:00 app[web.1]:     at require_auth (/app/middleware.js:6:9)
2012-11-06T11:16:35+00:00 app[web.1]:     at callbacks (/app/node_modules/express/lib/router/index.js:272:11)
2012-11-06T11:16:35+00:00 app[web.1]:     at param (/app/node_modules/express/lib/router/index.js:246:11)
2012-11-06T11:16:35+00:00 app[web.1]:     at pass (/app/node_modules/express/lib/router/index.js:253:5)
2012-11-06T11:16:35+00:00 app[web.1]:     at Object.middleware [as handle] (/app/node_modules/express/lib/router/index.js:45:10)
2012-11-06T11:16:35+00:00 app[web.1]:     at Router._dispatch (/app/node_modules/express/lib/router/index.js:280:5)

Email Not Being Sent

The test completed successfully and it said email was sent, but I never received an email. Checked my spam folder. From my ~/.bashrc:

export SMTP_HOST="smtp.gmail.com"
export SMTP_PORT="465"
export SMTP_USER="[email protected]"
export SMTP_PASS="mypassword"

Strider fails to build hiredis during npm install: seems to be using node-waf instead of node-gyp

Hi there, running into a weird problem. I just installed Strider on Heroku following the instructions you include in the readme. I had to change a few things (see my modified Strider package.json below), but it's more or less the stock setup.

The issue is the hiredis NPM package during npm install. This builds fine locally and on other CI solutions like CircleCI. For some reason, Strider tries to build this package with node-waf instead of node-gyp. I can't figure out why.

To reproduce this, I forked your sample strider-nodejs-redis-test project. I ran it against my install of Strider, and the test passed.

Then, I modified the package.json to simply include hiredis. The test failed as npm install failed.

The output of the build attempt is below. The fork of the repo is here.

Let me know if I can provide any more information. I looked at this for a little while, but couldn't piece it together. further in the logs, it does seem to report that the correct node.js and npm are installed.

Thanks,

Sujal

[STRIDER] Starting git clone of repo at [email protected]:fanzter/strider-nodejs-redis-test.git
[STRIDER] Git clone complete
npm WARN package.json [email protected] No README.md file found!
npm http GET https://registry.npmjs.org/redis
npm http GET https://registry.npmjs.org/hiredis
npm http GET https://registry.npmjs.org/mocha
npm http GET https://registry.npmjs.org/should
npm http 304 https://registry.npmjs.org/hiredis
npm WARN package.json [email protected] No README.md file found!
npm http 304 https://registry.npmjs.org/mocha
npm http 304 https://registry.npmjs.org/redis
npm http 304 https://registry.npmjs.org/should

> [email protected] preinstall /app/node_modules/strider-simple-worker/_work/strider-nodejs-redis-test/node_modules/hiredis
> make || gmake

cd deps/hiredis && make static
make[1]: Entering directory `/app/node_modules/strider-simple-worker/_work/strider-nodejs-redis-test/node_modules/hiredis/deps/hiredis'
cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/growl
npm http GET https://registry.npmjs.org/jade/0.26.3
npm http GET https://registry.npmjs.org/diff/1.0.2
npm http GET https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
npm http GET https://registry.npmjs.org/ms/0.3.0
cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm http 304 https://registry.npmjs.org/diff/1.0.2
npm http 304 https://registry.npmjs.org/jade/0.26.3
npm http 304 https://registry.npmjs.org/growl
npm http 304 https://registry.npmjs.org/debug
npm WARN package.json [email protected] No README.md file found!
npm http 304 https://registry.npmjs.org/ms/0.3.0
npm http 304 https://registry.npmjs.org/mkdirp/0.3.3
cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c
cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c
npm http GET https://registry.npmjs.org/mkdirp/0.3.0
npm http 304 https://registry.npmjs.org/mkdirp/0.3.0
ar rcs libhiredis.a net.o hiredis.o sds.o async.o
make[1]: Leaving directory `/app/node_modules/strider-simple-worker/_work/strider-nodejs-redis-test/node_modules/hiredis/deps/hiredis'
node-waf configure build
make: node-waf: Command not found
make: *** [all] Error 127
sh: gmake: not found
npm ERR! [email protected] preinstall: `make || gmake`
npm ERR! `sh "-c" "make || gmake"` failed with 127
npm ERR! 
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the hiredis package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     make || gmake
npm ERR! You can get their info via:
npm ERR!     npm owner ls hiredis
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 2.6.32-347-ec2
npm ERR! command "/app/bin/node" "/app/node_modules/strider-simple-worker/node_modules/npm/bin/npm-cli.js" "install"
npm ERR! cwd /app/node_modules/strider-simple-worker/_work/strider-nodejs-redis-test
npm ERR! node -v v0.8.12
npm ERR! npm -v 1.1.65
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /app/node_modules/strider-simple-worker/_work/strider-nodejs-redis-test/npm-debug.log
npm ERR! not ok code 0
[STRIDER] Prepare failed; exit code: 1

Make Strider require()'able as a library

This is related to #28 and #18. We want to enable people to make packages which depend on Strider and whatever other extensions or services they like - in addition to making it run standalone.

Ideally, you'd be able to do something like:

var strider = require('strider')

// Optionally pass in config object and a httpServer instance
var server = strider(config, server)

server.start()

Other git hosts

Preface: this is an unashamed feature request. Feel free to disregard.

It would be beyond awesome if I could add other git hosts (for example, gitlab or bitbucket.) Is this on the roadmap?

Allow plugin registerBlock to be async.

At the moment the registerBlock stuff has to be sync because that's the way swig does it. This isn't ideal, as it means you can't do any data level stuff in the blocks.

Ideally we can make it async - here are some thoughts:

Currently: Swig Custom tag uses actual swig context. Because of the way swig works (generating code that appends to a string on compile) it isn't possible to make the function async.
Pluses: Fairly Simple.

Option 2:

Instead of using consolidate.swig as the express engine, write our own. It would behave similarly, but on render it would:

  • Work out which plugins were required.
    • How? Need to call render?
    • Can we find out on Compile?
      • Nope - logic itself isn't determined at that point - what if plugin is in 'if'
    • need to call render twice?

Project config page has too many round trips on initial load

Each pane in the project config loads data from its own AJAX API endpoint. This results in the page taking a number of seconds to fully load.

@peterbraden has an idea to consolidate initial payload into the HTML response. This means AJAX calls should be unnecessary and latency will be much lower to render page.

Allow additional execution build.js defined in package.json

I wonder how one can hook in build script before the tests are run. The docs state that strider clones the repo and then calls "npm test".

I've got the following template dir structure
|-bin
|-design
|-docs
|-src
|---public
|-----css
|-----img
|-----js
|---routes

Before I deploy to Heroku I want to run a build script for backend and front end code and copy the optimised files into bin and then deploy bin directory to Heroku.

Thanks for any help,
Patrick

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.