Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 19

0
votes
answers
52 views
+10

詹金斯管道里面的碼頭裏面的Git不工作

1

我想在一個作爲詹金斯管道的一部分運行的碼頭容器裏面執行一些git查詢。 在Docker容器的外面,sshsgent工作正常,我可以訪問我的SCM沒有問題。在容器內部,我得到了主機密鑰驗證問題。
任何人都可以幫我解決我犯的錯誤嗎?詹金斯管道里面的碼頭裏面的Git不工作

script { 
    sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
    { 
     sh(""" 
      ssh -p 7999 [email protected] whoami 
     """) 
    } 
    docker.withRegistry('https://dockerhub.banana.com', 'banana-dockerhub-credential') 
    { 
     docker.image('banana_release_base').pull() 
     docker.image('banana_release_base').inside(
     ''' 
      -v /system:/system -v /tmp:/tmp --privileged -u 0 
     ''' 
     ) 
     { 
      sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
      { 
       sh(""" 
        echo $SSH_AUTH_SOCK 
        ssh -p 7999 [email protected] whoami 
       """) 
      } 
     } 
    } 
} 

首先WHOAMI呼叫輸出:

[docker_git_test] Running shell script 
+ ssh -p 7999 [email protected] whoami 
d42967b44abe31d6 

第二呼叫(和回聲)在搬運工容器輸出:

[docker_git_test] Running shell script 
+ echo /tmp/ssh-dSoDZMggpAU1/agent.13 
/tmp/ssh-dSoDZMggpAU1/agent.13 
+ ssh -p 7999 [email protected] whoami 
Host key verification failed 
沙发
0
2

主機鍵驗證失敗

S容器中的SH連接無法驗證主機的(bitbucket-eng-gpk1.com)身份,這是它失敗的原因。當詹金斯提供一個容器時,它會試圖限制外部世界的事物數量,比如環境變量和文件系統的位置,這些構建步驟會被隔離。在您的容器中,它在進行連接之前未接受VCS的主機密鑰,並且它不是交互式終端,因此會失敗。

有幾種不同的方法來處理這個問題。下面是一些我能想到的把我的頭頂部:

  • 忽略主機密鑰檢查(明白這個(安全隱患12)) - 使用StrictHostKeyChecking選項來禁用檢查。 UserKnownHostsFile選項可以在連接其他地方管理接受的鍵時使用。這也可以通過~/.ssh/config文件中的每個主機完成。

    ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 7999 [email protected] whoami 
    
  • 建立SSH密鑰進入多克爾圖像(脆)

  • 掛載~/.ssh/config文件到從與
  • 主機的容器從主「安裝」一些SSH配置文件,或者使用一些其他配置文件提供程序已將驗證的主機密鑰裝入容器(可能使用Config File Provider Plugin
+0

謝謝!我以錯誤的方式看待:/我認爲主持人阻止了我的鑰匙。 已添加到.ssh/config文件中,它現在正在工作:) 再次感謝 –

+0

@ user2961873在這種情況下,您應該看到喜歡'denied:public key'(或類似的東西)的東西來向您顯示身份驗證失敗。 – mkobit

板凳
0
1

只是爲了顯示我的工作。在mkobits的建議上,我在sh命令中添加了兩行來編寫解決問題的ssh配置文件。

sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
     { 
      sh(""" 
       echo $SSH_AUTH_SOCK 
       mkdir ~/.ssh 
       echo 'Host *
 StrictHostKeyChecking no' > ~/.ssh/config 
       ssh -p 7999 [email protected] whoami 
      """) 
     } 

它可以內置到dockerfile中,但由於我使用共享映像,所以這種方式適合我的目的。

編輯:我已經加入到dockerfile如此,我們在這裏:

RUN useradd -r -u 1000 builder 
COPY config /home/builder/.ssh/config 
RUN chown builder:builder /home/builder/.ssh/* 
USER builder 
ENTRYPOINT ["/bin/bash"] 

添加非root用戶,這樣文件不會留在工作區的根。 需要運行chown,並將添加的文件添加到作爲所有者的根。 獲取添加的配置文件是:

Host * 
    StrictHostKeyChecking no 

乾杯!

0
votes
answers
20 views
+10

根據用戶名限制讀取和寫入訪問普通git存儲庫的分支

0

我們正在構建一個評估過程,並希望限制特定用戶對特定分支的讀寫訪問權限。根據用戶名限制讀取和寫入訪問普通git存儲庫的分支

有「普通」用戶對所有內容具有讀寫訪問權限(這些用戶將對答案進行評分),並且將會有給定數量的評估用戶應該只具有讀訪問權限和讀/寫權限包含其名稱的分行(例如assessment-john.doe)。我們的評估中心將有一個包含500個用戶和密碼的列表,並將爲每個候選人提供來自該列表的一組憑證。

短版:我想配置git的,即:

  • 普通用戶(如tobichris)有:
    • 讀&寫訪問掌握
    • (理想只)讀訪問分支開始assessment-
  • 作爲sessment用戶(例如assessment-1assessment-2)具有:
    • 讀訪問掌握
    • 到具有相同 名稱作爲用戶分支讀/寫訪問(例如assessment-1
    • 到其他分支沒有訪問。

我們要使用純git的(和ssh)沒有像gitlab或github上的犯規需要此任務的任何版本控制GUI服務器。

編輯:要說清楚:讀寫控制更重要的是寫控制。 (除了主人)。

+0

任務*不*需要某種應用程序的管理權限,因爲掛鉤'git'本身並不知道任何有關「用戶」或「訪問控制」的內容。像Gitlab這樣的工具可以完全解決你的問題,如果你不喜歡它,除了用它來管理SSH密鑰,你甚至不需要與Web UI進行交互。 – larsks

+0

但是,如果你想開發自己的解決方案,很久以前我寫了答案[這裏](https://stackoverflow.com/a/28402532/147356)和[這裏](https://stackoverflow.com/a/8248062/147356)和[這裏](https://stackoverflow.com/a/40454688/147356)處理類似的問題。 – larsks

+0

我們在我們公司使用gitlab enterprise,我認爲這些分支保護是企業功能的一部分。但通過我們的企業gitlab運行幾百名評估候選人需要大量用於企業服務器的用戶許可證。我也不想設置ssh密鑰。我想盡可能讓用戶儘可能簡單,但代碼不應公開,其他人可以複製它的解決方案。 – Tobi

沙发
0
2

您無法通過git的內置功能滿足這些要求。訪問控制留給主機環境。

您可以僞造某種級別的寫入權限(通過使用簽名提交和掛鉤來拒絕違反授權規則的推送),但可能不完全符合您的要求;而有限的閱讀權限是正確的;你基本上必須使用單獨的回購。

您可以編寫自己的服務器來執行訪問控制,也可以使用現有的服務器;但是你對現有主機軟件的描述(暗示它的主要功能是提供一個GUI)是錯誤的;並且你的斷言你的任務不需要一個是不正確的,因爲訪問控制是任務的一部分。

板凳
0
0

我現在已經完成:

  • 克隆一箇中央存儲庫
  • 條除主任何分支機構
  • 重命名大師與分支名用戶
  • 副本存儲庫中的一些掛鉤
  • 給出正確的用戶讀取存儲庫的訪問權
  • 將用戶添加到允許運行特定s的組通過sudo CRIPT作爲另一個用戶
  • 寫推動分支到中央存儲庫的用戶的一推,它的存儲庫
0
votes
answers
73 views
+10

如何通過Githubs GraphQL API存檔存儲庫?

2

我發現你可以通過REST API來做到這一點,但理想情況下我想堅持我的程序中的GraphQL API。我一直在搜索API Documentation,但我也很不穩定,並且對GraphQL很陌生,所以我似乎無法找到一種方法來修改存儲庫並設置歸檔狀態。如何通過Githubs GraphQL API存檔存儲庫?

我只需要歸檔,不需要解壓縮。

沙发
0
0

目前不可能,但您可以通過創建一個新帖子here並以標記schema-request來請求功能。

6
votes
answers
53 views
+10

Integration between Github Issues and Netbeans

Is posible to integrate the project issue tracker of Github into Netbeans to automatize the add, change or remove issues trough the IDE.

Thanks

沙发
+30

目前的答案似乎是否定的(至少我在郵件列表甚至bug數據庫中找不到任何內容)

因此我為增強功能隨意註冊並投票。

板凳
+30

實際上並不需要進行此集成,因為您可以通過git註釋評論或關閉GitHub問題。

示例:

 重新實現功能XYZ如上所述在#123中刪除了foo中的額外空格。修復#148處理與bar的集成。#99和octocat / bar#20   

閱讀此博客文章

0
votes
answers
58 views
+10

如何在PhpStorm中設置Bitbucket 2017

0

術語Git,存儲庫,提交和推送對我來說是全新的,但我想爲我的WordPress網站建立一個版本控制系統。如何在PhpStorm中設置Bitbucket 2017

我使用PhpStorm並想使用Bitbucket - 我該怎麼做?

(我花了一個下午回答上述問題,因此將在下面分享)

沙发
0
0

第1步:使用此guide安裝到位桶Linky。注Bitbucket Connector不再被開發。

步驟2:在Bitbucket上設置一個新的私有存儲庫。如果您使用的是Wordpress,我建議爲您正在開發的每個插件創建一個存儲庫,而不是整個安裝。暫時保留空白。

第3步在PHPStorm中創建一個新項目或使用現有項目。單擊VCS>創建Git存儲庫。選擇您的項目的路徑。

第4步現在存儲庫已正確設置,然後我使用Finder將所有文件添加到本地存儲庫文件夾中。

第5步選擇您的所有項目 - 應該用紅色文本 - 然後單擊VCS> Git>添加。這會將這些文件添加到項目中,但尚未將它們推送到遠程服務器。

第6步現在選擇您的項目的根目錄,然後單擊VCS> Git> Commit Directory。

第7步轉到VCS> Git>遠程並添加一個新的遠程。您需要點擊'我將從頭開始',然後複製URL(https://[email protected]/youraccount/yourrepo.git)並將其粘貼到PHPStorm中,從而在Bitbucket中獲得此信息。

步驟8單擊VCS> Git> Push。這實際上將文件移動到服務器。

希望能幫助一些人 - 讓我多年想弄清楚。您現在已經掌握了許多關於如何使用Git的指南。

0
votes
answers
45 views
+10

How to apply SVN diff to Git?

I have my projects in 2 repositories. One under SVN and one under Git. Whenever I change something in SVN I want to do the same thing to the Git repository.

Say I make a change to SVN repository, producing revision 125. How would I apply these same changes to my Git repository (assuming my Git repository is up to date with revision 124).

Thank you.

0
votes
answers
41 views
+10

無法從intellij上的github上拉項目

1

我想拉一個朋友剛剛在github上推送的一個朋友與intellij Idea的更新。我打開我的計算機上的項目,簽出正確的分支,去VCS - > git - >拉,選擇正確的分支,但沒有附加任何東西。無法從intellij上的github上拉項目

我決定繼續github,以驗證在存儲庫上應用的更改,是的,存儲庫在github中是最新的,但我無法執行更改。

我也試圖複製該項目,並重新創建IntelliJ IDEA的一個新的項目,但它不會更改...

有人能解釋我如何解決我的問題,並獲得該項目的所有更改?

+0

如果您的存儲庫的本地副本是最新的,則拉動將不起作用。 'git fetch -v'說什麼? – Makoto

+0

i我使用的終端來自Intellij Idea 它返回我: 從「另一個我正在工作的項目」 = [最新]分支機構想使用 - > origin /「同一分支」 = [最新] anotherBranch - > origin/master 這是否意味着我試圖從一個隨機存儲庫中拉東西? – JerDum

沙发
0
0

這是否意味着我試圖從隨機存儲庫中取出某些東西?

爲了避免這種情況,最簡單的解決方法是:

  • git clone GitHub的回購在另一個文件夾
  • 打開該文件夾與IntelliJ IDEA的:它將識別項目(和遠程Git的回購)

OP JerDum增加in the comments

存儲在.gitconfig中的一些附加信息,以及這些信息會干擾Intellij Idea以及終端中的Git。

+0

我試圖做到這一點,但我克隆了錯誤的存儲庫。事實上,它正在克隆我的一所學校工作的倉庫,而不是我想要的東西。我去了gitlab,看看有沒有什麼變化,我在我的學校項目中添加了一個分支。我下載ZIP文件來保存我的工作,但它不會改變我的git的問題:/ – JerDum

+0

@JerDum一旦克隆,你看到正確的URL在它打字的時候'git的遠程-v'?也許這只是獲得正確分支的問題:你在做'git branch -avv'時看到了嗎? – VonC

+0

嗨, 當我在終端克隆,我注意到它要求我用我的gitlab帳戶(和我想克隆的項目在github上)標識自己。 然後,當我寫「混帳遠程-v」,還給了我這樣的事情: 「致命:這個,沒有這個家長資源庫是一個git存款」 – JerDum

0
votes
answers
60 views
+10

本地git存儲庫到bitbucket存儲庫

-1

我正在從svn回購到bitbucket回購遷移過程。本地git存儲庫到bitbucket存儲庫

在這一刻,我有所有svn回購當地git回購。我可以在本地git回購中顯示所有svn回購歷史記錄的提交和用戶日誌。

在下一步嘗試一些小時後到當地的git回購上傳到遠程到位桶回購與命令

git push -u origin master 

,沒有與用戶不匹配錯誤。

Please ensure that the commit contains the correct Committer EMail 

這是強制性的前 推動創建所有commiters用戶作爲到位桶回購的用戶,所有用戶都連接到JIRA。

這是一個巨大的svn回購有舊commiters,現在不在公司工作,他們不是jira用戶,我應該如何處理? 謝謝。

+0

我有一種感覺[this thread](https://stackoverflow.com/questions/28425670/git-error-expected-committer-email-but-found-karanxyz-com/28425852?noredirect=1#comment45194115_28425852)可能是相關的,儘管解決方案並非真正可用。你是否能夠查看bitbucket日誌並追查那裏的問題? –

+0

問題已解決,啓用了標記** **另一個提交檢查器** ** bitbucket repo的** settings/hooks **菜單。 – LennyBaxter

沙发
0
0

提交者用戶未與bitbucket用戶或jira鏈接。這是由電子郵件格式引起的主要不正確。

要檢查提交者的電子郵件,您可以使用git log -1(或git log如果有多個提交者),提交將與格式如下顯示:

Author: user <[email protected]> 
Date: Tue Sep 26 02:58:34 2017 +0000 

Commit message 

如果您遷移SVN通過git svn clone與git,如上所述,提交者的電子郵件地址通常不能正確導入。

您可以更改提交者電子郵件的所有提交如下:

git filter-branch --commit-filter ' 
     if [ "$GIT_AUTHOR_EMAIL" = "current email" ]; 
     then 
       GIT_AUTHOR_EMAIL="new email"; 
       git commit-tree "[email protected]"; 
     else 
       git commit-tree "[email protected]"; 
     fi' HEAD 

這將需要幾分鐘的時間在更換電子郵件地址,提交歷史。之後,你可以再次推。

75
votes
answers
31 views
+10

Steps to Troubleshoot “django.db.utils.ProgrammingError: permission denied for relation django_migrations”

What are some basic steps for troubleshooting and narrowing down the cause for the "django.db.utils.ProgrammingError: permission denied for relation django_migrations" error from Django?

I'm getting this message after what was initially a stable production server but has since had some changes to several aspects of Django, Postgres, Apache, and a pull from Github. In addition, it has been some time since those changes were made and I don't recall or can't track every change that may be causing the problem.

I get the message when I run python manage.py runserver or any other python manage.py ... command except python manage.py check, which states the system is good.

up vote 73 down vote accepted favorite
沙发
+730
+50

我能夠根據問題基本上,需要將postgres特權重新授予db用戶。就我而言,那是我在虛擬環境設置文件中設置的用戶。從命令行(或postgres)運行以下命令,其中 mydatabase dbuser 應該是您自己的數據庫和用戶名:

  psql mydatabase -c“在SCHEMA public to dbuser的所有表格中全部授予;” psql mydatabase -c“在SCHEMA public to dbuser中對所有序列進行全部授權;” psql mydatabase -c“
     
			
        

哇,謝謝你!一直在尋找解決方案。當我已經遷移了數據庫然後我嘗試設置geodjango時,我遇到了這個問題。 - qasimalbaqali '17年3月9日22:35

當我用一個用戶創建數據庫然後更改數據庫的所有者時,我遇到此問題。這些表保留了舊所有者導致此錯誤的原因。修復我刪除了數據庫,使用posgres用戶重新創建它,為新用戶授予所有權限並運行遷移。 - 壁虎於18年3月24日18:20

我不知道怎麼做,更容易重新創建整個數據庫=) - geckos 4月2日'18在19:57

關於在Saleor上安裝Saleor的Saleor官方文檔的人可能需要這個答案。我做到了。 - Rik Schoonbeek 3月8日19:27

+20
<p>如@ user3062149所述,這可能是由於嘗試遷移Django的psycopg2用戶不是表所有者的數據庫表而引起的。例如,如果你的項目有<code> settings.py </ code> </ p> <pre> <code> DATABASES = {'default':{'USER':'my_username',#... < / code> </ pre> <p>您需要檢查Django遷移中涉及的表是否由<code> my_username </ code>所有。要在<code> psql </ code>中執行此操作,可以使用<code> SELECT * FROM pg_tables ORDER BY tableowner; </ code>。這使用視圖<a href="https://www.postgresql.org/docs/current/static/view-pg-tables.html" rel="nofollow noreferrer"> <code> pg_tables </ code> < / a>,“提供對數據庫中每個表的有用信息的訪問”。<code> pg_tables </ code>是Postgres的<a href="https://www.postgresql.org/docs/current/static/catalogs.html" rel="nofollow noreferrer"> <em>系統的一部分目錄</ em> </a>,即關係數據庫管理系統存儲模式元數據的位置。</ p> <p>假設有問題的表歸<code> other_username </ code>所有(不是<code > my_username </ code>)。</ p> <p>要更新所有者,您需要使用<code> - username = other_username </ code>調用<code> psql </ code>,然後更改所有者:</ p> <pre> <code> ALTER TABLE public。&lt; table_name&gt; 所有者都是my_username; </代碼> </ PRE>
0
votes
answers
32 views
+10

重新安裝anaconda後,我無法安裝theano

0

重新安裝anaconda後,我使用此命令行得到此信息。這是爲什麼?重新安裝anaconda後,我無法安裝theano

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git 

(C:UsersAMAnaconda3) C:UsersAMDocuments>pip install --upgrade --no- 
deps git+git://github.com/Theano/Theano.git 
Collecting git+git://github.com/Theano/Theano.git 
    Cloning git://github.com/Theano/Theano.git to c:usersamappdatalocal	empp 
ip-273x97zk-build 
    Error [WinError 2] The system cannot find the file specified while 
executing command git clone -q git://github.com/Theano/Theano.git C:UsersAMAppDataLocal 
Temppip-273x97zk-build 
Cannot find command 'git' 

此外,有什麼區別

之間

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git 

&

pip install git+git://github.com/Theano/Theano.git 
我不知道該用哪一個,如此混亂。

我正在運行python 3.6,我必須降級到3.5嗎?

謝謝。

沙发
0
0

輸出的錯誤是:

Cannot find command 'git' 

安裝的git(我認爲有一個Windows PowerShell中的Git),並嘗試後

+0

它可以運行該命令。謝謝!順便說一下,這個git的東西是什麼?我不認爲我之前安裝過它,但它以某種方式工作。太奇怪了... – yomoko