2014-05-17 3 views
0

로컬 호스트에 gitlab 서버를 설치했습니다. 내가 gitlab 6.8 버전을 설정했습니다 나는 밀어 수 없습니다. 내 자식 원격 그럼 난 오류가 이상하지 않습니다로컬 gitlab 서버에 푸시 할 수 없습니다.

[email protected]:repositories/myrepo 

에 경로를 추가 변경하면 나는 다음과 같은 오류를

fatal: 'myrepo' does not appear to be a git repository 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

을 얻고있다. gitlab.yml 설정 파일을 확인했습니다. repo 경로를 올바르게 지정했습니다. 왜이 오류가 발생합니까?

경로를 변경 한 후. 밀어 넣으려고하면 다음과 같은 오류가 발생합니다.

Counting objects: 21, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (10/10), done. 
Writing objects: 100% (21/21), 1.99 KiB | 0 bytes/s, done. 
Total 21 (delta 0), reused 0 (delta 0) 
remote: GitLab: You are not allowed to access master! 
remote: error: hook declined to update refs/heads/master 
To [email protected]:repositories/maven-archetype/example.git 
! [remote rejected] master -> master (hook declined) 
error: failed to push some refs to '[email protected]:repositories/maven-archetype/example.git' 

나는 지난 7 일 동안이 문제에 직면하고 있습니다. 이것에 대한 모든 자료를 읽었습니다. 대답 질문

http://stackoverflow.com/questions/23697580/cant-push-to-gitlab-repository-from-local-server-hooks-declined 

버그 인 것 같습니다. 설치 당시 루비 소스를 컴파일하여 루비와 파이썬 lib가 /usr/local/lib 경로에 있습니다. LD_LIBRARY_PATH를 설정했지만 문제가 계속됩니다. 나는 ldap을 사용하지 않으므로 ldap의 모든 문자열을 큰 따옴표로 묶어야합니다. 어떻게이 오류를 해결할 수 있습니까?

내 gitlab.yml 설정 파일

# # # # # # # # # # # # # # # # # # 
# GitLab application config file # 
# # # # # # # # # # # # # # # # # # 
# 
# How to use: 
# 1. copy file as gitlab.yml 
# 2. Replace gitlab -> host with your domain 
# 3. Replace gitlab -> email_from 

