I am creating a system which makes static analysis on code when a commit to GitHub is made, the results are then showed as a GitHub review.
My problem is, this means that the developer (actor) will not engage with my system, as it is actually GitHub that does this. The developer (actor) is using GitHub and will see the result from my system in GitHub, hence they are never actually using my system directly.
I feel like the diagram below doesn't really capture this that well.
I then created another diagram, where the developer (actor) communicates with GitHub (actor) and GitHub then communicates with my system.
However this also seems wrong to be, but still better than before. One of my big problems with this is that GitHub is on the left side, however GitHub is kinda a primary actor, so it also makes sense. I have never seen any examples of use case diagrams doing this, is this actually valid and more importantly does it makes sense?
Side question: The CTO (actor) has a use case saying:
As a CTO, I want the tool to not save the code on the server running it, so that I won’t have to worry about our code being leaked.
For me this sounds like a valid use case, but when putting it into a use case diagram it feels off, as this is not really an action, it is more of a requirement. Should this just be part of like a functional requirement?
So I tried improving it based on the recommendations from you guys.
I ended up removing a lot of use cases, as they were more non-functional or functional requirements. Then I wanted to make the change to show that the tool is running remotely when a commit is pushed, not sure if I did that correctly.