You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Code Graph Analysis Pipeline Examples
2
2
3
-
This repository provides examples of how to analyze TypeScript code and Java artifacts using a fully automated GitHub Workflows pipeline with the [code-graph-analysis-pipeline](https://github.com/JohT/code-graph-analysis-pipeline).
3
+
This repository provides examples of how to analyze TypeScript code and Java artifacts using a fully automated GitHub Actions workflow pipeline with the [code-graph-analysis-pipeline](https://github.com/JohT/code-graph-analysis-pipeline).
4
4
5
5
The process involves three steps:
6
6
7
-
1.**Extract**: Upload TypeScript source code and/or Java artifacts, optionally including their git history, using [actions/upload-artifact](https://github.com/actions/upload-artifact).
7
+
1.**Extract**: Upload TypeScript source code and/or Java artifacts, optionally including their Git history, using [actions/upload-artifact](https://github.com/actions/upload-artifact).
8
8
9
9
1.**Analyze**: Use the shared workflow [JohT/code-graph-analysis-pipeline/.github/workflows/public-analyze-code-graph.yml](https://github.com/JohT/code-graph-analysis-pipeline/blob/main/.github/workflows/public-analyze-code-graph.yml) to analyze the code and artifacts, then upload the results.
10
10
11
-
1.**Use**: Download the analysis results with [actions/download-artifact](https://github.com/actions/download-artifact) and utilize them as needed.
11
+
1.**Use**: Download the analysis results with [actions/download-artifact](https://github.com/actions/download-artifact) and consume them as needed.
12
12
13
13
## Table of Contents
14
14
<!-- TOC -->
@@ -43,11 +43,11 @@ The process involves three steps:
43
43
44
44
## :rocket: TypeScript Code Pipeline
45
45
46
-
This example demonstrates how to analyze TypeScript code in a GitHub Workflows pipeline.
46
+
This example demonstrates how to analyze TypeScript code in a GitHub Actions workflow.
47
47
48
-
1. The first job, [prepare-code-to-analyze](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml#L40), in the GitHub Actions Workflow[typescript-code-analysis.yml](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml), shows how to extract TypeScript code from a repository and upload it for analysis.
48
+
1. The first job, [prepare-code-to-analyze](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml#L40), in the workflow[typescript-code-analysis.yml](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml), shows how to extract TypeScript code from a repository and upload it for analysis.
49
49
50
-
2. The second job, [analyze-code-graph](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml#L89), calls the shared analysis workflows using the uploaded artifacts' names as parameters. Here is a simple example:
50
+
2. The second job, [analyze-code-graph](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/typescript-code-analysis.yml#L89), calls the shared analysis workflow using the uploaded artifacts' names as parameters. Example:
51
51
52
52
```yaml
53
53
name: Analyze Code Graph
@@ -64,11 +64,11 @@ This example demonstrates how to analyze TypeScript code in a GitHub Workflows p
64
64
65
65
Java artifacts are analyzed similarly to TypeScript code. The main difference is that Java artifacts are downloaded from a Maven repository instead of being part of the repository.
66
66
67
-
To include the git history in the analysis, checkout the corresponding source repository and upload it as the source artifact, similar to the TypeScript example. The Java source code isn't used for the analysis, so a bare git clone is sufficient.
67
+
To include Git history in the analysis, checkout the corresponding source repository and upload it as the source artifact, as in the TypeScript example. The Java source code isn't used in the analysis, so a bare git clone is sufficient.
68
68
69
-
The first job, [prepare-code-to-analyze](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/java-code-analysis.yml#L40), in the GitHub Actions Workflow [java-code-analysis.yml](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/java-code-analysis.yml), shows how to prepare the Java artifacts and git history for analysis.
69
+
The first job, [prepare-code-to-analyze](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/java-code-analysis.yml#L40), in the workflow [java-code-analysis.yml](https://github.com/JohT/code-graph-analysis-examples/blob/23143b34d8fc6e0ab7d80102d8de0b6e6a4ec98e/.github/workflows/java-code-analysis.yml), shows how to prepare the Java artifacts and Git history for analysis.
70
70
71
-
The second and third jobs are the same as for the TypeScript example.
71
+
The second and third jobs are the same as in the TypeScript example.
72
72
73
73
## :bookmark_tabs: CSV Report Reference
74
74
@@ -100,7 +100,7 @@ This repository is licensed under the Apache License, Version 2.0. See [LICENSE]
100
100
101
101
## :bar_chart: Analysis Results
102
102
103
-
Here are some examples from over a hundred reports generated by the analysis. These examples illustrate the results of analyzing [AxonFramework](https://github.com/AxonFramework/AxonFramework), a Java framework for Evolutionary Message-Driven Microservices on the JVM. For the complete set of reports, visit the [analysis-results](./analysis-results) directory.
103
+
Below are examples drawn from more than a hundred reports produced by the analysis. They illustrate results from analyzing [AxonFramework](https://github.com/AxonFramework/AxonFramework), a Java framework for evolutionary, message-driven microservices on the JVM. For the complete set of reports, see the [analysis-results](./analysis-results) directory.
104
104
105
105
### External Dependencies of Java Packages
106
106
@@ -120,7 +120,7 @@ Here are some examples from over a hundred reports generated by the analysis. Th
120
120
121
121
### Object-Oriented Design Metrics for Java Packages
122
122
123
-
<imgsrc="./analysis-results/AxonFramework/latest/object-oriented-design-metrics-java/ObjectOrientedDesignMetricsJava_files/ObjectOrientedDesignMetricsJava_41_0.png"width="600"alt="Object-Oriented Design Metrics for Java packages">
123
+
<imgsrc="./analysis-results/AxonFramework/latest/object-oriented-design-metrics-java/ObjectOrientedDesignMetricsJava_files/ObjectOrientedDesignMetricsJava_41_0.png"width="600"alt="Object-oriented design metrics for Java packages">
124
124
125
125
### Effective Line Count of Java Methods
126
126
@@ -140,7 +140,7 @@ Here are some examples from over a hundred reports generated by the analysis. Th
140
140
141
141
### Word Cloud of Git Authors
142
142
143
-
<imgsrc="./analysis-results/AxonFramework/latest/wordcloud/Wordcloud_files/Wordcloud_16_0.png"width="600"alt="Word cloud of git authors">
143
+
<imgsrc="./analysis-results/AxonFramework/latest/wordcloud/Wordcloud_files/Wordcloud_16_0.png"width="600"alt="Word cloud of Git authors">
144
144
145
145
### Number of distinct commit authors
146
146
@@ -152,18 +152,18 @@ Here are some examples from over a hundred reports generated by the analysis. Th
152
152
153
153
### Clustering coefficient vs. Page Rank
154
154
155
-
This scatter plot compares the importance of Java types to the density of their connections. The Y axis shows the [PageRank](https://en.wikipedia.org/wiki/PageRank) score. Higher values indicate more important and frequently used types. The X axis shows the [clustering coefficient](https://en.wikipedia.org/wiki/Clustering_coefficient). Higher values mean more densely connected neighborhoods. Important bridge or hub Types can be found on the Top-left. Highly influential nodes in dense, well-connected communities can be found on the Top-Right.
155
+
The scatter plot below compares the importance of Java types to the density of their connections. The Y axis shows the [PageRank](https://en.wikipedia.org/wiki/PageRank) score (higher values indicate more important and frequently used types). The X axis shows the [clustering coefficient](https://en.wikipedia.org/wiki/Clustering_coefficient) (higher values indicate more densely connected neighborhoods). Important bridge or hub types appear toward the top-left; highly influential nodes in densecommunities appear toward the top-right.
156
156
157
157
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_ClusteringCoefficient_versus_PageRank.svg"width="600"alt="Clustering Coefficient vs. PageRank">
158
158
159
159
### Java Types that are surprisingly central or popular
<imgsrc="./analysis-results/AxonFramework/latest/anomaly-detection/Java_Type_ClusterNoise_highly_central_and_popular.svg"width="600"alt="Surprisingly central or popular Java types">
0 commit comments