<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Gitblit on 编程技术记录</title>
    <link>https://blog.z6z8.cn/tags/gitblit/</link>
    <description>Recent content in Gitblit on 编程技术记录</description>
    <generator>Hugo</generator>
    <language>zh-Hans</language>
    <lastBuildDate>Tue, 04 Feb 2020 14:26:39 +0000</lastBuildDate>
    <atom:link href="https://blog.z6z8.cn/tags/gitblit/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>gitblit : 仓库权限 mutable, specified 和 effective 的区别</title>
      <link>https://blog.z6z8.cn/2020/02/04/gitblit-%E4%BB%93%E5%BA%93%E6%9D%83%E9%99%90-mutable-specified-%E5%92%8C-effective-%E7%9A%84%E5%8C%BA%E5%88%AB/</link>
      <pubDate>Tue, 04 Feb 2020 14:26:39 +0000</pubDate>
       <guid isPermaLink="false">http://blog.z6z8.cn/?p=781</guid> 
      <description>&lt;p&gt;仓库权限只能由仓库的所有者维护（所有者可以是多个用户）。&lt;/p&gt;
&lt;p&gt;Mutable：拥有可以通过控制面板更改的权限
Specified：Mutable + 所有者
Effective：Specified +正则表达式，管理员等&lt;/p&gt;
&lt;p&gt;Repo permissions can only be maintained by an owner of the repo. If you are not the owner, it will appear to let you change the permissions, but actually fail silently&lt;/p&gt;
&lt;p&gt;支持上述说法的 &lt;a href=&#34;https://www.programcreek.com/java-api-examples/?code=warpfork%2Fgitblit%2Fgitblit-master%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgitblit%2Fwicket%2Fpanels%2FRegistrantPermissionsPanel.java&#34; title=&#34;代码片段&#34;&gt;代码片段&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;RegistrantPermissionsPanel&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;extends&lt;/span&gt; BasePanel {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;static&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;final&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; serialVersionUID &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 1L;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;enum&lt;/span&gt; Show {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        specified, mutable, effective;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;boolean&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt;(RegistrantAccessPermission ap) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;switch&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; specified:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; ap.&lt;span style=&#34;color:#a6e22e&#34;&gt;mutable&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; ap.&lt;span style=&#34;color:#a6e22e&#34;&gt;isOwner&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; mutable:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; ap.&lt;span style=&#34;color:#a6e22e&#34;&gt;mutable&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; effective:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;default&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; Show activeState &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Show.&lt;span style=&#34;color:#a6e22e&#34;&gt;mutable&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参考
1、 &lt;a href=&#34;https://issue.life/questions/34595235&#34;&gt;https://issue.life/questions/34595235&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gitblit权限类型</title>
      <link>https://blog.z6z8.cn/2020/01/03/gitblit%E6%9D%83%E9%99%90%E7%B1%BB%E5%9E%8B/</link>
      <pubDate>Fri, 03 Jan 2020 13:53:44 +0000</pubDate>
       <guid isPermaLink="false">http://blog.z6z8.cn/?p=753</guid> 
      <description>&lt;p&gt;主要是这张图，看懂就懂
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.z6z8.cn/wp-content/uploads/2020/01/gitblit_permissions_matrix.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;权限定义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;V ，可以使用浏览器查看、订阅RSS、zip打包下载&lt;/li&gt;
&lt;li&gt;R ，具有V的所有权限，还具有复制（克隆）远程仓库到本地的权限&lt;/li&gt;
&lt;li&gt;RW，具有R的所有权限，还具有推送到远程仓库的权限&lt;/li&gt;
&lt;li&gt;RWC，具有RW的所有权限，还具有创建远程分支的权限&lt;/li&gt;
&lt;li&gt;RWD，具有RWC的所有权限，还具有删除远程分支的权限&lt;/li&gt;
&lt;li&gt;RW+ ，具有RWD的所有权限，还具有回退远程分支的权限&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其他:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;admin ，拥有所有权限（这毋庸置疑）&lt;/li&gt;
&lt;li&gt;owner，可以创建、编辑、重命名、删除、fork个人仓库&lt;/li&gt;
&lt;li&gt;认证用户，可以创建个人仓库、fork个人仓库&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;参考http://www.gitblit.com/administration.html&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
