Skip to content

Ritika updates - #57

Open
bockthom wants to merge 79 commits into
se-sic:python3-versionfrom
bockthom:ritika-updates
Open

Ritika updates#57
bockthom wants to merge 79 commits into
se-sic:python3-versionfrom
bockthom:ritika-updates

Conversation

@bockthom

@bockthom bockthom commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

This PR contains work from @RitikaHiremath which adds two new features to codeface-extraction:

  • Add scripts to download conversation data from zulip (see the new directory zulip_data_extraction) and to process the zulip data into a list format similar to GitHub issue data, following the same csv file format (see the new script issue_processing/zulip_issue_processing.py).
  • Add functionality to combine data from multiple project into one dataset that behaves like a single project (see the new directory combine_projects). The new script handles all kinds of list files (authors, commits, emails, issues-github, issues-jira, issues-zulip, usernames, bots, commit.messages) and combines them into a single file per data source, making sure that IDs are unique. In addition, it applies a author de-aliasing technique to unify names into a canonical id per author used across all the combined projects. For de-aliasing, it uses the external project https://github.com/bockthom/GitAuthority (requires manually cloning it to a specified path before running the combine_projects.py script).

Notice that this PR adds features only to the python3 version of codeface-extraction and therefore this PR can only be merged after #56 has been merged.

Leo-Send added 30 commits June 9, 2026 12:54
This allows for reconstruction of correct commit author if user is
github

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also added one comment for clarity

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also save merge commits
reconstruction of connected events is done by first saving all connected
events that occured at the same time. Then, it is possible to match
connected events iff:
- half of the involved issues are equal, meaning that one issue is
  connected to multiple others
- half rounded up of the involved isses are equal, meaning that we have
  one external connected event and then the previous case with the
remaining issues

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
since data is modified in-place, return of input data is not needed

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
ALso add commit hash if closed by commit

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also rename 'new feature' to 'feature'

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also remove duplicates from type list

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
using empty line reserved for jira components

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also added copyright header

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also minor fixes and removal of math.ceil

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
comments now each have a boolean field that describes whether the
comment contains a suggestion or not

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
dicts for reconstructing connected events are now better explained and
the comments do not disruot the workflow in the run function anymore

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
includes:
- updated comments
- spelling mistake
- fix for potential crash if script is used on old data

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
author postprocessing now also contains a list of known copilot use
names that can be extended to unify more different copilot users

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
the events 'copilot_work_started' and 'copilot_work_finished' now always
have the standard copilot user data

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Method doc updated to reflect new functionality

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
previously, the creator of the issues was falsely matched to the
connected event instead of the user triggering the event

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
unification now done on all files, which should prevent any issues
arising from unknown authors during anonymization
also move all global variables to a new utils file

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Known agentsc such as 'copilot' or 'claude' can now be read, similar to
known bots. They will be flagged as agents during bot processing.

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Add a helper function for creating bot name variants utilizing either
'[bot]' or 'bot' suffix. Also update bot processing to check user buffer
for all variants.

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Add a helper function that given a botname and a list of names, returns
which bot name variant is contained in the list (or None). This is used
whenever we check if a known bot is in the userdata or has been
predicted to be a bot, and means that botnames in the known_bots file do
not need to be duplicated for each variant.
Also, automatically add all known coplilot users to the known_agents
list, and then unify those during author postprocessing.

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
also add agents to bot handling, fix formatting for event_info_2 and
subissues
also fix a typo where strings would not have their quotes correctly
removed

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
lock reason is saved in event_info_1

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
docstrings should now more accurately reflect parameters and return
values

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
For consistency with github events

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
previously removed event_info_2 for state_updated event, leading to
crashes of the issue processing. Now, it instead contains an empty
string.
Also fix a minor spelling mistake

Signed-off-by: <s8lesend@stud.uni-saarland.de>
event_info_1 should remain empty in that case

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
These fields are now replaced with empty lists when null

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
changing .keys() call on maps after rebase onto python 3 branch

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Iteritems() does not work in python3, instrad use items()

Signed-off-by: Leo Sendelbach <s8lesend@stud.uni-saarland.de>
Signed-off-by: Thomas Bock <bockthom@cmu.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants