From 1cfc2e98ffbba1dc2a489ad415c81264b76d8c14 Mon Sep 17 00:00:00 2001 From: 20001LastOrder Date: Sun, 15 Nov 2020 21:56:45 -0500 Subject: code for paper --- .../bin/queries/.CheckAction.java._trace | Bin 0 -> 7387 bytes .../bin/queries/.CheckUserAction.java._trace | Bin 0 -> 9454 bytes .../bin/queries/.Committer.java._trace | Bin 0 -> 8959 bytes .../.ConsecutiveClosesWithoutReopen.java._trace | Bin 0 -> 6301 bytes .../.ConsecutiveReopensWithoutClose.java._trace | Bin 0 -> 3964 bytes .../.ConsecutiveSubWithoutUnSub.java._trace | Bin 0 -> 6225 bytes .../.ConsecutiveUnSubWithoutSub.java._trace | Bin 0 -> 6225 bytes .../bin/queries/.EventUser.java._trace | Bin 0 -> 6198 bytes .../github-graph/bin/queries/.IsClose.java._trace | Bin 0 -> 5542 bytes .../github-graph/bin/queries/.IsReopen.java._trace | Bin 0 -> 5542 bytes .../bin/queries/.IsSubscribe.java._trace | Bin 0 -> 7402 bytes .../bin/queries/.IsUnSubscribe.java._trace | Bin 0 -> 7402 bytes .../bin/queries/.NoCommitter.java._trace | Bin 0 -> 3947 bytes .../github-graph/bin/queries/.NoUser.java._trace | Bin 0 -> 3947 bytes Domains/github-graph/bin/queries/github.vql | 116 ++++++++++++++++++++- 15 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 Domains/github-graph/bin/queries/.CheckAction.java._trace create mode 100644 Domains/github-graph/bin/queries/.CheckUserAction.java._trace create mode 100644 Domains/github-graph/bin/queries/.Committer.java._trace create mode 100644 Domains/github-graph/bin/queries/.ConsecutiveClosesWithoutReopen.java._trace create mode 100644 Domains/github-graph/bin/queries/.ConsecutiveReopensWithoutClose.java._trace create mode 100644 Domains/github-graph/bin/queries/.ConsecutiveSubWithoutUnSub.java._trace create mode 100644 Domains/github-graph/bin/queries/.ConsecutiveUnSubWithoutSub.java._trace create mode 100644 Domains/github-graph/bin/queries/.EventUser.java._trace create mode 100644 Domains/github-graph/bin/queries/.IsClose.java._trace create mode 100644 Domains/github-graph/bin/queries/.IsReopen.java._trace create mode 100644 Domains/github-graph/bin/queries/.IsSubscribe.java._trace create mode 100644 Domains/github-graph/bin/queries/.IsUnSubscribe.java._trace create mode 100644 Domains/github-graph/bin/queries/.NoCommitter.java._trace create mode 100644 Domains/github-graph/bin/queries/.NoUser.java._trace (limited to 'Domains/github-graph/bin/queries') diff --git a/Domains/github-graph/bin/queries/.CheckAction.java._trace b/Domains/github-graph/bin/queries/.CheckAction.java._trace new file mode 100644 index 00000000..fe2295bf Binary files /dev/null and b/Domains/github-graph/bin/queries/.CheckAction.java._trace differ diff --git a/Domains/github-graph/bin/queries/.CheckUserAction.java._trace b/Domains/github-graph/bin/queries/.CheckUserAction.java._trace new file mode 100644 index 00000000..a050dc45 Binary files /dev/null and b/Domains/github-graph/bin/queries/.CheckUserAction.java._trace differ diff --git a/Domains/github-graph/bin/queries/.Committer.java._trace b/Domains/github-graph/bin/queries/.Committer.java._trace new file mode 100644 index 00000000..763f332c Binary files /dev/null and b/Domains/github-graph/bin/queries/.Committer.java._trace differ diff --git a/Domains/github-graph/bin/queries/.ConsecutiveClosesWithoutReopen.java._trace b/Domains/github-graph/bin/queries/.ConsecutiveClosesWithoutReopen.java._trace new file mode 100644 index 00000000..ab0463a3 Binary files /dev/null and b/Domains/github-graph/bin/queries/.ConsecutiveClosesWithoutReopen.java._trace differ diff --git a/Domains/github-graph/bin/queries/.ConsecutiveReopensWithoutClose.java._trace b/Domains/github-graph/bin/queries/.ConsecutiveReopensWithoutClose.java._trace new file mode 100644 index 00000000..62ed7508 Binary files /dev/null and b/Domains/github-graph/bin/queries/.ConsecutiveReopensWithoutClose.java._trace differ diff --git a/Domains/github-graph/bin/queries/.ConsecutiveSubWithoutUnSub.java._trace b/Domains/github-graph/bin/queries/.ConsecutiveSubWithoutUnSub.java._trace new file mode 100644 index 00000000..e1bbd189 Binary files /dev/null and b/Domains/github-graph/bin/queries/.ConsecutiveSubWithoutUnSub.java._trace differ diff --git a/Domains/github-graph/bin/queries/.ConsecutiveUnSubWithoutSub.java._trace b/Domains/github-graph/bin/queries/.ConsecutiveUnSubWithoutSub.java._trace new file mode 100644 index 00000000..ebd0a1e3 Binary files /dev/null and b/Domains/github-graph/bin/queries/.ConsecutiveUnSubWithoutSub.java._trace differ diff --git a/Domains/github-graph/bin/queries/.EventUser.java._trace b/Domains/github-graph/bin/queries/.EventUser.java._trace new file mode 100644 index 00000000..0fe22159 Binary files /dev/null and b/Domains/github-graph/bin/queries/.EventUser.java._trace differ diff --git a/Domains/github-graph/bin/queries/.IsClose.java._trace b/Domains/github-graph/bin/queries/.IsClose.java._trace new file mode 100644 index 00000000..c3bb3738 Binary files /dev/null and b/Domains/github-graph/bin/queries/.IsClose.java._trace differ diff --git a/Domains/github-graph/bin/queries/.IsReopen.java._trace b/Domains/github-graph/bin/queries/.IsReopen.java._trace new file mode 100644 index 00000000..592d4d12 Binary files /dev/null and b/Domains/github-graph/bin/queries/.IsReopen.java._trace differ diff --git a/Domains/github-graph/bin/queries/.IsSubscribe.java._trace b/Domains/github-graph/bin/queries/.IsSubscribe.java._trace new file mode 100644 index 00000000..1b8a39fb Binary files /dev/null and b/Domains/github-graph/bin/queries/.IsSubscribe.java._trace differ diff --git a/Domains/github-graph/bin/queries/.IsUnSubscribe.java._trace b/Domains/github-graph/bin/queries/.IsUnSubscribe.java._trace new file mode 100644 index 00000000..21db9f95 Binary files /dev/null and b/Domains/github-graph/bin/queries/.IsUnSubscribe.java._trace differ diff --git a/Domains/github-graph/bin/queries/.NoCommitter.java._trace b/Domains/github-graph/bin/queries/.NoCommitter.java._trace new file mode 100644 index 00000000..bfc00069 Binary files /dev/null and b/Domains/github-graph/bin/queries/.NoCommitter.java._trace differ diff --git a/Domains/github-graph/bin/queries/.NoUser.java._trace b/Domains/github-graph/bin/queries/.NoUser.java._trace new file mode 100644 index 00000000..0ecef3e3 Binary files /dev/null and b/Domains/github-graph/bin/queries/.NoUser.java._trace differ diff --git a/Domains/github-graph/bin/queries/github.vql b/Domains/github-graph/bin/queries/github.vql index 62853b3f..a8c68f0a 100644 --- a/Domains/github-graph/bin/queries/github.vql +++ b/Domains/github-graph/bin/queries/github.vql @@ -6,14 +6,126 @@ pattern directParent(a : Commit, b: Commit) { } @Constraint(key={a}, severity="error", message="error") -pattern loopInParent(a){ +pattern loopInParent(a: Commit){ find directParent+(a,a); } +pattern checkAction(i: Issue, e: IssueEvent, t: Action) { + Issue.issueevent(i, e); + IssueEvent.action(e, t); + a == t; +} + +pattern checkUserAction(i: Issue, u: User, e: IssueEvent, t: Action) { + Issue.issueevent(i, e); + IssueEvent.user(e, u); + IssueEvent.action(e, a); + a == t; +} + +pattern isReopen(i: Issue, e: IssueEvent) { + Issue.issueevent(i, e); + IssueEvent.action(e, a); + a == Action::REOPENED; +} + +pattern isClose(i: Issue, e: IssueEvent) { + Issue.issueevent(i, e); + IssueEvent.action(e, a); + a == Action::CLOSED; +} + +pattern isUnSubscribe(i: Issue, u: User, e: IssueEvent) { + Issue.issueevent(i, e); + IssueEvent.user(e, u); + IssueEvent.action(e, a); + a == Action::UNSUBSCRIBED; +} + +pattern isSubscribe(i: Issue, u: User, e: IssueEvent) { + Issue.issueevent(i, e); + IssueEvent.user(e, u); + IssueEvent.action(e, a); + a == Action::SUBSCRIBED; +} + + +//pattern pullRequestOfIssue(i: Issue, pr: PullRequest) { +// Issue.pullrequest(i, pr); +//} +// +//@Constraint(key={i}, severity="error", message="error") +//pattern mergedIssueWithoutPr(i: Issue){ +// find checkAction(i, _, Action::MERGED); +// neg find pullRequestOfIssue(i, _); +//} + +@Constraint(key={i}, severity="error", message="error") +pattern consecutiveClosesWithoutReopen(i: Issue) { + find checkAction(i, a1, Action::CLOSED); + find checkAction(i, a2, Action::CLOSED); + a1 != a2; + neg find isReopen(i, _); +} + + +@Constraint(key={i}, severity="error", message="error") +pattern consecutiveReopensWithoutClose(i: Issue) { + find checkAction(i, a1, Action::REOPENED); + find checkAction(i, a2, Action::REOPENED); + a1 != a2; + neg find isClose(i, _); +} + +@Constraint(key={i, u}, severity="error", message="error") +pattern consecutiveSubWithoutUnSub(i: Issue, u: User) { + find checkUserAction(i, u, a1, Action::SUBSCRIBED); + find checkUserAction(i, u, a2, Action::SUBSCRIBED); + a1 != a2; + neg find isUnSubscribe(i, u, _); +} + +@Constraint(key={i, u}, severity="error", message="error") +pattern consecutiveUnSubWithoutSub(i: Issue, u: User) { + find checkUserAction(i, u, a1, Action::UNSUBSCRIBED); + find checkUserAction(i, u, a2, Action::UNSUBSCRIBED); + a1 != a2; + neg find isSubscribe(i, u, _); +} + +//pattern actionWithIssue(i: IssueEvent, a: Action) { +// IssueEvent.action(i, a); +//} +// +//@Constraint(key={i}, severity="error", message="error") +//pattern issueEventNoAction(i: IssueEvent) { +// neg find actionWithIssue(i, _); +//} + + +pattern committer(c: Commit, u:User) { + Commit.committer(c, u); +} + +pattern eventUser(e: IssueEvent, u:User){ + IssueEvent.user(e, u); +} + +@Constraint(key={c}, severity="error", message="error") +pattern noCommitter(c: Commit) { + neg find committer(c, _); +} + +@Constraint(key={e}, severity="error", message="error") +pattern noUser(e: IssueEvent) { + neg find eventUser(e, _); +} + + //1. issue with MERGED but no PullRequest //2. issue with 2 CLOSED events without a REOPENED event //3. issue with 2 REOPENED events without a CLOSED event //4. user-issue pair with 2 SUBSCRIBED events without an UNSUBSCRIBED event //5. user-issue pair with 2 UNSUBSCRIBED events without a SUBSCRIBED event -//6. User MERGED/CLOSED/REOPENED issue without being a projectMember of the Project \ No newline at end of file +//6. User MERGED/CLOSED/REOPENED issue without being a projectMember of the Project (Not possible under this condition) \ No newline at end of file -- cgit v1.2.3-54-g00ecf