/usr/share/bash-completion/completions/debchange is in devscripts 2.17.6+deb9u2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | # /usr/share/bash-completion/completions/debchange
# Bash command completion for ‘debchange(1)’.
# Documentation: ‘bash(1)’, section “Programmable Completion”.
_debchange()
{
    local cur prev options
    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}
    options='-a --append -i --increment -v --newversion -e --edit\
             -r --release --force-save-on-release --no-force-save-on-release\
             --create --empty --package --auto-nmu --no-auto-nmu -n --nmu\
             --bin-nmu -q --qa -R --rebuild -s --security --team -U --upstream\
             --bpo -l --local -b --force-bad-version --allow-lower-version\
             --force-distribution --closes --noquery --query -d --fromdirname\
             -p --preserve --no-preserve --vendor -D --distribution\
             -u --urgency -c --changelog --news --nomultimaint --multimaint\
             --nomultimaint-merge --multimaint-merge -m --maintmaint\
             -M --controlmaint -t --mainttrailer --check-dirname-level\
             --check-dirname-regex --no-conf --noconf --release-heuristic\
             --help -h --version'
#--------------------------------------------------------------------------
#FIXME: I don't want hard-coding codename...
#--------------------------------------------------------------------------
    oldstable_codename='squeeze'
    stable_codename='wheezy'
    testing_codename='jessie'
    lts='squeeze-lts'
    distro="oldstable-security oldstable-proposed-updates\
            "$oldstable_codename"-security\
            "$oldstable_codename"-backports\
            "$oldstable_codename"-backports-sloppy\
            stable-security stable-proposed-updates\
            "$stable_codename"-security\
            "$stable_codename"-backports\
            "$stable_codename"-updates\
            testing-security testing-proposed-updates\
            "$testing_codename"-security\
            unstable experimental $lts"
    urgency='low medium high critical'
    case $prev in
        --changelog | -c | --news)
            COMPREPLY=( $( compgen -G "${cur}*" ) )
            ;;
        --check-dirname-level)
            COMPREPLY=( $( compgen -W [0 1 2] ) )
            ;;
#FIXME: we need "querybts --list" option with no verbose output
#       --closes)
#            package=`dpkg-parsechangelog -SSource`
#            bugnumber=`querybts --list -b $package|grep ^#|cut -d' ' -f1`
#            COMPREPLY=( $( compgen -W "$bugnumber" ) )
#           ;;
        -D | --distribution)
            COMPREPLY=( $( compgen -W "$distro" ) )
            ;;
        --newversion | -v | --package | --local | -l | --allow-lower-version)
            ;;
        --release-heuristic)
            COMPREPLY=( $( compgen -W 'log changelog' ) )
            ;;
        -u | --urgency)
            COMPREPLY=( $( compgen -W "$urgency" ) )
            ;;
        *)
            COMPREPLY=( $(
                    compgen -W "$options" | grep "^$cur"
                ) )
            ;;
    esac
    return 0
}
complete -F _debchange debchange dch
# Local variables:
# coding: utf-8
# mode: shell-script
# indent-tabs-mode: nil
# End:
# vim: fileencoding=utf-8 filetype=sh expandtab shiftwidth=4 :
 |