Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-18298

Jenkins (Github Plugin) post-commit hook fails to build with ssh config aliases

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • github-plugin
    • None
    • Ubuntu 12.10

      I have several private GitHub repos that I need to build. I'm using deployment keys and a config file for SSH to let the Jenkins user know what key to use for each repo. In order to get Jenkins to work with GitHub in this fashion, I had to change the repository URL to point to the host alias. So, it looks like:

      git@myalias.github.com:myorg/repo.git

      This allows me to initiate a build from Jenkins, which is able to checkout the code from github successfully.

      I need to initiate builds from GitHub when code is committed. I setup everything and tested the webhook. I saw the payload come in successfully in the logs. When I commit code to the repo, I get the following error: "FINE: Skipped <repo> because it doesn't have a matching repository."

      If I change my repository URL back to git@github.com:myorg/repo.git I get a match on the repo after code commit, but then the jenkins user can't checkout the code from GitHub because it doesn't know what SSH key to use.

      Is there a way to get this to work? Thanks.

          [JENKINS-18298] Jenkins (Github Plugin) post-commit hook fails to build with ssh config aliases

          IT Archmerc created issue -
          IT Archmerc made changes -
          Description Original: I have the same issue as closed bug #594. There wasn't a resolution in the follow-up that resolves this issue for me.

          I have several private GitHub repos that I need to build. I'm using deployment keys and a config file for SSH to let the Jenkins user know what key to use for each repo. In order to get Jenkins to work with GitHub in this fashion, I had to change the repository URL to point to the host alias. So, it looks like:

          git@myalias.github.com:myorg/repo.git

          This allows me to initiate a build from Jenkins, which is able to checkout the code from github successfully.

          I need to initiate builds from GitHub when code is committed. I setup everything and tested the webhook. I saw the payload come in successfully in the logs. When I commit code to the repo, I get the following error: "FINE: Skipped <repo> because it doesn't have a matching repository."

          If I change my repository URL back to git@github.com:myorg/repo.git I get a match on the repo after code commit, but then the jenkins user can't checkout the code from GitHub because it doesn't know what SSH key to use.

          Is there a way to get this to work? Thanks.
          New: I have several private GitHub repos that I need to build. I'm using deployment keys and a config file for SSH to let the Jenkins user know what key to use for each repo. In order to get Jenkins to work with GitHub in this fashion, I had to change the repository URL to point to the host alias. So, it looks like:

          git@myalias.github.com:myorg/repo.git

          This allows me to initiate a build from Jenkins, which is able to checkout the code from github successfully.

          I need to initiate builds from GitHub when code is committed. I setup everything and tested the webhook. I saw the payload come in successfully in the logs. When I commit code to the repo, I get the following error: "FINE: Skipped <repo> because it doesn't have a matching repository."

          If I change my repository URL back to git@github.com:myorg/repo.git I get a match on the repo after code commit, but then the jenkins user can't checkout the code from GitHub because it doesn't know what SSH key to use.

          Is there a way to get this to work? Thanks.

          David Campos added a comment -

          I have the exact same problem.
          There is any workaround or solution?

          Cheers,
          David

          David Campos added a comment - I have the exact same problem. There is any workaround or solution? Cheers, David
          David Campos made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          David Campos made changes -
          Status Original: In Progress [ 3 ] New: Open [ 1 ]

          Seth Roby added a comment -

          I, too, have this issue. It seems that the plugin should fall back on the Project's top-level GitHub project property and check that as well. Alternatively, the code seems to provide for an override to the hookUrl, but I see no way to configure the override (or even where the method is invoked).

          Seth Roby added a comment - I, too, have this issue. It seems that the plugin should fall back on the Project's top-level GitHub project property and check that as well. Alternatively, the code seems to provide for an override to the hookUrl , but I see no way to configure the override (or even where the method is invoked).

          Same issue on a windows machine. I configured also aliases. They are working when running the job manually. However when pushing code to github it doesn't seem initiate the build.

          Marco Franssen added a comment - Same issue on a windows machine. I configured also aliases. They are working when running the job manually. However when pushing code to github it doesn't seem initiate the build.

          Justin Hammond added a comment - - edited

          Also have this problem. Would like for a fix! I was looking at the code and maybe if we could optionally include the "GitHub project" as a GitHubRepositoryNameContributor we could then ignore aliases and whatnot. If I knew anything about making jenkins plugins I'd test it out for you.

          Justin Hammond added a comment - - edited Also have this problem. Would like for a fix! I was looking at the code and maybe if we could optionally include the "GitHub project" as a GitHubRepositoryNameContributor we could then ignore aliases and whatnot. If I knew anything about making jenkins plugins I'd test it out for you.

          Keith Stevens added a comment -

          Just got bitten by this, as well. Any workaround or proposed fix?

          Keith Stevens added a comment - Just got bitten by this, as well. Any workaround or proposed fix?

          Alex Ehlke added a comment -

          I too ran into this issue. I'm making a temporary fix in my own fork that just ignores hostname when checking whether a repo matches another given repo, since for us this does not matter.

          I think a proper fix has to somehow resolve the hostname to its actual hostname - I looked into this and the only way I can see to do it would be to parse the SSH config file, but that is awful (and there are several files that could set this). There must be a better way, but at this point I'm out of my depth on the solution.

          Alex Ehlke added a comment - I too ran into this issue. I'm making a temporary fix in my own fork that just ignores hostname when checking whether a repo matches another given repo, since for us this does not matter. I think a proper fix has to somehow resolve the hostname to its actual hostname - I looked into this and the only way I can see to do it would be to parse the SSH config file, but that is awful (and there are several files that could set this). There must be a better way, but at this point I'm out of my depth on the solution.

            Unassigned Unassigned
            itarchmerc IT Archmerc
            Votes:
            9 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: