
2015-06-24 &nbs•∏p; | 發布者:梁國(guó©✔)芳 |₽↕♦♦ 查看(kàn):3320次
IT新聞它擁有(yǒu)與GitHub類似的(de)功能(né★✘©ng),能(néng)夠浏覽源代碼,管理(lǐ♠δ¶)缺陷和(hé)注釋。可(kě)以管理(lǐ)團隊對(d≈♦↔¥uì)倉庫的(de)訪問(wèn),它非常易于浏覽提交過的(de)&₹Ω♣版本并提供一(yī)個(gè)文(wén)件(jià α'n)曆史庫。團隊成員(yuán)可(kě)以利用(yònγ←g)內(nèi)置的(de)簡單聊天程序<☆÷(Wall)進行(xíng)交流。它還(hái)提供一(yī)個™α™(gè)代碼片段收集功能(néng)可(k ☆σ≥ě)以輕松實現(xiàn)代碼複用(yòng),便于日(r£✘ ≤ì)後有(yǒu)需要(yào)的(de)時(shí)候進行(xí±§↕ng)查找。
GitLab進入了(le)新的(de)裡(↕&lǐ)程碑——GitLab 7.12正→÷"式到(dào)來(lái)。以下(xià)為(©γ$wèi)官方發布日(rì)志(zhì)摘譯:
這(zhè)次的(de)發布帶來(lái)了(lα₹e)大(dà)量的(de)新特性和(hé)修複≤✘φ,主要(yào)是(shì)面向Community Eβ ≠dition (CE)、Enterprise Edi☆γtion (EE)和(hé)Continuous Integra₹αtion (CI)。在CE和(hé)EE中,GitLab開(kā "₽i)始支持使用(yòng)SAML身(shēn)份驗證,這(zhè)π≈ 一(yī)點曾被廣泛要(yào)求,我們也(yě)非常 >高(gāo)興CERN參與了(le)貢獻。在GitLab En ≈terprise Edition中,你(nǐ)可(kě)以邀請(¶ ✘★qǐng)多(duō)個(gè)人(rén)來(lΩ₽•ái)批準某個(gè)合并請(qǐng)₩≤×求。在GitLab CI中,我們推出了(le)®•.gitlab-ci.yml文(wén)件(jiàn),使得(de)更容易管理✔$(lǐ)job 腳本。
這(zhè)個(gè)月(yuè)的(de)MVδP很(hěn)好(hǎo)選擇,他(tā)是(shì)來(lái©₩∏)自(zì)CERN的(de)Alexandre Losse↑πnt,Alexandre 貢獻了(le)他(tā)們寫的(de)SAML代 →≠≈碼。我們很(hěn)高(gāo)興有(yǒu↕←₩)這(zhè)個(gè)貢獻,以及确信你(n€σǐ)會(huì)受用(yòng)。感謝(xiè)Alexan¥∏dre!
SAML 支持
由于得(de)到(dào)Alexandre的(d↓∑≤e)貢獻,GitLab現(xiàn)在可(kě)以成為(wèi)π♥&≥一(yī)個(gè)SAML 2.0 Service Provider。這€★(zhè)使得(de)GitLab 以SA₹π•ML 2.0 Identity Provider(IdP,如(r↕¥≠ú)Microsoft Active Director∑'₽©y Federation Servicesε∑∞)身(shēn)份來(lái)提供一(yī✔πα)個(gè)用(yòng)戶認證機(jī)制(zhì)。
參見(jiàn)如(rú)何設置SAML集成的(de)文(wén&★×α)檔。
Web Hook評論
現(xiàn)在有(yǒu)了(le)一(yī)個(gè★©™)新的(de)可(kě)用(yòng)的(de)Web Hook,它将連γ∑接所有(yǒu)的(de)評論。你(nǐ)可(kě)以用(yòng)它來(l•≥δái)增加額外(wài)的(de)自(zì)動化(huà)和(h£₽☆é)集成至GitLab。例如(rú),當有(yǒu)人(rén)評論一(yī✔'≠ )個(gè)合并請(qǐng)求時(shí),你(nǐ)可(k↔↑α§ě)以把它連接至內(nèi)部的(de)系統,或者€Ω你(nǐ)可(kě)以根據評論內(nèi)容運行(xí♣Ωng)一(yī)個(gè)特定的(de)"§↕₩構建。
更好(hǎo)的(de)Web Editor性能(♠néng)
每一(yī)個(gè)GitLab新版本都(dōu)比過去(q≠↑σσù)的(de)更快(kuài),但(dàn)這(zhè)個(gè)版本中∞'↑©,我們做(zuò)了(le)一(yī)些(xiē)其他(tā)的(de)工 ✔ ★(gōng)作(zuò)。簡而言之,不(bù)再₽∞是(shì)通(tōng)過克隆一(yī)個(gè)空(kōng)的(deγγ₩©)倉庫至一(yī)個(gè)臨時(shí)的(≤₹de)位置來(lái)執行(xíng)Web界面代碼更改,在那(nà∏×σ)兒(ér)提交,然後Push更新回至空(kōng)的(de)倉庫∏±,而是(shì)我們現(xiàn)在可(kě♥¥)以直接提交更改至空(kōng)倉庫。這(zhè)顯著提高(gāo)了(le)☆ Web Editor的(de)性能(néng)¥"。
UI更新
每個(gè)月(yuè)我們都(dōu)嘗試和(hé)調整我們的(de)UI,∞✘©₽讓它變得(de)更好(hǎo)、更美(měi)觀和(hé)更加直觀,∞這(zhè)個(gè)月(yuè)依然這(zhè)麽做•γ"(zuò)了(le)。
我們已經遷移你(nǐ)的(de)個(gè)人(rén)資料頁,将它鏈接到(σdào)底部左下(xià)角,以及更新各個(gè)UI部分(fēn)的(deε×≠)外(wài)觀。

Merge Request Approv•$ers(僅支持EE版本)
如(rú)果你(nǐ)想确保你(nǐ)最喜愛(ài)項目≈π在合并請(qǐng)求前可(kě)以有(yǒu)超過一(yī)個(gè)人(↕×rén)的(de)review,在新版本©∑λ中,你(nǐ)就(jiù)可(kě)以配置一(yī)個(gè)最低(™∑÷dī)Merge Request批準的(de)數(shù↑γ<♣)值。


Git Hook來(lái)檢查Maximum File SizΩ↓"£e(僅支持EE版本)
我們增加了(le)一(yī)個(gè)新的(de)Gi∏ t Hook,允許你(nǐ)限制(zhì)即将提交的(de)大(dà)☆≈§Ω文(wén)件(jiàn)。你(nǐ)可(kě)≈ ↓以很(hěn)簡單地(dì)設置一(yī)個(gè)門(mén)檻,✘↓βGitLab 将會(huì)阻止所有(yǒu)包含太大(dà)文(wén)σΩ件(jiàn)的(de)Git pushes。
LDAP Group Sync改進(僅支持EE版本)$ φλ
我們在GitLab EE上(shàng)改進了(le)LDAP Group同步§ 。當同步時(shí)它會(huì)檢查更多(duō)的(de)特殊屬性 ¥,防止因為(wèi)同步而删除最後組裡(lǐ)的(de)owner。
.gitlab-ci.yml文(wén)件(jiàn)替代jobs(CI)
在5月(yuè)6日(rì),我們用(yòng)存儲在代碼倉庫中的(de).gitlab-ci.yml文(wén)件(jiàn)替換GitLab CI jobs。☆♥ 優點被列出在公告中,但(dàn)主要(yào)的(de)₽↓>•是(shì):
上(shàng)面的(de)事(shì)情不(bù)可(kě)能(néng)β"用(yòng)類似Jenkins腳本實現(xiàn₹¶β→),因為(wèi)它與整個(gè)項目相(xiàng)關聯。
它是(shì)如(rú)何工(gōng)作(zuò'€¶)
GitLab發送web-hook和(hé).gitlab-ci.yml內(nèi)容至CI Coordinator,基于™ε♠YAML文(wén)件(jiàn)來(lái)創建builds。反過來(lá$€i),這(zhè)些(xiē)builds€∞↑通(tōng)過Runners來(lái)執行(xí↔≠&ng)。
這(zhè)裡(lǐ)是(shì)一(yī)個(gè)YAML文(wén)件÷≥→↓(jiàn)例子(zǐ):
before_script: - gem install bundler - bundle install - bundle exec rake db:create rspec: script: "rake spec"λ§ tags: - ruby - postgres only: - branches spinach: script: "rake sp∏↔inach" tags: - ruby - mysql except: - tags staging: script: "cap deαploy staging" type÷★β≥: deploy tags: -₽α₹ capistrano - debian except: - stable production: script: -€ ← cap deploy production - cap notify type: deploy tags: - capistrano - debian only: - master - /^deploy-.*$/
我們包含了(le)一(yī)個(gè)Lint工(gōn♦←•¥g)具來(lái)檢查你(nǐ)的(de)語法。它現(xiàn)在可(♦∏kě)以在每一(yī)個(gè) GitLab CI中獲得(de),通(t♦&ōng)過url /lint的(de)方式。如(rú)♣≤§果你(nǐ)在push 你(nǐ)的(de)代碼後 .gitlab-ci.yml出現(xiàn)問(wèn)題,你(nǐ)↑₩将能(néng)夠在提交頁中看(kàn)到(dào)錯(cuò)誤←•₽。
before_script 部分(fēn)将在每一(yī)個(→<gè)job前被執行(xíng)。你(nǐ)可(∑♥kě)以通(tōng)過添加type: deploy從(cóng)而實現(xiàn)定義一(yī)≤<≤✘個(gè)部署job。每個(gè)job包含的(de)參數>€≠(shù),例如(rú)script (shell script)、tags (隻有(yǒu)運行(xíng)這(zhè)個(gè)ta®↔σ•g/tags才允許選擇這(zhè)個(gè)構建),π∏以及only或except 參數(shù)來(lái)定義>≠允許運行(xíng)構建的(de)分(fēn)支名稱。€✔↓only 部分(fēn)優先于 “except&rdq★≈♠↕uo;。參見(jiàn):Configuration of your bu↕×₽÷ilds with .gitlab-ci.yml
新版本的(de)靈感來(lái)自(zì)已經使用(yòng)YAMLφ☆α±文(wén)件(jiàn)的(de)Travis CI和(hé)Cir≥ ♥cle CI的(de)工(gōng)作(zΩ<★uò)。首先,我們考慮使用(yòng)開<♣♠®(kāi)源的(de)Travis CI模塊,但('™≤≤dàn)是(shì)我們最終還(hái)是(shì)自(φ↑zì)己編譯了(le),所以我們可(kě)以提供:
因為(wèi)這(zhè)些(xiē),&ldqu ₹o;one image per arch→∑∏itecture and that&rsq✔$uo;s it”不(bù)再成立。∞>∏當你(nǐ)能(néng)夠tag runners和(hé)jobsσ←,這(zhè)讓你(nǐ)在分(fēn)配一(yī)個(gè)job給指定的γ§↓(de)runner時(shí)擁有(yǒu)更多(duō)的→♣↑α(de)自(zì)由。我們希望新版本具有('€yǒu)著(zhe)Jenkins的(de)↔>™≤自(zì)由和(hé)Travis CI的(de)用(yòn"•g)戶友(yǒu)好(hǎo)。
遷移
當升級到(dào)GitLab 7.12,你(nβ≤÷↑ǐ)的(de)CI job腳本将被自(zì)動轉變成∞♥♥一(yī)個(gè)示例.gitlab-ci.yml 文(wén)件(jiàn),你(• >nǐ)可(kě)以在GitLab CI項目頁查看(kàn★↔)和(hé)下(xià)載。
在push引發一(yī)個(gè)構建後'₹&↕,GitLab會(huì)從(cóng)倉庫的(de)根發送.gitlab-ci.yml 文(wén)件(jiàn)。如(rú)果不(bù)存在, Gi₹ ☆tLab CI 将利用(yòng)已生(shē≠γ∑ng)成的(de)示例腳本。這(zhè)意味著(zhe)你(nǐ)的(deα" )項目沒有(yǒu)更新好(hǎo)。然而,我們建議(yì)你(nǐ)盡®✘<快(kuài)添加.gitlab-ci.yml 文(wén)件(jiàn)至你('↔≈nǐ)的(de)倉庫的(de)根。
你(nǐ)應該添加.gitlab-ci.yml 文(wén)件(jiàn)至你(nǐ)項目的(de)所有↓≈®(yǒu)分(fēn)支中,特别是(shì)正進行(xíng✘∏)接受提交中的(de)Git pushes。
BETA: Secret Variables for runneα↓<r(CI)
我們增加了(le)一(yī)個(gè)GitLab ± ♣★CI的(de)新功能(néng),允許你(nǐ)面向runners設置€∏<私密變量。Secret Variables将↕φ通(tōng)過runner來(lái)設置至環境中,且可(kě)從(cónσβ g)構建日(rì)志(zhì)中隐藏。使用(yòng)它們的(de)密鑰、se∑≤≥✘cret keys或者其他(tā)任何東(dōng)西(∏×$xī)。确保你(nǐ)的(de)runner版本為(wèi)0.4或更≥€$高(gāo)版本。
目前,此功能(néng)處于測試階段。添加至GitLab CI 7.12π¶≤ 的(de)Secrets被存儲在他(tā)的(d¥$ε←e)SQL數(shù)據中,并沒有(yǒu)加密。我們将在7.13中進行(xδ∑™&íng)加密。

其他(tā)變化(huà):
此版本有(yǒu)太多(duō)的(de)改進,包括安全★×γ補丁,所有(yǒu)更新請(qǐng)參α¥✘§見(jiàn)更新日(rì)志(zhì)。
升級要(yào)點
此版本僅是(shì)微(wēi)小(xiǎo)的(de)遷>±≤移,如(rú)果你(nǐ)目前使用(yòng)GitLab 7.11 ∏↓CE或EE,你(nǐ)直接可(kě)以在線升級7.12。
如(rú)果你(nǐ)針對(duì)在 /etc/gitlab/gitlab.rb 中的(de) gitlab_rails['secret_token']₩ו、gitlab_shell['secret_token']或 gitlab_ci['secret_token'] 設置一(yī)個(gè)自(zì)定義'∑•的(de)值,那(nà)麽請(qǐng)仔細檢查在&n $πbsp;gitlab.rb 中的(de)是(shì)否值匹配/etc/gitlab/gitlab-sec↕→rets.json 中的(de)值。如(rú)果一(yī)些(xiē)值不(bù)匹配≈∏,從(cóng)gitlab-secrets.json 複制(zhì)值到(dào)此前升級至GitLab 7.12的(δ₹de) gitlab.rb。
在7.12之前,你(nǐ)在 γ∑gitlab.rb 中任何的(de) secret_token 值實際上(shàng)是(shì)忽略∏∑↔了(le)支持所有(yǒu)的(de)gitlab-secrets.json 。
在大(dà)多(duō)數(shù)的(de)Gi∞₩&&tLab Omnibus安裝中,‘secr©×↓"et_token’僅在gitlab-secrets.json 中設置,并且不(bù)需要(yào)任何的(d₽γ✘≠e)操作(zuò)。
這(zhè)個(gè)變化(huà)僅适用(yòng)于Git↔₩αLab Omnibus程序包。從(cóng)源頭的♦♦(de)安裝不(bù)受影(yǐng)響。
當運行(xíng)gitlab-ctl reconfigure omnibus-gitlab 時Ω♦&÷(shí),需要(yào)決定系統是(shì)否使用(≠αyòng)SysV初始化(huà)、Upstart 或S↓σ↔ystemd,再安裝gitlab-runsvdir 服務。
在這(zhè)個(gè)版本之前,這(zhè)個(gè)決定是(sα ✔hì)通(tōng)過觀察該平台,操作(zuò)系統版本和(hé)系統默認的(δ™de)初始化(huà)是(shì)什(shén)麽來(lái)實現≈✔(xiàn)。
這(zhè)是(shì)不(bù)可(kě)靠的(≈"de),由于omnibus-gitlab被安裝在多(du₽© 'ō)個(gè)OS代碼上(shàng),導緻處理(lǐ)這(zhè)個(&>∏gè)變得(de)複雜(zá)和(hé)易于出錯(cuòφ<)。
從(cóng)這(zhè)個(gè)版本開(kā₽β♥&i)始,這(zhè)樣的(de)做(zuò)法已經被替換了(le),★₹ 檢測是(shì)通(tōng)過查詢OS初始化(huà)₽≤系統來(lái)完成的(de)。基于這(zhè)個(β Ωgè)響應gitlab-runsvdir 服務已經被安裝了(le)。
如(rú)果你(nǐ)偶然遇到(dào)一(yī)些(♦¶xiē)如(rú)omnibus-gitlab README中描述的(de)問(wèn)題,請(qǐng)嘗試₹✘÷使用(yòng)一(yī)些(xiē)變通(tōng)方案,并在om'₽>αnibus-gitlab問(wèn)題跟蹤器(qì)彙總提交問(wèn)α↑題。
繼Logjam漏洞,我們更新了(le)推薦的(de)SSL加®φ↑→密套件(jiàn)。詳情參加:GitLab.com and Logjam
安裝
如(rú)果你(nǐ)正創建一(yī)個(gè)新的(de±∑)GitLab安裝請(qǐng)參見(jiàn)GitLab下(xià)載頁。
更新
Enterprise Edition
上(shàng)面提到(dào)的(de)僅支持EE的(de)特性,如(rú∑∞$§) LDAP group支持也(yě)可(kě&♠δ∑)以在GitLab Enterprise Edit'↓↓ion中找到(dào)。完整列表參見(jiàγ&n):GitLab EE
