您好,登錄后才能下訂單哦!
gerrit是一套代碼審核環境,安裝前提需要安裝java環境,mysql環境,nginx環境。這里我為了簡單直接用lnmp一鍵安裝,剩下就是java了。
lnmp不會安裝的可以參考一下用shell腳步一鍵搭建lnmp環境實戰
安裝前需要準備的文件如下:(http://pan.baidu.com/s/1jIwJSz0,提取密碼:fue3)
mysql-connector-java-5.1.21.jar
bcpkix-jdk15on-1.52.jar
gerrit-2.11.3.war
#############################gerrit其他版本下載地址####################
如果選擇其他版本,可以參考一下鏈接:http://www.cnblogs.com/kevingrace/p/5624122.html#commentform
準備工作完成,下面開始安裝。
首先安裝的是java
先刪除系統自帶的java
[root@wulaoer ~]# yum remove java [root@wulaoer ~]# ls anaconda-ks.cfg install.log.syslog lnmp1.3-full lnmp-install.log install.log jdk-8u101-linux-x64.tar.gz lnmp1.3-full.tar.gz [root@wulaoer ~]# mkdir /usr/local/jvm [root@wulaoer ~]# tar -zxf jdk-8u101-linux-x64.tar.gz -C /usr/local/jvm/
我已經下載好了,直接傳上來了,設置java環境變量,
[root@wulaoer ~]# vi /etc/profile ...............省略部分..................... export JAVA_HOME=/usr/local/jvm/jdk1.8.0_101 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH [root@wulaoer ~]# source /etc/profile #生效java環境
檢查java和javac環境
[root@wulaoer ~]# java 用法: java [-options] class [args...] (執行類) 或 java [-options] -jar jarfile [args...] (執行 jar 文件) 其中選項包括: -d32 使用 32 位數據模型 (如果可用) -d64 使用 64 位數據模型 (如果可用) -server 選擇 "server" VM ..................省略部分................................
javac環境
[root@wulaoer ~]# javac 用法: javac <options> <source files> 其中, 可能的選項包括: -g 生成所有調試信息 -g:none 不生成任何調試信息 -g:{lines,vars,source} 只生成某些調試信息 -nowarn 不生成任何警告 -verbose 輸出有關編譯器正在執行的操作的消息 -deprecation 輸出使用已過時的 API 的源位置 .....................省略部.................................
java環境,到此安裝完成。
第二,創建gerrit數據庫,并自定義編碼為utf-8
[root@wulaoer ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.48-log Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database gerritdb CHARACTER SET utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.07 sec) mysql> grant all on gerritdb.* to 'gerrituser'@'localhost' identified by 'gerritpass'; Query OK, 0 rows affected (0.06 sec)
第三、創建gerrit賬戶,并把安裝文件放到gerrit家目錄下。
創建gerrit用戶
[root@wulaoer ~]# useradd gerrit [root@wulaoer ~]# su - gerrit [gerrit@wulaoer ~]$
把文件拷貝到gerrit家目錄下
[root@wulaoer ~]# ll 總用量 713868 -rw-------. 1 root root 1431 6月 1 19:17 anaconda-ks.cfg -rwxr-xr-x. 1 root root 622849 7月 14 11:22 bcpkix-jdk15on-1.52.jar -rwxr-xr-x. 1 root root 45136951 7月 8 19:34 gerrit-2.11.3.war -rw-r--r--. 1 root root 27338 6月 1 19:16 install.log -rw-r--r--. 1 root root 7572 6月 1 19:15 install.log.syslog -rw-r--r--. 1 root root 181352138 7月 20 11:50 jdk-8u101-linux-x64.tar.gz -rwxr-xr-x. 1 root root 827942 7月 14 11:22 mysql-connector-java-5.1.21.jar
把文件拷貝到gerrit目錄下并給予權限
[root@wulaoer ~]# cp gerrit-2.11.3.war /home/gerrit/ [root@wulaoer ~]# mkdir -p /home/gerrit/gerrit_site/lib [root@wulaoer ~]# cp mysql-connector-java-5.1.21.jar /home/gerrit/gerrit_site/lib/ [root@wulaoer ~]# cp bcpkix-jdk15on-1.52.jar /home/gerrit/gerrit_site/lib/ [root@wulaoer ~]# chown -R gerrit.gerrit /home/gerrit/
第四、在gerrit賬戶下進行安裝
注意,這里選用了mysql數據庫,Verified,http認證代理,其他的都是默認
[root@wulaoer ~]# su - gerrit [gerrit@wulaoer ~]$ java -jar gerrit-2.11.3.war init -d ~/gerrit_site Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore *** Gerrit Code Review 2.11.3 *** *** Git Repositories *** Location of Git repositories [git]: *** SQL Database *** Database server type [h3]: mysql #選擇mysql Server hostname [localhost]: Server port [(mysql default)]: Database name [reviewdb]: gerritdb #數據庫名 Database username [gerrit]: gerrituser #數據庫用戶名 gerrituser's password : confirm password : #數據庫密碼 *** Index *** Type [LUCENE/?]: The index must be rebuilt before starting Gerrit: java -jar gerrit.war reindex -d site_path *** User Authentication *** Authentication method [OPENID/?]: http Get username from custom HTTP header [y/N]? SSO logout URL : *** Review Labels *** Install Verified label [y/N]? y *** Email Delivery *** SMTP server hostname [localhost]: SMTP server port [(default)]: SMTP encryption [NONE/?]: SMTP username : *** Container Process *** Run as [gerrit]: Java runtime [/usr/local/jvm/jdk1.8.0_101/jre]: Copy gerrit-2.11.3.war to /home/gerrit/gerrit_site/bin/gerrit.war [Y/n]? Copying gerrit-2.11.3.war to /home/gerrit/gerrit_site/bin/gerrit.war *** SSH Daemon *** Listen on address [*]: Listen on port [29418]: Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v151 If available, Gerrit can take advantage of features in the library, but will also function without it. Download and install it now [Y/n]? Renaming bcpkix-jdk15on-1.52.jar to .bcpkix-jdk15on-1.52.jar.backupDownloading http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar ... !! FAIL !! error: http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar: 302 Found Please download: http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar and save as: /home/gerrit/gerrit_site/lib/bcpkix-jdk15on-151.jar Press enter to continue Continue without this library [Y/n]? Generating SSH host key ... rsa(simple)... done *** HTTP Daemon *** Behind reverse proxy [y/N]? Use SSL (https://) [y/N]? Listen on address [*]: Listen on port [8080]: Canonical URL [http://localhost:8080/]: *** Plugins *** Installing plugins. Install plugin download-commands version v2.11.3 [y/N]? Install plugin reviewnotes version v2.11.3 [y/N]? Install plugin singleusergroup version v2.11.3 [y/N]? Install plugin replication version v2.11.3 [y/N]? Install plugin commit-message-length-validator version v2.11.3 [y/N]? Initializing plugins. No plugins found with init steps. Initialized /home/gerrit/gerrit_site
到了這里,gerrit安裝完成,下面開始啟動。
[gerrit@wulaoer ~]$ /home/gerrit/gerrit_site/bin/gerrit.sh start Starting Gerrit Code Review: FAILED
出現這種錯誤解決方法如下:
[gerrit@wulaoer ~]$ java -jar gerrit-2.11.3.war reindex -d /home/gerrit/gerrit_site [2016-09-06 10:22:27,387] INFO com.google.gerrit.server.git.LocalDiskRepositoryManager : Defaulting core.streamFileThreshold to 61m [2016-09-06 10:22:28,067] INFO com.google.gerrit.server.cache.h3.H2CacheFactory : Enabling disk cache /home/gerrit/gerrit_site/cache Reindexing changes: done Reindexed 0 changes in 0.0s (0.0/s) Warning: InterruptedException java.lang.InterruptedException at java.lang.Object.wait(Native Method) at java.lang.Thread.join(Thread.java:1253) at org.h3.util.MathUtils.getSecureRandom(MathUtils.java:104) at org.h3.util.MathUtils.secureRandomBytes(MathUtils.java:301) at org.h3.store.FileLock.setUniqueId(FileLock.java:309) at org.h3.store.FileLock.lockFile(FileLock.java:339) at org.h3.store.FileLock.lock(FileLock.java:133) at org.h3.engine.Database.open(Database.java:575) at org.h3.engine.Database.openDatabase(Database.java:236) at org.h3.engine.Database.<init>(Database.java:231) at org.h3.engine.Engine.openSession(Engine.java:56) at org.h3.engine.Engine.openSession(Engine.java:160) at org.h3.engine.Engine.createSessionAndValidate(Engine.java:139) at org.h3.engine.Engine.createSession(Engine.java:122) at org.h3.engine.Engine.createSession(Engine.java:28) at org.h3.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:323) at org.h3.jdbc.JdbcConnection.<init>(JdbcConnection.java:105) at org.h3.jdbc.JdbcConnection.<init>(JdbcConnection.java:90) at org.h3.Driver.connect(Driver.java:73) at com.google.gerrit.server.cache.h3.H2CacheImpl$SqlHandle.<init>(H2CacheImpl.java:636) at com.google.gerrit.server.cache.h3.H2CacheImpl$SqlStore.acquire(H2CacheImpl.java:604) at com.google.gerrit.server.cache.h3.H2CacheImpl$SqlStore.buildBloomFilter(H2CacheImpl.java:365) at com.google.gerrit.server.cache.h3.H2CacheImpl$SqlStore.open(H2CacheImpl.java:337) at com.google.gerrit.server.cache.h3.H2CacheImpl.start(H2CacheImpl.java:167) at com.google.gerrit.server.cache.h3.H2CacheFactory$1.run(H2CacheFactory.java:113) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) [2016-09-06 10:22:29,825] INFO com.google.gerrit.server.cache.h3.H2CacheFactory : Finishing 4 disk cache updates
啟動一次看看
[gerrit@wulaoer ~]$ /home/gerrit/gerrit_site/bin/gerrit.sh start Starting Gerrit Code Review: OK
如果出現
[gerrit@wulaoer ~]$ /home/gerrit/gerrit_site/bin/gerrit.sh start ** ERROR: GERRIT_SITE not set
解決方法:
在/home/gerrit/gerrit_site/bin/gerrit.sh啟動文件里添加下面一行,即指定gerrit2的路徑
GERRIT_SITE=/home/gerrit/gerrit_site
第五、配置gerrit
修改/home/gerrit/gerrit_site/etc/gerrit.config配置文件
[gerrit@wulaoer ~]$ vi gerrit_site/etc/gerrit.config [gerrit] basePath = git canonicalWebUrl = http://192.168.0.145:8081/ #nginx代理IP和端口 ........................................................... [httpd] listenUrl = http://*:8080/
nginx定義新的端口代理配置,把/usr/local/nginx/conf/nginx.conf復制一份到/usr/local/nginx/conf/vhost/下,更名為gerrit.conf,gerrit的配置文件修改如下。
[gerrit@wulaoer vhost]$ pwd /usr/local/nginx/conf/vhost [gerrit@wulaoer vhost]$ cat gerrit.conf server { listen 8081; #端口 server_name 192.168.0.145; #訪問IP index index.html index.htm index.php; location / { auth_basic "Gerrit Code Review"; auth_basic_user_file /home/gerrit/gerrit_site/etc/passwords; proxy_pass http://192.168.0.145:8080/;#默認的ip+端口 proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } }
AuthUserFile路徑為/home/gerrit/gerrit_site/etc/passwords
在nginx進程用戶默認的是www,無權訪問路徑需要給/home/gerrit賦予權限
[root@wulaoer ~]# setfacl -m g:www:rx /home/gerrit
溫馨提示:這里如果不賦予權限訪問提示500錯誤
[或者 setfacl -R -m u:www:rx /home/gerrit 上面是針對所屬組進行授權,這里可以針對用戶授權]
第六、創建用戶
在創建用戶的時候需要用到htpasswd,所以這里需要安裝一下:
[root@wulaoer ~]# yum -y install httpd
創建認證權限(就是登陸的時候用到的賬號和密碼)
注意:第一次加-c參數是為了創建系統管理員,不加-c是普通話用戶。
[root@wulaoer ~]# htpasswd -c /home/gerrit/gerrit_site/etc/passwords gerrit New password: Re-type new password: Adding password for user gerrit [root@wulaoer ~]# htpasswd /home/gerrit/gerrit_site/etc/passwords wulaoer New password: Re-type new password: Adding password for user wulaoer [root@wulaoer ~]# htpasswd /home/gerrit/gerrit_site/etc/passwords jenkins New password: Re-type new password: Adding password for user jenkins
這里創建了一個管理員gerrit,兩個普通用戶jenkins,wulaoer。兩個普通用戶會在另一個文章里做說明,大家現在不必過于在意。
重啟一下nginx服務和關閉防火墻。
[root@wulaoer ~]# /usr/local/nginx/sbin/nginx -s reload [root@wulaoer ~]# service iptables stop iptables:將鏈設置為政策 ACCEPT:filter [確定] iptables:清除防火墻規則: [確定] iptables:正在卸載模塊: [確定]
下面訪問http://192.168.0.145:8081,輸入創建的用戶信息即可登錄gerrit
以上是關于gerrit的搭建和簡單的配置。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
下面是郵箱的設置,原本在安裝的時候郵箱環節是默認安裝的,安裝后登錄gerrit,默認郵箱是空的,所以設置手動設置,注冊郵箱并激活,設置如下:
[root@wulaoer ~]# su - gerrit [gerrit@wulaoer ~]$ cd gerrit_site/etc/ [gerrit@wulaoer etc]$ vi gerrit.config ##################################################################### [sendemail] smtpServer = smtp.exmail.qq.com #發件箱信息設置 smtpUser = *******@qq.com from = *******@qq.com smtpPass = ********** ##################################################################### [gerrit@wulaoer etc]$ vi secure.config #################################################################### [sendemail] smtpPass = **********
注意:sendemail的密碼會保存到secure.config文件里,一定要保證gerritconfig文件里的密碼和secure.conf的密碼一致
重啟gerrit服務即可
[gerrit@wulaoer etc]$ /home/gerrit/gerrit_site/bin/gerrit.sh restart Stopping Gerrit Code Review: OK Starting Gerrit Code Review: OK
重啟成功后登錄gerrit頁面進行注冊郵箱,默認清晰不注冊郵箱,在設置欄里沒有郵箱可以選擇
發送成功,登錄自己的qq郵箱會收到gerrit上設置的發件人發過來的郵件,查看自己的郵件就是上面輸入的69結尾的QQ郵箱。點擊紅色連接可以直接激活,有的瀏覽器不能調整建議更換成火狐瀏覽器。
點擊連接激活郵箱,在設置欄就有激活的郵箱了。
點擊右上角的用戶有一個settings
注:用htpasswd創建第一個用戶時系統管理員,ID為1,只有系統管理員才有Create權限(創建group和project),其他的只有查看權限。使用htpaswd創建用戶時,并沒有往gerrit中添加賬號,只有當該用戶通過web登錄gerrit服務器時,該賬號才會被添加進gerrit數據庫中。
退出admin賬號重新登陸(HTTP認證模式不支持Sign Out,需要先Sign Out退出賬號,關閉瀏覽器后再登陸才能出現http驗證密碼的對話框
****************************git中文編碼問題**********************************************
為妥善解決中文編碼的問題,對所有git repository做如下約定:
a、所有文本文件都必須存儲成utf8編碼
b、對git做如下設置:
git config --global core.quotepath false git config --global i18n.logoutputencoding utf8 git config --global i18n.commitencoding utf8
安裝gerrit的時候對于數據庫(選擇myqsl方式的話)的編碼設定為utf8
**********************gerrit對接gitweb**********************************************
上面搭建好的gerrit,登陸進去在Projects項目里的右邊沒有gitweb的超鏈接
1.需要先搭建gitweb,然后進行相關配置
[root@wulaoer ~]# yum install -y gitweb 【或者直接yum install -y git*】
gitweb安裝后的目錄路徑是/var/www/git
2. 通過git config配置一下
[root@wulaoer ~]# git config --file /home/gerrit/gerrit_site/etc/gerrit.config gitweb.cgi /var/www/git/gitweb.cgi [root@wulaoer ~]# git config --file /home/gerrit/gerrit_site/etc/gerrit.config --unset gitweb.url
3.重啟gerrit,然后登陸gerrit后,gitweb超鏈接效果就有了
********************** ********************** ********************
gitweb還是蠻實用的。
可以通過打開gerrit上某個工程的gitweb,查看到這個工程代碼近期的所有動向!
【默認情況下:只有gerrit的管理員權限才能查看gitweb】
【普通用戶要想訪問gitweb,需要后續添加訪問權限,后期會繼續詳解】
**************************ssh公鑰設置********************************************
在gerrit本機上使用下面的命令生成管理員賬號(這里將gerrit作為管理員)的公私鑰
[root@wulaoer ~]# su - gerrit [gerrit@wulaoer ~]$ ssh-keygen -t rsa -C 99317069@qq.com Generating public/private rsa key pair. Enter file in which to save the key (/home/gerrit/.ssh/id_rsa): Created directory '/home/gerrit/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/gerrit/.ssh/id_rsa. Your public key has been saved in /home/gerrit/.ssh/id_rsa.pub. The key fingerprint is: bc:58:5a:8d:73:0b:ac:01:39:ac:96:02:85:45:92:ba 99317069@qq.com The key's randomart p_w_picpath is: +--[ RSA 2048]----+ |.=+ | |oo . . | |o = | |o o o o o | |..+ . S o | |Eo B = . | | + . . | | | | | +-----------------+ [gerrit@wulaoer ~]$ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2e/iJxw7FG0rhSZkSy2M31JBW/lnNewRgu6cyC2jMheqYVHZhf9XlAR9gfR8V8h2nqBo8GWraNchdOAdTNTZ1nqfrE4iDRd2FKhL2zx47oErj3H/Hv6747r0pagP+kCt7c2hglHXhhs4SLWg3BSK+tXOM1Db7kgp+QhwrbmjkbLXJ+G/LwlLJMY1q6mI5fmEUmCC+QfZgZ9e9vKO6fjFDjD5nHsRd70Jnf1fUQC99FvqiYhw8e/YJNnY+dMoczTDDwzx6zsB0qx6Cpw5GskCUPVztqDeH7TgRZgY6Ttkakglied2sv11sRzVV0sn3msCgmu1qsIdTeCDx5gdJQEI0w== 99317069@qq.com
將gerrit賬號的公鑰內容拷貝到gerrit界面的SSH Public Keys里。
Settings
接下來設置別名,方便使用ssh連接gerrit
可以直接在gerrit用戶家目錄(/home/gerrit)下的.bashrc文件里設置。如下別名是登錄gerrit的admin賬號下的操作:
[gerrit@wulaoer ~]$ vi .bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions
然后讓文件生效
[gerrit@wulaoer ~]$ source .bashrc [gerrit@wulaoer ~]$ ssh-gerrit The authenticity of host '[192.168.0.145]:29418 ([192.168.0.145]:29418)' can't be established. RSA key fingerprint is 4f:6a:ec:3c:7e:52:2e:56:0a:e0:b1:fb:38:86:da:42. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.0.145]:29418' (RSA) to the list of known hosts. **** Welcome to Gerrit Code Review **** Hi gerrit管理員, you have successfully connected over SSH. Unfortunately, interactive shells are disabled. To clone a hosted Git repository, use: git clone ssh://gerrit@192.168.0.145:29418/REPOSITORY_NAME.git Connection to 192.168.0.145 closed.
********************************Gerrit權限說明*******************************
上面介紹了gerrit環境的部署,下面介紹下gerrit權限:
Abandon
此權限允許用戶丟棄一個提交的change。如果用戶有push權限,給用戶分配此權限的同時用戶也被分配了restore a change的權限。
Create Reference
此權限管理用戶是有可以創建references,branches,tags。此權限一般與普通的push權限一起被分配。
Forge Author
偽造發起人權限,此權限允許用戶繞過提交時的身份驗證(Gerrit默認會匹配提交信息中author或者committer行中的email地址,如果 Email地址不匹配,則不允許提交)。
Forge Committer
偽造提交者權限,此權限允許用戶繞過提交時的身份驗證(Gerrit默認會匹配提交信息中author或者committer行中的email地址,如果 Email地址不匹配,則不允許提交 )。
Forge Server
偽造Gerrit服務器權限,此權限允許在committer行中使用server owner和email
Owner
此權限允許用戶修改香項目的配置,具體如下:
修改項目描述
通過ssh的"create-branch"命令創建分支
在web UI界面創建/刪除branch
允許/撤銷任何訪問權限,包括Owner權限。
Push
此分類控制用戶被允許怎樣推送新commit到Gerrit。
Direct Push
所有已存在的branch可以快進到新的commit。創建新分支受“Create Reference”控制,不允許刪除已存在的分支,這是最安全的模式(因為commit不可以被丟棄)。
Force option
允許已存在的branch被刪除。開啟此選項可以從項目歷史中刪除提交記錄。
此權限主要用來給那些只想用Gerrit的訪問控制,不需要Gerrit的代碼審查功能的工程使用。
Upload To Code Review
此push權限分配在refs/for/refs/heads/BRANCH命名空間上,允許用戶提交一個未合并(non-merge)的commit到refs/for/BRANCH命名空間,創建一個新的代碼審查change。
用戶必須能夠clone和fetch一個工程才可以提交change,所以用戶還必須擁有Read權限。
Push Merge Commits
此權限允許用戶提交merge commits,它是Push權限的附屬物,如果想只允許通過Gerrit做merge操作,那么應該只分配Push僅限而不分配此權限。
Push Annotated Tag
此類權限允許用戶向工程倉庫提交一個annotated tag。通常使用以下兩種方式提交:
git push ssh://USER@HOST:PORT/PROJECT tag v1.0
或者:
git push https://HOST/PROJECT tag v1.0
Tags必須被注釋(使用git tag -a),必須在refs/tags/下存在,而且必須是新的。
一般在工程達到了穩定且可發布的時候會打一個Tag。
此權限允許創建一個未簽名的Tag。打Tag者的email地址必須與當前用戶的一致。
如果要提交不是自己打的Tag,則必須同時分配Forge Committer Identity權限。
如果要提交輕標簽(lightweight tags)分配Create Reference權限給引用/refs/tags/*
如果要刪除或覆蓋一個已存在的tag,分配Push權限并開啟Force option。
Push Signed Tag
此類權限允許用戶向工程倉庫提交一個PGP簽名的 tag。通常使用以下兩種方式提交:
git push ssh://USER@HOST:PORT/PROJECT tag v1.0
或者:
git push https://HOST/PROJECT tag v1.0
Tags必須被注釋(使用git tag -a),必須在refs/tags/下存在,而且必須是新的。
Read
此類權限控制工程的changes, comments,和code diffs可見性,和是否可通過SSH或HTTP訪問Git。
如果在單獨工程的ACL中設置的此權限,那么全局ACL中的設置將不起作用。
Rebase
此類僅限允許用戶通過web頁面的“Rebase Change”按鈕衍合(Rebase)修改
Remove Reviewer
此類權限允許用戶在一個change的reviewers list中移除其他用戶。
change所屬者可以移除0分或負分的reviewers(即使沒有此權限)。
項目所有者和網站管理員可以移除所有reviewers(即使沒有此權限)。
沒有此權限的用戶只可以移除自己。
Review Labels
// TODO
Submit
此類權限允許用戶提交changes。
提交一個change會使該change盡可能快的合并到目的分支,使其作為項目歷史永久的一部分。
為了提交change,所有的labels都必須允許提交,并且不能block它。
如果要快速提交一個push上的change,用戶需要在refs/for/<ref>(e.g. on refs/for/refs/heads/master)有此權限。
Submit(On Behalf Of)
此類權限允許有Submit權限的用戶代表其他用戶提交change。
在project.config文件中,此權限被命名為submitAs。
View Drafts
此類權限允許用戶查看其他用戶提交的drafts changes
change所用者和任何明確添加的reviewers也可以查看(即使沒用此權限)
Publish Drafts
此類權限允許用戶發布其他用戶提交的drafts changes
change所用者和任何明確添加的reviewers也可以查看(即使沒用此權限)
Delete Drafts
此類權限允許用戶刪除其他用戶提交的drafts changes
change所用者和任何明確添加的reviewers也可以查看(即使沒用此權限)
Edit Topic Name
允許用戶編輯提交到review的change的話題名。
change所用者,分支所用者,項目所用者和網站管理員都可以編輯此話題名(即使沒有此權限)。
“Force Edit”標識控制是否可以編輯已關閉的change標題,如果此標識設置只能編輯open changes,則不可以編輯已關閉的change 標題。
Edit Hashtags
允許用戶在提交到reviews的changes上添加或移除hashtags。
change所用者和任何明確添加的reviewers也可以查看(即使沒用此權限)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。