This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new ea5dad5fb0 GH-47075: [Release][Dev] Use GH_TOKEN as GitHub token
environment variable (#47181)
ea5dad5fb0 is described below
commit ea5dad5fb0ead086878addaaf8473cf623c41005
Author: Sutou Kouhei <[email protected]>
AuthorDate: Tue Jul 29 09:43:55 2025 +0900
GH-47075: [Release][Dev] Use GH_TOKEN as GitHub token environment variable
(#47181)
### Rationale for this change
We have many environment variables for GitHub token: `GH_TOKEN`,
`ARROW_GITHUB_API_TOKEN` and `CROSSBOW_GITHUB_TOKEN`
It's difficult to maintain. For example, we may forget to define one of
them.
### What changes are included in this PR?
Use `GH_TOKEN` as unified environment variable for GitHub token.
We can still use `ARROW_GITHUB_API_TOKEN` and `CROSSBOW_GITHUB_TOKEN` for
backward compatibility but `GH_TOKEN` is recommended.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #47075
Lead-authored-by: Sutou Kouhei <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Co-authored-by: Bryce Mecum <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
.github/workflows/comment_bot.yml | 2 +-
.github/workflows/dev.yml | 3 +--
.github/workflows/pr_bot.yml | 2 +-
dev/README.md | 2 +-
dev/archery/archery/bot.py | 2 +-
dev/archery/archery/cli.py | 2 +-
dev/archery/archery/crossbow/cli.py | 2 +-
dev/archery/archery/crossbow/core.py | 2 +-
dev/archery/archery/release/cli.py | 2 +-
dev/merge_arrow_pr.py | 11 ++++++--
dev/release/.env.example | 2 +-
dev/release/01-prepare-test.rb | 2 ++
dev/release/01-prepare.sh | 3 ++-
dev/release/02-source-test.rb | 3 ++-
dev/release/02-source.sh | 17 +++++++------
dev/release/03-binary-submit.sh | 4 +++
dev/release/05-binary-upload.sh | 13 +++-------
dev/release/06-matlab-upload.sh | 13 ++--------
dev/release/07-binary-verify.sh | 4 +++
dev/release/post-03-binary.sh | 13 +++-------
dev/release/post-05-update-gh-release-notes.sh | 6 +++--
dev/release/post-10-python.sh | 10 ++------
dev/release/post-11-bump-versions-test.rb | 2 ++
dev/release/{.env.example => utils-env.sh} | 29 ++++++++--------------
.../developers/continuous_integration/crossbow.rst | 23 +++++------------
docs/source/developers/release.rst | 1 -
26 files changed, 76 insertions(+), 99 deletions(-)
diff --git a/.github/workflows/comment_bot.yml
b/.github/workflows/comment_bot.yml
index df9a355ccd..de18a7e788 100644
--- a/.github/workflows/comment_bot.yml
+++ b/.github/workflows/comment_bot.yml
@@ -49,7 +49,7 @@ jobs:
run: pip install -e arrow/dev/archery[bot]
- name: Handle GitHub comment event
env:
- ARROW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROSSBOW_GITHUB_TOKEN: ${{ secrets.CROSSBOW_GITHUB_TOKEN }}
run: |
archery --debug trigger-bot \
diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml
index fc18c75fd5..90535f4bca 100644
--- a/.github/workflows/dev.yml
+++ b/.github/workflows/dev.yml
@@ -107,10 +107,9 @@ jobs:
gem install test-unit
pip install "cython>=3" setuptools pytest requests setuptools-scm
- name: Run Release Test
- env:
- ARROW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
+ echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" > dev/release/.env
ci/scripts/release_test.sh $(pwd)
- name: Run Merge Script Test
shell: bash
diff --git a/.github/workflows/pr_bot.yml b/.github/workflows/pr_bot.yml
index 4d57b763ed..eb180a6a52 100644
--- a/.github/workflows/pr_bot.yml
+++ b/.github/workflows/pr_bot.yml
@@ -89,7 +89,7 @@ jobs:
run: pip install -e arrow/dev/archery[bot]
- name: Handle PR workflow event
env:
- ARROW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ "${GITHUB_EVENT_NAME}" = "workflow_run" ]; then
# workflow_run is executed on PR review. Update to original event.
diff --git a/dev/README.md b/dev/README.md
index c813aa6417..275e1ae5c9 100644
--- a/dev/README.md
+++ b/dev/README.md
@@ -56,7 +56,7 @@ for configuring your tokens: environment variables or a
configuration file.
#### Pass tokens via Environment Variables
The merge script uses the GitHub REST API. You must set a
-`ARROW_GITHUB_API_TOKEN` environment variable to use a
+`GH_TOKEN` environment variable to use a
[Personal Access
Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).
You need to add `workflow` scope to the Personal Access Token.
diff --git a/dev/archery/archery/bot.py b/dev/archery/archery/bot.py
index f2e3eb4825..29190829d2 100644
--- a/dev/archery/archery/bot.py
+++ b/dev/archery/archery/bot.py
@@ -359,7 +359,7 @@ def _clone_arrow_and_crossbow(dest, crossbow_repo,
arrow_repo_url, pr_number):
git.clone(crossbow_url, str(queue_path))
# 3. initialize crossbow objects
- github_token = os.environ['CROSSBOW_GITHUB_TOKEN']
+ github_token = os.environ.get('CROSSBOW_GITHUB_TOKEN',
os.environ['GH_TOKEN'])
arrow = Repo(arrow_path)
queue = Queue(queue_path, github_token=github_token, require_https=True)
diff --git a/dev/archery/archery/cli.py b/dev/archery/archery/cli.py
index c56474e78d..3d86700cf4 100644
--- a/dev/archery/archery/cli.py
+++ b/dev/archery/archery/cli.py
@@ -815,7 +815,7 @@ def integration(with_all=False, random_seed=12345, **args):
@archery.command()
[email protected]('--arrow-token', envvar='ARROW_GITHUB_TOKEN',
[email protected]('--arrow-token', envvar=['GH_TOKEN', 'ARROW_GITHUB_TOKEN'],
help='OAuth token for responding comment in the arrow repo')
@click.option('--committers-file', '-c', type=click.File('r', encoding='utf8'))
@click.option('--event-name', '-n', required=True)
diff --git a/dev/archery/archery/crossbow/cli.py
b/dev/archery/archery/crossbow/cli.py
index a686d5c596..c73c4d1ff7 100644
--- a/dev/archery/archery/crossbow/cli.py
+++ b/dev/archery/archery/crossbow/cli.py
@@ -35,7 +35,7 @@ _default_config_path = _default_arrow_path / "dev" / "tasks"
/ "tasks.yml"
@click.group()
@click.option('--github-token', '-t', default=None,
- envvar="CROSSBOW_GITHUB_TOKEN",
+ envvar=['CROSSBOW_GITHUB_TOKEN', 'GH_TOKEN'],
help='OAuth token for GitHub authentication')
@click.option('--arrow-path', '-a',
type=click.Path(), default=_default_arrow_path,
diff --git a/dev/archery/archery/crossbow/core.py
b/dev/archery/archery/crossbow/core.py
index 9fd946f46e..f12afc082f 100644
--- a/dev/archery/archery/crossbow/core.py
+++ b/dev/archery/archery/crossbow/core.py
@@ -291,7 +291,7 @@ class Repo:
if github_token is None:
raise RuntimeError(
'Could not determine GitHub token. Please set the '
- 'CROSSBOW_GITHUB_TOKEN environment variable to a '
+ 'CROSSBOW_GITHUB_TOKEN or GH_TOKEN environment variable to a '
'valid GitHub access token or pass one to --github-token.'
)
callbacks = GitRemoteCallbacks(github_token)
diff --git a/dev/archery/archery/release/cli.py
b/dev/archery/archery/release/cli.py
index 1fd32c7fb8..cb0b1e2940 100644
--- a/dev/archery/archery/release/cli.py
+++ b/dev/archery/archery/release/cli.py
@@ -28,7 +28,7 @@ from .core import IssueTracker, Release
callback=validate_arrow_sources,
help="Specify Arrow source directory.")
@click.option('--github-token', '-t', default=None,
- envvar="CROSSBOW_GITHUB_TOKEN",
+ envvar=['GH_TOKEN', 'CROSSBOW_GITHUB_TOKEN'],
help='OAuth token for GitHub authentication')
@click.pass_obj
def release(obj, src, github_token):
diff --git a/dev/merge_arrow_pr.py b/dev/merge_arrow_pr.py
index 10d94a6e4a..4a1bd4945d 100755
--- a/dev/merge_arrow_pr.py
+++ b/dev/merge_arrow_pr.py
@@ -30,7 +30,8 @@
# variables.
#
# Configuration environment variables:
-# - ARROW_GITHUB_API_TOKEN: a GitHub API token to use for API requests
+# - GH_TOKEN: a GitHub API token to use for API requests
+# - ARROW_GITHUB_API_TOKEN: Same as GH_TOKEN. For backward compatibility.
# - ARROW_GITHUB_ORG: the GitHub organisation ('apache' by default)
# - DEBUG: use for testing to avoid pushing to apache (0 by default)
@@ -254,10 +255,16 @@ class GitHubAPI(object):
config = load_configuration()
if "github" in config.sections():
token = config["github"]["api_token"]
+ if not token:
+ token = os.environ.get('GH_TOKEN')
if not token:
token = os.environ.get('ARROW_GITHUB_API_TOKEN')
+ if token:
+ print('ARROW_GITHUB_API_TOKEN environment variable is '
+ 'deprecated. Use GH_TOKEN environment variable instead.')
if not token:
- token = cmd.prompt('Env ARROW_GITHUB_API_TOKEN not set, '
+ token = cmd.prompt('Env GH_TOKEN nor '
+ 'ARROW_GITHUB_API_TOKEN not set, '
'please enter your GitHub API token '
'(GitHub personal access token):')
headers = {
diff --git a/dev/release/.env.example b/dev/release/.env.example
index 4ebf0e9f3a..67bc944956 100644
--- a/dev/release/.env.example
+++ b/dev/release/.env.example
@@ -30,7 +30,7 @@
# You must set this.
#ARTIFACTORY_API_KEY=secret
-# The GitHub token to upload artifacts to GitHub Release.
+# The GitHub token used in numerous release scripts.
#
# You must set this.
#GH_TOKEN=secret
diff --git a/dev/release/01-prepare-test.rb b/dev/release/01-prepare-test.rb
index c5c38e6876..4dd41677bf 100644
--- a/dev/release/01-prepare-test.rb
+++ b/dev/release/01-prepare-test.rb
@@ -28,6 +28,8 @@ class PrepareTest < Test::Unit::TestCase
Dir.mktmpdir do |dir|
@test_git_repository = Pathname(dir) + "arrow"
git("clone", @original_git_repository.to_s, @test_git_repository.to_s)
+ FileUtils.cp((top_dir + "dev" + "release" + ".env").to_s,
+ (@test_git_repository + "dev" + "release").to_s)
Dir.chdir(@test_git_repository) do
@release_branch = "testing-release-#{@release_version}-rc0"
git("checkout", "-b", @release_branch, @current_commit)
diff --git a/dev/release/01-prepare.sh b/dev/release/01-prepare.sh
index 779348f036..56a6d527a5 100755
--- a/dev/release/01-prepare.sh
+++ b/dev/release/01-prepare.sh
@@ -26,7 +26,8 @@ if [ "$#" -ne 3 ]; then
exit 1
fi
-. $SOURCE_DIR/utils-prepare.sh
+. "${SOURCE_DIR}/utils-env.sh"
+. "${SOURCE_DIR}/utils-prepare.sh"
version=$1
next_version=$2
diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb
index 20da2476a9..1b0bc2a9a1 100644
--- a/dev/release/02-source-test.rb
+++ b/dev/release/02-source-test.rb
@@ -26,6 +26,7 @@ class SourceTest < Test::Unit::TestCase
@archive_name = "apache-arrow-#{@release_version}.tar.gz"
@script = File.expand_path("dev/release/02-source.sh")
@tarball_script =
File.expand_path("dev/release/utils-create-release-tarball.sh")
+ @env = File.expand_path("dev/release/.env")
Dir.mktmpdir do |dir|
Dir.chdir(dir) do
@@ -96,7 +97,7 @@ class SourceTest < Test::Unit::TestCase
end
def test_vote
- github_token = ENV["ARROW_GITHUB_API_TOKEN"]
+ github_token = File.read(@env)[/^GH_TOKEN=(.*)$/, 1]
uri = URI.parse("https://api.github.com/graphql")
n_issues_query = {
"query" => <<-QUERY,
diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh
index ab4fa10608..099a8992a8 100755
--- a/dev/release/02-source.sh
+++ b/dev/release/02-source.sh
@@ -38,6 +38,8 @@ fi
version=$1
rc=$2
+. "${SOURCE_DIR}/utils-env.sh"
+
tag=apache-arrow-${version}-rc${rc}
maint_branch=maint-${version}
rc_branch="release-${version}-rc${rc}"
@@ -115,20 +117,21 @@ if [ ${SOURCE_PR} -gt 0 ]; then
fi
if [ ${SOURCE_VOTE} -gt 0 ]; then
- gh_api_url="https://api.github.com/graphql"
- curl_options=($gh_api_url)
- curl_options+=(--header "Authorization: Bearer ${ARROW_GITHUB_API_TOKEN}")
+ curl_common_options=(--header "Authorization: Bearer ${GH_TOKEN}")
+
+ curl_options=("${curl_common_options[@]}")
curl_options+=(--data "{\"query\": \"query {search(query:
\\\"repo:apache/arrow is:issue is:closed milestone:${version}\\\", type:ISSUE)
{issueCount}}\"}")
+ curl_options+=("https://api.github.com/graphql")
n_resolved_issues=$(curl "${curl_options[@]}" | jq ".data.search.issueCount")
- curl_options=(--header "Accept: application/vnd.github+json")
- if [ -n "${ARROW_GITHUB_API_TOKEN:-}" ]; then
- curl_options+=(--header "Authorization: Bearer ${ARROW_GITHUB_API_TOKEN}")
- fi
+
+ curl_options=("${curl_common_options[@]}")
+ curl_options+=(--header "Accept: application/vnd.github+json")
curl_options+=(--get)
curl_options+=(--data "state=open")
curl_options+=(--data "head=apache:${rc_branch}")
curl_options+=(https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls)
verify_pr_url=$(curl "${curl_options[@]}" | jq -r ".[0].html_url")
+
echo "The following draft email has been created to send to the"
echo "[email protected] mailing list"
echo ""
diff --git a/dev/release/03-binary-submit.sh b/dev/release/03-binary-submit.sh
index 9281597df5..e3a0fc4ee7 100755
--- a/dev/release/03-binary-submit.sh
+++ b/dev/release/03-binary-submit.sh
@@ -19,11 +19,15 @@
set -eu
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version> <rc-num>"
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+
version=$1
rc=$2
version_with_rc="${version}-rc${rc}"
diff --git a/dev/release/05-binary-upload.sh b/dev/release/05-binary-upload.sh
index 1d69c8df93..e8a1922603 100755
--- a/dev/release/05-binary-upload.sh
+++ b/dev/release/05-binary-upload.sh
@@ -31,6 +31,9 @@ if [ "$#" -ne 2 ]; then
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+. "${SOURCE_DIR}/utils-binary.sh"
+
version=$1
rc=$2
@@ -55,16 +58,6 @@ fi
cd "${SOURCE_DIR}"
-if [ ! -f .env ]; then
- echo "You must create $(pwd)/.env"
- echo "You can use $(pwd)/.env.example as template"
- exit 1
-fi
-# shellcheck source=SCRIPTDIR/.env.example
-. .env
-
-. utils-binary.sh
-
# By default upload all artifacts.
# To deactivate one category, deactivate the category and all of its
dependents.
# To explicitly select one category, set UPLOAD_DEFAULT=0 UPLOAD_X=1.
diff --git a/dev/release/06-matlab-upload.sh b/dev/release/06-matlab-upload.sh
index fa3f2f1086..fd180f6df1 100755
--- a/dev/release/06-matlab-upload.sh
+++ b/dev/release/06-matlab-upload.sh
@@ -28,23 +28,14 @@ if [ $# -ne 2 ]; then
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+
version=$1
rc=$2
: ${UPLOAD_DEFAULT=1}
: ${UPLOAD_FORCE_SIGN=${UPLOAD_DEFAULT}}
-if [ ${UPLOAD_FORCE_SIGN} -gt 0 ]; then
- pushd "${SOURCE_DIR}"
- if [ ! -f .env ]; then
- echo "You must create $(pwd)/.env"
- echo "You can use $(pwd)/.env.example as template"
- exit 1
- fi
- . .env
- popd
-fi
-
version_with_rc="${version}-rc${rc}"
crossbow_job_prefix="release-${version_with_rc}"
crossbow_package_dir="${SOURCE_DIR}/../../packages"
diff --git a/dev/release/07-binary-verify.sh b/dev/release/07-binary-verify.sh
index b0ad3d3dcb..9db8a219e3 100755
--- a/dev/release/07-binary-verify.sh
+++ b/dev/release/07-binary-verify.sh
@@ -21,11 +21,15 @@ set -e
set -u
set -o pipefail
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version> <rc-num>"
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+
version=$1
rc=$2
diff --git a/dev/release/post-03-binary.sh b/dev/release/post-03-binary.sh
index d0487585dd..2c8a1577a8 100755
--- a/dev/release/post-03-binary.sh
+++ b/dev/release/post-03-binary.sh
@@ -27,21 +27,14 @@ if [ "$#" -ne 2 ]; then
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+. "${SOURCE_DIR}/utils-binary.sh"
+
version=$1
rc=$2
cd "${SOURCE_DIR}"
-if [ ! -f .env ]; then
- echo "You must create $(pwd)/.env"
- echo "You can use $(pwd)/.env.example as template"
- exit 1
-fi
-# shellcheck source=SCRIPTDIR/.env.example
-. .env
-
-. utils-binary.sh
-
# By default deploy all artifacts.
# To deactivate one category, deactivate the category and all of its
dependents.
# To explicitly select one category, set DEPLOY_DEFAULT=0 DEPLOY_X=1.
diff --git a/dev/release/post-05-update-gh-release-notes.sh
b/dev/release/post-05-update-gh-release-notes.sh
index e321c98721..87c49fa85d 100755
--- a/dev/release/post-05-update-gh-release-notes.sh
+++ b/dev/release/post-05-update-gh-release-notes.sh
@@ -20,21 +20,23 @@
set -e
set -o pipefail
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <version>"
exit 1
fi
+. "${SOURCE_DIR}/utils-env.sh"
VERSION=$1
REPOSITORY="apache/arrow"
TAG="apache-arrow-${VERSION}"
WORKFLOW="release.yml"
-SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Wait for the GitHub Workflow that creates the GitHub Release
# to finish before updating the release notes.
-. $SOURCE_DIR/utils-watch-gh-workflow.sh ${TAG} ${WORKFLOW}
+"${SOURCE_DIR}/utils-watch-gh-workflow.sh" "${TAG}" "${WORKFLOW}"
# Update the Release Notes section
RELEASE_NOTES_URL="https://arrow.apache.org/release/${VERSION}.html"
diff --git a/dev/release/post-10-python.sh b/dev/release/post-10-python.sh
index e3b1991acf..709a4cdec4 100755
--- a/dev/release/post-10-python.sh
+++ b/dev/release/post-10-python.sh
@@ -29,18 +29,12 @@ if [ "$#" -ne 1 ]; then
exit
fi
+. "${SOURCE_DIR}/utils-env.sh"
+
version=$1
cd "${SOURCE_DIR}"
-if [ ! -f .env ]; then
- echo "You must create $(pwd)/.env"
- echo "You can use $(pwd)/.env.example as template"
- exit 1
-fi
-# shellcheck source=SCRIPTDIR/.env.example
-. .env
-
tmp=$(mktemp -d -t "arrow-post-python.XXXXX")
gh release download \
"apache-arrow-${version}" \
diff --git a/dev/release/post-11-bump-versions-test.rb
b/dev/release/post-11-bump-versions-test.rb
index ff533cde2c..0184179fb3 100644
--- a/dev/release/post-11-bump-versions-test.rb
+++ b/dev/release/post-11-bump-versions-test.rb
@@ -28,6 +28,8 @@ class PostBumpVersionsTest < Test::Unit::TestCase
Dir.mktmpdir do |dir|
@test_git_repository = Pathname(dir) + "arrow"
git("clone", @original_git_repository.to_s, @test_git_repository.to_s)
+ FileUtils.cp((top_dir + "dev" + "release" + ".env").to_s,
+ (@test_git_repository + "dev" + "release").to_s)
Dir.chdir(@test_git_repository) do
unless git_tags.include?("apache-arrow-#{@release_version}")
git("tag", "apache-arrow-#{@release_version}")
diff --git a/dev/release/.env.example b/dev/release/utils-env.sh
similarity index 60%
copy from dev/release/.env.example
copy to dev/release/utils-env.sh
index 4ebf0e9f3a..9f5634c52c 100644
--- a/dev/release/.env.example
+++ b/dev/release/utils-env.sh
@@ -1,3 +1,5 @@
+# shellcheck shell=bash
+#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -15,22 +17,13 @@
# specific language governing permissions and limitations
# under the License.
-# The GPG key ID to sign artifacts. The GPG key ID must be registered
-# to both of the followings:
-#
-# * https://dist.apache.org/repos/dist/release/arrow/KEYS
-#
-# See these files how to import your GPG key ID to these files.
-#
-# You must set this.
-#GPG_KEY_ID=08D3564B7C6A9CAFBFF6A66791D18FCF079F8007
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-# The Artifactory API key to upload artifacts to Artifactory.
-#
-# You must set this.
-#ARTIFACTORY_API_KEY=secret
-
-# The GitHub token to upload artifacts to GitHub Release.
-#
-# You must set this.
-#GH_TOKEN=secret
+if [ ! -f "${SOURCE_DIR}/.env" ]; then
+ echo "You must create ${SOURCE_DIR}/.env"
+ echo "You can use ${SOURCE_DIR}/.env.example as template"
+ exit 1
+fi
+# shellcheck source=SCRIPTDIR/.env.example
+. "${SOURCE_DIR}/.env"
+export GH_TOKEN
diff --git a/docs/source/developers/continuous_integration/crossbow.rst
b/docs/source/developers/continuous_integration/crossbow.rst
index 44f41895d4..1a276d8e2f 100644
--- a/docs/source/developers/continuous_integration/crossbow.rst
+++ b/docs/source/developers/continuous_integration/crossbow.rst
@@ -80,8 +80,8 @@ to step 3:
1. `Create the queue repository`_
-2. Enable `Travis CI`_ and `Azure Pipelines`_ integrations for the newly
- created queue repository.
+2. Enable `Azure Pipelines`_ integrations for the newly created queue
+ repository.
3. Clone either `ursacomputing/crossbow`_ if you are using that, or the newly
created repository next to the arrow repository:
@@ -104,33 +104,22 @@ to step 3:
.. code:: bash
- export CROSSBOW_GITHUB_TOKEN=<token>
+ export GH_TOKEN=<token>
or pass as an argument to the CLI script ``--github-token``
-6. Add the previously created GitHub token to **Travis CI**:
-
- Use ``CROSSBOW_GITHUB_TOKEN`` encrypted environment variable. You can
- set it at the following URL, where ``ghuser`` is the GitHub
- username and ``ghrepo`` is the GitHub repository name (typically
- ``crossbow``):
-
- ``https://travis-ci.com/<ghuser>/<ghrepo>/settings``
-
- - Confirm the `auto cancellation`_ feature is turned off for branch builds.
This should be the default setting.
-
-7. Install Python (minimum supported version is 3.9):
+6. Install Python (minimum supported version is 3.9):
| Miniconda is preferred, see installation instructions:
| https://conda.io/docs/user-guide/install/index.html
-8. Install the archery toolset containing crossbow itself:
+7. Install the archery toolset containing crossbow itself:
.. code::
$ pip install -e "arrow/dev/archery[crossbow]"
-9. Try running it:
+8. Try running it:
.. code::
diff --git a/docs/source/developers/release.rst
b/docs/source/developers/release.rst
index 9034c3795e..5353985615 100644
--- a/docs/source/developers/release.rst
+++ b/docs/source/developers/release.rst
@@ -66,7 +66,6 @@ default branch after the release maintenance branch has been
created.
- The GPG key needs to be added to this `SVN repo
<https://dist.apache.org/repos/dist/dev/arrow/>`_ and `this one
<https://dist.apache.org/repos/dist/release/arrow/>`_.
- Have the build requirements for cpp and c_glib installed.
- - Set the ``CROSSBOW_GITHUB_TOKEN`` environment variable to automatically
create the verify release Pull Request.
- Install ``en_US.UTF-8`` locale. You can confirm available locales by
``locale -a``.
- Install Python 3 as python
- Create dev/release/.env from dev/release/.env.example. See the comments
in dev/release/.env.example how to set each variable.