production: &base 
    # 
    # 1. GitLab app settings 
    # ========================== 

    ## GitLab settings 
    gitlab: 
    ## Web server settings (note: host is the FQDN, do not include http://) 
    host: gitserver 
    port: 80 
    https: false 

    # Uncomment and customize the last line to run in a non-root path 
    # WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this. 
    # Note that four settings need to be changed for this to work. 
    # 1) In your application.rb file: config.relative_url_root = "/gitlab" 
    # 2) In your gitlab.yml file: relative_url_root: /gitlab 
    # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab" 
    # 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab" 
    # To update the path, run: sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production 
    # 
    # relative_url_root: /gitlab 

    # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') 
    # user: git 

    ## Email settings 
    # Email address used in the "From" field in mails sent by GitLab 
    email_from: [email protected] 

    # Email address of your support contact (default: same as email_from) 
    support_email: [email protected] 

    ## User settings 
    default_projects_limit: 10 
    # default_can_create_group: false # default: true 
    # username_changing_enabled: false # default: true - User can change her username/namespace 
    ## Default theme 
    ## BASIC = 1 
    ## MARS = 2 
    ## MODERN = 3 
    ## GRAY = 4 
    ## COLOR = 5 
    # default_theme: 2 # default: 2 


    ## Users management 
    # default: false - Account passwords are not sent via the email if signup is enabled. 
    # signup_enabled: true 
    # 
    # default: true - If set to false, standard login form won't be shown on the sign-in page 
    # signin_enabled: false 


    # Restrict setting visibility levels for non-admin users. 
    # The default is to allow all levels. 
    #restricted_visibility_levels: [ "public" ] 

    ## Automatic issue closing 
    # If a commit message matches this regular expression, all issues referenced from the matched text will be closed. 
    # This happens when the commit is pushed or merged into the default branch of a project. 
    # When not specified the default issue_closing_pattern as specified below will be used. 
    # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) #(\d+)' 

    ## Default project features settings 
    default_projects_features: 
     issues: true 
     merge_requests: true 
     wiki: true 
     wall: false 
     snippets: false 
     visibility_level: "private" # can be "private" | "internal" | "public" 

    ## Repository downloads directory 
    # When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory. 
    # The default is 'tmp/repositories' relative to the root of the Rails app. 
    # repository_downloads_path: tmp/repositories 

    ## External issues trackers 
    issues_tracker: 
    # redmine: 
    # title: "Redmine" 
    # ## If not nil, link 'Issues' on project page will be replaced with this 
    # ## Use placeholders: 
    # ## :project_id  - GitLab project identifier 
    # ## :issues_tracker_id - Project Name or Id in external issue tracker 
    # project_url: "http://redmine.sample/projects/:issues_tracker_id" 
    # 
    # ## If not nil, links from /#\d/ entities from commit messages will replaced with this 
    # ## Use placeholders: 
    # ## :project_id  - GitLab project identifier 
    # ## :issues_tracker_id - Project Name or Id in external issue tracker 
    # ## :id    - Issue id (from commit messages) 
    # issues_url: "http://redmine.sample/issues/:id" 
    # 
    # ## If not nil, linkis to creating new issues will be replaced with this 
    # ## Use placeholders: 
    # ## :project_id  - GitLab project identifier 
    # ## :issues_tracker_id - Project Name or Id in external issue tracker 
    # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new" 
    # 
    # jira: 
    # title: "Atlassian Jira" 
    # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id" 
    # issues_url: "http://jira.sample/browse/:id" 
    # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa" 

    ## Gravatar 
    gravatar: 
    enabled: true     # Use user avatar image from Gravatar.com (default: true) 
    # plain_url: "http://..."  # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm 
    # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm 

    # 
    # 2. Auth settings 
    # ========================== 

    ## LDAP settings 
    # You can inspect a sample of the LDAP users with login access by running: 
    # bundle exec rake gitlab:ldap:check RAILS_ENV=production 
    ldap: 
    enabled: false 
    host: '_your_ldap_server' 
    port: 636 
    uid: 'sAMAccountName' 
    method: 'ssl' # "tls" or "ssl" or "plain" 
    bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' 
    password: '_the_password_of_the_bind_user' 
    # If allow_username_or_email_login is enabled, GitLab will ignore everything 
    # after the first '@' in the LDAP username submitted by the user on login. 
    # 
    # Example: 
    # - the user enters '[email protected]' and '[email protected]' as LDAP credentials; 
    # - GitLab queries the LDAP server with 'jane.doe' and '[email protected]'. 
    # 
    # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to 
    # disable this setting, because the userPrincipalName contains an '@'. 
    allow_username_or_email_login: true 

    # Base where we can search for users 
    # 
    # Ex. ou=People,dc=gitlab,dc=example 
    # 
    base: '' 

    # Filter LDAP users 
    # 
    # Format: RFC 4515 
    # Ex. (employeeType=developer) 
    # 
    user_filter: '' 


    ## OmniAuth settings 
    omniauth: 
    # Allow login via Twitter, Google, etc. using OmniAuth providers 
    enabled: false 

    # CAUTION! 
    # This allows users to login without having a user account first (default: false). 
    # User accounts will be created automatically when authentication was successful. 
    allow_single_sign_on: false 
    # Locks down those users until they have been cleared by the admin (default: true). 
    block_auto_created_users: true 

    ## Auth providers 
    # Uncomment the following lines and fill in the data of the auth provider you want to use 
    # If your favorite auth provider is not listed you can use others: 
    # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations 
    # The 'app_id' and 'app_secret' parameters are always passed as the first two 
    # arguments, followed by optional 'args' which can be either a hash or an array. 
    # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html 
    providers: 
     # - { name: 'google_oauth2', app_id: 'YOUR APP ID', 
     #  app_secret: 'YOUR APP SECRET', 
     #  args: { access_type: 'offline', approval_prompt: '' } } 
     # - { name: 'twitter', app_id: 'YOUR APP ID', 
     #  app_secret: 'YOUR APP SECRET'} 
     # - { name: 'github', app_id: 'YOUR APP ID', 
     #  app_secret: 'YOUR APP SECRET', 
     #  args: { scope: 'user:email' } } 



    # 
    # 3. Advanced settings 
    # ========================== 

    # GitLab Satellites 
    satellites: 
    # Relative paths are relative to Rails.root (default: tmp/repo_satellites/) 
    path: /home/git/gitlab-satellites/ 

    ## Backup settings 
    backup: 
    path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) 
    # keep_time: 604800 # default: 0 (forever) (in seconds) 

    ## GitLab Shell settings 
    gitlab_shell: 
    path: /home/git/gitlab-shell/ 

    # REPOS_PATH MUST NOT BE A SYMLINK!!! 
    repos_path: /home/git/repositories/ 
    hooks_path: /home/git/gitlab-shell/hooks/ 

    # Git over HTTP 
    upload_pack: true 
    receive_pack: true 

    # If you use non-standard ssh port you need to specify it 
    # ssh_port: 22 

    ## Git settings 
    # CAUTION! 
    # Use the default values unless you really know what you are doing 
    git: 
    bin_path: /usr/bin/git 
    # The next value is the maximum memory size grit can use 
    # Given in number of bytes per git object (e.g. a commit) 
    # This value can be increased if you have very large commits 
    max_size: 5242880 # 5.megabytes 
    # Git timeout to read a commit, in seconds 
    timeout: 10 

    # 
    # 4. Extra customization 
    # ========================== 

    extra: 
    ## Google analytics. Uncomment if you want it 
    # google_analytics_id: '_your_tracking_id' 

    ## Piwik analytics. 
    # piwik_url: '_your_piwik_url' 
    # piwik_site_id: '_your_piwik_site_id' 

    ## Text under sign-in page (Markdown enabled) 
    # sign_in_text: | 
    # ![Company Logo](http://www.companydomain.com/logo.png) 
    # [Learn more about CompanyName](http://www.companydomain.com/) 

