-
Notifications
You must be signed in to change notification settings - Fork 225
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'jph-dev-eds' into jph-testmerge-20240415
- Loading branch information
Showing
108 changed files
with
1,889 additions
and
5,304 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?xml version="1.0"?> | ||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | ||
<xsl:output method="xml" encoding="UTF-8"/> | ||
<xsl:variable name="merge_items" select="document($merge_file)/results/errors/error" /> | ||
|
||
<!-- A default template that makes an XML output identical to the input --> | ||
<xsl:template match="@* | node()"> | ||
<xsl:copy> | ||
<xsl:apply-templates select="@* | node()"/> | ||
</xsl:copy> | ||
</xsl:template> | ||
|
||
<!-- | ||
A specific template for the "errors" element, which includes: | ||
all the "error" child elements from this element | ||
all the "error" elements from the merged document | ||
--> | ||
<xsl:template match="results/errors"> | ||
<xsl:copy> | ||
<xsl:apply-templates select="error" /> | ||
<xsl:apply-templates select="$merge_items" /> | ||
</xsl:copy> | ||
</xsl:template> | ||
|
||
</xsl:stylesheet> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<?xml version="1.0"?> | ||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | ||
<xsl:output method="text" encoding="UTF-8"/> | ||
<xsl:template match="/">## CppCheck <xsl:value-of select="//cppcheck/@version"/> Summary | ||
<xsl:if test="count(//error) > 0"> | ||
| error | warning | style | performance | portability | information | | ||
| --- | --- | --- | --- | --- | --- | | ||
| <xsl:value-of select="count(//error[@severity='error'])"/> | <xsl:value-of select="count(//error[@severity='warning'])"/> | <xsl:value-of select="count(//error[@severity='style'])"/> | <xsl:value-of select="count(//error[@severity='performance'])"/> | <xsl:value-of select="count(//error[@severity='portability'])"/> | <xsl:value-of select="count(//error[@severity='information'])"/> | | ||
|
||
| severity | location | error id | issue | | ||
| --- | --- | --- | --- | | ||
<xsl:for-each select="results//error">| <xsl:value-of select="@severity"/> | <xsl:value-of select="location/@file"/>:<xsl:value-of select="location/@line"/> | <xsl:value-of select="@id"/> | <xsl:value-of select="@msg"/> | | ||
</xsl:for-each> | ||
</xsl:if> | ||
**<xsl:value-of select="count(//error)"/> error(s) reported** | ||
</xsl:template> | ||
</xsl:stylesheet> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
import subprocess | ||
import json | ||
import sys | ||
import time | ||
import os | ||
|
||
# extract pull request data from GitHub | ||
repos = ['cFS', 'cFE', 'osal', 'psp', 'sch_lab', 'ci_lab', 'to_lab', 'sample_app', 'sample_lib', 'elf2cfetbl', 'tblcrctool','cFS-GroundSystem', 'CF', 'CS', 'DS','FM', 'HK', 'HS', 'LC', 'MD', 'MM', 'SC'] | ||
|
||
for repo in repos: | ||
subprocess.Popen('gh pr list --repo nasa/' + str(repo) + ' --search "draft:false" --json number,author,title,url,additions,deletions,labels | jq -c ' + '\'reduce range(0, length) as $index (.; (.[$index].author=.[$index].author.login | .[$index].number=(.[$index].number|"\'' + str(repo) + '\' PR #\(.)") )) | .[]\' ' + '>> temp.json', shell=True) | ||
|
||
time.sleep(5) | ||
subprocess.Popen('jq -s . temp.json > prs.json', shell=True) | ||
time.sleep(5) | ||
|
||
# load a list of pull requests as python dictionaries | ||
with open ('prs.json') as prs_file: | ||
prs = json.load(prs_file) | ||
|
||
PrData = dict() # {author: [pr1, pr2, pr3, ...]} | ||
AuthorPrChanges = dict() # {author: #TotalChanges} | ||
|
||
for pr in prs: | ||
ignore = False | ||
for label in pr['labels']: | ||
if label['name'] == 'CCB:Ignore' or label['name'] == 'CCB:Approved': | ||
ignore = True | ||
break | ||
if ignore == False: | ||
if pr['author'] not in PrData: | ||
PrData[pr['author']] = [pr] | ||
AuthorPrChanges[pr['author']] = pr['additions'] + pr['deletions'] | ||
else: | ||
PrData[pr['author']].append(pr) | ||
AuthorPrChanges[pr['author']] += pr['additions'] + pr['deletions'] | ||
|
||
# no prs to write, exit program | ||
if len(PrData) == 0: | ||
print("Failed to find relevant Pull Requests for the agenda. Exiting...\n") | ||
sys.exit() | ||
|
||
# re-order dict according to sum(additions, deletions) of each pr for each author | ||
AuthorPrChanges = {k: v for k, v in sorted(AuthorPrChanges.items(), key=lambda item: item[1])} | ||
|
||
# write to markdown | ||
CCBfilename = "CCBAgenda.md" | ||
with open(CCBfilename, 'w') as f: | ||
f.write("## Items for Discussion\n\n") | ||
for author in AuthorPrChanges.keys(): | ||
f.write("### @" + author + "\n\n") | ||
for pr_auth in PrData[author]: | ||
if (author == pr_auth['author']): | ||
f.write("[" + pr_auth['number'] + "](" + pr_auth['url'].replace("pull", "issues") + ") " + pr_auth['title'] + "\n\n") | ||
|
||
# close files | ||
f.close() | ||
prs_file.close() | ||
time.sleep(5) | ||
try: | ||
os.remove("prs.json") | ||
os.remove("temp.json") | ||
except OSError: | ||
pass | ||
|
||
time.sleep(5) | ||
|
||
if (os.stat(CCBfilename).st_size != 0): | ||
print("CCB markdown has been successfully created") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.