Files
metasploit-gs/api/Msf/Exploit/Git/GitObject.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

1150 lines
38 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Msf::Exploit::Git::GitObject
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Msf::Exploit::Git::GitObject";
relpath = '../../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../../_index.html">Index (G)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../../Msf.html" title="Msf (module)">Msf</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Exploit.html" title="Msf::Exploit (class)">Exploit</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Git.html" title="Msf::Exploit::Git (module)">Git</a></span></span>
&raquo;
<span class="title">GitObject</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Msf::Exploit::Git::GitObject
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Msf::Exploit::Git::GitObject</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/exploit/git.rb</dd>
</dl>
</div>
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#compressed-instance_method" title="#compressed (instance method)">#<strong>compressed</strong> &#x21d2; Object </a>
</span>
<span class="note title readonly">readonly</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute compressed.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#content-instance_method" title="#content (instance method)">#<strong>content</strong> &#x21d2; Object </a>
</span>
<span class="note title readonly">readonly</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute content.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#path-instance_method" title="#path (instance method)">#<strong>path</strong> &#x21d2; Object </a>
</span>
<span class="note title readonly">readonly</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute path.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sha1-instance_method" title="#sha1 (instance method)">#<strong>sha1</strong> &#x21d2; Object </a>
</span>
<span class="note title readonly">readonly</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute sha1.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#type-instance_method" title="#type (instance method)">#<strong>type</strong> &#x21d2; Object </a>
</span>
<span class="note title readonly">readonly</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute type.</p>
</div></span>
</li>
</ul>
<h2>
Class Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#build_blob_object-class_method" title="build_blob_object (class method)">.<strong>build_blob_object</strong>(content) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Wrapper for build_object()` to create a GitObject of type `blob` will represent.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#build_commit_object-class_method" title="build_commit_object (class method)">.<strong>build_commit_object</strong>(opts = {}) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Wrapper for build_object()` to create a GitObject of type `commit` (optional) parent sha1 and optional data such as commit message, committer name, company name, and email address.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#build_object-class_method" title="build_object (class method)">.<strong>build_object</strong>(type, content) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generates a git object of the specified type, ex: blob, tree, commit.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#build_tree_object-class_method" title="build_tree_object (class method)">.<strong>build_tree_object</strong>(tree_entries) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Creates a GitObject of type tree` the file mode, name, and sha1 from a previously-created `blob` object Ex: { mode: 100755, file_name: hooks, sha1: a372436ad8331b380e20e8c9861f547063d76a46 }.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#find_object-class_method" title="find_object (class method)">.<strong>find_object</strong>(sha1, objs = []) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Given a sha1 and list of Git objects find the object with the matching sha1.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(type, content, sha1, compressed) &#x21d2; GitObject </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>A new instance of GitObject.</p>
</div></span>
</li>
</ul>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong>(type, content, sha1, compressed) &#x21d2; <tt><span class='object_link'><a href="" title="Msf::Exploit::Git::GitObject (class)">GitObject</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a new instance of GitObject.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
12
13
14
15
16
17
18</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 12</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span><span class='rparen'>)</span>
<span class='ivar'>@type</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span>
<span class='ivar'>@content</span> <span class='op'>=</span> <span class='id identifier rubyid_content'>content</span>
<span class='ivar'>@sha1</span> <span class='op'>=</span> <span class='id identifier rubyid_sha1'>sha1</span>
<span class='ivar'>@compressed</span> <span class='op'>=</span> <span class='id identifier rubyid_compressed'>compressed</span>
<span class='ivar'>@path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@sha1</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>...</span><span class='int'>2</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@sha1</span><span class='lbracket'>[</span><span class='int'>2</span><span class='op'>..</span><span class='int'>40</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id=""></span>
<div class="method_details first">
<h3 class="signature first" id="compressed-instance_method">
#<strong>compressed</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute compressed.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 10</span>
<span class='kw'>def</span> <span class='id identifier rubyid_compressed'>compressed</span>
<span class='ivar'>@compressed</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id=""></span>
<div class="method_details ">
<h3 class="signature " id="content-instance_method">
#<strong>content</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute content.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 10</span>
<span class='kw'>def</span> <span class='id identifier rubyid_content'>content</span>
<span class='ivar'>@content</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id=""></span>
<div class="method_details ">
<h3 class="signature " id="path-instance_method">
#<strong>path</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute path.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 10</span>
<span class='kw'>def</span> <span class='id identifier rubyid_path'>path</span>
<span class='ivar'>@path</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id=""></span>
<div class="method_details ">
<h3 class="signature " id="sha1-instance_method">
#<strong>sha1</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute sha1.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 10</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sha1'>sha1</span>
<span class='ivar'>@sha1</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id=""></span>
<div class="method_details ">
<h3 class="signature " id="type-instance_method">
#<strong>type</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute type.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
10
11
12</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 10</span>
<span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
<span class='ivar'>@type</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="build_blob_object-class_method">
.<strong>build_blob_object</strong>(content) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Wrapper for build_object()` to create a GitObject of type `blob` will represent</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>the</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data that the object</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
54
55
56
57</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 54</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_build_blob_object'>build_blob_object</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='rparen'>)</span>
<span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span> <span class='op'>=</span> <span class='id identifier rubyid_build_object'>build_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>blob</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="" title="Msf::Exploit::Git::GitObject (class)">GitObject</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Msf::Exploit::Git::GitObject#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>blob</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span><span class='comma'>,</span> <span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="build_commit_object-class_method">
.<strong>build_commit_object</strong>(opts = {}) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Wrapper for build_object()` to create a GitObject of type `commit` (optional) parent sha1 and optional data such as commit message, committer name, company name, and email address</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>containing</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>sha1s for the tree,</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 26</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_build_commit_object'>build_commit_object</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='id identifier rubyid_full_name'>full_name</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>Faker</span><span class='op'>::</span><span class='const'>Name</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_email'>email</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:email</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>Faker</span><span class='op'>::</span><span class='const'>Internet</span><span class='period'>.</span><span class='id identifier rubyid_email'>email</span><span class='lparen'>(</span><span class='label'>name:</span> <span class='id identifier rubyid_full_name'>full_name</span><span class='comma'>,</span> <span class='label'>separators:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>-</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>_</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_company'>company</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>Faker</span><span class='op'>::</span><span class='const'>Company</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
<span class='id identifier rubyid_commit_text'>commit_text</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:message</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Initial commit to open git repository for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_company'>company</span><span class='embexpr_end'>}</span><span class='tstring_content'>!</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_tree_sha1'>tree_sha1</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:tree_sha1</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_parent_sha1'>parent_sha1</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:parent_sha1</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_tstamp'>tstamp</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
<span class='id identifier rubyid_author_time'>author_time</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='id identifier rubyid_tstamp'>tstamp</span><span class='rparen'>)</span>
<span class='id identifier rubyid_commit_time'>commit_time</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='id identifier rubyid_author_time'>author_time</span><span class='rparen'>)</span>
<span class='id identifier rubyid_tz_off'>tz_off</span> <span class='op'>=</span> <span class='id identifier rubyid_rand'>rand</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tree </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tree_sha1'>tree_sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>parent </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_parent_sha1'>parent_sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_parent_sha1'>parent_sha1</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>author </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_full_name'>full_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> &lt;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_email'>email</span><span class='embexpr_end'>}</span><span class='tstring_content'>&gt; </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_author_time'>author_time</span><span class='embexpr_end'>}</span><span class='tstring_content'> -0</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tz_off'>tz_off</span><span class='embexpr_end'>}</span><span class='tstring_content'>00\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>committer </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_full_name'>full_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> &lt;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_email'>email</span><span class='embexpr_end'>}</span><span class='tstring_content'>&gt; </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_commit_time'>commit_time</span><span class='embexpr_end'>}</span><span class='tstring_content'> -0</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tz_off'>tz_off</span><span class='embexpr_end'>}</span><span class='tstring_content'>00\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_commit_msg'>commit_msg</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_commit_text'>commit_text</span><span class='embexpr_end'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span> <span class='op'>=</span> <span class='id identifier rubyid_build_object'>build_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>commit</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_commit_msg'>commit_msg</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="" title="Msf::Exploit::Git::GitObject (class)">GitObject</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Msf::Exploit::Git::GitObject#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>commit</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_commit_msg'>commit_msg</span><span class='comma'>,</span> <span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="build_object-class_method">
.<strong>build_object</strong>(type, content) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generates a git object of the specified type, ex: blob, tree, commit</p>
<p>object will represent Returns an Array containing the sha1 hash and Zlib-compressed data</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>type</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>of object to create</p>
</div>
</li>
<li>
<span class='name'>the</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data that the resulting</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
90
91
92
93
94
95</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 90</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_build_object'>build_object</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span><span class='rparen'>)</span>
<span class='comment'># taken from http://schacon.github.io/gitbook/7_how_git_stores_objects.html
</span> <span class='id identifier rubyid_header'>header</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_content'>content</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'>\0</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_store'>store</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span> <span class='op'>+</span> <span class='id identifier rubyid_content'>content</span>
<span class='lbracket'>[</span><span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_store'>store</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../../../Rex.html" title="Rex (module)">Rex</a></span></span><span class='op'>::</span><span class='const'>Text</span><span class='period'>.</span><span class='id identifier rubyid_zlib_deflate'>zlib_deflate</span><span class='lparen'>(</span><span class='id identifier rubyid_store'>store</span><span class='comma'>,</span> <span class='const'>Zlib</span><span class='op'>::</span><span class='const'>DEFAULT_COMPRESSION</span><span class='rparen'>)</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="build_tree_object-class_method">
.<strong>build_tree_object</strong>(tree_entries) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Creates a GitObject of type tree` the file mode, name, and sha1 from a previously-created `blob` object Ex:
<pre class="code ruby"><code class="ruby">mode: &#39;100755&#39;, file_name: &#39;hooks&#39;,
sha1: &#39;a372436ad8331b380e20e8c9861f547063d76a46&#39;
</code></pre>
<p></p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>entries</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>containing</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
68
69
70
71
72
73
74
75
76
77
78
79
80</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 68</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_build_tree_object'>build_tree_object</span><span class='lparen'>(</span><span class='id identifier rubyid_tree_entries'>tree_entries</span><span class='rparen'>)</span>
<span class='id identifier rubyid_tree'>tree</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
<span class='kw'>unless</span> <span class='id identifier rubyid_tree_entries'>tree_entries</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span>
<span class='id identifier rubyid_tree_entries'>tree_entries</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_tree_entries'>tree_entries</span> <span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_tree_entries'>tree_entries</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_entry'>entry</span><span class='op'>|</span>
<span class='id identifier rubyid_tree'>tree</span> <span class='op'>+=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_entry'>entry</span><span class='lbracket'>[</span><span class='symbol'>:mode</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_entry'>entry</span><span class='lbracket'>[</span><span class='symbol'>:file_name</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>\0</span><span class='embexpr_beg'>#{</span><span class='lbracket'>[</span><span class='id identifier rubyid_entry'>entry</span><span class='lbracket'>[</span><span class='symbol'>:sha1</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>H*</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
<span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span> <span class='op'>=</span> <span class='id identifier rubyid_build_object'>build_object</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tree</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_tree'>tree</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="" title="Msf::Exploit::Git::GitObject (class)">GitObject</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Msf::Exploit::Git::GitObject#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>tree</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_tree'>tree</span><span class='comma'>,</span> <span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_compressed'>compressed</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="find_object-class_method">
.<strong>find_object</strong>(sha1, objs = []) &#x21d2; <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Given a sha1 and list of Git objects find the object with the matching sha1</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sha1</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>of the object to find</p>
</div>
</li>
<li>
<span class='name'>list</span>
<span class='type'>(<tt>Array</tt>)</span>
&mdash;
<div class='inline'>
<p>of GitObjects to search</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'></span>
<div class='inline'>
<p>GitObject with the matching sha1, nil otherwise</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
103
104
105
106
107</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/exploit/git.rb', line 103</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_find_object'>find_object</span><span class='lparen'>(</span><span class='id identifier rubyid_sha1'>sha1</span><span class='comma'>,</span> <span class='id identifier rubyid_objs'>objs</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_objs'>objs</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_objs'>objs</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_obj'>obj</span><span class='op'>|</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_sha1'>sha1</span> <span class='op'>==</span> <span class='id identifier rubyid_sha1'>sha1</span> <span class='rbrace'>}</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:03:20 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>