development: 
    <<: *base 

test: 
    <<: *base 
    gravatar: 
    enabled: true 
    gitlab: 
    host: gitserver 
    port: 80 
    issues_tracker: 
    redmine: 
     title: "Redmine" 
     project_url: "http://redmine/projects/:issues_tracker_id" 
     issues_url: "http://redmine/:project_id/:issues_tracker_id/:id" 
     new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new" 

staging: 
    <<: *base 

Gitlab 쉘 설정 파일

# GitLab user. git by default 
user: git 

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

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

# 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 

답변

0

나는 디버깅 마침내 수 오전 오류를 해결.

오류가 잘못 API 요청은 다음과 같이해야한다 생산 로그 에 ~/.ssh/authorized_key

보기에서 설정 SSH 키 때문, 마지막에 KEY_ID을 알 수 있습니다.

Started GET "//api/v3/internal/allowed?action=git-receive-pack&ref=master&project=myrepo&forced_push=false&oldrev=0000000000000000000000000000000000000000&newrev=34ddaaba32de91074e27a4cf3b9425a8dd92bbb2&key_id=4" 

여기서 key_id는 authorized_keys 파일과 동일해야합니다.

내 경우 추가 정보를 visit this

위해 나는 빼앗아 LD_LIBRARY_PATH를하지 않았다도 내가 gitlab.yml 파일에서 LDAP 구성에 문자열 주위에 따옴표를 변경했다. 이 오류는 gitlab이 사용자를 인증 할 수 없기 때문에 발생합니다. Gitlab은 ssh를 기반으로 인증합니다. 이 key_id는 사용자를 인증하는 데 사용됩니다.

관련 문제