<commit_before>import * as Path from 'path'

let CloningRepositoryID = 1

/** A repository which is currently being cloned. */
export class CloningRepository {
  public readonly id = CloningRepositoryID++
  public readonly path: string
  public readonly url: string

  public constructor(path: string, url: string) {
    this.path = path
    this.url = url
  }

  public get name(): string {
    return Path.basename(this.url, '.git')
  }

  /**
   * A hash of the properties of the object.<commit_msg>Refactored models/cloning-repository constructors with parameter properties<commit_after>import * as Path from 'path'

let CloningRepositoryID = 1

/** A repository which is currently being cloned. */
export class CloningRepository {
  public readonly id = CloningRepositoryID++

  public constructor(
    public readonly path: string,
    public readonly url: string
  ) {}

  public get name(): string {
    return Path.basename(this.url, '.git')
  }

  /**
   * A hash of the properties of the object.
{'fraction_non_alphanumeric': 0.09145129224652088, 'fraction_numerical': 0.0019880715705765406, 'mean_word_length': 3.598173515981735, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6120704', 'n_tokens_mistral': 284, 'n_tokens_neox': 273, 'n_words': 105}