Strider-CD/strider-github

Github auth callback url issue

boo1ean opened this issue · 22 comments

Seems like strider-github doesn't use SERVER_NAME to build github auth callback url.

It always redirects me to localhost.

Bitbucket integration works well though.

I have this same issue.. i'm trying to figure out how I am supposed to configure this.

@midgethoen have you updated your github plugin in the Strider "Plugins" page?

Also having this issue

Same here (using strider 1.7.5 and strider-github 2.1.2)

Found a workaround. Use the following ENVs to configure github:

PLUGIN_GITHUB_APP_ID
PLUGIN_GITHUB_APP_SECRET

Along with SERVER_NAME. Looks like there is a check for plugins, which are
found by the PLUGIN_<pluginname> env prefix and then Github config is fixed. Will look into this some more later.


Hum, you're probably already doing this. When does the callback not work, at what step in Strider?

Could someone post how they start strider, with the envs (you can blank them out if they are sensitive)?

export SERVER_NAME = "https://strider.scapp.io"
export DB_URI = [my_mongo_uri]
export SMTP_HOST = "smtp.mailgun.org"
export SMTP_USER = [my_mailgun_username]
export SMTP_PASS = [my_mailgun_password]
NODE_ENV=production npm start

^ ok yes you are missing the two ENVs for setting up the github plugin, see #55 (comment) and the readme.

Hit this while doing some Nginx proxy shenanigans, and exporting SERVER_NAME worked after realizing that it needs to be set to the publicly-facing connection, not the internal one. I wanted to have my Strider instance available on port 80 - probably could just set Strider to export port 80 instead of doing this Nginx stuff...

I am using this upstart script.

server {
    listen 80;
    server_name 123.456.1.2;

    access_log  /var/log/nginx/strider.access.log;
    error_log  /var/log/nginx/strider.error.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://123.456.1.2:4000;
        proxy_redirect off;
    }
}

... and the problem was that the upstart script should have exported http://123.456.1.2, without the port.

On a side note, I'm not able to upgrade the system's strider-github package because the strider user doesn't auto-sudo. Weird.

@alexfernandez could you put a console.log(rc) here (after the if): https://github.com/Strider-CD/strider/blob/master/lib/libconfig.js#L69 and run the app and post the results (make sure to obscure sensitive info) here.

The problem is that Strider is changing the env variable SERVER_NAME to strider_server_name here. I have fixed it with this PR: #59.

That is how rc works, so it shouldn't be a problem. Try master with something like DEBUG=strider:config PLUGIN_GITHUB_TEST=test SERVER_NAME=blah npm start

You should get something like:

{
  "logging": {
    "exitOnError": true,
    "file_enabled": false,
    "console": {
      "level": 0,
      "colorize": true,
      "timestamp": true
    },
    "console_enabled": true
  },
  "viewpath": "/Users/iradchenko/sandbox/strider/lib/views",
  "host": "0.0.0.0",
  "port": 3000,
  "server_name": "blah",
  "db_uri": "mongodb://localhost/strider-foss",
  "smtp_host": "",
  "smtp_port": 587,
  "smtp_user": "",
  "smtp_pass": "",
  "smtp_from": "Strider <noreply@stridercd.com>",
  "enablePty": false,
  "extpath": "node_modules",
  "session_secret": "8L8BudMkqBUqrz",
  "github_app_id": "",
  "github_secret": "",
  "cors": false,
  "body_parser_limit": false,
  "_": [],
  "stubSmtp": true,
  "plugins": {
    "github": {
      "test": "test",
      "hostname": "blah"
    }
  }

You are right, the change referenced above is unnecessary.

The problem was that, if you use a domain different than localhost:3000, you need to add your own developer integration as explained here. Novice error, but it shows as a redirect to http://localhost:3000 since this is the default declared callback URL for the default client ID. Hope this helps someone else.

This is still an issue. I've tried the solution above and it does not work. Still getting localhost:3000 in my callback URL.

Did you update to 1.7.6?

Running 1.7.6 yes.

Bitbucket is working fine, but Github not so much.

So I cannot reproduce this issue. I'll try do a fresh setup this weekend. Any help in narrowing down where the issue is, would be very appreciated.

Sorry, I've got it to work now. Misplaced characters in ENV.

By starting the application by using SERVER_NAME=http://my.address PLUGIN_GITHUB_APP_ID=<myAppID> PLUGIN_GITHUB_APP_SECRET=<myAppSecret> node bin/strider I got it to work.

Might be worthwhile to update the README and state that ID and SECRET must be present for it to work, instead of optional.

The should be optional as of 1.7.6.. will look into that.

@knownasilya sry, I missed your question and should have updated my question anyway. Yes, I upgraded the github plugi, which -- I believe -- fixed the issue for me.

JKY commented

@asayuki , it works

FYI - I was running strider 1.7.7 and everything worked fine with the basic env vars (no github_app_id or secret). I ended up reinstalling and got strider v1.8.0 and now it's required that I set github_app_id & github_secret in order for github plugin to work.