Skip to main navigation Skip to search Skip to main content

"@alex, this fixes #9": Analysis of Referencing Patterns in Pull Request Discussions

  • Ashish Chopra
  • , Morgan Mo
  • , Samuel Dodson
  • , Ivan Beschastnikh
  • , Sidney S. Fels
  • , Dongwook Yoon
  • University of British Columbia

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

Abstract

Pull Requests (PRs) are a frequently used method for proposing changes to source code repositories. When discussing proposed changes in a PR discussion, stakeholders often reference a wide variety of information objects for establishing shared awareness and common ground. Previous work has not considered how the referential behavior impacts collaborative software development via PRs. This knowledge gap is the major barrier in evaluating the current support for referencing in PRs and improving them. We conducted an explorative analysis of \textasciitilde7K references, collected from 450 public PRs on GitHub, and constructed taxonomies of referent types and expressions. Using our annotated dataset, we identified several patterns in the use of references. Referencing source code elements was prevalent but the authoring interface lacks support for it. Three classes of contextual factors influence referencing behaviors: referent type, discussion thread, and project attributes. Referencing patterns may indicate PR outcomes (e.g., merged PRs frequently reference issues, users, and tests). We conclude with design implications to support more effective referencing in PR discussion interfaces.

Original languageEnglish
Article number385
JournalProceedings of the ACM on Human-Computer Interaction
Volume5
Issue numberCSCW2
DOIs
StatePublished - Oct 18 2021

Keywords

  • code review
  • pull request
  • qualitative content analysis
  • reference
  • software development
  • taxonomy

Fingerprint

Dive into the research topics of '"@alex, this fixes #9": Analysis of Referencing Patterns in Pull Request Discussions'. Together they form a unique fingerprint.

Cite this