Question

I've installed GitLab on Centos 6.5, and am receiving the following error:

Running /home/git/gitlab-shell/bin/check
Check GitLab API access: FAILED. code: 302
gitlab-shell self-check failed
  Try fixing it:
  Make sure GitLab is running;
  Check the gitlab-shell configuration file:
  sudo -u git -H editor /home/git/gitlab-shell/config.yml
  Please fix the error above and rerun the checks.

Checking GitLab Shell ... Finished

I've included the full check output as well as my /home/git/gitlab-shell/config.yml file below. Also, GitLab is in fact running:

[root@vps gitlab]# service gitlab status
unicorn (pid  30184) is running...
sidekiq (pid  30340) is running...
[root@vps gitlab]#

I have tested connecting to the server, and could do so as verified using ssh -T git@example.com. I am not sure if it is related, but I am unable to push the the repository, and receive the following error.

[Michael@devserver example]$ ssh -T git@example.com
Address 123.456.789.01 maps to ve6.phpwebhosting.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Welcome to GitLab, Anonymous!
[Michael@devserver example]$ git remote -v
origin  git@example.com:root/example.git (fetch)
origin  git@example.com:root/example.git (push)
[Michael@devserver example]$ git push -u origin master
Address 123.456.789.01 maps to ve6.phpwebhosting.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Access denied.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[Michael@devserver example]$

How do I fix the above error? Is it related to not being able to push to the repository?

Thank you

[root@vps gitlab]# sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment ...

Git configured for git user? ... yes

Checking Environment ... Finished

Checking GitLab Shell ...

GitLab Shell version >= 1.9.3 ? ... OK (1.9.3)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
Satellites access is drwxr-x---? ... yes
update hook up-to-date? ... yes
update hooks in repos are links: ...
Michael Smith / example ... repository is empty
Running /home/git/gitlab-shell/bin/check
Check GitLab API access: FAILED. code: 302
gitlab-shell self-check failed
  Try fixing it:
  Make sure GitLab is running;
  Check the gitlab-shell configuration file:
  sudo -u git -H editor /home/git/gitlab-shell/config.yml
  Please fix the error above and rerun the checks.

Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... yes
Number of Sidekiq processes ... 1

Checking Sidekiq ... Finished

Checking LDAP ...

LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab ...

Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
Database contains orphaned UsersGroups? ... no
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... no
  Try fixing it:
  Redownload the init script
  For more information see:
  doc/install/installation.md in section "Install Init Script"
  Please fix the error above and rerun the checks.
projects have namespace: ...
Michael Smith / example ... yes
Projects have satellites? ...
Michael Smith / example ... can't create, repository is empty
Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.8.3)

Checking GitLab ... Finished

config.yml:

[root@vps gitlab]# cat /home/git/gitlab-shell/config.yml
# GitLab user. git by default
user: git

# Url to gitlab instance. Used for api calls. Should end with a slash.
gitlab_url: "http://example.com/"

http_settings:
#  user: someone
#  password: somepass
#  ca_file: /etc/ssl/cert.pem
#  ca_path: /etc/pki/tls/certs
  self_signed_cert: true

# Repositories path
# Give the canonicalized absolute pathname,
# REPOS_PATH MUST NOT CONTAIN ANY SYMLINK!!!
# Check twice that none of the components is a symlink, including "/home".
repos_path: "/home/git/repositories"

# File used as authorized_keys for gitlab user
auth_file: "/home/git/.ssh/authorized_keys"

# Redis settings used for pushing commit notices to gitlab
redis:
  bin: /usr/bin/redis-cli
  host: 127.0.0.1
  port: 6379
  # socket: /tmp/redis.socket # Only define this if you want to use sockets
  namespace: resque:gitlab

# Log file.
# Default is gitlab-shell.log in the root directory.
# log_file: "/home/git/gitlab-shell/gitlab-shell.log"

# Log level. INFO by default
log_level: INFO

# Audit usernames.
# Set to true to see real usernames in the logs instead of key ids, which is easier to follow, but
# incurs an extra API call on every gitlab-shell command.
audit_usernames: false
[root@vps gitlab]#
Was it helpful?

Solution

How do I fix the above error? Is it related to not being able to push to the repository?

In /home/git/gitlab-shell/config.yml, change

gitlab_url: "http://mydomain.com/"

to

gitlab_url: "https://mydomain.com"

And, yes it is related to not being able to push.

As far as I can see, it works perfect now.

OTHER TIPS

I had the same error, and after having a look, I figured out that gitlab-shell was doing API calls over http. In my case my gitlab host wasn't able to solve its own dns name.

So I found 2 ways to fix this :

  • change your gitlab_url in gitlab-shell/config.yml to http://localhost:8080/
  • or add your gitlab_url in your /etc/hosts "127.0.0.1 {gitlab_url}"

Instantly you can check if it works doing the following command :

ssh -T git@{your_gitlab_server}

If works you should see :

"Welcome to GitLab, {gitlab_username}!"

If it still doesn't :

"Welcome to GitLab, Anonymous!"

Hope this will help !

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top