This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/skywalking-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new ad8f4c6dd58 deploy: 52b201c6956926e56cfbbe0eb2f461d0d1330df1
ad8f4c6dd58 is described below
commit ad8f4c6dd58466e78380d125d714084f05901cca
Author: wu-sheng <[email protected]>
AuthorDate: Mon May 22 10:04:58 2023 +0000
deploy: 52b201c6956926e56cfbbe0eb2f461d0d1330df1
---
.../next/en/advanced-features/logging-setup/index.html | 4 ++--
.../next/en/advanced-features/plugin-exclusion/index.html | 2 +-
.../next/en/advanced-features/settings-override/index.html | 4 ++--
.../skywalking-go/next/en/agent/performance-tests/index.html | 4 ++--
docs/skywalking-go/next/en/agent/support-plugins/index.html | 2 +-
.../en/concepts-and-designs/hybrid-compilation/index.html | 2 +-
.../next/en/concepts-and-designs/key-principles/index.html | 10 +++++-----
.../en/concepts-and-designs/project-structure/index.html | 2 +-
.../build-and-use-agent/index.html | 2 +-
.../development-guide/index.html | 8 ++++----
.../running-and-debugging/index.html | 2 +-
.../write-plugin-testing/index.html | 12 ++++++------
docs/skywalking-go/next/en/setup/gobuild/index.html | 2 +-
docs/skywalking-go/next/readme/index.html | 2 +-
14 files changed, 29 insertions(+), 29 deletions(-)
diff --git
a/docs/skywalking-go/next/en/advanced-features/logging-setup/index.html
b/docs/skywalking-go/next/en/advanced-features/logging-setup/index.html
index edd4a66bee7..1012a8c90a6 100644
--- a/docs/skywalking-go/next/en/advanced-features/logging-setup/index.html
+++ b/docs/skywalking-go/next/en/advanced-features/logging-setup/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -472,7 +472,7 @@ if (!doNotTrack) {
<h1 id="logging-setup">Logging Setup</h1>
<p>Logging Setup is used to integrate the Go Agent with the logging system in
the current service.
It currently supports the recognition of <code>Logrus</code> and
<code>Zap</code> frameworks. If neither of these frameworks is present, it
would output logs using <code>Std Error</code>.</p>
-<p>You can learn about the configuration details through the “log”
configuration item in the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/config/agent.default.yaml">default
settings</a>.</p>
+<p>You can learn about the configuration details through the “log”
configuration item in the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/config/agent.default.yaml">default
settings</a>.</p>
<h2 id="agent-with-logging-system">Agent with Logging system</h2>
<p>The integration of the Agent with logs includes the two parts as
following.</p>
<ol>
diff --git
a/docs/skywalking-go/next/en/advanced-features/plugin-exclusion/index.html
b/docs/skywalking-go/next/en/advanced-features/plugin-exclusion/index.html
index c1601ab26df..9de10228d30 100644
--- a/docs/skywalking-go/next/en/advanced-features/plugin-exclusion/index.html
+++ b/docs/skywalking-go/next/en/advanced-features/plugin-exclusion/index.html
@@ -435,7 +435,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/advanced-features/settings-override/index.html
b/docs/skywalking-go/next/en/advanced-features/settings-override/index.html
index 164407a45c3..86bf72eea6d 100644
--- a/docs/skywalking-go/next/en/advanced-features/settings-override/index.html
+++ b/docs/skywalking-go/next/en/advanced-features/settings-override/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -470,7 +470,7 @@ if (!doNotTrack) {
<h1 id="setting-override">Setting Override</h1>
-<p>By default, SkyWalking Go agent provides a default <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/config/agent.default.yaml">agent.default.yaml</a>
to define the default configuration options.</p>
+<p>By default, SkyWalking Go agent provides a default <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/config/agent.default.yaml">agent.default.yaml</a>
to define the default configuration options.</p>
<p>This configuration file is used <strong>during hybrid compilation to write
the configuration information of the Agent into the program</strong>.
When the program boots, the agent would read the pre-configured content.</p>
<h2 id="configuration-changes">Configuration Changes</h2>
diff --git a/docs/skywalking-go/next/en/agent/performance-tests/index.html
b/docs/skywalking-go/next/en/agent/performance-tests/index.html
index 2cb113fad44..8ba57c9442c 100644
--- a/docs/skywalking-go/next/en/agent/performance-tests/index.html
+++ b/docs/skywalking-go/next/en/agent/performance-tests/index.html
@@ -441,7 +441,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -477,7 +477,7 @@ if (!doNotTrack) {
<h2 id="test-objective">Test Objective</h2>
<p>By launching both the <strong>agent</strong> and <strong>non-agent</strong>
compiled applications, we subject them to the same <strong>QPS</strong> under
stress testing,
evaluating the CPU, memory, and network latency of the machine during the
testing period.</p>
-<p>The application has been saved and submitted to the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/test/benchmark-codebase">test/benchmark-codebase</a>
directory, with the following topology:</p>
+<p>The application has been saved and submitted to the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/test/benchmark-codebase">test/benchmark-codebase</a>
directory, with the following topology:</p>
<pre><code>traffic generator -> consumer -> provider
</code></pre><p>The payload(traffic) generator uses multithreading to send
HTTP requests to the consumer service.
When the consumer receives a request, it sends three requests to the provider
service to obtain return data results.
diff --git a/docs/skywalking-go/next/en/agent/support-plugins/index.html
b/docs/skywalking-go/next/en/agent/support-plugins/index.html
index dd24ae8077e..08dbe047604 100644
--- a/docs/skywalking-go/next/en/agent/support-plugins/index.html
+++ b/docs/skywalking-go/next/en/agent/support-plugins/index.html
@@ -432,7 +432,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/concepts-and-designs/hybrid-compilation/index.html
b/docs/skywalking-go/next/en/concepts-and-designs/hybrid-compilation/index.html
index 97f8811cac4..34f46506013 100644
---
a/docs/skywalking-go/next/en/concepts-and-designs/hybrid-compilation/index.html
+++
b/docs/skywalking-go/next/en/concepts-and-designs/hybrid-compilation/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/concepts-and-designs/key-principles/index.html
b/docs/skywalking-go/next/en/concepts-and-designs/key-principles/index.html
index e1142a7eb30..1038143b34d 100644
--- a/docs/skywalking-go/next/en/concepts-and-designs/key-principles/index.html
+++ b/docs/skywalking-go/next/en/concepts-and-designs/key-principles/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -487,7 +487,7 @@ if (!doNotTrack) {
<h3 id="modifying-methods">Modifying Methods</h3>
<p>After finding the method, the SkyWalking Go Agent needs to modify the
method implication and embed the interceptor code.</p>
<h4 id="change-method-body">Change Method Body</h4>
-<p>When intercepting a method, the first thing to do is to modify the method
and <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/instrument/plugins/templates/method_inserts.tmpl">embed
the template code</a>.
+<p>When intercepting a method, the first thing to do is to modify the method
and <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/instrument/plugins/templates/method_inserts.tmpl">embed
the template code</a>.
This code segment includes two method executions:</p>
<ol>
<li><strong>Before method execution</strong>: Pass in the current
method’s arguments, instances, and other information.</li>
@@ -499,8 +499,8 @@ This ensures that when an exception occurs in the framework
code execution, the
<h4 id="write-delegator-file">Write Delegator File</h4>
<p>After the agent enhances the method body, it needs to implement the above
two methods and write them into a single file, called the <strong>delegator
file</strong>. These two methods would do the following:</p>
<ol>
-<li><strong>Before method execution</strong>: <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/instrument/plugins/templates/method_intercept_before.tmpl">Build
by the template</a>. Build the context for before and after interception, and
pass the parameter information during execution to the interceptor in each
plugin.</li>
-<li><strong>After method execution</strong>: <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/instrument/plugins/templates/method_intercept_after.tmpl">Build
by the template</a>. Pass the method return value to the interceptor and
execute the method.</li>
+<li><strong>Before method execution</strong>: <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/instrument/plugins/templates/method_intercept_before.tmpl">Build
by the template</a>. Build the context for before and after interception, and
pass the parameter information during execution to the interceptor in each
plugin.</li>
+<li><strong>After method execution</strong>: <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/instrument/plugins/templates/method_intercept_after.tmpl">Build
by the template</a>. Pass the method return value to the interceptor and
execute the method.</li>
</ol>
<h4 id="copy-files">Copy Files</h4>
<p>After completing the delegator file, the agent would perform the following
copy operations:</p>
@@ -583,7 +583,7 @@ The main key modules that users currently need to introduce
include:</p>
The Agent Core code would be dynamically added during hybrid compilation, so
when the Agent releases new features,
users only need to upgrade the Agent enhancement program without modifying the
references in the program.</p>
<h3 id="code-import">Code Import</h3>
-<p>You can see a lot of <code>imports.go</code> files anywhere in the
SkyWalking Go, such as <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/imports.go">imports.go
in the root directory</a>, but there is no actual code.
+<p>You can see a lot of <code>imports.go</code> files anywhere in the
SkyWalking Go, such as <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/imports.go">imports.go
in the root directory</a>, but there is no actual code.
This is because, during hybrid compilation, if the code to be compiled
references other libraries,
such as <code>os</code>, <code>fmt</code>, etc., they need to be referenced
through the <strong>importcfg</strong> file during compilation.</p>
<p>The content of the <code>importcfg</code> file is shown below, which
specifies the package dependency information required for all Go files to be
compiled in the current package path.</p>
diff --git
a/docs/skywalking-go/next/en/concepts-and-designs/project-structure/index.html
b/docs/skywalking-go/next/en/concepts-and-designs/project-structure/index.html
index 3e2167244b9..3e7c692a246 100644
---
a/docs/skywalking-go/next/en/concepts-and-designs/project-structure/index.html
+++
b/docs/skywalking-go/next/en/concepts-and-designs/project-structure/index.html
@@ -432,7 +432,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/development-and-contribution/build-and-use-agent/index.html
b/docs/skywalking-go/next/en/development-and-contribution/build-and-use-agent/index.html
index 8a870c257c9..30a4a092690 100644
---
a/docs/skywalking-go/next/en/development-and-contribution/build-and-use-agent/index.html
+++
b/docs/skywalking-go/next/en/development-and-contribution/build-and-use-agent/index.html
@@ -441,7 +441,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/development-and-contribution/development-guide/index.html
b/docs/skywalking-go/next/en/development-and-contribution/development-guide/index.html
index 47adcca30ef..844f25de48f 100644
---
a/docs/skywalking-go/next/en/development-and-contribution/development-guide/index.html
+++
b/docs/skywalking-go/next/en/development-and-contribution/development-guide/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -479,7 +479,7 @@ if (!doNotTrack) {
<li><strong>Import the plugin module</strong>: Import the plugin into the
management module for users to use.</li>
</ol>
<h2 id="create-a-new-plugin-module">Create a new plugin module</h2>
-<p>The plugin must create a new module, which is currently stored in the
project’s <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/plugins">plugins
directory</a>.</p>
+<p>The plugin must create a new module, which is currently stored in the
project’s <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/plugins">plugins
directory</a>.</p>
<p>Plugins can import the following two modules:</p>
<ol>
<li><strong>Agent core</strong>: This module provides all the dependencies
needed for the plugin, including the plugin API, enhancement declaration
objects, etc.
@@ -489,7 +489,7 @@ Agent core plugin should be
<code>github.com/apache/skywalking-go/plugins/core</
<p>Note: Plugins should <strong>NOT</strong> import and use any other modules,
as this may cause compilation issues for users. If certain tools are needed,
they should be provided by the agent core.</p>
<h2 id="define-the-enhancement-object">Define the enhancement object</h2>
<p>In the root directory of the project, <strong>create a new go file</strong>
to define the basic information of the plugin.
-The basic information includes the following methods, corresponding to the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/plugins/core/instrument/declare.go">Instrument
interface</a>:</p>
+The basic information includes the following methods, corresponding to the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/plugins/core/instrument/declare.go">Instrument
interface</a>:</p>
<ol>
<li><strong>Name</strong>: The name of the plugin. Please keep this name
consistent with the newly created project name. The reason will be explained
later.</li>
<li><strong>Base Package</strong>: Declare which package this plugin
intercepts. For example, if you want to intercept gin, you can write:
“github.com/gin-gonic/gin”.</li>
@@ -707,7 +707,7 @@ If the framework you are writing does not exist in this
file, please submit a PR
</span><span style="color:#998;font-style:italic"></span> <span
style="color:#900;font-weight:bold">End</span>()
}
</code></pre></div><h2 id="import-plugin">Import Plugin</h2>
-<p>Once you have finished developing the plugin, you need to import the
completed module into the Agent program and <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/tools/go-agent/instrument/plugins/register.go">define
it in the corresponding file</a>.</p>
+<p>Once you have finished developing the plugin, you need to import the
completed module into the Agent program and <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/tools/go-agent/instrument/plugins/register.go">define
it in the corresponding file</a>.</p>
<p>At this point, your plugin development process is complete. When the Agent
performs hybrid compilation on the target program, your plugin will be executed
as expected.</p>
diff --git
a/docs/skywalking-go/next/en/development-and-contribution/running-and-debugging/index.html
b/docs/skywalking-go/next/en/development-and-contribution/running-and-debugging/index.html
index 280b62cf496..45249ea1e1b 100644
---
a/docs/skywalking-go/next/en/development-and-contribution/running-and-debugging/index.html
+++
b/docs/skywalking-go/next/en/development-and-contribution/running-and-debugging/index.html
@@ -435,7 +435,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git
a/docs/skywalking-go/next/en/development-and-contribution/write-plugin-testing/index.html
b/docs/skywalking-go/next/en/development-and-contribution/write-plugin-testing/index.html
index 9c96592956f..c1e976202b1 100644
---
a/docs/skywalking-go/next/en/development-and-contribution/write-plugin-testing/index.html
+++
b/docs/skywalking-go/next/en/development-and-contribution/write-plugin-testing/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
@@ -474,14 +474,14 @@ if (!doNotTrack) {
If you haven’t started developing your plugin yet, please read this <a
href="./../development-guide">Plugin Development Guide</a> first.</p>
<p>Developing a plugin involves the following steps:</p>
<ol>
-<li><strong>Create a new module</strong>: Please create a new module in the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/test/plugins/scenarios">specified
directory</a>, and it is recommended to name the module the same as the plugin
for easy reference.</li>
+<li><strong>Create a new module</strong>: Please create a new module in the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/test/plugins/scenarios">specified
directory</a>, and it is recommended to name the module the same as the plugin
for easy reference.</li>
<li><strong>Write the configuration file</strong>: This file serves as the
declaration file for the plugin, and test cases would be run based on this
file.</li>
<li><strong>Write the test code</strong>: Simulate the actual service
operation, including the plugin you want to test.</li>
<li><strong>Test execution</strong>: Check if the plugin is running
properly.</li>
</ol>
<h2 id="write-configuration-file">Write Configuration File</h2>
<p>The configuration file is used to define the basic information of the test
plugin.
-You can use <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/test/plugins/scenarios/gin/plugin.yml">the
gin plugin configuration file</a> as an example to write your own.
+You can use <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/test/plugins/scenarios/gin/plugin.yml">the
gin plugin configuration file</a> as an example to write your own.
It includes the following information:</p>
<ol>
<li><strong>entry-service</strong>: The test HTTP service entry URL. When this
address is accessed, the plugin code should be triggered.</li>
@@ -523,12 +523,12 @@ This corresponds to the <strong>entry-service</strong>
address in configuration.
<h2 id="test-execution">Test Execution</h2>
<p>Once you have completed the plugin configuration and test code writing, you
can proceed to test the framework. Please follow these steps:</p>
<ol>
-<li><strong>Build tools</strong>: Execute the <code>make build</code> command
in the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/test/plugins">test/plugins</a>
directory. It would generate some tools needed for testing in the
<code>dist</code> folder of this directory.</li>
+<li><strong>Build tools</strong>: Execute the <code>make build</code> command
in the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/test/plugins">test/plugins</a>
directory. It would generate some tools needed for testing in the
<code>dist</code> folder of this directory.</li>
<li><strong>Run the plugin locally</strong>: Start the plugin test program and
iterate through all framework versions for testing on your local
environment.</li>
-<li><strong>Add to GitHub Action</strong>: Fill in the name of the test plugin
<a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/.github/workflows/plugin-tests.yaml">in
this file</a>, and the plugin test would be executed and validated each time a
pull request is submitted.</li>
+<li><strong>Add to GitHub Action</strong>: Fill in the name of the test plugin
<a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/.github/workflows/plugin-tests.yaml">in
this file</a>, and the plugin test would be executed and validated each time a
pull request is submitted.</li>
</ol>
<h3 id="run-the-plugin-test-locally">Run the Plugin Test Locally</h3>
-<p>Please execute the <strong>run.sh</strong> script in the <a
href="https://github.com/apache/skywalking-go/tree/37fd080ca733e66490f9b469ea4d3ac32078d744/test/plugins">test/plugins
directory</a> and pass in the name of the plugin you wrote (the folder name).
+<p>Please execute the <strong>run.sh</strong> script in the <a
href="https://github.com/apache/skywalking-go/tree/ca1bdee3ee31055527117df42f6c02f9c3e2cf0c/test/plugins">test/plugins
directory</a> and pass in the name of the plugin you wrote (the folder name).
At this point, the script would read the configuration file of the plugin test
and create a workspace directory in this location for temporarily storing files
generated by each plugin.
Finally, it would start the test code and validate the data sequentially
according to the supported version information.</p>
<p>The script supports the following two parameters:</p>
diff --git a/docs/skywalking-go/next/en/setup/gobuild/index.html
b/docs/skywalking-go/next/en/setup/gobuild/index.html
index d54a06bd171..9e292edcb72 100644
--- a/docs/skywalking-go/next/en/setup/gobuild/index.html
+++ b/docs/skywalking-go/next/en/setup/gobuild/index.html
@@ -444,7 +444,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>
diff --git a/docs/skywalking-go/next/readme/index.html
b/docs/skywalking-go/next/readme/index.html
index f34902aa2bb..47047049396 100644
--- a/docs/skywalking-go/next/readme/index.html
+++ b/docs/skywalking-go/next/readme/index.html
@@ -438,7 +438,7 @@ if (!doNotTrack) {
})()
</script>
- <div class="commit-id">Commit Id: 37fd080</div>
+ <div class="commit-id">Commit Id: ca1bdee</div>