Workflow Diagrams
This document contains workflow diagrams that will assist you in your understanding of CHT.
Color Legend:
| Color | Team |
|---|---|
| Green | Assignee |
| Orange | CHT Reviewer |
| Purple | CHT Security |
| Red | Closed Issue |
Initial Hardening
mermaid
flowchart TB
Initial((Initial Issue)) -.-> |Assign Yourself label Hardening::In Progress| Initial
Initial --> |Clone Repo Locally| Local[\Cloned Repo/]
Local --> |Create branch| branch[[Initial Branch]]
branch -.-> |Add Dockerfile\n hardening_manifest.yaml\n renovate.json\n LICENSE\n README.md| branch
branch --> |Work on files per guidelines| Hardening{{Hardening}}
Hardening --> |git add, commit, push| Push[/Push Branch to Repo1\]
Push --> |Open MR with changes to Development\n attach MR to Initial Issue| Repo1[(Repo1)]
Repo1 -.-> |Open VAT, make Justifications for Findings| Repo1
Repo1 --> |Add Hardening::Review Label to Issue| IReview[Initial Review]
IReview(CHT Reviewer) --> |Applies QC Review In-Progress label\n CHT Member Reviews Work|CHT[[Review]]
CHT --> |Valid Work| Merge>Merge to Development]
CHT --> |Invalid Work: Comments in MR\n Removes QC Review In-Progress Label\n Applies Awaiting Response Label| Repo1
Merge --> |Removes QC Review In-Progress\n Applies Hardening::Verification | Security{CHT Security}
Security --> |Review Merge Request\n Review justifications| Review[[Review]]
Review --> |Valid MR changes\n Valid justifications\nMerge MR to master\nVerify justifications in VAT, if any| Master>Merge to Master]
Review --> |Invalid MR changes\n and/or Invalid justifications\n Removes Hardening::Verification label\nComments on Issue| InitialIssue((Initial Issue))
Master --> Closes{{Close Issue}}
InitialIssue --> |Rework Justifications\nApply Hardening::Verification label| Security
InitialIssue --> |Rework changes| feature[[Feature Rework Branch]]
feature --> |Add Hardening::Review Label to Issue| IReview
style Initial fill:#00802b
style InitialIssue fill:#00802b
style branch fill:#00802b
style Hardening fill:#00802b
style Push fill:#00802b
style Repo1 fill:#00802b
style Local fill:#00802b
style feature fill:#00802b
style IReview fill:#b36b00
style CHT fill:#b36b00
style Merge fill:#b36b00
style Review fill:#5900b3
style Security fill:#5900b3
style Master fill:#5900b3
style Closes fill:#ff0000Findings Issues
mermaid
flowchart TB
FindingsIssue((Findings Issue)) -.-> |Assign Yourself, label Hardening::In Progress| FindingsIssue
FindingsIssue -->|Open VAT URL| VAT(VAT)
FindingsIssue --> |Open job URL| Stage(Click VAT URL)
FindingsIssue --> |If Pipeline has not ran\nfor over 24 hours| rerun(Rerun Development\nPipeline)
rerun --> |Open pipeline\nScroll and open 'check-cves'\nClick VAT URL| VAT[(VAT)]
Stage --> VAT[(VAT)]
subgraph id1 [Inside VAT]
VAT --> Findings[[Provide justifications]]
Findings --> SaveProgress(Click Save Progress Button)
end
SaveProgress --> |Copy VAT URL\nComment 'Findings justified in VAT'\nPaste VAT URL\n Check off Tasks\n Apply Hardening::Verification| Security{CHT Security}
Security --> |Review justifications| Review[[Review]]
Review --> |Valid justifications| Close{{Approve in VAT\n Close Issue}}
Review --> |Invalid justifications\n Removes Hardening::Verification label\nComments on Issue| FindingsIssue2((Findings Issue))
FindingsIssue2 --> |Rework Justifications\nApply Hardening::Verification label| Security
style FindingsIssue fill:#00802b
style FindingsIssue2 fill:#00802b
style VAT fill:#00802b
style Stage fill:#00802b
style rerun fill:#00802b
style Findings fill:#00802b
style SaveProgress fill:#00802b
style Review fill:#5900b3
style Security fill:#5900b3
style Close fill:#ff0000Renovate Issues
mermaid
flowchart TD
RenovateIssue((Renovate Issue)) -.-> |Assign Yourself, label Hardening::In Progress| RenovateIssue
RenovateIssue -->|If MR is not Automerged\nOpen Renovate MR| Renovate[[Renovate Merge Request]]
RenovateIssue -->|If MR is Automerged|VAT[(VAT)]
Renovate -.-> |Review MR\nCheck upstream to validate changes| Renovate
Renovate --> |Valid Changes| Merge>Merge MR to Development]
Merge -.-> |Confirm MR passes pipeline| Merge
Merge --> |Open pipeline\nScroll and open 'check-cves'\nClick VAT URL| VAT[(VAT)]
subgraph id1 [Inside VAT]
VAT --> Findings[[Provide justifications]]
Findings --> SaveProgress(Click Save Progress Button)
end
VAT -.-> |Provide justifications in VAT, if any| VAT
SaveProgress --> |Copy VAT URL\nComment 'Findings justified in VAT' paste URL\nApply Hardening::Verification label| Security{CHT Security}
Security --> |Review Merge Request\n Review justifications| Review[[Review]]
Review --> |Valid MR changes\n Valid justifications\nMerge MR to master\nApprove justifications in VAT, if any| Master>Merge to Master]
Review --> |Invalid MR changes\n and/or Invalid justifications\n Removes Hardening::Verification label\nComments on Issue| RenovateIssue2((Renovate Issue))
Master --> Closes{{Close Issue}}
RenovateIssue2 --> |Rework Justifications\nApply Hardening::Verification label| Security
RenovateIssue2 --> |Rework changes| Feature(Feature Rework Branch)
Feature --> |Apply Hardening::Review Label| Review2[/Up for Review\]
Review2 --> |Reviewer applies QC Review In-Progress Label| Merge2(Review Changes)
Merge2 --> |Valid Changes| Dev>Merge to Development]
Merge2 --> |Invalid Changes:\nRemoves QC Review In-Progress Label\nApplies Awaiting Response label| RenovateIssue2
Dev --> |Pipeline succeeds\nApplies Hardening::Verification label| Security{CHT Security}
style RenovateIssue fill:#00802b
style RenovateIssue2 fill:#00802b
style Renovate fill:#00802b
style VAT fill:#00802b
style Merge fill:#00802b
style Findings fill:#00802b
style SaveProgress fill:#00802b
style Feature fill:#00802b
style Review2 fill:#b36b00
style Merge2 fill:#b36b00
style Dev fill:#b36b00
style Review fill:#5900b3
style Security fill:#5900b3
style Master fill:#5900b3
style Closes fill:#ff0000Pipeline Failure Issues
mermaid
flowchart TD
PipelineIssue((Pipeline Failure Issue)) -.-> |Assign Yourself, label Hardening::In Progress| PipelineIssue
PipelineIssue -->|Open Pipelines| Pipelines(Failing Pipeline)
Pipelines -.-> |Investigate Failing Stage\n| Pipelines
Pipelines --> |True Positive Failure| Failure{{True Failure}}
Pipelines --> |False Positive Failure| NotFailure[[False Positive]]
NotFailure --> |Rerun Development Pipeline| Rerun>Rerun Development Pipeline]
Rerun --> |Passes Failed Stage| Close(Passes Pipeline)
Rerun --> |Fails Failed Stage Again| Failure
Close --> |Comment 'Passes failed stage on rerun' on Issue\n Close Issue| Closes{{Close Issue}}
Failure --> |Depending on Failure:\n- Changes to Repo\n- PoPs Problem\n- Update Resources | Investigate[[Investigate Type of Failure]]
Investigate --> |If Fix requires Code changes| Branch(Create Feature Branch)
Branch --> |Pipeline succeeds\n Justifiy Findings in VAT|Findings[(VAT)]
Findings --> |Apply Hardening::Review Label| Review[/Up for Review\]
Review --> |Reviewer applies QC Review In-Progress Label| Merge(Review Changes)
Merge --> |Valid Changes| Dev>Merge to Development]
Merge --> |Invalid Changes:\nRemoves QC Review In-Progress Label\nApplies Awaiting Response label| Branch
Dev --> |Pipeline succeeds\nApplies Hardening::Verification label| Security{CHT Security}
Security --> |Valid Changes\nValid Justifications| Master>Merge to Master]
Master --> Closes{{Close Issue}}
Security --> |Invalid Changes\nand/or Invalid Justifications\nRemoves Hardening::Verification label\n Comments on Issue| Issue((Pipeline Failure Issue))
Issue --> |Rework Justifications\nApply Hardening::Verification label|Security
Issue --> |Rework changes| Feature(Feature Rework Branch)
Feature --> |Apply Hardening::Review Label| Review
style PipelineIssue fill:#00802b
style Issue fill:#00802b
style Pipelines fill:#00802b
style NotFailure fill:#00802b
style Findings fill:#00802b
style Rerun fill:#00802b
style Feature fill:#00802b
style Close fill:#00802b
style Failure fill:#00802b
style Investigate fill:#00802b
style Branch fill:#00802b
style Review fill:#b36b00
style Merge fill:#b36b00
style Dev fill:#b36b00
style Security fill:#5900b3
style Master fill:#5900b3
style Closes fill:#ff0000Bug Issues
mermaid
flowchart TD
BugIssue((Bug Issue)) -.-> |Assign Yourself, label Hardening::In Progress| BugIssue
BugIssue -->|Review Bug Issue| Investigate(Investigate Bug)
Investigate -.-> |Communicate with Issue Creator for more clearity, if needed\n| Investigate
Investigate --> |If Bug Fix requires Code changes| Branch(Create Feature Branch)
Branch --> |Pipeline succeeds\n Justifiy Findings in VAT|Findings[(VAT)]
Findings --> |Apply Hardening::Review Label| Review[/Up for Review\]
Review --> |Reviewer applies QC Review In-Progress Label| Merge(Review Changes)
Merge --> |Valid Changes| Dev>Merge to Development]
Merge --> |Invalid Changes:\nRemoves QC Review In-Progress Label\nApplies Awaiting Response label| Branch
Dev --> |Pipeline succeeds\nApplies Hardening::Verification label| Security{CHT Security}
Security --> |Valid Changes\nValid Justifications| Master>Merge to Master]
Master --> Closes{{Close Issue}}
Security --> |Invalid Changes\nand/or Invalid Justifications\nRemoves Hardening::Verification label\n Comments on Issue| Issue((Bug Issue))
Issue --> |Rework Justifications\nApply Hardening::Verification label|Security
Issue --> |Rework changes| Feature(Feature Rework Branch)
Feature --> |Apply Hardening::Review Label| Review
style BugIssue fill:#00802b
style Issue fill:#00802b
style Feature fill:#00802b
style Findings fill:#00802b
style Investigate fill:#00802b
style Branch fill:#00802b
style Review fill:#b36b00
style Merge fill:#b36b00
style Dev fill:#b36b00
style Security fill:#5900b3
style Master fill:#5900b3
style Closes fill:#ff0000Local Renovate Testing
Note: This workflows assumes that you have already configured your system with the Gitea instructions, outlined in the Local Renovate Testing document on Confluence.
mermaid
flowchart TD
LocalRenovate((Local Renovate Testing\nWith Gitea)) -.-> |If Issue is made Assign Yourself, label Hardening::In Progress\nOtherwise, create an Application Update Issue for it| LocalRenovate
LocalRenovate --> Local[\Clone target Repo Locally/]
Local --> |Create branch| branch[[Renovate Fix Branch]]
branch --> |Deploy Gitea| Gitea((Gitea))
subgraph id1 [Inside Gitea]
Gitea2((Gitea with Files))
Pull([Pull Requests])
Valid([Valid Changes])
Validate[[Validate]]
Gitea -.-> |Remove all current Repos, if any| Gitea
Gitea --> |Create a New Repo with '+' sign| Create([Create Repo])
end
Create --> Clone[\Clone Empty Repo/]
Clone --> testing([Clone Testing Repo Locally])
testing --> |Copy target repo files into Clone Repo|Copy[[Testing Repo]]
Copy --> |Change target branch to master/main in renovate file\ndowngrade current tags/versions\ngit add, commit, push to Gitea Repo| Gitea2
Gitea2 --> Run([On commandline\nRun Renovate Test])
Run --> |Check pull requests Tab\nView what changes were made|Pull([Pull Requests])
Pull --> Validate[[Validate Updates]]
Validate --> |Invalid Changes:\n Troubleshoot renovate file|Gitea2
Validate --> |Valid Changes|Valid([Valid Changes])
Valid -.-> |Change target branch to development|Valid
Valid --> |Update Renovate File in Target Repo| branch
branch --> |git add, commit, push| MR([Create MR to development\nLink MR to Issue])
MR --> |Pipeline succeeds\n Justifiy Findings in VAT|Findings[(VAT)]
Findings --> |Apply Hardening::Review Label| Review[/Up for Review\]
Review --> |Reviewer applies QC Review In-Progress Label| Merge(Review Changes)
Merge --> |Valid Changes| Dev>Merge to Development]
Merge --> |Invalid Changes:\nRemoves QC Review In-Progress Label\nApplies Awaiting Response label| Issue2((Fix Renovate Issue))
Issue2 --> |Rework Code\nApply Hardening::Review Label| Review
Dev --> |Pipeline succeeds\nApplies Hardening::Verification label| Security{CHT Security}
Security --> |Valid Changes\nValid Justifications| Master>Merge to Master]
Master --> Closes{{Close Issue}}
Security --> |Invalid Changes\nand/or Invalid Justifications\nRemoves Hardening::Verification label\n Comments on Issue| Issue((Fix Renovate Issue))
Issue --> |Rework Justifications\nApply Hardening::Verification label|Security
Issue --> |Rework Code\nApply Hardening::Review label|Review
style LocalRenovate fill:#00802b
style Issue2 fill:#00802b
style Issue fill:#00802b
style Clone fill:#00802b
style Findings fill:#00802b
style Local fill:#00802b
style branch fill:#00802b
style MR fill:#00802b
style Gitea fill:#00802b
style Pull fill:#00802b
style Valid fill:#00802b
style Validate fill:#00802b
style Create fill:#00802b
style testing fill:#00802b
style Copy fill:#00802b
style Gitea2 fill:#00802b
style Run fill:#00802b
style Review fill:#b36b00
style Merge fill:#b36b00
style Dev fill:#b36b00
style Security fill:#5900b3
style Master fill:#5900b3
style Closes fill:#ff0000