code: def _release_line(c):
      
      # TODO: I don't _think_ this technically overlaps with Releases (because
      # that only ever deals with changelog contents, and therefore full release
      # version numbers) but in case it does, move it there sometime.
      # TODO: this and similar calls in this module may want to be given an
      # explicit pointer-to-git-repo option (i.e. if run from outside project
      # context).
      # TODO: major releases? or are they big enough events we don't need to
      # bother with the script? Also just hard to gauge - when is master the next
      # 1.x feature vs 2.0?
      branch = c.run("git rev-parse --abbrev-ref HEAD", hide=True).stdout.strip()
      type_ = Release.UNDEFINED
      if BUGFIX_RE.match(branch):
          type_ = Release.BUGFIX
      if FEATURE_RE.match(branch):
          type_ = Release.FEATURE
      return branch, type_
docs: Examine current repo state to determine what type of release to prep.
  
      :returns:
          A two-tuple of ``(branch-name, line-type)`` where:
  
          - ``branch-name`` is the current branch name, e.g. ``1.1``, ``master``,
            ``gobbledygook`` (or, usually, ``HEAD`` if not on a branch).
          - ``line-type`` is a symbolic member of `.Release` representing what
            "type" of release the line appears to be for:
  
              - ``Release.BUGFIX`` if on a bugfix/stable release line, e.g.
                ``1.1``.
              - ``Release.FEATURE`` if on a feature-release branch (typically
                ``master``).
              - ``Release.UNDEFINED`` if neither of those appears to apply
                (usually means on some unmerged feature/dev branch).