What is the difference between a Fisheye managed repository (GIT) and a GIT created repository?

So, my experience with the way FishEye handles Git repositories have been confusing and a bit frustrating. The one thing I noticed is the a FishEye managed repository will not index unless I use the http url. Pushing changes via other protocols will update the repository but will never get index. However, if I use a existing Git (created by Git) repository, FishEye will index my changes (not sure how frequently).

Also using Eclipse to push to via FishEye http url has not working, authentication not support. However, using a network share to the same repository works file except for what I mentioned above.

Any else have similiar experiences with FishEye and Git??

3 answers

1 accepted

Hi Cameron & Rob,

Thanks for the output - I've managed to reproduce the problem locally and nailed down the problem. It seems there's a bug in egit that causes it to fail to a 401 basic authentication challenge when there are multiple WWW-Authenticate headers defined and the one that it checks is not "Basic".

I'm just testing a workaround that reorders the WWW-Authenticate headers to keep egit happy. If the fix works I'll target FishEye 2.7.2 which should be available shortly. In the meantime, I'll also lodge a bug with the egit crew.

Edit: raised a bug against egit and a task to workaround it in FishEye. Please follow FE-3718 if you'd like to see track the fix in FishEye.

cheers,

Tim

Hi Rob,

It's intentional that you're prompted for authentication. Unless you've made the repository anonymously accessible, you will need to authenticate requests from the command line. You can check your permission settings in Adminsitration > Repository List > [Repository Name] > Permissions.

cheers,

Tim

Actually in my case it was the command line version of git on a MAC.

iMac:foobar kooper$ git --version
git version 1.7.6

I checked permissions and anonymous has "Can Read" permissions.

Hi Rob,

Do you have a proxy with basic authentication set up guarding that server? FishEye's Git servlet should definitely not be prompting you for authentication.

Would you mind raising a support request at https://support.atlassian.com in the FishEye project? The issue you're describing is a different concern to what this Answers thread is addressing, and I think would be better addressed in our suppot issue tracker.

Thanks,

Tim

Created an issue (FSH-6857) and yes i do have a webserver with proxy running in front of fisheye, but there should be no basic auth (as far as I can see). I can access all the other fisheye content without logging in. The only thing that asks for authentication is the GIT repositories behind fisheye.

Tim, you were correct. A night of sleep made me realize that I had in my apache.conf setup a locationmatch on /git which was triggered for fisheye and made it query for a password. Removing the location match fixed the issue.

Rob

Thanks for the update Rob - this may be a fairly common scenario for users migrating from apache managed repositories to FishEye.

I'll add a note to the docs to make sure others don't fall into this trap - thanks!

cheers,

Tim

Hi Cameron,

By default, managed repositories in FishEye don't have regular index updates enabled to conserve resources. Instead, FishEye automatically indexes repositories when you push to it via the FISHEYE/git/your-repository.git URL. This means your changes will show up more or less instantly when you push.

However, if you're exposing your Git repository by some other method (network share, apache, gitolite, etc..) you'll need to enable Updates for the repository - there's documentation for this here.

However, you should also be able to use EGit to push and pull directly from the FishEye HTTP(S) Git URL using basic authentication. When you clone a git project into Eclipse, make sure you select HTTPS and enter your credentials. If you've already cloned using SSH, you can convert it using the following procedure:

1. Go to the Git Repositories view

2. Select the origin you want to pull from (fisheye), right-click, and select Configure Push.

3. Click "Change" on URI, select the protocol "https" and enter your username and password.

Note it is strongly recommended to configure SSL for your FishEye instance if you're going to be working with managed Git repositories.

cheers,

Tim

Thanks for the tidbit on the Updates for the repository. That will solve that issue.

I still can't get Egit to connect using basic authentication. When I try to push to the URL I get, error "An internal Exception occurred during push: http://<redacted>.com:8060/git/PLR.TEST.git: authentication not supported". Interesting enough I can leave the password blank (or with a user/passwrd) for the clone and it completes successfully (sort of). The odd part is that after the project is cloned I get a red 'X' " Please select a repository from the list" and they is no repository to select. I have to do another import and select the local cloned repository.

I'll try HTTPS tomorrow instead of HTTP, and see if I have more successful with HTTP. I might stick with the network share as I'm in a Windows environment and that would keep from having to change the password (using LDAP) when we're forced to changed it per Active Directory policy.

Any other ideas would be helpful, if not to me than hopefully to someone else that runs into this issue.

Thanks!

Thanks for the update Cameron - do you see any errors in the server logs?

Which version of Eclipse/Egit are you using? I'll have a play around and see if I can reproduce this locally.

cheers,

Tim

EGit version 1.1.0.201109111618

Eclipse version 3.6.1.r361_v20100909 (Flash Builder 4.5.1)

No errors were recorded for authentication... I might have to turn on HTTP logging or something.

Thanks

Clone: Response

HTTP/1.1 200 OK
Expires: Fri, 01 Jan 1980 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
Content-Type: application/x-git-upload-pack-advertisement
Content-Length: 264
Server: Jetty(6.1.26)

001e# service=git-upload-pack
000000a3f8f717c746bb67f0c5cd24d2081d0d6395705d9b HEAD�multi_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed no-done
003ff8f717c746bb67f0c5cd24d2081d0d6395705d9b refs/heads/master
0000

Push: Response

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="FishEye Managed Repository"
WWW-Authenticate: OAuth realm="http%3A%2F%2F<redacted>.com%3A8060"
Connection: close
Server: Jetty(6.1.26)

You must be authenticated to use this service.

I run into the same problem. I have crucible 2.7.1 installed under ubuntu. I created a repository and when I try to clone (or connect to it using a browser) it will popup an authorization dialog. I did a export GIT_CURL_VERBOSE=1 to see some mesages. Attached is the output:

iMac:foobar kooper$ git clone https://opensource.ncsa.illinois.edu/fisheye/git/TEST.git
Cloning into TEST...
* Couldn't find host opensource.ncsa.illinois.edu in the .netrc file; using defaults
* About to connect() to opensource.ncsa.illinois.edu port 443 (#0)
*   Trying 141.142.227.5... * Connected to opensource.ncsa.illinois.edu (141.142.227.5) port 443 (#0)
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* 	 subject: C=US; postalCode=61801; ST=IL; L=Urbana; O=University of Illinois; OU=Urbana-Champaign Campus; CN=opensource.ncsa.illinois.edu
* 	 start date: 2011-09-14 00:00:00 GMT
* 	 expire date: 2014-09-13 23:59:59 GMT
* 	 subjectAltName: opensource.ncsa.illinois.edu matched
* 	 issuer: C=US; O=Internet2; OU=InCommon; CN=InCommon Server CA
* 	 SSL certificate verify ok.
> GET /fisheye/git/TEST.git/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.6
Host: opensource.ncsa.illinois.edu
Accept: */*
Pragma: no-cache

* The requested URL returned error: 401
* Closing connection #0
Username: 

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Friday in Agile

SIL Simplified - A beginner's guide to Simple Issue Language and how to use it

As a Jira admin, looking for ways to expand your Jira functionality, you may have stumbled across people using and referring to this thing called SIL. Contrary to what some may think, SIL is not the ...

60 views 0 1
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you