Skip to content

This is an extremely minimal client. You need to know the API to be able to use this client. All this function does is:

  • Try to substitute each listed parameter into endpoint, using the {parameter} notation.

  • If a GET request (the default), then add all other listed parameters as query parameters.

  • If not a GET request, then send the other parameters in the request body, as JSON.

  • Convert the response to an R list using jsonlite::fromJSON().

Usage

gh(
  endpoint,
  ...,
  per_page = NULL,
  .per_page = NULL,
  .token = NULL,
  .destfile = NULL,
  .overwrite = FALSE,
  .api_url = NULL,
  .method = "GET",
  .limit = NULL,
  .accept = "application/vnd.github.v3+json",
  .send_headers = NULL,
  .progress = TRUE,
  .params = list(),
  .max_wait = 600,
  .max_rate = NULL
)

Arguments

endpoint

GitHub API endpoint. Must be one of the following forms:

  • METHOD path, e.g. GET /rate_limit,

  • path, e.g. /rate_limit,

  • METHOD url, e.g. GET https://api.github.com/rate_limit,

  • url, e.g. https://api.github.com/rate_limit.

If the method is not supplied, will use .method, which defaults to "GET".

...

Name-value pairs giving API parameters. Will be matched into endpoint placeholders, sent as query parameters in GET requests, and as a JSON body of POST requests. If there is only one unnamed parameter, and it is a raw vector, then it will not be JSON encoded, but sent as raw data, as is. This can be used for example to add assets to releases. Named NULL values are silently dropped. For GET requests, named NA values trigger an error. For other methods, named NA values are included in the body of the request, as JSON null.

per_page, .per_page

Number of items to return per page. If omitted, will be substituted by max(.limit, 100) if .limit is set, otherwise determined by the API (never greater than 100).

.token

Authentication token. Defaults to gh_token().

.destfile

Path to write response to disk. If NULL (default), response will be processed and returned as an object. If path is given, response will be written to disk in the form sent. gh writes the response to a temporary file, and renames that file to .destfile after the request was successful. The name of the temporary file is created by adding a -<random>.gh-tmp suffix to it, where <random> is an ASCII string with random characters. gh removes the temporary file on error.

.overwrite

If .destfile is provided, whether to overwrite an existing file. Defaults to FALSE. If an error happens the original file is kept.

.api_url

Github API url (default: https://api.github.com). Used if endpoint just contains a path. Defaults to GITHUB_API_URL environment variable if set.

.method

HTTP method to use if not explicitly supplied in the endpoint.

.limit

Number of records to return. This can be used instead of manual pagination. By default it is NULL, which means that the defaults of the GitHub API are used. You can set it to a number to request more (or less) records, and also to Inf to request all records. Note, that if you request many records, then multiple GitHub API calls are used to get them, and this can take a potentially long time.

.accept

The value of the Accept HTTP header. Defaults to "application/vnd.github.v3+json" . If Accept is given in .send_headers, then that will be used. This parameter can be used to provide a custom media type, in order to access a preview feature of the API.

.send_headers

Named character vector of header field values (except Authorization, which is handled via .token). This can be used to override or augment the default User-Agent header: "https://github.com/r-lib/gh".

.progress

Whether to show a progress indicator for calls that need more than one HTTP request.

.params

Additional list of parameters to append to .... It is easier to use this than ... if you have your parameters in a list already.

.max_wait

Maximum number of seconds to wait if rate limited. Defaults to 10 minutes.

.max_rate

Maximum request rate in requests per second. Set this to automatically throttle requests.

Value

Answer from the API as a gh_response object, which is also a list. Failed requests will generate an R error. Requests that generate a raw response will return a raw vector.

See also

gh_gql() if you want to use the GitHub GraphQL API, gh_whoami() for details on GitHub API token management.

Examples

## Repositories of a user, these are equivalent
gh("/users/hadley/repos", .limit = 2)
#> [
#>   {
#>     "id": 40423928,
#>     "node_id": "MDEwOlJlcG9zaXRvcnk0MDQyMzkyOA==",
#>     "name": "15-state-of-the-union",
#>     "full_name": "hadley/15-state-of-the-union",
#>     "private": false,
#>     "owner": {
#>       "login": "hadley",
#>       "id": 4196,
#>       "node_id": "MDQ6VXNlcjQxOTY=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/4196?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/hadley",
#>       "html_url": "https://github.com/hadley",
#>       "followers_url": "https://api.github.com/users/hadley/followers",
#>       "following_url": "https://api.github.com/users/hadley/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/hadley/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/hadley/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/hadley/subscriptions",
#>       "organizations_url": "https://api.github.com/users/hadley/orgs",
#>       "repos_url": "https://api.github.com/users/hadley/repos",
#>       "events_url": "https://api.github.com/users/hadley/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/hadley/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/hadley/15-state-of-the-union",
#>     "description": {},
#>     "fork": false,
#>     "url": "https://api.github.com/repos/hadley/15-state-of-the-union",
#>     "forks_url": "https://api.github.com/repos/hadley/15-state-of-the-union/forks",
#>     "keys_url": "https://api.github.com/repos/hadley/15-state-of-the-union/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/hadley/15-state-of-the-union/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/hadley/15-state-of-the-union/teams",
#>     "hooks_url": "https://api.github.com/repos/hadley/15-state-of-the-union/hooks",
#>     "issue_events_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/hadley/15-state-of-the-union/events",
#>     "assignees_url": "https://api.github.com/repos/hadley/15-state-of-the-union/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/hadley/15-state-of-the-union/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/hadley/15-state-of-the-union/tags",
#>     "blobs_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/hadley/15-state-of-the-union/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/hadley/15-state-of-the-union/languages",
#>     "stargazers_url": "https://api.github.com/repos/hadley/15-state-of-the-union/stargazers",
#>     "contributors_url": "https://api.github.com/repos/hadley/15-state-of-the-union/contributors",
#>     "subscribers_url": "https://api.github.com/repos/hadley/15-state-of-the-union/subscribers",
#>     "subscription_url": "https://api.github.com/repos/hadley/15-state-of-the-union/subscription",
#>     "commits_url": "https://api.github.com/repos/hadley/15-state-of-the-union/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/hadley/15-state-of-the-union/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/hadley/15-state-of-the-union/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/hadley/15-state-of-the-union/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/hadley/15-state-of-the-union/merges",
#>     "archive_url": "https://api.github.com/repos/hadley/15-state-of-the-union/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/hadley/15-state-of-the-union/downloads",
#>     "issues_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/hadley/15-state-of-the-union/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/hadley/15-state-of-the-union/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/hadley/15-state-of-the-union/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/hadley/15-state-of-the-union/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/hadley/15-state-of-the-union/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/hadley/15-state-of-the-union/deployments",
#>     "created_at": "2015-08-09T03:22:26Z",
#>     "updated_at": "2024-09-02T07:05:19Z",
#>     "pushed_at": "2015-08-10T20:29:10Z",
#>     "git_url": "git://github.com/hadley/15-state-of-the-union.git",
#>     "ssh_url": "git@github.com:hadley/15-state-of-the-union.git",
#>     "clone_url": "https://github.com/hadley/15-state-of-the-union.git",
#>     "svn_url": "https://github.com/hadley/15-state-of-the-union",
#>     "homepage": {},
#>     "size": 4519,
#>     "stargazers_count": 23,
#>     "watchers_count": 23,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": false,
#>     "has_discussions": false,
#>     "forks_count": 7,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 0,
#>     "license": {},
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 7,
#>     "open_issues": 0,
#>     "watchers": 23,
#>     "default_branch": "master",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   },
#>   {
#>     "id": 40544418,
#>     "node_id": "MDEwOlJlcG9zaXRvcnk0MDU0NDQxOA==",
#>     "name": "15-student-papers",
#>     "full_name": "hadley/15-student-papers",
#>     "private": false,
#>     "owner": {
#>       "login": "hadley",
#>       "id": 4196,
#>       "node_id": "MDQ6VXNlcjQxOTY=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/4196?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/hadley",
#>       "html_url": "https://github.com/hadley",
#>       "followers_url": "https://api.github.com/users/hadley/followers",
#>       "following_url": "https://api.github.com/users/hadley/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/hadley/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/hadley/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/hadley/subscriptions",
#>       "organizations_url": "https://api.github.com/users/hadley/orgs",
#>       "repos_url": "https://api.github.com/users/hadley/repos",
#>       "events_url": "https://api.github.com/users/hadley/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/hadley/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/hadley/15-student-papers",
#>     "description": "Graphics & computing student paper winners @ JSM 2015",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/hadley/15-student-papers",
#>     "forks_url": "https://api.github.com/repos/hadley/15-student-papers/forks",
#>     "keys_url": "https://api.github.com/repos/hadley/15-student-papers/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/hadley/15-student-papers/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/hadley/15-student-papers/teams",
#>     "hooks_url": "https://api.github.com/repos/hadley/15-student-papers/hooks",
#>     "issue_events_url": "https://api.github.com/repos/hadley/15-student-papers/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/hadley/15-student-papers/events",
#>     "assignees_url": "https://api.github.com/repos/hadley/15-student-papers/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/hadley/15-student-papers/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/hadley/15-student-papers/tags",
#>     "blobs_url": "https://api.github.com/repos/hadley/15-student-papers/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/hadley/15-student-papers/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/hadley/15-student-papers/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/hadley/15-student-papers/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/hadley/15-student-papers/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/hadley/15-student-papers/languages",
#>     "stargazers_url": "https://api.github.com/repos/hadley/15-student-papers/stargazers",
#>     "contributors_url": "https://api.github.com/repos/hadley/15-student-papers/contributors",
#>     "subscribers_url": "https://api.github.com/repos/hadley/15-student-papers/subscribers",
#>     "subscription_url": "https://api.github.com/repos/hadley/15-student-papers/subscription",
#>     "commits_url": "https://api.github.com/repos/hadley/15-student-papers/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/hadley/15-student-papers/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/hadley/15-student-papers/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/hadley/15-student-papers/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/hadley/15-student-papers/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/hadley/15-student-papers/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/hadley/15-student-papers/merges",
#>     "archive_url": "https://api.github.com/repos/hadley/15-student-papers/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/hadley/15-student-papers/downloads",
#>     "issues_url": "https://api.github.com/repos/hadley/15-student-papers/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/hadley/15-student-papers/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/hadley/15-student-papers/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/hadley/15-student-papers/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/hadley/15-student-papers/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/hadley/15-student-papers/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/hadley/15-student-papers/deployments",
#>     "created_at": "2015-08-11T13:51:29Z",
#>     "updated_at": "2019-08-18T16:49:40Z",
#>     "pushed_at": "2015-08-21T15:27:51Z",
#>     "git_url": "git://github.com/hadley/15-student-papers.git",
#>     "ssh_url": "git@github.com:hadley/15-student-papers.git",
#>     "clone_url": "https://github.com/hadley/15-student-papers.git",
#>     "svn_url": "https://github.com/hadley/15-student-papers",
#>     "homepage": {},
#>     "size": 2956,
#>     "stargazers_count": 14,
#>     "watchers_count": 14,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": false,
#>     "has_discussions": false,
#>     "forks_count": 0,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 0,
#>     "license": {},
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 0,
#>     "open_issues": 0,
#>     "watchers": 14,
#>     "default_branch": "master",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   }
#> ] 
gh("/users/{username}/repos", username = "hadley", .limit = 2)
#> [
#>   {
#>     "id": 40423928,
#>     "node_id": "MDEwOlJlcG9zaXRvcnk0MDQyMzkyOA==",
#>     "name": "15-state-of-the-union",
#>     "full_name": "hadley/15-state-of-the-union",
#>     "private": false,
#>     "owner": {
#>       "login": "hadley",
#>       "id": 4196,
#>       "node_id": "MDQ6VXNlcjQxOTY=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/4196?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/hadley",
#>       "html_url": "https://github.com/hadley",
#>       "followers_url": "https://api.github.com/users/hadley/followers",
#>       "following_url": "https://api.github.com/users/hadley/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/hadley/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/hadley/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/hadley/subscriptions",
#>       "organizations_url": "https://api.github.com/users/hadley/orgs",
#>       "repos_url": "https://api.github.com/users/hadley/repos",
#>       "events_url": "https://api.github.com/users/hadley/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/hadley/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/hadley/15-state-of-the-union",
#>     "description": {},
#>     "fork": false,
#>     "url": "https://api.github.com/repos/hadley/15-state-of-the-union",
#>     "forks_url": "https://api.github.com/repos/hadley/15-state-of-the-union/forks",
#>     "keys_url": "https://api.github.com/repos/hadley/15-state-of-the-union/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/hadley/15-state-of-the-union/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/hadley/15-state-of-the-union/teams",
#>     "hooks_url": "https://api.github.com/repos/hadley/15-state-of-the-union/hooks",
#>     "issue_events_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/hadley/15-state-of-the-union/events",
#>     "assignees_url": "https://api.github.com/repos/hadley/15-state-of-the-union/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/hadley/15-state-of-the-union/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/hadley/15-state-of-the-union/tags",
#>     "blobs_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/hadley/15-state-of-the-union/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/hadley/15-state-of-the-union/languages",
#>     "stargazers_url": "https://api.github.com/repos/hadley/15-state-of-the-union/stargazers",
#>     "contributors_url": "https://api.github.com/repos/hadley/15-state-of-the-union/contributors",
#>     "subscribers_url": "https://api.github.com/repos/hadley/15-state-of-the-union/subscribers",
#>     "subscription_url": "https://api.github.com/repos/hadley/15-state-of-the-union/subscription",
#>     "commits_url": "https://api.github.com/repos/hadley/15-state-of-the-union/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/hadley/15-state-of-the-union/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/hadley/15-state-of-the-union/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/hadley/15-state-of-the-union/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/hadley/15-state-of-the-union/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/hadley/15-state-of-the-union/merges",
#>     "archive_url": "https://api.github.com/repos/hadley/15-state-of-the-union/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/hadley/15-state-of-the-union/downloads",
#>     "issues_url": "https://api.github.com/repos/hadley/15-state-of-the-union/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/hadley/15-state-of-the-union/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/hadley/15-state-of-the-union/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/hadley/15-state-of-the-union/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/hadley/15-state-of-the-union/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/hadley/15-state-of-the-union/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/hadley/15-state-of-the-union/deployments",
#>     "created_at": "2015-08-09T03:22:26Z",
#>     "updated_at": "2024-09-02T07:05:19Z",
#>     "pushed_at": "2015-08-10T20:29:10Z",
#>     "git_url": "git://github.com/hadley/15-state-of-the-union.git",
#>     "ssh_url": "git@github.com:hadley/15-state-of-the-union.git",
#>     "clone_url": "https://github.com/hadley/15-state-of-the-union.git",
#>     "svn_url": "https://github.com/hadley/15-state-of-the-union",
#>     "homepage": {},
#>     "size": 4519,
#>     "stargazers_count": 23,
#>     "watchers_count": 23,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": false,
#>     "has_discussions": false,
#>     "forks_count": 7,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 0,
#>     "license": {},
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 7,
#>     "open_issues": 0,
#>     "watchers": 23,
#>     "default_branch": "master",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   },
#>   {
#>     "id": 40544418,
#>     "node_id": "MDEwOlJlcG9zaXRvcnk0MDU0NDQxOA==",
#>     "name": "15-student-papers",
#>     "full_name": "hadley/15-student-papers",
#>     "private": false,
#>     "owner": {
#>       "login": "hadley",
#>       "id": 4196,
#>       "node_id": "MDQ6VXNlcjQxOTY=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/4196?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/hadley",
#>       "html_url": "https://github.com/hadley",
#>       "followers_url": "https://api.github.com/users/hadley/followers",
#>       "following_url": "https://api.github.com/users/hadley/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/hadley/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/hadley/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/hadley/subscriptions",
#>       "organizations_url": "https://api.github.com/users/hadley/orgs",
#>       "repos_url": "https://api.github.com/users/hadley/repos",
#>       "events_url": "https://api.github.com/users/hadley/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/hadley/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/hadley/15-student-papers",
#>     "description": "Graphics & computing student paper winners @ JSM 2015",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/hadley/15-student-papers",
#>     "forks_url": "https://api.github.com/repos/hadley/15-student-papers/forks",
#>     "keys_url": "https://api.github.com/repos/hadley/15-student-papers/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/hadley/15-student-papers/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/hadley/15-student-papers/teams",
#>     "hooks_url": "https://api.github.com/repos/hadley/15-student-papers/hooks",
#>     "issue_events_url": "https://api.github.com/repos/hadley/15-student-papers/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/hadley/15-student-papers/events",
#>     "assignees_url": "https://api.github.com/repos/hadley/15-student-papers/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/hadley/15-student-papers/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/hadley/15-student-papers/tags",
#>     "blobs_url": "https://api.github.com/repos/hadley/15-student-papers/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/hadley/15-student-papers/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/hadley/15-student-papers/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/hadley/15-student-papers/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/hadley/15-student-papers/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/hadley/15-student-papers/languages",
#>     "stargazers_url": "https://api.github.com/repos/hadley/15-student-papers/stargazers",
#>     "contributors_url": "https://api.github.com/repos/hadley/15-student-papers/contributors",
#>     "subscribers_url": "https://api.github.com/repos/hadley/15-student-papers/subscribers",
#>     "subscription_url": "https://api.github.com/repos/hadley/15-student-papers/subscription",
#>     "commits_url": "https://api.github.com/repos/hadley/15-student-papers/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/hadley/15-student-papers/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/hadley/15-student-papers/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/hadley/15-student-papers/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/hadley/15-student-papers/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/hadley/15-student-papers/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/hadley/15-student-papers/merges",
#>     "archive_url": "https://api.github.com/repos/hadley/15-student-papers/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/hadley/15-student-papers/downloads",
#>     "issues_url": "https://api.github.com/repos/hadley/15-student-papers/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/hadley/15-student-papers/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/hadley/15-student-papers/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/hadley/15-student-papers/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/hadley/15-student-papers/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/hadley/15-student-papers/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/hadley/15-student-papers/deployments",
#>     "created_at": "2015-08-11T13:51:29Z",
#>     "updated_at": "2019-08-18T16:49:40Z",
#>     "pushed_at": "2015-08-21T15:27:51Z",
#>     "git_url": "git://github.com/hadley/15-student-papers.git",
#>     "ssh_url": "git@github.com:hadley/15-student-papers.git",
#>     "clone_url": "https://github.com/hadley/15-student-papers.git",
#>     "svn_url": "https://github.com/hadley/15-student-papers",
#>     "homepage": {},
#>     "size": 2956,
#>     "stargazers_count": 14,
#>     "watchers_count": 14,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": false,
#>     "has_discussions": false,
#>     "forks_count": 0,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 0,
#>     "license": {},
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 0,
#>     "open_issues": 0,
#>     "watchers": 14,
#>     "default_branch": "master",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   }
#> ] 

## Starred repositories of a user
gh("/users/hadley/starred", .limit = 2)
#> [
#>   {
#>     "id": 390115983,
#>     "node_id": "MDEwOlJlcG9zaXRvcnkzOTAxMTU5ODM=",
#>     "name": "py-shiny",
#>     "full_name": "posit-dev/py-shiny",
#>     "private": false,
#>     "owner": {
#>       "login": "posit-dev",
#>       "id": 107264312,
#>       "node_id": "O_kgDOBmS5OA",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/107264312?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/posit-dev",
#>       "html_url": "https://github.com/posit-dev",
#>       "followers_url": "https://api.github.com/users/posit-dev/followers",
#>       "following_url": "https://api.github.com/users/posit-dev/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/posit-dev/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/posit-dev/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/posit-dev/subscriptions",
#>       "organizations_url": "https://api.github.com/users/posit-dev/orgs",
#>       "repos_url": "https://api.github.com/users/posit-dev/repos",
#>       "events_url": "https://api.github.com/users/posit-dev/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/posit-dev/received_events",
#>       "type": "Organization",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/posit-dev/py-shiny",
#>     "description": "Shiny for Python",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/posit-dev/py-shiny",
#>     "forks_url": "https://api.github.com/repos/posit-dev/py-shiny/forks",
#>     "keys_url": "https://api.github.com/repos/posit-dev/py-shiny/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/posit-dev/py-shiny/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/posit-dev/py-shiny/teams",
#>     "hooks_url": "https://api.github.com/repos/posit-dev/py-shiny/hooks",
#>     "issue_events_url": "https://api.github.com/repos/posit-dev/py-shiny/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/posit-dev/py-shiny/events",
#>     "assignees_url": "https://api.github.com/repos/posit-dev/py-shiny/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/posit-dev/py-shiny/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/posit-dev/py-shiny/tags",
#>     "blobs_url": "https://api.github.com/repos/posit-dev/py-shiny/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/posit-dev/py-shiny/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/posit-dev/py-shiny/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/posit-dev/py-shiny/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/posit-dev/py-shiny/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/posit-dev/py-shiny/languages",
#>     "stargazers_url": "https://api.github.com/repos/posit-dev/py-shiny/stargazers",
#>     "contributors_url": "https://api.github.com/repos/posit-dev/py-shiny/contributors",
#>     "subscribers_url": "https://api.github.com/repos/posit-dev/py-shiny/subscribers",
#>     "subscription_url": "https://api.github.com/repos/posit-dev/py-shiny/subscription",
#>     "commits_url": "https://api.github.com/repos/posit-dev/py-shiny/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/posit-dev/py-shiny/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/posit-dev/py-shiny/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/posit-dev/py-shiny/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/posit-dev/py-shiny/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/posit-dev/py-shiny/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/posit-dev/py-shiny/merges",
#>     "archive_url": "https://api.github.com/repos/posit-dev/py-shiny/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/posit-dev/py-shiny/downloads",
#>     "issues_url": "https://api.github.com/repos/posit-dev/py-shiny/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/posit-dev/py-shiny/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/posit-dev/py-shiny/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/posit-dev/py-shiny/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/posit-dev/py-shiny/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/posit-dev/py-shiny/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/posit-dev/py-shiny/deployments",
#>     "created_at": "2021-07-27T20:19:49Z",
#>     "updated_at": "2025-05-26T14:44:56Z",
#>     "pushed_at": "2025-05-23T16:00:47Z",
#>     "git_url": "git://github.com/posit-dev/py-shiny.git",
#>     "ssh_url": "git@github.com:posit-dev/py-shiny.git",
#>     "clone_url": "https://github.com/posit-dev/py-shiny.git",
#>     "svn_url": "https://github.com/posit-dev/py-shiny",
#>     "homepage": "https://shiny.posit.co/py/",
#>     "size": 27858,
#>     "stargazers_count": 1481,
#>     "watchers_count": 1481,
#>     "language": "Python",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": true,
#>     "has_discussions": true,
#>     "forks_count": 99,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 488,
#>     "license": {
#>       "key": "mit",
#>       "name": "MIT License",
#>       "spdx_id": "MIT",
#>       "url": "https://api.github.com/licenses/mit",
#>       "node_id": "MDc6TGljZW5zZTEz"
#>     },
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 99,
#>     "open_issues": 488,
#>     "watchers": 1481,
#>     "default_branch": "main",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   },
#>   {
#>     "id": 10221246,
#>     "node_id": "MDEwOlJlcG9zaXRvcnkxMDIyMTI0Ng==",
#>     "name": "bigrquery",
#>     "full_name": "r-dbi/bigrquery",
#>     "private": false,
#>     "owner": {
#>       "login": "r-dbi",
#>       "id": 5695665,
#>       "node_id": "MDEyOk9yZ2FuaXphdGlvbjU2OTU2NjU=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/5695665?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/r-dbi",
#>       "html_url": "https://github.com/r-dbi",
#>       "followers_url": "https://api.github.com/users/r-dbi/followers",
#>       "following_url": "https://api.github.com/users/r-dbi/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/r-dbi/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/r-dbi/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/r-dbi/subscriptions",
#>       "organizations_url": "https://api.github.com/users/r-dbi/orgs",
#>       "repos_url": "https://api.github.com/users/r-dbi/repos",
#>       "events_url": "https://api.github.com/users/r-dbi/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/r-dbi/received_events",
#>       "type": "Organization",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/r-dbi/bigrquery",
#>     "description": "An interface to Google's BigQuery from R.",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/r-dbi/bigrquery",
#>     "forks_url": "https://api.github.com/repos/r-dbi/bigrquery/forks",
#>     "keys_url": "https://api.github.com/repos/r-dbi/bigrquery/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/r-dbi/bigrquery/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/r-dbi/bigrquery/teams",
#>     "hooks_url": "https://api.github.com/repos/r-dbi/bigrquery/hooks",
#>     "issue_events_url": "https://api.github.com/repos/r-dbi/bigrquery/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/r-dbi/bigrquery/events",
#>     "assignees_url": "https://api.github.com/repos/r-dbi/bigrquery/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/r-dbi/bigrquery/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/r-dbi/bigrquery/tags",
#>     "blobs_url": "https://api.github.com/repos/r-dbi/bigrquery/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/r-dbi/bigrquery/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/r-dbi/bigrquery/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/r-dbi/bigrquery/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/r-dbi/bigrquery/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/r-dbi/bigrquery/languages",
#>     "stargazers_url": "https://api.github.com/repos/r-dbi/bigrquery/stargazers",
#>     "contributors_url": "https://api.github.com/repos/r-dbi/bigrquery/contributors",
#>     "subscribers_url": "https://api.github.com/repos/r-dbi/bigrquery/subscribers",
#>     "subscription_url": "https://api.github.com/repos/r-dbi/bigrquery/subscription",
#>     "commits_url": "https://api.github.com/repos/r-dbi/bigrquery/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/r-dbi/bigrquery/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/r-dbi/bigrquery/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/r-dbi/bigrquery/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/r-dbi/bigrquery/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/r-dbi/bigrquery/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/r-dbi/bigrquery/merges",
#>     "archive_url": "https://api.github.com/repos/r-dbi/bigrquery/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/r-dbi/bigrquery/downloads",
#>     "issues_url": "https://api.github.com/repos/r-dbi/bigrquery/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/r-dbi/bigrquery/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/r-dbi/bigrquery/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/r-dbi/bigrquery/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/r-dbi/bigrquery/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/r-dbi/bigrquery/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/r-dbi/bigrquery/deployments",
#>     "created_at": "2013-05-22T14:04:16Z",
#>     "updated_at": "2025-05-20T14:08:42Z",
#>     "pushed_at": "2025-02-24T21:06:08Z",
#>     "git_url": "git://github.com/r-dbi/bigrquery.git",
#>     "ssh_url": "git@github.com:r-dbi/bigrquery.git",
#>     "clone_url": "https://github.com/r-dbi/bigrquery.git",
#>     "svn_url": "https://github.com/r-dbi/bigrquery",
#>     "homepage": "https://bigrquery.r-dbi.org",
#>     "size": 7996,
#>     "stargazers_count": 523,
#>     "watchers_count": 523,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": false,
#>     "has_downloads": true,
#>     "has_wiki": false,
#>     "has_pages": true,
#>     "has_discussions": false,
#>     "forks_count": 185,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 21,
#>     "license": {
#>       "key": "other",
#>       "name": "Other",
#>       "spdx_id": "NOASSERTION",
#>       "url": {},
#>       "node_id": "MDc6TGljZW5zZTA="
#>     },
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [
#>       "bigquery",
#>       "database",
#>       "r"
#>     ],
#>     "visibility": "public",
#>     "forks": 185,
#>     "open_issues": 21,
#>     "watchers": 523,
#>     "default_branch": "main",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   }
#> ] 
gh("/users/{username}/starred", username = "hadley", .limit = 2)
#> [
#>   {
#>     "id": 390115983,
#>     "node_id": "MDEwOlJlcG9zaXRvcnkzOTAxMTU5ODM=",
#>     "name": "py-shiny",
#>     "full_name": "posit-dev/py-shiny",
#>     "private": false,
#>     "owner": {
#>       "login": "posit-dev",
#>       "id": 107264312,
#>       "node_id": "O_kgDOBmS5OA",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/107264312?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/posit-dev",
#>       "html_url": "https://github.com/posit-dev",
#>       "followers_url": "https://api.github.com/users/posit-dev/followers",
#>       "following_url": "https://api.github.com/users/posit-dev/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/posit-dev/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/posit-dev/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/posit-dev/subscriptions",
#>       "organizations_url": "https://api.github.com/users/posit-dev/orgs",
#>       "repos_url": "https://api.github.com/users/posit-dev/repos",
#>       "events_url": "https://api.github.com/users/posit-dev/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/posit-dev/received_events",
#>       "type": "Organization",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/posit-dev/py-shiny",
#>     "description": "Shiny for Python",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/posit-dev/py-shiny",
#>     "forks_url": "https://api.github.com/repos/posit-dev/py-shiny/forks",
#>     "keys_url": "https://api.github.com/repos/posit-dev/py-shiny/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/posit-dev/py-shiny/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/posit-dev/py-shiny/teams",
#>     "hooks_url": "https://api.github.com/repos/posit-dev/py-shiny/hooks",
#>     "issue_events_url": "https://api.github.com/repos/posit-dev/py-shiny/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/posit-dev/py-shiny/events",
#>     "assignees_url": "https://api.github.com/repos/posit-dev/py-shiny/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/posit-dev/py-shiny/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/posit-dev/py-shiny/tags",
#>     "blobs_url": "https://api.github.com/repos/posit-dev/py-shiny/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/posit-dev/py-shiny/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/posit-dev/py-shiny/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/posit-dev/py-shiny/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/posit-dev/py-shiny/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/posit-dev/py-shiny/languages",
#>     "stargazers_url": "https://api.github.com/repos/posit-dev/py-shiny/stargazers",
#>     "contributors_url": "https://api.github.com/repos/posit-dev/py-shiny/contributors",
#>     "subscribers_url": "https://api.github.com/repos/posit-dev/py-shiny/subscribers",
#>     "subscription_url": "https://api.github.com/repos/posit-dev/py-shiny/subscription",
#>     "commits_url": "https://api.github.com/repos/posit-dev/py-shiny/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/posit-dev/py-shiny/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/posit-dev/py-shiny/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/posit-dev/py-shiny/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/posit-dev/py-shiny/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/posit-dev/py-shiny/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/posit-dev/py-shiny/merges",
#>     "archive_url": "https://api.github.com/repos/posit-dev/py-shiny/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/posit-dev/py-shiny/downloads",
#>     "issues_url": "https://api.github.com/repos/posit-dev/py-shiny/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/posit-dev/py-shiny/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/posit-dev/py-shiny/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/posit-dev/py-shiny/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/posit-dev/py-shiny/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/posit-dev/py-shiny/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/posit-dev/py-shiny/deployments",
#>     "created_at": "2021-07-27T20:19:49Z",
#>     "updated_at": "2025-05-26T14:44:56Z",
#>     "pushed_at": "2025-05-23T16:00:47Z",
#>     "git_url": "git://github.com/posit-dev/py-shiny.git",
#>     "ssh_url": "git@github.com:posit-dev/py-shiny.git",
#>     "clone_url": "https://github.com/posit-dev/py-shiny.git",
#>     "svn_url": "https://github.com/posit-dev/py-shiny",
#>     "homepage": "https://shiny.posit.co/py/",
#>     "size": 27858,
#>     "stargazers_count": 1481,
#>     "watchers_count": 1481,
#>     "language": "Python",
#>     "has_issues": true,
#>     "has_projects": true,
#>     "has_downloads": true,
#>     "has_wiki": true,
#>     "has_pages": true,
#>     "has_discussions": true,
#>     "forks_count": 99,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 488,
#>     "license": {
#>       "key": "mit",
#>       "name": "MIT License",
#>       "spdx_id": "MIT",
#>       "url": "https://api.github.com/licenses/mit",
#>       "node_id": "MDc6TGljZW5zZTEz"
#>     },
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [],
#>     "visibility": "public",
#>     "forks": 99,
#>     "open_issues": 488,
#>     "watchers": 1481,
#>     "default_branch": "main",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   },
#>   {
#>     "id": 10221246,
#>     "node_id": "MDEwOlJlcG9zaXRvcnkxMDIyMTI0Ng==",
#>     "name": "bigrquery",
#>     "full_name": "r-dbi/bigrquery",
#>     "private": false,
#>     "owner": {
#>       "login": "r-dbi",
#>       "id": 5695665,
#>       "node_id": "MDEyOk9yZ2FuaXphdGlvbjU2OTU2NjU=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/5695665?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/r-dbi",
#>       "html_url": "https://github.com/r-dbi",
#>       "followers_url": "https://api.github.com/users/r-dbi/followers",
#>       "following_url": "https://api.github.com/users/r-dbi/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/r-dbi/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/r-dbi/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/r-dbi/subscriptions",
#>       "organizations_url": "https://api.github.com/users/r-dbi/orgs",
#>       "repos_url": "https://api.github.com/users/r-dbi/repos",
#>       "events_url": "https://api.github.com/users/r-dbi/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/r-dbi/received_events",
#>       "type": "Organization",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "html_url": "https://github.com/r-dbi/bigrquery",
#>     "description": "An interface to Google's BigQuery from R.",
#>     "fork": false,
#>     "url": "https://api.github.com/repos/r-dbi/bigrquery",
#>     "forks_url": "https://api.github.com/repos/r-dbi/bigrquery/forks",
#>     "keys_url": "https://api.github.com/repos/r-dbi/bigrquery/keys{/key_id}",
#>     "collaborators_url": "https://api.github.com/repos/r-dbi/bigrquery/collaborators{/collaborator}",
#>     "teams_url": "https://api.github.com/repos/r-dbi/bigrquery/teams",
#>     "hooks_url": "https://api.github.com/repos/r-dbi/bigrquery/hooks",
#>     "issue_events_url": "https://api.github.com/repos/r-dbi/bigrquery/issues/events{/number}",
#>     "events_url": "https://api.github.com/repos/r-dbi/bigrquery/events",
#>     "assignees_url": "https://api.github.com/repos/r-dbi/bigrquery/assignees{/user}",
#>     "branches_url": "https://api.github.com/repos/r-dbi/bigrquery/branches{/branch}",
#>     "tags_url": "https://api.github.com/repos/r-dbi/bigrquery/tags",
#>     "blobs_url": "https://api.github.com/repos/r-dbi/bigrquery/git/blobs{/sha}",
#>     "git_tags_url": "https://api.github.com/repos/r-dbi/bigrquery/git/tags{/sha}",
#>     "git_refs_url": "https://api.github.com/repos/r-dbi/bigrquery/git/refs{/sha}",
#>     "trees_url": "https://api.github.com/repos/r-dbi/bigrquery/git/trees{/sha}",
#>     "statuses_url": "https://api.github.com/repos/r-dbi/bigrquery/statuses/{sha}",
#>     "languages_url": "https://api.github.com/repos/r-dbi/bigrquery/languages",
#>     "stargazers_url": "https://api.github.com/repos/r-dbi/bigrquery/stargazers",
#>     "contributors_url": "https://api.github.com/repos/r-dbi/bigrquery/contributors",
#>     "subscribers_url": "https://api.github.com/repos/r-dbi/bigrquery/subscribers",
#>     "subscription_url": "https://api.github.com/repos/r-dbi/bigrquery/subscription",
#>     "commits_url": "https://api.github.com/repos/r-dbi/bigrquery/commits{/sha}",
#>     "git_commits_url": "https://api.github.com/repos/r-dbi/bigrquery/git/commits{/sha}",
#>     "comments_url": "https://api.github.com/repos/r-dbi/bigrquery/comments{/number}",
#>     "issue_comment_url": "https://api.github.com/repos/r-dbi/bigrquery/issues/comments{/number}",
#>     "contents_url": "https://api.github.com/repos/r-dbi/bigrquery/contents/{+path}",
#>     "compare_url": "https://api.github.com/repos/r-dbi/bigrquery/compare/{base}...{head}",
#>     "merges_url": "https://api.github.com/repos/r-dbi/bigrquery/merges",
#>     "archive_url": "https://api.github.com/repos/r-dbi/bigrquery/{archive_format}{/ref}",
#>     "downloads_url": "https://api.github.com/repos/r-dbi/bigrquery/downloads",
#>     "issues_url": "https://api.github.com/repos/r-dbi/bigrquery/issues{/number}",
#>     "pulls_url": "https://api.github.com/repos/r-dbi/bigrquery/pulls{/number}",
#>     "milestones_url": "https://api.github.com/repos/r-dbi/bigrquery/milestones{/number}",
#>     "notifications_url": "https://api.github.com/repos/r-dbi/bigrquery/notifications{?since,all,participating}",
#>     "labels_url": "https://api.github.com/repos/r-dbi/bigrquery/labels{/name}",
#>     "releases_url": "https://api.github.com/repos/r-dbi/bigrquery/releases{/id}",
#>     "deployments_url": "https://api.github.com/repos/r-dbi/bigrquery/deployments",
#>     "created_at": "2013-05-22T14:04:16Z",
#>     "updated_at": "2025-05-20T14:08:42Z",
#>     "pushed_at": "2025-02-24T21:06:08Z",
#>     "git_url": "git://github.com/r-dbi/bigrquery.git",
#>     "ssh_url": "git@github.com:r-dbi/bigrquery.git",
#>     "clone_url": "https://github.com/r-dbi/bigrquery.git",
#>     "svn_url": "https://github.com/r-dbi/bigrquery",
#>     "homepage": "https://bigrquery.r-dbi.org",
#>     "size": 7996,
#>     "stargazers_count": 523,
#>     "watchers_count": 523,
#>     "language": "R",
#>     "has_issues": true,
#>     "has_projects": false,
#>     "has_downloads": true,
#>     "has_wiki": false,
#>     "has_pages": true,
#>     "has_discussions": false,
#>     "forks_count": 185,
#>     "mirror_url": {},
#>     "archived": false,
#>     "disabled": false,
#>     "open_issues_count": 21,
#>     "license": {
#>       "key": "other",
#>       "name": "Other",
#>       "spdx_id": "NOASSERTION",
#>       "url": {},
#>       "node_id": "MDc6TGljZW5zZTA="
#>     },
#>     "allow_forking": true,
#>     "is_template": false,
#>     "web_commit_signoff_required": false,
#>     "topics": [
#>       "bigquery",
#>       "database",
#>       "r"
#>     ],
#>     "visibility": "public",
#>     "forks": 185,
#>     "open_issues": 21,
#>     "watchers": 523,
#>     "default_branch": "main",
#>     "permissions": {
#>       "admin": false,
#>       "maintain": false,
#>       "push": false,
#>       "triage": false,
#>       "pull": false
#>     }
#>   }
#> ] 
if (FALSE) {
## Create a repository, needs a token (see gh_token())
gh("POST /user/repos", name = "foobar")
}
## Issues of a repository
gh("/repos/hadley/dplyr/issues")
#> [
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7683",
#>     "id": 3090485528,
#>     "node_id": "I_kwDOAGIUpc64NREY",
#>     "number": 7683,
#>     "title": "Sorting of list columns",
#>     "user": {
#>       "login": "lschneiderbauer",
#>       "id": 422100,
#>       "node_id": "MDQ6VXNlcjQyMjEwMA==",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/422100?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/lschneiderbauer",
#>       "html_url": "https://github.com/lschneiderbauer",
#>       "followers_url": "https://api.github.com/users/lschneiderbauer/followers",
#>       "following_url": "https://api.github.com/users/lschneiderbauer/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/lschneiderbauer/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/lschneiderbauer/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/lschneiderbauer/subscriptions",
#>       "organizations_url": "https://api.github.com/users/lschneiderbauer/orgs",
#>       "repos_url": "https://api.github.com/users/lschneiderbauer/repos",
#>       "events_url": "https://api.github.com/users/lschneiderbauer/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/lschneiderbauer/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-26T08:53:14Z",
#>     "updated_at": "2025-05-26T08:56:09Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently, `arrange()` does not seem to affect list columns:\n\n``` r\nlibrary(dplyr)\n#> \n#> Attache Paket: 'dplyr'\n#> Die folgenden Objekte sind maskiert von 'package:stats':\n#> \n#>     filter, lag\n#> Die folgenden Objekte sind maskiert von 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\ndf_list_sorted <-\n  tibble(\n    x = list(c(3, 1), c(1, 1))\n  ) |>\n  arrange(x)\n\ndf_list_sorted |>\n  tidyr::unnest_wider(x, names_sep = \"_\")\n#> # A tibble: 2 × 2\n#>     x_1   x_2\n#>   <dbl> <dbl>\n#> 1     3     1\n#> 2     1     1\n```\n\n<sup>Created on 2025-05-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n\nShould an order be defined for list columns, so that `arrange()` actually does something?\nFor reference, duckdb defines an order on list type which seems pretty natural and universal: https://duckdb.org/docs/stable/sql/data_types/list.html#comparison-and-ordering\n> The LIST ordering is defined positionally using the following rules, where min_len = min(len(l1), len(l2)).\n> \n> Equality. l1 and l2 are equal, if for each i in [1, min_len]: l1[i] = l2[i].\n> Less Than. For the first index i in [1, min_len] where l1[i] != l2[i]: If l1[i] < l2[i], l1 is less than l2.\n\nI believe the equivalent R definition would be something along those lines:\n``` r\n`%==%` <- function(x, y) {\n  min_len <- min(length(x), length(y))\n  sub <- seq(1, min_len)\n\n  all(x[sub] == y[sub])\n}\n\n`%<%` <- function(x, y) {\n  min_len <- min(length(x), length(y))\n  sub <- seq(1, min_len)\n\n  i <- head(which(x[sub] != y[sub]), n = 1L)\n\n  if (length(i) < 1) {\n    return(FALSE)\n  } else {\n    x[[i]] < y[[i]]\n  }\n}\n\n`%<=%` <- function(x, y) {\n  (x %<% y) || (x %==% y)\n}\n\n# One maybe wants to sort w.r.t. to the `%<=%` operator?\n# Examples:\n\nc(3, 1) %<=% c(1, 1)\n#> [1] FALSE\n\nc(1, 1) %<=% c(3, 1)\n#> [1] TRUE\n\nc(1, 3) %<=% c(3, 1)\n#> [1] TRUE\n\nc(1, 1) %<=% c(1, 1)\n#> [1] TRUE\n```\n\n<sup>Created on 2025-05-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n\nShould `arrange()` sort w.r.t. to `%<=%` when used on list columns?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7682",
#>     "id": 3052748220,
#>     "node_id": "I_kwDOAGIUpc619T28",
#>     "number": 7682,
#>     "title": "Allowing `join_by()` in `rows_update()` and friends",
#>     "user": {
#>       "login": "jl5000",
#>       "id": 26303390,
#>       "node_id": "MDQ6VXNlcjI2MzAzMzkw",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/26303390?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/jl5000",
#>       "html_url": "https://github.com/jl5000",
#>       "followers_url": "https://api.github.com/users/jl5000/followers",
#>       "following_url": "https://api.github.com/users/jl5000/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/jl5000/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/jl5000/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/jl5000/subscriptions",
#>       "organizations_url": "https://api.github.com/users/jl5000/orgs",
#>       "repos_url": "https://api.github.com/users/jl5000/repos",
#>       "events_url": "https://api.github.com/users/jl5000/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/jl5000/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-09T17:16:54Z",
#>     "updated_at": "2025-05-09T17:16:54Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently a `join_by()` specification can only be used in mutating and filtering joins. Would it be possible to allow its use in `rows_update()` and related functions? These functions have a `by` argument which can only take a character vector.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7681",
#>     "id": 3037098251,
#>     "node_id": "PR_kwDOAGIUpc6Uz1iI",
#>     "number": 7681,
#>     "title": "fix typos",
#>     "user": {
#>       "login": "musvaage",
#>       "id": 112724366,
#>       "node_id": "U_kgDOBrgJjg",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/112724366?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/musvaage",
#>       "html_url": "https://github.com/musvaage",
#>       "followers_url": "https://api.github.com/users/musvaage/followers",
#>       "following_url": "https://api.github.com/users/musvaage/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/musvaage/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/musvaage/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/musvaage/subscriptions",
#>       "organizations_url": "https://api.github.com/users/musvaage/orgs",
#>       "repos_url": "https://api.github.com/users/musvaage/repos",
#>       "events_url": "https://api.github.com/users/musvaage/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/musvaage/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-03T02:29:21Z",
#>     "updated_at": "2025-05-03T02:29:21Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7681",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7681",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7681.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7681.patch",
#>       "merged_at": {}
#>     },
#>     "body": "dumped repo strings exposed a couple of typos",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7680",
#>     "id": 3014574689,
#>     "node_id": "I_kwDOAGIUpc6zrsJh",
#>     "number": 7680,
#>     "title": "Error installing dplyr@1.1.4 with R 4.5.0 on MacOS 15.3.2",
#>     "user": {
#>       "login": "devster31",
#>       "id": 1912062,
#>       "node_id": "MDQ6VXNlcjE5MTIwNjI=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1912062?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/devster31",
#>       "html_url": "https://github.com/devster31",
#>       "followers_url": "https://api.github.com/users/devster31/followers",
#>       "following_url": "https://api.github.com/users/devster31/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/devster31/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/devster31/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/devster31/subscriptions",
#>       "organizations_url": "https://api.github.com/users/devster31/orgs",
#>       "repos_url": "https://api.github.com/users/devster31/repos",
#>       "events_url": "https://api.github.com/users/devster31/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/devster31/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 3,
#>     "created_at": "2025-04-23T16:18:26Z",
#>     "updated_at": "2025-04-23T17:23:55Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello,\nI'm trying to install `dplyr`.\nBelow some info on my system:\n```\n➜ R --version\nR version 4.5.0 (2025-04-11) -- \"How About a Twenty-Six\"\nCopyright (C) 2025 The R Foundation for Statistical Computing\nPlatform: x86_64-apple-darwin23.6.0\n\n➜ clang -v\nApple clang version 16.0.0 (clang-1600.0.26.6)\nTarget: x86_64-apple-darwin24.3.0\nThread model: posix\nInstalledDir: /Library/Developer/CommandLineTools/usr/bin\n```\nAnd the error:\n```\napertura URL 'https://cloud.r-project.org/src/contrib/dplyr_1.1.4.tar.gz'\nContent type 'application/x-gzip' length 1207521 bytes (1.2 MB)\n==================================================\ndownloaded 1.2 MB\n\n* installing *source* package ‘dplyr’ ...\n** this is package ‘dplyr’ version ‘1.1.4’\n** pacchetto ‘dplyr’ aperto con successo con controllo somme MD5\n** using staged installation\n** libs\ncon compilatore C++: ‘Apple clang version 16.0.0 (clang-1600.0.26.6)’\ncon SDK: ‘MacOSX15.2.sdk’\nclang++ -std=gnu++17 -I\"/usr/local/Cellar/r/4.5.0/lib/R/include\" -DNDEBUG   -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/xz/include -I/usr/local/include    -fPIC  -g -O2   -c chop.cpp -o chop.o\nIn file included from chop.cpp:1:\nIn file included from ./dplyr.h:5:\n/usr/local/Cellar/r/4.5.0/lib/R/include/R.h:39:11: fatal error: 'cstdlib' file not found\n   39 | # include <cstdlib>\n      |           ^~~~~~~~~\n1 error generated.\nmake: *** [chop.o] Error 1\nERROR: compilation failed for package ‘dplyr’\n* removing ‘/usr/local/lib/R/4.5/site-library/dplyr’\n\nI pacchetti scaricati con il codice sorgente sono in\n\t‘/private/var/folders/ln/r_c5vx295nd751vpyxq94bd80000gn/T/Rtmp3oGKC7/downloaded_packages’\nMessaggio di avvertimento:\nIn install.packages(\"dplyr\") :\n  l'installazione del pacchetto ‘dplyr’ ha uno stato di uscita non-zero\n```\nMy `~/.R/Makevars` file is empty right now.\n\nAny tips on how to fix?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7677",
#>     "id": 3000068668,
#>     "node_id": "PR_kwDOAGIUpc6S3OfK",
#>     "number": 7677,
#>     "title": "Revdepcheck results",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-16T15:51:56Z",
#>     "updated_at": "2025-04-16T15:51:56Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7677",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7677",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7677.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7677.patch",
#>       "merged_at": {}
#>     },
#>     "body": "An interesting problem with `case_when()` and arrays.\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7676",
#>     "id": 2992153280,
#>     "node_id": "PR_kwDOAGIUpc6ScG92",
#>     "number": 7676,
#>     "title": "Use {palmerpenguins} dataset in arrange() examples",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 5,
#>     "created_at": "2025-04-14T07:32:46Z",
#>     "updated_at": "2025-04-16T13:36:33Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7676",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7676",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7676.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7676.patch",
#>       "merged_at": {}
#>     },
#>     "body": "I added examples using the penguins dataset in the arrange() documentation \r\n+ added {palmerpenguins} to suggests in the dplyr DESCRIPTION file",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7673",
#>     "id": 2968525786,
#>     "node_id": "I_kwDOAGIUpc6w8Bva",
#>     "number": 7673,
#>     "title": "select() function documentation",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-03T06:54:28Z",
#>     "updated_at": "2025-04-03T06:54:28Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello there,\n\nGoing through the dplyr functions docs for a course prep, and I found the doc for the select() function quite confusing with the two datasets used, starwars and iris, especially with the use of pivot_...() functions in the select() doc.\n\nI would, personally, find the doc easier to read and understand if the mentions of the pivot_...() functions were limited to the corresponding doc.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7671",
#>     "id": 2966907876,
#>     "node_id": "I_kwDOAGIUpc6w12vk",
#>     "number": 7671,
#>     "title": "Introduction to dplyr article - slice_max() and slice_min()",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-02T16:03:21Z",
#>     "updated_at": "2025-04-02T16:03:21Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello there!\n\nWhile reading the \"Introduction to dplyr\" article ([here](https://dplyr.tidyverse.org/articles/dplyr.html)), I came across something that I think would need correcting : in the part on the [slice functions](https://dplyr.tidyverse.org/articles/dplyr.html#choose-rows-using-their-position-with-slice), it's noted that\n\n>  [slice_min()](https://dplyr.tidyverse.org/reference/slice.html) and [slice_max()](https://dplyr.tidyverse.org/reference/slice.html) select rows with highest or lowest values of a variable. Note that we first must choose only the values which are not NA.\n\nI tried running the code without filtering out NAs for the variable of interest, and it seems to work : \n\n`starwars |> slice_max(height, n = 3)` and `starwars |> filter(!is.na(height)) |> slice_max(height, n = 3)` return the same result.\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7668",
#>     "id": 2905299014,
#>     "node_id": "I_kwDOAGIUpc6tK1hG",
#>     "number": 7668,
#>     "title": "`tbl_vars()` accesses `nrow()` unnecessarily",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-03-09T09:04:12Z",
#>     "updated_at": "2025-03-09T09:04:12Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "This currently affects joins with `library(duckplyr)` . I can work around, perhaps we find a nicer way.\n\nDifficult to show with current duckplyr because we have our `group_vars()` method. The calling sequence goes as follows:\n\n- `tbl_vars()` calls `group_vars()` in the generic\n- `group_vars.data.frame()` calls `names(group_data())`\n- `group_data()` needs `nrow()`\n\nPerhaps we can implement an ALTREP solution for `group_vars()` ? Or add an argument to `group_data()` that indicates we really only care about the names?\n\nRelevant backtrace from a debugging session:\n\n```\nBacktrace:\n     ▆\n  1. ├─testthat::expect_error(...) at test-tpch.R:245:3\n  2. │ └─testthat:::expect_condition_matching(...)\n  3. │   └─testthat:::quasi_capture(...)\n  4. │     ├─testthat (local) .capture(...)\n  5. │     │ └─base::withCallingHandlers(...)\n  6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))\n  7. └─duckplyr:::tpch_02() at test-tpch.R:247:5\n  8.   ├─dplyr::inner_join(na_matches = TPCH_NA_MATCHES, p, ps, by = c(p_partkey = \"ps_partkey\")) at duckplyr/R/tpch.R:35:3\n  9.   └─duckplyr (local) inner_join.data.frame(na_matches = TPCH_NA_MATCHES, p, ps, by = c(p_partkey = \"ps_partkey\"))\n 10.     ├─duckplyr:::rel_try(...) at duckplyr/R/inner_join.R:10:3\n 11.     │ └─base::force(rel) at duckplyr/R/relational.R:62:5\n 12.     └─duckplyr:::rel_join_impl(...) at duckplyr/R/inner_join.R:22:7\n 13.       └─duckplyr:::tbl_vars_safe(x) at duckplyr/R/join.R:19:3\n 14.         └─dplyr::tbl_vars(x) at duckplyr/R/join.R:142:3\n 15.           ├─dplyr:::new_sel_vars(tbl_vars_dispatch(x), group_vars(x))\n 16.           │ └─base::structure(...)\n 17.           ├─dplyr::group_vars(x)\n 18.           └─dplyr:::group_vars.data.frame(x)\n 19.             ├─generics::setdiff(names(group_data(x)), \".rows\")\n 20.             ├─dplyr::group_data(x)\n 21.             └─dplyr:::group_data.data.frame(x)\n 22.               └─base::nrow(.data)\n 23.                 ├─base::dim(x)\n 24.                 └─base::dim.data.frame(x)\n 25.                   └─base::.row_names_info(x, 2L)\n```",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7667",
#>     "id": 2888866524,
#>     "node_id": "I_kwDOAGIUpc6sMJrc",
#>     "number": 7667,
#>     "title": "Move `reframe()` out of the experimental stage",
#>     "user": {
#>       "login": "DavisVaughan",
#>       "id": 19150088,
#>       "node_id": "MDQ6VXNlcjE5MTUwMDg4",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/19150088?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/DavisVaughan",
#>       "html_url": "https://github.com/DavisVaughan",
#>       "followers_url": "https://api.github.com/users/DavisVaughan/followers",
#>       "following_url": "https://api.github.com/users/DavisVaughan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/DavisVaughan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/DavisVaughan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/DavisVaughan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/DavisVaughan/orgs",
#>       "repos_url": "https://api.github.com/users/DavisVaughan/repos",
#>       "events_url": "https://api.github.com/users/DavisVaughan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/DavisVaughan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-03-01T12:27:18Z",
#>     "updated_at": "2025-03-01T12:27:18Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": {},
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7665",
#>     "id": 2880898418,
#>     "node_id": "I_kwDOAGIUpc6rtwVy",
#>     "number": 7665,
#>     "title": "Keep the column attribute label in `bind_rows`",
#>     "user": {
#>       "login": "ynsec37",
#>       "id": 98389771,
#>       "node_id": "U_kgDOBd1PCw",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/98389771?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ynsec37",
#>       "html_url": "https://github.com/ynsec37",
#>       "followers_url": "https://api.github.com/users/ynsec37/followers",
#>       "following_url": "https://api.github.com/users/ynsec37/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ynsec37/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ynsec37/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ynsec37/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ynsec37/orgs",
#>       "repos_url": "https://api.github.com/users/ynsec37/repos",
#>       "events_url": "https://api.github.com/users/ynsec37/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ynsec37/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-26T09:35:44Z",
#>     "updated_at": "2025-02-26T09:35:44Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "The `bind_rows`  output miss the label of column as shown in the below\n``` r\nlibrary(dplyr, warn.conflicts = FALSE)\n\npackageVersion(\"dplyr\")\n#> [1] '1.1.4'\n\ndf1 <- tibble(x = 1:2, y = letters[1:2])\ndf2 <- tibble(x = 4:5, z = 1:2)\n\nattr(df1$x, \"label\") <- \"df1 lable x\"\nattr(df2$x, \"label\") <- \"df2 lable x\"\n\n\noutput1 <- bind_rows(list(df1, df2))\nattributes(output1$x)\n#> NULL\n\noutput2 <- data.table::rbindlist(list(df1, df2), use.names = TRUE, fill = TRUE) |>\n  as.data.frame()\nattributes(output2$x)\n#> $label\n#> [1] \"df1 lable x\"\n\noutput3 <- data.table::rbindlist(list(df2, df1), use.names = TRUE, fill = TRUE) |>\n  as.data.frame()\nattributes(output3$x)\n#> $label\n#> [1] \"df2 lable x\"\n```\n\n<sup>Created on 2025-02-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7663",
#>     "id": 2867479942,
#>     "node_id": "I_kwDOAGIUpc6q6kWG",
#>     "number": 7663,
#>     "title": "mutate() doesn't seem to signal warning conditions properly",
#>     "user": {
#>       "login": "jmbarbone",
#>       "id": 38573843,
#>       "node_id": "MDQ6VXNlcjM4NTczODQz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/38573843?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/jmbarbone",
#>       "html_url": "https://github.com/jmbarbone",
#>       "followers_url": "https://api.github.com/users/jmbarbone/followers",
#>       "following_url": "https://api.github.com/users/jmbarbone/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/jmbarbone/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/jmbarbone/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/jmbarbone/subscriptions",
#>       "organizations_url": "https://api.github.com/users/jmbarbone/orgs",
#>       "repos_url": "https://api.github.com/users/jmbarbone/repos",
#>       "events_url": "https://api.github.com/users/jmbarbone/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/jmbarbone/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 2,
#>     "created_at": "2025-02-20T23:10:21Z",
#>     "updated_at": "2025-02-21T15:27:49Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`mutate()` doesn't seem to signal named warning conditions for calling handlers to pick up.\n\nExample: function emits a custom condition, and that specific class can't be suppressed.\n\n``` r\nlibrary(dplyr, warn.conflicts = FALSE)\n\nfoo_warn <- function(x) {\n  warning(my_warning)\n  x\n}\n\nmy_warning <- structure(\n  list(message = \"MY_WARNING\", call = NULL),\n  class = c(\"my_warning\", \"warning\", \"condition\")\n)\n\ndf <- data.frame(x = 1, y = 2)\n\nsuppressWarnings(\n  mutate(df, x = foo_warn(x)),\n  \"my_warning\"\n)\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `x = foo_warn(x)`.\n#> Caused by warning:\n#> ! MY_WARNING\n#>   x y\n#> 1 1 2\n\n# my_warningis never signaled, handlers can't pick it up\nwithCallingHandlers(\n  mutate(df, x = foo_warn(x)),\n  my_warning = function(c) {\n    stop(\"condition signaled\")\n  }\n)\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `x = foo_warn(x)`.\n#> Caused by warning:\n#> ! MY_WARNING\n#>   x y\n#> 1 1 2\n\n# but removing the `warning` class is at least a work-around\n# \nfoo_cond <- function(x) {\n  warning(my_condition)\n  x\n}\n\nmy_condition <- structure(\n  list(message = \"MY_CONDITION\", call = NULL),\n  class = c(\"my_condition\", \"condition\")\n)\n\nwithCallingHandlers(\n  mutate(df, x = foo_cond(x)),\n  my_condition = function(c) {\n    stop(\"condition signaled\")\n  }\n)\n#> Error in (function (c) : condition signaled\n```\n\n<sup>Created on 2025-02-20 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7657",
#>     "id": 2848600494,
#>     "node_id": "I_kwDOAGIUpc6pyjGu",
#>     "number": 7657,
#>     "title": "reframe with across returns an unhelpful error message",
#>     "user": {
#>       "login": "const-ae",
#>       "id": 5359014,
#>       "node_id": "MDQ6VXNlcjUzNTkwMTQ=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/5359014?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/const-ae",
#>       "html_url": "https://github.com/const-ae",
#>       "followers_url": "https://api.github.com/users/const-ae/followers",
#>       "following_url": "https://api.github.com/users/const-ae/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/const-ae/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/const-ae/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/const-ae/subscriptions",
#>       "organizations_url": "https://api.github.com/users/const-ae/orgs",
#>       "repos_url": "https://api.github.com/users/const-ae/repos",
#>       "events_url": "https://api.github.com/users/const-ae/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/const-ae/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [
#>       {
#>         "id": 17708198,
#>         "node_id": "MDU6TGFiZWwxNzcwODE5OA==",
#>         "url": "https://api.github.com/repos/tidyverse/dplyr/labels/bug",
#>         "name": "bug",
#>         "color": "E0B3A2",
#>         "default": true,
#>         "description": "an unexpected problem or unintended behavior"
#>       }
#>     ],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-12T15:28:36Z",
#>     "updated_at": "2025-02-12T17:20:55Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "When I call `reframe` with `across` and the length of the output is not consistent, the error message is a lot less helpful if the output of `across` is not named:\n\n``` r\nlibrary(tidyverse)\ntibble(x = 1:3, y = 4:6) |>\n  reframe(test = across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `reframe()`:\n#> ℹ In argument: `test = across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't recycle `..1` (size 3) to match `..2` (size 12).\n\ntibble(x = 1:3, y = 4:6) |>\n  reframe(across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in names(dots)[[i]]: subscript out of bounds\n```\n\n<sup>Created on 2025-02-12 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nThe situation is slightly better with `mutate`:\n\n``` r\nlibrary(tidyverse)\ntibble(x = 1:3, y = 4:6) |>\n  mutate(test = across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `mutate()`:\n#> ℹ In argument: `test = across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't recycle `..1` (size 3) to match `..2` (size 12).\n\ntibble(x = 1:3, y = 4:6) |>\n  mutate(across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `mutate()`:\n#> ℹ In argument: `across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't compute column `y`.\n#> Caused by error in `dplyr_internal_error()`:\n```\n\n<sup>Created on 2025-02-12 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n<details style=\"margin-bottom:10px;\">\n<summary>\nSession info\n<\/summary>\n\n``` r\nsessioninfo::session_info()\n#> ─ Session info ───────────────────────────────────────────────────────────────\n#>  setting  value\n#>  version  R version 4.4.1 (2024-06-14)\n#>  os       macOS Sonoma 14.6\n#>  system   aarch64, darwin20\n#>  ui       X11\n#>  language (EN)\n#>  collate  en_US.UTF-8\n#>  ctype    en_US.UTF-8\n#>  tz       Europe/London\n#>  date     2025-02-12\n#>  pandoc   3.2 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)\n#> \n#> ─ Packages ───────────────────────────────────────────────────────────────────\n#>  ! package     * version date (UTC) lib source\n#>  P cli           3.6.3   2024-06-21 [?] CRAN (R 4.4.0)\n#>  P colorspace    2.1-1   2024-07-26 [?] CRAN (R 4.4.0)\n#>  P digest        0.6.37  2024-08-19 [?] CRAN (R 4.4.1)\n#>  P dplyr       * 1.1.4   2023-11-17 [?] CRAN (R 4.4.0)\n#>  P evaluate      1.0.3   2025-01-10 [?] CRAN (R 4.4.1)\n#>  P fansi         1.0.6   2023-12-08 [?] CRAN (R 4.4.0)\n#>  P fastmap       1.2.0   2024-05-15 [?] CRAN (R 4.4.0)\n#>  P forcats     * 1.0.0   2023-01-29 [?] CRAN (R 4.4.0)\n#>  P fs            1.6.5   2024-10-30 [?] CRAN (R 4.4.1)\n#>  P generics      0.1.3   2022-07-05 [?] CRAN (R 4.4.0)\n#>  P ggplot2     * 3.5.1   2024-04-23 [?] CRAN (R 4.4.0)\n#>  P glue          1.8.0   2024-09-30 [?] CRAN (R 4.4.1)\n#>  P gtable        0.3.6   2024-10-25 [?] CRAN (R 4.4.1)\n#>  P hms           1.1.3   2023-03-21 [?] CRAN (R 4.4.0)\n#>  P htmltools     0.5.8.1 2024-04-04 [?] CRAN (R 4.4.0)\n#>  P knitr         1.49    2024-11-08 [?] CRAN (R 4.4.1)\n#>  P lifecycle     1.0.4   2023-11-07 [?] CRAN (R 4.4.0)\n#>  P lubridate   * 1.9.3   2023-09-27 [?] CRAN (R 4.4.0)\n#>  P magrittr      2.0.3   2022-03-30 [?] CRAN (R 4.4.0)\n#>  P munsell       0.5.1   2024-04-01 [?] CRAN (R 4.4.0)\n#>  P pillar        1.9.0   2023-03-22 [?] CRAN (R 4.4.0)\n#>  P pkgconfig     2.0.3   2019-09-22 [?] CRAN (R 4.4.0)\n#>  P purrr       * 1.0.2   2023-08-10 [?] CRAN (R 4.4.0)\n#>  P R6            2.5.1   2021-08-19 [?] CRAN (R 4.4.0)\n#>  P readr       * 2.1.5   2024-01-10 [?] CRAN (R 4.4.0)\n#>  P reprex        2.1.1   2024-07-06 [?] CRAN (R 4.4.0)\n#>  P rlang         1.1.4   2024-06-04 [?] CRAN (R 4.4.0)\n#>  P rmarkdown     2.29    2024-11-04 [?] CRAN (R 4.4.1)\n#>  P rstudioapi    0.17.1  2024-10-22 [?] CRAN (R 4.4.1)\n#>  P scales        1.3.0   2023-11-28 [?] CRAN (R 4.4.0)\n#>  P sessioninfo   1.2.2   2021-12-06 [?] CRAN (R 4.4.0)\n#>  P stringi       1.8.4   2024-05-06 [?] CRAN (R 4.4.0)\n#>  P stringr     * 1.5.1   2023-11-14 [?] CRAN (R 4.4.0)\n#>  P tibble      * 3.2.1   2023-03-20 [?] CRAN (R 4.4.0)\n#>  P tidyr       * 1.3.1   2024-01-24 [?] CRAN (R 4.4.0)\n#>  P tidyselect    1.2.1   2024-03-11 [?] CRAN (R 4.4.0)\n#>  P tidyverse   * 2.0.0   2023-02-22 [?] CRAN (R 4.4.0)\n#>  P timechange    0.3.0   2024-01-18 [?] CRAN (R 4.4.0)\n#>  P tzdb          0.4.0   2023-05-12 [?] CRAN (R 4.4.0)\n#>  P utf8          1.2.4   2023-10-22 [?] CRAN (R 4.4.0)\n#>  P vctrs         0.6.5   2023-12-01 [?] CRAN (R 4.4.0)\n#>  P withr         3.0.2   2024-10-28 [?] CRAN (R 4.4.1)\n#>  P xfun          0.50    2025-01-07 [?] CRAN (R 4.4.1)\n#>  P yaml          2.3.10  2024-07-26 [?] CRAN (R 4.4.0)\n#> \n#>  [1] /Users/ahlmanne/Documents/Work_Projects/precancer-atlas-code/renv/library/macos/R-4.4/aarch64-apple-darwin20\n#>  [2] /Users/ahlmanne/Library/Caches/org.R-project.R/R/renv/sandbox/macos/R-4.4/aarch64-apple-darwin20/f7156815\n#>  [3] /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library\n#> \n#>  P ── Loaded and on-disk path mismatch.\n#> \n#> ──────────────────────────────────────────────────────────────────────────────\n```\n\n<\/details>",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7656",
#>     "id": 2838790312,
#>     "node_id": "I_kwDOAGIUpc6pNICo",
#>     "number": 7656,
#>     "title": "Align the default case-sensitivity of `matches` with the regex default",
#>     "user": {
#>       "login": "ReedMerrill",
#>       "id": 62410415,
#>       "node_id": "MDQ6VXNlcjYyNDEwNDE1",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/62410415?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ReedMerrill",
#>       "html_url": "https://github.com/ReedMerrill",
#>       "followers_url": "https://api.github.com/users/ReedMerrill/followers",
#>       "following_url": "https://api.github.com/users/ReedMerrill/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ReedMerrill/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ReedMerrill/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ReedMerrill/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ReedMerrill/orgs",
#>       "repos_url": "https://api.github.com/users/ReedMerrill/repos",
#>       "events_url": "https://api.github.com/users/ReedMerrill/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ReedMerrill/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-02-07T18:12:09Z",
#>     "updated_at": "2025-02-07T18:16:38Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`matches` accepts a regex for pattern matching within `tidyselect` functions and, in my opinion, would therefore be more user-friendly if it had the same default case-sensitivity behaviour as regex. Right now, matches is not case sensitive. \n\nThis issue proposes switching the default value of the `ignore.case` parameter from `TRUE` to `FALSE`. I'm happy to submit a pull request, but will wait to see how much traction this issue gets.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7655",
#>     "id": 2838363441,
#>     "node_id": "I_kwDOAGIUpc6pLf0x",
#>     "number": 7655,
#>     "title": "`slice()` shuffles datetime attributes",
#>     "user": {
#>       "login": "yjunechoe",
#>       "id": 52832839,
#>       "node_id": "MDQ6VXNlcjUyODMyODM5",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/52832839?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/yjunechoe",
#>       "html_url": "https://github.com/yjunechoe",
#>       "followers_url": "https://api.github.com/users/yjunechoe/followers",
#>       "following_url": "https://api.github.com/users/yjunechoe/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/yjunechoe/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/yjunechoe/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/yjunechoe/subscriptions",
#>       "organizations_url": "https://api.github.com/users/yjunechoe/orgs",
#>       "repos_url": "https://api.github.com/users/yjunechoe/repos",
#>       "events_url": "https://api.github.com/users/yjunechoe/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/yjunechoe/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-07T14:53:15Z",
#>     "updated_at": "2025-02-07T17:22:57Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I'm not entirely sure what's going on here but `slice()` appears to shuffle the order of `class` and `tzone` attributes of datetime columns:\n\n\n```r\nlibrary(dplyr)\ndf <- data.frame(datetime = lubridate::now(tzone = \"UTC\"))\n\nattributes(df$datetime)\n#> $class\n#> [1] \"POSIXct\" \"POSIXt\" \n#> \n#> $tzone\n#> [1] \"UTC\"\n\nattributes(slice(df, n())$datetime)\n#> $tzone\n#> [1] \"UTC\"\n#> \n#> $class\n#> [1] \"POSIXct\" \"POSIXt\"\n```\n\nThis seems specific to dplyr functions that touch rows: so `select()` and `mutate()` doesn't do this but `filter()` and `arrange()` does.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7653",
#>     "id": 2836882119,
#>     "node_id": "I_kwDOAGIUpc6pF2LH",
#>     "number": 7653,
#>     "title": "case_when() Lacks Safe Handling for Unexpected Values",
#>     "user": {
#>       "login": "ja-ortiz-uniandes",
#>       "id": 91100223,
#>       "node_id": "MDQ6VXNlcjkxMTAwMjIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/91100223?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ja-ortiz-uniandes",
#>       "html_url": "https://github.com/ja-ortiz-uniandes",
#>       "followers_url": "https://api.github.com/users/ja-ortiz-uniandes/followers",
#>       "following_url": "https://api.github.com/users/ja-ortiz-uniandes/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ja-ortiz-uniandes/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ja-ortiz-uniandes/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ja-ortiz-uniandes/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ja-ortiz-uniandes/orgs",
#>       "repos_url": "https://api.github.com/users/ja-ortiz-uniandes/repos",
#>       "events_url": "https://api.github.com/users/ja-ortiz-uniandes/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ja-ortiz-uniandes/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 12,
#>     "created_at": "2025-02-07T00:00:29Z",
#>     "updated_at": "2025-05-09T09:03:11Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently, `case_when()` does not provide a built-in way to validate categorical inputs and throw an error when an unexpected value is encountered. The function requires all return values to have the same type, making it impossible to safely use in cases where an unexpected value is encountered. The function is also incompatible in most cases with `stop()`.\n\nThis makes `case_when()` unsafe in cases where developers need both:\n1. A normal transformation for known values\n2. A hard error for unknown values\n\n## Reproducible Example:\n```\nlibrary(dplyr)\n\n\nreplace_func <- function(x) {\n  \n  case_when(\n    x == \"A\" ~ 1,\n    x == \"B\" ~ 2,\n    x == \"C\" ~ 3,\n    \n    # If there is a different value I want the function to throw an error\n    # and stop the execution\n    .default = stop(paste0(\"Invalid value\", x))\n  )\n  \ndata <- tibble(x = c(\"A\", \"B\", \"A\", \"C\"))\n\n# This will throw an error - even though all values are specified in the function\ndata %>% mutate(new_x = replace_func(x))\n# Expected behavior would be to return something like:\n\n# A tibble: 4 x 2\n#   x     new_x\n#   <chr> <dbl>\n# 1 A         1\n# 2 B         2\n# 3 A         1\n# 4 C         3\n\n\n# But for it to fail if there is a value not specified in the function\ndata1 <- tibble(x = c(\"A\", \"B\", \"A\", \"C\", \"D\"))\n\n\n# This should throw an error because the default value is stop() and the value\n# \"D\" is not specified in the function\ndata1 %>% mutate(new_x = replace_func(x))\n```\n\nCurrently, the only alternatives for handling unknown values in `case_when()` are:\n\n1. A manual check after executing `case_when()`, which is an imperfect solution with unnecessary complexity or\n2. Leaving `.default = NA`, which can lead to silent failures—an unknown value that should have been handled explicitly might be mistakenly transformed into `NA` instead of triggering an error.\n\nNeither of these solutions is ideal.\n\n## Proposed Solution\n\nI believe the default behavior should be something along the lines of `.default = stop(paste0(\"Unknown value: \", x))`. This would force users to explicitly handle unknown values within their program, ensuring safer data transformations. If users want to allow unknown values to default to `NA`, they should be required to specify it explicitly by using `.default = NA` or `TRUE ~ NA`. This approach would provide better safety by default, preventing unintended `NA` values from propagating due to missing mappings in `case_when()`.\n\nWould love to hear your thoughts on this!",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7651",
#>     "id": 2829663322,
#>     "node_id": "I_kwDOAGIUpc6oqTxa",
#>     "number": 7651,
#>     "title": "Allow multiple arguments to `na_if`",
#>     "user": {
#>       "login": "nalimilan",
#>       "id": 1120448,
#>       "node_id": "MDQ6VXNlcjExMjA0NDg=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1120448?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/nalimilan",
#>       "html_url": "https://github.com/nalimilan",
#>       "followers_url": "https://api.github.com/users/nalimilan/followers",
#>       "following_url": "https://api.github.com/users/nalimilan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/nalimilan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/nalimilan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/nalimilan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/nalimilan/orgs",
#>       "repos_url": "https://api.github.com/users/nalimilan/repos",
#>       "events_url": "https://api.github.com/users/nalimilan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/nalimilan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-04T09:57:49Z",
#>     "updated_at": "2025-02-04T09:57:49Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "It's quite frequent to have to recode several distinct values to NA. So far the shortest solution I could find to do that is e.g. `na_if(na_if(vec, 88), 99)`. `if_else(vec %in% c(88, 99), NA_real_, vec)` or `case_match(vec, c(88, 99) ~ NA, .default=vec)` are also possible but relatively verbose. Could it be allowed to pass multiple arguments to `na_if ` so that one could write `na_if(vec, 88, 99)` instead?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7650",
#>     "id": 2825224316,
#>     "node_id": "I_kwDOAGIUpc6oZYB8",
#>     "number": 7650,
#>     "title": "set_names vs rename_with",
#>     "user": {
#>       "login": "ggrothendieck",
#>       "id": 7840510,
#>       "node_id": "MDQ6VXNlcjc4NDA1MTA=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/7840510?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ggrothendieck",
#>       "html_url": "https://github.com/ggrothendieck",
#>       "followers_url": "https://api.github.com/users/ggrothendieck/followers",
#>       "following_url": "https://api.github.com/users/ggrothendieck/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ggrothendieck/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ggrothendieck/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ggrothendieck/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ggrothendieck/orgs",
#>       "repos_url": "https://api.github.com/users/ggrothendieck/repos",
#>       "events_url": "https://api.github.com/users/ggrothendieck/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ggrothendieck/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-01T13:53:04Z",
#>     "updated_at": "2025-02-01T13:53:04Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Is there a difference between `rlang::set_names` and `dplyr::rename_with`?  Are both needed?\n\n```\nlibrary(purrr)\niris %>%\n  set_names( . %>% sub(\"Petal\", \"x\", .) %>% sub(\"Sepal\", \"y\", .)) %>%\n  names\n## [1] \"y.Length\" \"y.Width\"  \"x.Length\" \"x.Width\"  \"Species\" \n\n# same code except set_names replaced with rename_with\nlibrary(dplyr)\niris %>%\n  rename_with( . %>% sub(\"Petal\", \"x\", .) %>% sub(\"Sepal\", \"y\", .)) %>%\n  names\n## [1] \"y.Length\" \"y.Width\"  \"x.Length\" \"x.Width\"  \"Species\" \n```",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7649",
#>     "id": 2824576071,
#>     "node_id": "I_kwDOAGIUpc6oW5xH",
#>     "number": 7649,
#>     "title": "Possible memory leak involving warnings",
#>     "user": {
#>       "login": "dkutner",
#>       "id": 66534044,
#>       "node_id": "MDQ6VXNlcjY2NTM0MDQ0",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/66534044?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/dkutner",
#>       "html_url": "https://github.com/dkutner",
#>       "followers_url": "https://api.github.com/users/dkutner/followers",
#>       "following_url": "https://api.github.com/users/dkutner/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/dkutner/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/dkutner/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/dkutner/subscriptions",
#>       "organizations_url": "https://api.github.com/users/dkutner/orgs",
#>       "repos_url": "https://api.github.com/users/dkutner/repos",
#>       "events_url": "https://api.github.com/users/dkutner/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/dkutner/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 3,
#>     "created_at": "2025-01-31T23:37:24Z",
#>     "updated_at": "2025-05-13T02:25:34Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I recently updated my `dplyr` version (late to the party), and I'm hitting some increased memory usage. I've traced it back to how warnings are handled. Beginning in `dplyr 1.1.1`, I get the following output:\n``` r\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\nidentity <- function(x, warn) {\n    if (warn) {\n        warning(\"fake warning\")\n    }\n    x\n}\n\ndf <- tibble::tibble(e = rep(1, 1e8))\n\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    620941  33.2    1306337   69.8   1306337  69.8\n#> Vcells 101049658 771.0  148096356 1129.9 101084366 771.3\n\ndf <- df %>% mutate(e = identity(e, warn = TRUE))\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `e = identity(e, warn = TRUE)`.\n#> Caused by warning in `identity()`:\n#> ! fake warning\n\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    729780  39.0    1306337   69.8   1306337  69.8\n#> Vcells 101287706 772.8  148096356 1129.9 102369359 781.1\n\nrm(df)\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    729742  39.0    1306337   69.8   1306337  69.8\n#> Vcells 101287654 772.8  148096356 1129.9 102369359 781.1\n```\n\n<sup>Created on 2025-01-31 with [reprex v2.0.2](https://reprex.tidyverse.org)<\/sup>\n\nIf I restart R and rerun with `warn = FALSE`, the final memory usage is only 7.9 MB rather than 772.8 MB. Additionally, if I rewrite the mutate to avoid using a pipe via `df <- mutate(df, e = identity(e, warn = TRUE))`, the final memory usage is only 8.8 MB. Switching the pipe to `|>` also yields low memory usage. Under `dplyr 1.1.0`, the above reprex yields 18.8 MB.\n\nI don't have a full appreciation for whether warnings would capture my environment, but I'm wondering if that's perhaps happening within either base R or dplyr's own record of warnings.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7630",
#>     "id": 2817394650,
#>     "node_id": "I_kwDOAGIUpc6n7gfa",
#>     "number": 7630,
#>     "title": "`filter()` removes labels from `glue` variables",
#>     "user": {
#>       "login": "d-morrison",
#>       "id": 2474437,
#>       "node_id": "MDQ6VXNlcjI0NzQ0Mzc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2474437?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/d-morrison",
#>       "html_url": "https://github.com/d-morrison",
#>       "followers_url": "https://api.github.com/users/d-morrison/followers",
#>       "following_url": "https://api.github.com/users/d-morrison/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/d-morrison/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/d-morrison/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/d-morrison/subscriptions",
#>       "organizations_url": "https://api.github.com/users/d-morrison/orgs",
#>       "repos_url": "https://api.github.com/users/d-morrison/repos",
#>       "events_url": "https://api.github.com/users/d-morrison/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/d-morrison/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-01-29T06:54:40Z",
#>     "updated_at": "2025-01-29T07:07:13Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Here's a reprex:\n\n``` r\nlibrary(labelled)\nlibrary(glue)\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\ntest = tibble(\n  a = 1 |> set_label_attribute(\"a1\"),\n  b = glue::glue(\"two\") |> set_label_attribute(\"b2\")\n)\ntest$b |> get_label_attribute()\n#> [1] \"b2\"\n\n# filter() strips the variable label from column `b`\ndplyr::filter(test)$b |> get_label_attribute()\n#> NULL\n\n# filter() doesn't strip the label from column `a`\ndplyr::filter(test)$a |> get_label_attribute()\n#> [1] \"a1\"\n```\n\n<sup>Created on 2025-01-28 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nI expected column `b` to keep its label attribute. Not sure if this is ultimately an issue with `dplyr`, `glue`, or `labelled`, but seems like it's in `dplyr`?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7622",
#>     "id": 2769857410,
#>     "node_id": "I_kwDOAGIUpc6lGKuC",
#>     "number": 7622,
#>     "title": "`Mutating joins` relationship documentation issues",
#>     "user": {
#>       "login": "bounlu",
#>       "id": 17899927,
#>       "node_id": "MDQ6VXNlcjE3ODk5OTI3",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/17899927?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/bounlu",
#>       "html_url": "https://github.com/bounlu",
#>       "followers_url": "https://api.github.com/users/bounlu/followers",
#>       "following_url": "https://api.github.com/users/bounlu/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/bounlu/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/bounlu/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/bounlu/subscriptions",
#>       "organizations_url": "https://api.github.com/users/bounlu/orgs",
#>       "repos_url": "https://api.github.com/users/bounlu/repos",
#>       "events_url": "https://api.github.com/users/bounlu/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/bounlu/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-01-06T05:32:44Z",
#>     "updated_at": "2025-01-06T13:46:11Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`Mutate-joins (dplyr)` documentation says:\n\n```\nrelationship\n\nHandling of the expected relationship between the keys of x and y. If the expectations chosen from the list below are invalidated, an error is thrown.\n\nNULL, the default, doesn't expect there to be any relationship between x and y. However, for equality joins it will check for a many-to-many relationship (which is typically unexpected) and will warn if one occurs, encouraging you to either take a closer look at your inputs or make this relationship explicit by specifying \"many-to-many\".\n\nSee the Many-to-many relationships section for more details.\n\n\"one-to-one\" expects:\nEach row in x matches at most 1 row in y.\nEach row in y matches at most 1 row in x.\n\n\"one-to-many\" expects:\nEach row in y matches at most 1 row in x.\n\n\"many-to-one\" expects:\nEach row in x matches at most 1 row in y.\n\n\"many-to-many\" doesn't perform any relationship checks, but is provided to allow you to be explicit about this relationship if you know it exists.\n\nrelationship doesn't handle cases where there are zero matches. For that, see unmatched.\n```\n\nI see there are 2 issues:\n\n1. `one-to-many` and `many-to-one` description looks awkward and reversed to me. Logically, it should specify from left to right, x -> y. So `one-to-many` should mean \"Rows in x may match multiple rows in y\". Similarly, `many-to-one` should mean \"Multiple rows in x may match same row in y\".\n\n2. Specifying `relationship` explicitly as `one-to-many` or `many-to-one` do not generate any warning or error if there is no such matching in the data, i.e. if only `one-to-one` exists. I would expect an error would be thrown if the specified relationship does not exist in the matching as the documentation says, otherwise I don't get the point of specifying the relationship explicitly.\n\nI have read [this](https://github.com/tidyverse/dplyr/pull/6753) but I believe the above issues still remain to be resolved.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7621",
#>     "id": 2769423039,
#>     "node_id": "I_kwDOAGIUpc6lEgq_",
#>     "number": 7621,
#>     "title": "More examples in `across()` documentation",
#>     "user": {
#>       "login": "AmeliaMN",
#>       "id": 2576787,
#>       "node_id": "MDQ6VXNlcjI1NzY3ODc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2576787?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/AmeliaMN",
#>       "html_url": "https://github.com/AmeliaMN",
#>       "followers_url": "https://api.github.com/users/AmeliaMN/followers",
#>       "following_url": "https://api.github.com/users/AmeliaMN/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/AmeliaMN/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/AmeliaMN/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/AmeliaMN/subscriptions",
#>       "organizations_url": "https://api.github.com/users/AmeliaMN/orgs",
#>       "repos_url": "https://api.github.com/users/AmeliaMN/repos",
#>       "events_url": "https://api.github.com/users/AmeliaMN/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/AmeliaMN/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 2,
#>     "created_at": "2025-01-05T19:48:28Z",
#>     "updated_at": "2025-01-17T16:00:34Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "When I use `across()` I almost always want to do the thing to every single column. For whatever reason, that tidyselect action is hard for me to remember/find. Is it `all()`? Is it `everything()`? Etc. It would be great to have an example in the `across()` documentation that does the thing to every column. Additionally, it would be awesome to have an example that does the thing conditionally depending on the variable type. For example, rounding all the numeric variables. ",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7113",
#>     "id": 2752730662,
#>     "node_id": "PR_kwDOAGIUpc6F6eFe",
#>     "number": 7113,
#>     "title": "Add logic to catch single named logical expressions",
#>     "user": {
#>       "login": "brendensm",
#>       "id": 97240544,
#>       "node_id": "U_kgDOBcvF4A",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/97240544?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/brendensm",
#>       "html_url": "https://github.com/brendensm",
#>       "followers_url": "https://api.github.com/users/brendensm/followers",
#>       "following_url": "https://api.github.com/users/brendensm/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/brendensm/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/brendensm/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/brendensm/subscriptions",
#>       "organizations_url": "https://api.github.com/users/brendensm/orgs",
#>       "repos_url": "https://api.github.com/users/brendensm/repos",
#>       "events_url": "https://api.github.com/users/brendensm/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/brendensm/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-20T13:19:14Z",
#>     "updated_at": "2024-12-20T13:19:14Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7113",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7113",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7113.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7113.patch",
#>       "merged_at": {}
#>     },
#>     "body": "This PR would close #7105. This is a potential solution that adds logic to `check_filter`. This solution stops single, named logical expressions. \r\n\r\n```r\r\nmtcars$big_cyl <- mtcars$cyl > 4\r\n\r\nfilter(mtcars, big_cyl = TRUE) |>\r\n  nrow()\r\n#> Error in `filter()`:\r\n#> ! We detected a named input.\r\n#> ℹ This usually means that you've used `=` instead of `==`.\r\n#> ℹ Did you mean `big_cyl == TRUE`?\r\n#> \r\nfilter(mtcars, big_cyl == TRUE) |>\r\n  nrow()\r\n#> [1] 21\r\n#>\r\n```\r\n\r\nBut still allows for named logical vectors:\r\n\r\n```r\r\nfilters <- mtcars %>%\r\n  transmute(\r\n    cyl %in% 6:8,\r\n    hp / drat > 50\r\n  )\r\n\r\nexpect_identical(\r\n  mtcars %>% filter(!!!unname(filters)),\r\n  mtcars %>% filter(!!!filters)\r\n)\r\n```\r\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7112",
#>     "id": 2748696028,
#>     "node_id": "I_kwDOAGIUpc6j1cXc",
#>     "number": 7112,
#>     "title": "`count(.by = )`",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-18T20:29:48Z",
#>     "updated_at": "2024-12-18T20:29:48Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I accidentally used the syntax below, and wonder if this should be the default recommended one, or at least a supported alternative.\n\n``` r\noptions(conflicts.policy = list(warn = FALSE))\nlibrary(dplyr)\n\ntibble(a = 1:3) |>\n  count(.by = a)\n#> # A tibble: 3 × 2\n#>     .by     n\n#>   <int> <int>\n#> 1     1     1\n#> 2     2     1\n#> 3     3     1\n```\n\n<sup>Created on 2024-12-18 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nIt took me a while to understand why there's a `.by` column in the output.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/reactions",
#>       "total_count": 2,
#>       "+1": 2,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7111",
#>     "id": 2733589121,
#>     "node_id": "PR_kwDOAGIUpc6E5JBO",
#>     "number": 7111,
#>     "title": "Update storms dataset",
#>     "user": {
#>       "login": "tomalrussell",
#>       "id": 2762769,
#>       "node_id": "MDQ6VXNlcjI3NjI3Njk=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2762769?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/tomalrussell",
#>       "html_url": "https://github.com/tomalrussell",
#>       "followers_url": "https://api.github.com/users/tomalrussell/followers",
#>       "following_url": "https://api.github.com/users/tomalrussell/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/tomalrussell/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/tomalrussell/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/tomalrussell/subscriptions",
#>       "organizations_url": "https://api.github.com/users/tomalrussell/orgs",
#>       "repos_url": "https://api.github.com/users/tomalrussell/repos",
#>       "events_url": "https://api.github.com/users/tomalrussell/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/tomalrussell/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-11T17:39:24Z",
#>     "updated_at": "2024-12-11T17:39:24Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7111",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7111",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7111.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7111.patch",
#>       "merged_at": {}
#>     },
#>     "body": "Aiming to close #7110 - hopefully this is appropriately focussed, just updating the URL and running the update script.\r\n\r\nOne potential extension would be to include Radius of Maximum Wind, which can be interesting for parametric wind field modelling. According to the [documentation](https://www.nhc.noaa.gov/data/hurdat/hurdat2-format-atl-1851-2021.pdf) these values have been recently added, since the 2022 release, with data from the 2021 season onwards.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7110",
#>     "id": 2733565156,
#>     "node_id": "I_kwDOAGIUpc6i7uTk",
#>     "number": 7110,
#>     "title": "Update storms dataset",
#>     "user": {
#>       "login": "tomalrussell",
#>       "id": 2762769,
#>       "node_id": "MDQ6VXNlcjI3NjI3Njk=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2762769?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/tomalrussell",
#>       "html_url": "https://github.com/tomalrussell",
#>       "followers_url": "https://api.github.com/users/tomalrussell/followers",
#>       "following_url": "https://api.github.com/users/tomalrussell/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/tomalrussell/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/tomalrussell/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/tomalrussell/subscriptions",
#>       "organizations_url": "https://api.github.com/users/tomalrussell/orgs",
#>       "repos_url": "https://api.github.com/users/tomalrussell/repos",
#>       "events_url": "https://api.github.com/users/tomalrussell/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/tomalrussell/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-11T17:28:32Z",
#>     "updated_at": "2024-12-11T17:28:32Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "As in #6000, #6320 - the [hurdat](https://www.nhc.noaa.gov/data/#hurdat) storms dataset continues to receive annual updates.\n\nI'll open a small PR in case it's still of interest to keep up with this.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7109",
#>     "id": 2725959859,
#>     "node_id": "I_kwDOAGIUpc6ietiz",
#>     "number": 7109,
#>     "title": "Suggestion: `slice_ends()`",
#>     "user": {
#>       "login": "DesiQuintans",
#>       "id": 3200601,
#>       "node_id": "MDQ6VXNlcjMyMDA2MDE=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/3200601?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/DesiQuintans",
#>       "html_url": "https://github.com/DesiQuintans",
#>       "followers_url": "https://api.github.com/users/DesiQuintans/followers",
#>       "following_url": "https://api.github.com/users/DesiQuintans/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/DesiQuintans/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/DesiQuintans/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/DesiQuintans/subscriptions",
#>       "organizations_url": "https://api.github.com/users/DesiQuintans/orgs",
#>       "repos_url": "https://api.github.com/users/DesiQuintans/repos",
#>       "events_url": "https://api.github.com/users/DesiQuintans/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/DesiQuintans/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2024-12-09T04:33:00Z",
#>     "updated_at": "2024-12-25T15:10:28Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I often want to know what discretising a continuous variable actually looks like in my data, so I often want to know what happens at the edges of level. Maybe this sort of thing is useful to enough other people that it's worth making a dedicated `slice_` function?\n\n``` r\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\nset.seed(12345)\n\nx <- \n  data.frame(\n    age = runif(50, min = 0, max = 100)\n  ) %>% \n  mutate(\n    age_group = \n      cut(\n        age,\n        breaks = c(0, 18, 26, 32, 50, 60, 75, 100),\n        include.lowest = TRUE\n      )\n  )\n  \n\nx %>% \n  arrange(age) %>% \n  group_by(age_group) %>% \n  {\n    bind_rows(\n      slice_head(., n = 2),\n      slice_tail(., n = 2)\n    ) %>% \n    arrange(age)\n  }\n#> # A tibble: 24 × 2\n#> # Groups:   age_group [6]\n#>       age age_group\n#>     <dbl> <fct>    \n#>  1  0.114 [0,18]   \n#>  2  0.599 [0,18]   \n#>  3 16.6   [0,18]   \n#>  4 17.9   [0,18]   \n#>  5 18.8   (18,26]  \n#>  6 22.6   (18,26]  \n#>  7 22.6   (18,26]  \n#>  8 26.0   (18,26]  \n#>  9 32.1   (32,50]  \n#> 10 32.5   (32,50]  \n#> # ℹ 14 more rows\n```\n\n<sup>Created on 2024-12-09 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7108",
#>     "id": 2722467994,
#>     "node_id": "PR_kwDOAGIUpc6ES4Eg",
#>     "number": 7108,
#>     "title": "docs: typo fix",
#>     "user": {
#>       "login": "maelle",
#>       "id": 8360597,
#>       "node_id": "MDQ6VXNlcjgzNjA1OTc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/8360597?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/maelle",
#>       "html_url": "https://github.com/maelle",
#>       "followers_url": "https://api.github.com/users/maelle/followers",
#>       "following_url": "https://api.github.com/users/maelle/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/maelle/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/maelle/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/maelle/subscriptions",
#>       "organizations_url": "https://api.github.com/users/maelle/orgs",
#>       "repos_url": "https://api.github.com/users/maelle/repos",
#>       "events_url": "https://api.github.com/users/maelle/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/maelle/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-06T09:03:03Z",
#>     "updated_at": "2024-12-06T17:35:27Z",
#>     "closed_at": {},
#>     "author_association": "CONTRIBUTOR",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7108",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7108",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7108.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7108.patch",
#>       "merged_at": {}
#>     },
#>     "body": {},
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7106",
#>     "id": 2678939827,
#>     "node_id": "I_kwDOAGIUpc6frWCz",
#>     "number": 7106,
#>     "title": "Show methods implemented by loaded packages more prominently",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [
#>       {
#>         "id": 674867158,
#>         "node_id": "MDU6TGFiZWw2NzQ4NjcxNTg=",
#>         "url": "https://api.github.com/repos/tidyverse/dplyr/labels/documentation",
#>         "name": "documentation",
#>         "color": "CBBAB8",
#>         "default": true,
#>         "description": ""
#>       }
#>     ],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2024-11-21T10:38:06Z",
#>     "updated_at": "2024-11-21T19:31:27Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Example: if dbplyr is loaded, `?mutate` would contain a link to `?dbplyr::mutate.tbl_lazy` .\n\nPretty much like DBI, e.g., https://dbi.r-dbi.org/reference/dbConnect.html .\n\nRelevant for https://github.com/tidyverse/duckplyr/issues/214 and of course the existing backends.\n\nCC @maelle.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7105",
#>     "id": 2677769280,
#>     "node_id": "I_kwDOAGIUpc6fm4RA",
#>     "number": 7105,
#>     "title": "filter should warn or prevent users from using named logical inputs",
#>     "user": {
#>       "login": "conig",
#>       "id": 12742211,
#>       "node_id": "MDQ6VXNlcjEyNzQyMjEx",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/12742211?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/conig",
#>       "html_url": "https://github.com/conig",
#>       "followers_url": "https://api.github.com/users/conig/followers",
#>       "following_url": "https://api.github.com/users/conig/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/conig/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/conig/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/conig/subscriptions",
#>       "organizations_url": "https://api.github.com/users/conig/orgs",
#>       "repos_url": "https://api.github.com/users/conig/repos",
#>       "events_url": "https://api.github.com/users/conig/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/conig/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-11-21T02:56:46Z",
#>     "updated_at": "2024-11-21T02:56:46Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently dplyr warns users who accidentally use `=` instead of `==`. \nHowever, this does not occur if a logical is passed as the named variable.\n\n## Demonstration\n\n\n\n\n\n``` r\nlibrary(dplyr)\n\nmtcars$big_cyl <- mtcars$cyl > 4\n# Mistaking = for == silently fails, returning the whole dataset\nfilter(mtcars, big_cyl = TRUE) |>\n  nrow()\n#> [1] 32\n```\nCorrectly using `==` for comparison\n```r\n# Correctly using ==.\nfilter(mtcars, big_cyl == TRUE) |>\n  nrow()\n#> [1] 21\n```\n\nI think while doing `x == TRUE` is bad practice, this is bound to trip up some users and an error should be thrown.\n\n## Additional context\n\nExample of the error working correctly:\n``` r\n# version 1.1.4\ndplyr::filter(mtcars, cyl = \"4\")\n#> Error in `dplyr::filter()`:\n#> ! We detected a named input.\n#> ℹ This usually means that you've used `=` instead of `==`.\n#> ℹ Did you mean `cyl == \"4\"`?\n```\n\nInterestingly if the TRUE is in a vector the error *is* thrown.\n\n``` r\ndplyr::filter(mtcars, big_cyl = c(TRUE))\n#> Error in `dplyr::filter()`:\n#> ! We detected a named input.\n#> ℹ This usually means that you've used `=` instead of `==`.\n#> ℹ Did you mean `big_cyl == c(TRUE)`?\n```\n\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   }
#> ] 
gh("/repos/{owner}/{repo}/issues", owner = "hadley", repo = "dplyr")
#> [
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7683",
#>     "id": 3090485528,
#>     "node_id": "I_kwDOAGIUpc64NREY",
#>     "number": 7683,
#>     "title": "Sorting of list columns",
#>     "user": {
#>       "login": "lschneiderbauer",
#>       "id": 422100,
#>       "node_id": "MDQ6VXNlcjQyMjEwMA==",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/422100?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/lschneiderbauer",
#>       "html_url": "https://github.com/lschneiderbauer",
#>       "followers_url": "https://api.github.com/users/lschneiderbauer/followers",
#>       "following_url": "https://api.github.com/users/lschneiderbauer/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/lschneiderbauer/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/lschneiderbauer/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/lschneiderbauer/subscriptions",
#>       "organizations_url": "https://api.github.com/users/lschneiderbauer/orgs",
#>       "repos_url": "https://api.github.com/users/lschneiderbauer/repos",
#>       "events_url": "https://api.github.com/users/lschneiderbauer/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/lschneiderbauer/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-26T08:53:14Z",
#>     "updated_at": "2025-05-26T08:56:09Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently, `arrange()` does not seem to affect list columns:\n\n``` r\nlibrary(dplyr)\n#> \n#> Attache Paket: 'dplyr'\n#> Die folgenden Objekte sind maskiert von 'package:stats':\n#> \n#>     filter, lag\n#> Die folgenden Objekte sind maskiert von 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\ndf_list_sorted <-\n  tibble(\n    x = list(c(3, 1), c(1, 1))\n  ) |>\n  arrange(x)\n\ndf_list_sorted |>\n  tidyr::unnest_wider(x, names_sep = \"_\")\n#> # A tibble: 2 × 2\n#>     x_1   x_2\n#>   <dbl> <dbl>\n#> 1     3     1\n#> 2     1     1\n```\n\n<sup>Created on 2025-05-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n\nShould an order be defined for list columns, so that `arrange()` actually does something?\nFor reference, duckdb defines an order on list type which seems pretty natural and universal: https://duckdb.org/docs/stable/sql/data_types/list.html#comparison-and-ordering\n> The LIST ordering is defined positionally using the following rules, where min_len = min(len(l1), len(l2)).\n> \n> Equality. l1 and l2 are equal, if for each i in [1, min_len]: l1[i] = l2[i].\n> Less Than. For the first index i in [1, min_len] where l1[i] != l2[i]: If l1[i] < l2[i], l1 is less than l2.\n\nI believe the equivalent R definition would be something along those lines:\n``` r\n`%==%` <- function(x, y) {\n  min_len <- min(length(x), length(y))\n  sub <- seq(1, min_len)\n\n  all(x[sub] == y[sub])\n}\n\n`%<%` <- function(x, y) {\n  min_len <- min(length(x), length(y))\n  sub <- seq(1, min_len)\n\n  i <- head(which(x[sub] != y[sub]), n = 1L)\n\n  if (length(i) < 1) {\n    return(FALSE)\n  } else {\n    x[[i]] < y[[i]]\n  }\n}\n\n`%<=%` <- function(x, y) {\n  (x %<% y) || (x %==% y)\n}\n\n# One maybe wants to sort w.r.t. to the `%<=%` operator?\n# Examples:\n\nc(3, 1) %<=% c(1, 1)\n#> [1] FALSE\n\nc(1, 1) %<=% c(3, 1)\n#> [1] TRUE\n\nc(1, 3) %<=% c(3, 1)\n#> [1] TRUE\n\nc(1, 1) %<=% c(1, 1)\n#> [1] TRUE\n```\n\n<sup>Created on 2025-05-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n\nShould `arrange()` sort w.r.t. to `%<=%` when used on list columns?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7683/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7682",
#>     "id": 3052748220,
#>     "node_id": "I_kwDOAGIUpc619T28",
#>     "number": 7682,
#>     "title": "Allowing `join_by()` in `rows_update()` and friends",
#>     "user": {
#>       "login": "jl5000",
#>       "id": 26303390,
#>       "node_id": "MDQ6VXNlcjI2MzAzMzkw",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/26303390?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/jl5000",
#>       "html_url": "https://github.com/jl5000",
#>       "followers_url": "https://api.github.com/users/jl5000/followers",
#>       "following_url": "https://api.github.com/users/jl5000/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/jl5000/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/jl5000/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/jl5000/subscriptions",
#>       "organizations_url": "https://api.github.com/users/jl5000/orgs",
#>       "repos_url": "https://api.github.com/users/jl5000/repos",
#>       "events_url": "https://api.github.com/users/jl5000/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/jl5000/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-09T17:16:54Z",
#>     "updated_at": "2025-05-09T17:16:54Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently a `join_by()` specification can only be used in mutating and filtering joins. Would it be possible to allow its use in `rows_update()` and related functions? These functions have a `by` argument which can only take a character vector.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7682/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7681",
#>     "id": 3037098251,
#>     "node_id": "PR_kwDOAGIUpc6Uz1iI",
#>     "number": 7681,
#>     "title": "fix typos",
#>     "user": {
#>       "login": "musvaage",
#>       "id": 112724366,
#>       "node_id": "U_kgDOBrgJjg",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/112724366?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/musvaage",
#>       "html_url": "https://github.com/musvaage",
#>       "followers_url": "https://api.github.com/users/musvaage/followers",
#>       "following_url": "https://api.github.com/users/musvaage/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/musvaage/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/musvaage/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/musvaage/subscriptions",
#>       "organizations_url": "https://api.github.com/users/musvaage/orgs",
#>       "repos_url": "https://api.github.com/users/musvaage/repos",
#>       "events_url": "https://api.github.com/users/musvaage/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/musvaage/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-05-03T02:29:21Z",
#>     "updated_at": "2025-05-03T02:29:21Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7681",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7681",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7681.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7681.patch",
#>       "merged_at": {}
#>     },
#>     "body": "dumped repo strings exposed a couple of typos",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7681/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7680",
#>     "id": 3014574689,
#>     "node_id": "I_kwDOAGIUpc6zrsJh",
#>     "number": 7680,
#>     "title": "Error installing dplyr@1.1.4 with R 4.5.0 on MacOS 15.3.2",
#>     "user": {
#>       "login": "devster31",
#>       "id": 1912062,
#>       "node_id": "MDQ6VXNlcjE5MTIwNjI=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1912062?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/devster31",
#>       "html_url": "https://github.com/devster31",
#>       "followers_url": "https://api.github.com/users/devster31/followers",
#>       "following_url": "https://api.github.com/users/devster31/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/devster31/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/devster31/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/devster31/subscriptions",
#>       "organizations_url": "https://api.github.com/users/devster31/orgs",
#>       "repos_url": "https://api.github.com/users/devster31/repos",
#>       "events_url": "https://api.github.com/users/devster31/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/devster31/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 3,
#>     "created_at": "2025-04-23T16:18:26Z",
#>     "updated_at": "2025-04-23T17:23:55Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello,\nI'm trying to install `dplyr`.\nBelow some info on my system:\n```\n➜ R --version\nR version 4.5.0 (2025-04-11) -- \"How About a Twenty-Six\"\nCopyright (C) 2025 The R Foundation for Statistical Computing\nPlatform: x86_64-apple-darwin23.6.0\n\n➜ clang -v\nApple clang version 16.0.0 (clang-1600.0.26.6)\nTarget: x86_64-apple-darwin24.3.0\nThread model: posix\nInstalledDir: /Library/Developer/CommandLineTools/usr/bin\n```\nAnd the error:\n```\napertura URL 'https://cloud.r-project.org/src/contrib/dplyr_1.1.4.tar.gz'\nContent type 'application/x-gzip' length 1207521 bytes (1.2 MB)\n==================================================\ndownloaded 1.2 MB\n\n* installing *source* package ‘dplyr’ ...\n** this is package ‘dplyr’ version ‘1.1.4’\n** pacchetto ‘dplyr’ aperto con successo con controllo somme MD5\n** using staged installation\n** libs\ncon compilatore C++: ‘Apple clang version 16.0.0 (clang-1600.0.26.6)’\ncon SDK: ‘MacOSX15.2.sdk’\nclang++ -std=gnu++17 -I\"/usr/local/Cellar/r/4.5.0/lib/R/include\" -DNDEBUG   -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/xz/include -I/usr/local/include    -fPIC  -g -O2   -c chop.cpp -o chop.o\nIn file included from chop.cpp:1:\nIn file included from ./dplyr.h:5:\n/usr/local/Cellar/r/4.5.0/lib/R/include/R.h:39:11: fatal error: 'cstdlib' file not found\n   39 | # include <cstdlib>\n      |           ^~~~~~~~~\n1 error generated.\nmake: *** [chop.o] Error 1\nERROR: compilation failed for package ‘dplyr’\n* removing ‘/usr/local/lib/R/4.5/site-library/dplyr’\n\nI pacchetti scaricati con il codice sorgente sono in\n\t‘/private/var/folders/ln/r_c5vx295nd751vpyxq94bd80000gn/T/Rtmp3oGKC7/downloaded_packages’\nMessaggio di avvertimento:\nIn install.packages(\"dplyr\") :\n  l'installazione del pacchetto ‘dplyr’ ha uno stato di uscita non-zero\n```\nMy `~/.R/Makevars` file is empty right now.\n\nAny tips on how to fix?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7680/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7677",
#>     "id": 3000068668,
#>     "node_id": "PR_kwDOAGIUpc6S3OfK",
#>     "number": 7677,
#>     "title": "Revdepcheck results",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-16T15:51:56Z",
#>     "updated_at": "2025-04-16T15:51:56Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7677",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7677",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7677.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7677.patch",
#>       "merged_at": {}
#>     },
#>     "body": "An interesting problem with `case_when()` and arrays.\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7677/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7676",
#>     "id": 2992153280,
#>     "node_id": "PR_kwDOAGIUpc6ScG92",
#>     "number": 7676,
#>     "title": "Use {palmerpenguins} dataset in arrange() examples",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 5,
#>     "created_at": "2025-04-14T07:32:46Z",
#>     "updated_at": "2025-04-16T13:36:33Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7676",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7676",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7676.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7676.patch",
#>       "merged_at": {}
#>     },
#>     "body": "I added examples using the penguins dataset in the arrange() documentation \r\n+ added {palmerpenguins} to suggests in the dplyr DESCRIPTION file",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7676/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7673",
#>     "id": 2968525786,
#>     "node_id": "I_kwDOAGIUpc6w8Bva",
#>     "number": 7673,
#>     "title": "select() function documentation",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-03T06:54:28Z",
#>     "updated_at": "2025-04-03T06:54:28Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello there,\n\nGoing through the dplyr functions docs for a course prep, and I found the doc for the select() function quite confusing with the two datasets used, starwars and iris, especially with the use of pivot_...() functions in the select() doc.\n\nI would, personally, find the doc easier to read and understand if the mentions of the pivot_...() functions were limited to the corresponding doc.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7673/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7671",
#>     "id": 2966907876,
#>     "node_id": "I_kwDOAGIUpc6w12vk",
#>     "number": 7671,
#>     "title": "Introduction to dplyr article - slice_max() and slice_min()",
#>     "user": {
#>       "login": "KittJonathan",
#>       "id": 70012823,
#>       "node_id": "MDQ6VXNlcjcwMDEyODIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/70012823?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/KittJonathan",
#>       "html_url": "https://github.com/KittJonathan",
#>       "followers_url": "https://api.github.com/users/KittJonathan/followers",
#>       "following_url": "https://api.github.com/users/KittJonathan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/KittJonathan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/KittJonathan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/KittJonathan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/KittJonathan/orgs",
#>       "repos_url": "https://api.github.com/users/KittJonathan/repos",
#>       "events_url": "https://api.github.com/users/KittJonathan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/KittJonathan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-04-02T16:03:21Z",
#>     "updated_at": "2025-04-02T16:03:21Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Hello there!\n\nWhile reading the \"Introduction to dplyr\" article ([here](https://dplyr.tidyverse.org/articles/dplyr.html)), I came across something that I think would need correcting : in the part on the [slice functions](https://dplyr.tidyverse.org/articles/dplyr.html#choose-rows-using-their-position-with-slice), it's noted that\n\n>  [slice_min()](https://dplyr.tidyverse.org/reference/slice.html) and [slice_max()](https://dplyr.tidyverse.org/reference/slice.html) select rows with highest or lowest values of a variable. Note that we first must choose only the values which are not NA.\n\nI tried running the code without filtering out NAs for the variable of interest, and it seems to work : \n\n`starwars |> slice_max(height, n = 3)` and `starwars |> filter(!is.na(height)) |> slice_max(height, n = 3)` return the same result.\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7671/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7668",
#>     "id": 2905299014,
#>     "node_id": "I_kwDOAGIUpc6tK1hG",
#>     "number": 7668,
#>     "title": "`tbl_vars()` accesses `nrow()` unnecessarily",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-03-09T09:04:12Z",
#>     "updated_at": "2025-03-09T09:04:12Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "This currently affects joins with `library(duckplyr)` . I can work around, perhaps we find a nicer way.\n\nDifficult to show with current duckplyr because we have our `group_vars()` method. The calling sequence goes as follows:\n\n- `tbl_vars()` calls `group_vars()` in the generic\n- `group_vars.data.frame()` calls `names(group_data())`\n- `group_data()` needs `nrow()`\n\nPerhaps we can implement an ALTREP solution for `group_vars()` ? Or add an argument to `group_data()` that indicates we really only care about the names?\n\nRelevant backtrace from a debugging session:\n\n```\nBacktrace:\n     ▆\n  1. ├─testthat::expect_error(...) at test-tpch.R:245:3\n  2. │ └─testthat:::expect_condition_matching(...)\n  3. │   └─testthat:::quasi_capture(...)\n  4. │     ├─testthat (local) .capture(...)\n  5. │     │ └─base::withCallingHandlers(...)\n  6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))\n  7. └─duckplyr:::tpch_02() at test-tpch.R:247:5\n  8.   ├─dplyr::inner_join(na_matches = TPCH_NA_MATCHES, p, ps, by = c(p_partkey = \"ps_partkey\")) at duckplyr/R/tpch.R:35:3\n  9.   └─duckplyr (local) inner_join.data.frame(na_matches = TPCH_NA_MATCHES, p, ps, by = c(p_partkey = \"ps_partkey\"))\n 10.     ├─duckplyr:::rel_try(...) at duckplyr/R/inner_join.R:10:3\n 11.     │ └─base::force(rel) at duckplyr/R/relational.R:62:5\n 12.     └─duckplyr:::rel_join_impl(...) at duckplyr/R/inner_join.R:22:7\n 13.       └─duckplyr:::tbl_vars_safe(x) at duckplyr/R/join.R:19:3\n 14.         └─dplyr::tbl_vars(x) at duckplyr/R/join.R:142:3\n 15.           ├─dplyr:::new_sel_vars(tbl_vars_dispatch(x), group_vars(x))\n 16.           │ └─base::structure(...)\n 17.           ├─dplyr::group_vars(x)\n 18.           └─dplyr:::group_vars.data.frame(x)\n 19.             ├─generics::setdiff(names(group_data(x)), \".rows\")\n 20.             ├─dplyr::group_data(x)\n 21.             └─dplyr:::group_data.data.frame(x)\n 22.               └─base::nrow(.data)\n 23.                 ├─base::dim(x)\n 24.                 └─base::dim.data.frame(x)\n 25.                   └─base::.row_names_info(x, 2L)\n```",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7668/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7667",
#>     "id": 2888866524,
#>     "node_id": "I_kwDOAGIUpc6sMJrc",
#>     "number": 7667,
#>     "title": "Move `reframe()` out of the experimental stage",
#>     "user": {
#>       "login": "DavisVaughan",
#>       "id": 19150088,
#>       "node_id": "MDQ6VXNlcjE5MTUwMDg4",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/19150088?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/DavisVaughan",
#>       "html_url": "https://github.com/DavisVaughan",
#>       "followers_url": "https://api.github.com/users/DavisVaughan/followers",
#>       "following_url": "https://api.github.com/users/DavisVaughan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/DavisVaughan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/DavisVaughan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/DavisVaughan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/DavisVaughan/orgs",
#>       "repos_url": "https://api.github.com/users/DavisVaughan/repos",
#>       "events_url": "https://api.github.com/users/DavisVaughan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/DavisVaughan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-03-01T12:27:18Z",
#>     "updated_at": "2025-03-01T12:27:18Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": {},
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7667/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7665",
#>     "id": 2880898418,
#>     "node_id": "I_kwDOAGIUpc6rtwVy",
#>     "number": 7665,
#>     "title": "Keep the column attribute label in `bind_rows`",
#>     "user": {
#>       "login": "ynsec37",
#>       "id": 98389771,
#>       "node_id": "U_kgDOBd1PCw",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/98389771?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ynsec37",
#>       "html_url": "https://github.com/ynsec37",
#>       "followers_url": "https://api.github.com/users/ynsec37/followers",
#>       "following_url": "https://api.github.com/users/ynsec37/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ynsec37/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ynsec37/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ynsec37/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ynsec37/orgs",
#>       "repos_url": "https://api.github.com/users/ynsec37/repos",
#>       "events_url": "https://api.github.com/users/ynsec37/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ynsec37/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-26T09:35:44Z",
#>     "updated_at": "2025-02-26T09:35:44Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "The `bind_rows`  output miss the label of column as shown in the below\n``` r\nlibrary(dplyr, warn.conflicts = FALSE)\n\npackageVersion(\"dplyr\")\n#> [1] '1.1.4'\n\ndf1 <- tibble(x = 1:2, y = letters[1:2])\ndf2 <- tibble(x = 4:5, z = 1:2)\n\nattr(df1$x, \"label\") <- \"df1 lable x\"\nattr(df2$x, \"label\") <- \"df2 lable x\"\n\n\noutput1 <- bind_rows(list(df1, df2))\nattributes(output1$x)\n#> NULL\n\noutput2 <- data.table::rbindlist(list(df1, df2), use.names = TRUE, fill = TRUE) |>\n  as.data.frame()\nattributes(output2$x)\n#> $label\n#> [1] \"df1 lable x\"\n\noutput3 <- data.table::rbindlist(list(df2, df1), use.names = TRUE, fill = TRUE) |>\n  as.data.frame()\nattributes(output3$x)\n#> $label\n#> [1] \"df2 lable x\"\n```\n\n<sup>Created on 2025-02-26 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7665/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7663",
#>     "id": 2867479942,
#>     "node_id": "I_kwDOAGIUpc6q6kWG",
#>     "number": 7663,
#>     "title": "mutate() doesn't seem to signal warning conditions properly",
#>     "user": {
#>       "login": "jmbarbone",
#>       "id": 38573843,
#>       "node_id": "MDQ6VXNlcjM4NTczODQz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/38573843?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/jmbarbone",
#>       "html_url": "https://github.com/jmbarbone",
#>       "followers_url": "https://api.github.com/users/jmbarbone/followers",
#>       "following_url": "https://api.github.com/users/jmbarbone/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/jmbarbone/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/jmbarbone/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/jmbarbone/subscriptions",
#>       "organizations_url": "https://api.github.com/users/jmbarbone/orgs",
#>       "repos_url": "https://api.github.com/users/jmbarbone/repos",
#>       "events_url": "https://api.github.com/users/jmbarbone/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/jmbarbone/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 2,
#>     "created_at": "2025-02-20T23:10:21Z",
#>     "updated_at": "2025-02-21T15:27:49Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`mutate()` doesn't seem to signal named warning conditions for calling handlers to pick up.\n\nExample: function emits a custom condition, and that specific class can't be suppressed.\n\n``` r\nlibrary(dplyr, warn.conflicts = FALSE)\n\nfoo_warn <- function(x) {\n  warning(my_warning)\n  x\n}\n\nmy_warning <- structure(\n  list(message = \"MY_WARNING\", call = NULL),\n  class = c(\"my_warning\", \"warning\", \"condition\")\n)\n\ndf <- data.frame(x = 1, y = 2)\n\nsuppressWarnings(\n  mutate(df, x = foo_warn(x)),\n  \"my_warning\"\n)\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `x = foo_warn(x)`.\n#> Caused by warning:\n#> ! MY_WARNING\n#>   x y\n#> 1 1 2\n\n# my_warningis never signaled, handlers can't pick it up\nwithCallingHandlers(\n  mutate(df, x = foo_warn(x)),\n  my_warning = function(c) {\n    stop(\"condition signaled\")\n  }\n)\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `x = foo_warn(x)`.\n#> Caused by warning:\n#> ! MY_WARNING\n#>   x y\n#> 1 1 2\n\n# but removing the `warning` class is at least a work-around\n# \nfoo_cond <- function(x) {\n  warning(my_condition)\n  x\n}\n\nmy_condition <- structure(\n  list(message = \"MY_CONDITION\", call = NULL),\n  class = c(\"my_condition\", \"condition\")\n)\n\nwithCallingHandlers(\n  mutate(df, x = foo_cond(x)),\n  my_condition = function(c) {\n    stop(\"condition signaled\")\n  }\n)\n#> Error in (function (c) : condition signaled\n```\n\n<sup>Created on 2025-02-20 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7663/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7657",
#>     "id": 2848600494,
#>     "node_id": "I_kwDOAGIUpc6pyjGu",
#>     "number": 7657,
#>     "title": "reframe with across returns an unhelpful error message",
#>     "user": {
#>       "login": "const-ae",
#>       "id": 5359014,
#>       "node_id": "MDQ6VXNlcjUzNTkwMTQ=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/5359014?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/const-ae",
#>       "html_url": "https://github.com/const-ae",
#>       "followers_url": "https://api.github.com/users/const-ae/followers",
#>       "following_url": "https://api.github.com/users/const-ae/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/const-ae/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/const-ae/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/const-ae/subscriptions",
#>       "organizations_url": "https://api.github.com/users/const-ae/orgs",
#>       "repos_url": "https://api.github.com/users/const-ae/repos",
#>       "events_url": "https://api.github.com/users/const-ae/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/const-ae/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [
#>       {
#>         "id": 17708198,
#>         "node_id": "MDU6TGFiZWwxNzcwODE5OA==",
#>         "url": "https://api.github.com/repos/tidyverse/dplyr/labels/bug",
#>         "name": "bug",
#>         "color": "E0B3A2",
#>         "default": true,
#>         "description": "an unexpected problem or unintended behavior"
#>       }
#>     ],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-12T15:28:36Z",
#>     "updated_at": "2025-02-12T17:20:55Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "When I call `reframe` with `across` and the length of the output is not consistent, the error message is a lot less helpful if the output of `across` is not named:\n\n``` r\nlibrary(tidyverse)\ntibble(x = 1:3, y = 4:6) |>\n  reframe(test = across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `reframe()`:\n#> ℹ In argument: `test = across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't recycle `..1` (size 3) to match `..2` (size 12).\n\ntibble(x = 1:3, y = 4:6) |>\n  reframe(across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in names(dots)[[i]]: subscript out of bounds\n```\n\n<sup>Created on 2025-02-12 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nThe situation is slightly better with `mutate`:\n\n``` r\nlibrary(tidyverse)\ntibble(x = 1:3, y = 4:6) |>\n  mutate(test = across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `mutate()`:\n#> ℹ In argument: `test = across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't recycle `..1` (size 3) to match `..2` (size 12).\n\ntibble(x = 1:3, y = 4:6) |>\n  mutate(across(everything(), \\(x){\n    rep(letters[x], each = x)\n  }))\n#> Error in `mutate()`:\n#> ℹ In argument: `across(...)`.\n#> Caused by error in `across()`:\n#> ! Can't compute column `y`.\n#> Caused by error in `dplyr_internal_error()`:\n```\n\n<sup>Created on 2025-02-12 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\n<details style=\"margin-bottom:10px;\">\n<summary>\nSession info\n<\/summary>\n\n``` r\nsessioninfo::session_info()\n#> ─ Session info ───────────────────────────────────────────────────────────────\n#>  setting  value\n#>  version  R version 4.4.1 (2024-06-14)\n#>  os       macOS Sonoma 14.6\n#>  system   aarch64, darwin20\n#>  ui       X11\n#>  language (EN)\n#>  collate  en_US.UTF-8\n#>  ctype    en_US.UTF-8\n#>  tz       Europe/London\n#>  date     2025-02-12\n#>  pandoc   3.2 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)\n#> \n#> ─ Packages ───────────────────────────────────────────────────────────────────\n#>  ! package     * version date (UTC) lib source\n#>  P cli           3.6.3   2024-06-21 [?] CRAN (R 4.4.0)\n#>  P colorspace    2.1-1   2024-07-26 [?] CRAN (R 4.4.0)\n#>  P digest        0.6.37  2024-08-19 [?] CRAN (R 4.4.1)\n#>  P dplyr       * 1.1.4   2023-11-17 [?] CRAN (R 4.4.0)\n#>  P evaluate      1.0.3   2025-01-10 [?] CRAN (R 4.4.1)\n#>  P fansi         1.0.6   2023-12-08 [?] CRAN (R 4.4.0)\n#>  P fastmap       1.2.0   2024-05-15 [?] CRAN (R 4.4.0)\n#>  P forcats     * 1.0.0   2023-01-29 [?] CRAN (R 4.4.0)\n#>  P fs            1.6.5   2024-10-30 [?] CRAN (R 4.4.1)\n#>  P generics      0.1.3   2022-07-05 [?] CRAN (R 4.4.0)\n#>  P ggplot2     * 3.5.1   2024-04-23 [?] CRAN (R 4.4.0)\n#>  P glue          1.8.0   2024-09-30 [?] CRAN (R 4.4.1)\n#>  P gtable        0.3.6   2024-10-25 [?] CRAN (R 4.4.1)\n#>  P hms           1.1.3   2023-03-21 [?] CRAN (R 4.4.0)\n#>  P htmltools     0.5.8.1 2024-04-04 [?] CRAN (R 4.4.0)\n#>  P knitr         1.49    2024-11-08 [?] CRAN (R 4.4.1)\n#>  P lifecycle     1.0.4   2023-11-07 [?] CRAN (R 4.4.0)\n#>  P lubridate   * 1.9.3   2023-09-27 [?] CRAN (R 4.4.0)\n#>  P magrittr      2.0.3   2022-03-30 [?] CRAN (R 4.4.0)\n#>  P munsell       0.5.1   2024-04-01 [?] CRAN (R 4.4.0)\n#>  P pillar        1.9.0   2023-03-22 [?] CRAN (R 4.4.0)\n#>  P pkgconfig     2.0.3   2019-09-22 [?] CRAN (R 4.4.0)\n#>  P purrr       * 1.0.2   2023-08-10 [?] CRAN (R 4.4.0)\n#>  P R6            2.5.1   2021-08-19 [?] CRAN (R 4.4.0)\n#>  P readr       * 2.1.5   2024-01-10 [?] CRAN (R 4.4.0)\n#>  P reprex        2.1.1   2024-07-06 [?] CRAN (R 4.4.0)\n#>  P rlang         1.1.4   2024-06-04 [?] CRAN (R 4.4.0)\n#>  P rmarkdown     2.29    2024-11-04 [?] CRAN (R 4.4.1)\n#>  P rstudioapi    0.17.1  2024-10-22 [?] CRAN (R 4.4.1)\n#>  P scales        1.3.0   2023-11-28 [?] CRAN (R 4.4.0)\n#>  P sessioninfo   1.2.2   2021-12-06 [?] CRAN (R 4.4.0)\n#>  P stringi       1.8.4   2024-05-06 [?] CRAN (R 4.4.0)\n#>  P stringr     * 1.5.1   2023-11-14 [?] CRAN (R 4.4.0)\n#>  P tibble      * 3.2.1   2023-03-20 [?] CRAN (R 4.4.0)\n#>  P tidyr       * 1.3.1   2024-01-24 [?] CRAN (R 4.4.0)\n#>  P tidyselect    1.2.1   2024-03-11 [?] CRAN (R 4.4.0)\n#>  P tidyverse   * 2.0.0   2023-02-22 [?] CRAN (R 4.4.0)\n#>  P timechange    0.3.0   2024-01-18 [?] CRAN (R 4.4.0)\n#>  P tzdb          0.4.0   2023-05-12 [?] CRAN (R 4.4.0)\n#>  P utf8          1.2.4   2023-10-22 [?] CRAN (R 4.4.0)\n#>  P vctrs         0.6.5   2023-12-01 [?] CRAN (R 4.4.0)\n#>  P withr         3.0.2   2024-10-28 [?] CRAN (R 4.4.1)\n#>  P xfun          0.50    2025-01-07 [?] CRAN (R 4.4.1)\n#>  P yaml          2.3.10  2024-07-26 [?] CRAN (R 4.4.0)\n#> \n#>  [1] /Users/ahlmanne/Documents/Work_Projects/precancer-atlas-code/renv/library/macos/R-4.4/aarch64-apple-darwin20\n#>  [2] /Users/ahlmanne/Library/Caches/org.R-project.R/R/renv/sandbox/macos/R-4.4/aarch64-apple-darwin20/f7156815\n#>  [3] /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library\n#> \n#>  P ── Loaded and on-disk path mismatch.\n#> \n#> ──────────────────────────────────────────────────────────────────────────────\n```\n\n<\/details>",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7657/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7656",
#>     "id": 2838790312,
#>     "node_id": "I_kwDOAGIUpc6pNICo",
#>     "number": 7656,
#>     "title": "Align the default case-sensitivity of `matches` with the regex default",
#>     "user": {
#>       "login": "ReedMerrill",
#>       "id": 62410415,
#>       "node_id": "MDQ6VXNlcjYyNDEwNDE1",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/62410415?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ReedMerrill",
#>       "html_url": "https://github.com/ReedMerrill",
#>       "followers_url": "https://api.github.com/users/ReedMerrill/followers",
#>       "following_url": "https://api.github.com/users/ReedMerrill/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ReedMerrill/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ReedMerrill/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ReedMerrill/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ReedMerrill/orgs",
#>       "repos_url": "https://api.github.com/users/ReedMerrill/repos",
#>       "events_url": "https://api.github.com/users/ReedMerrill/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ReedMerrill/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-02-07T18:12:09Z",
#>     "updated_at": "2025-02-07T18:16:38Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`matches` accepts a regex for pattern matching within `tidyselect` functions and, in my opinion, would therefore be more user-friendly if it had the same default case-sensitivity behaviour as regex. Right now, matches is not case sensitive. \n\nThis issue proposes switching the default value of the `ignore.case` parameter from `TRUE` to `FALSE`. I'm happy to submit a pull request, but will wait to see how much traction this issue gets.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7656/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7655",
#>     "id": 2838363441,
#>     "node_id": "I_kwDOAGIUpc6pLf0x",
#>     "number": 7655,
#>     "title": "`slice()` shuffles datetime attributes",
#>     "user": {
#>       "login": "yjunechoe",
#>       "id": 52832839,
#>       "node_id": "MDQ6VXNlcjUyODMyODM5",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/52832839?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/yjunechoe",
#>       "html_url": "https://github.com/yjunechoe",
#>       "followers_url": "https://api.github.com/users/yjunechoe/followers",
#>       "following_url": "https://api.github.com/users/yjunechoe/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/yjunechoe/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/yjunechoe/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/yjunechoe/subscriptions",
#>       "organizations_url": "https://api.github.com/users/yjunechoe/orgs",
#>       "repos_url": "https://api.github.com/users/yjunechoe/repos",
#>       "events_url": "https://api.github.com/users/yjunechoe/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/yjunechoe/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-07T14:53:15Z",
#>     "updated_at": "2025-02-07T17:22:57Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I'm not entirely sure what's going on here but `slice()` appears to shuffle the order of `class` and `tzone` attributes of datetime columns:\n\n\n```r\nlibrary(dplyr)\ndf <- data.frame(datetime = lubridate::now(tzone = \"UTC\"))\n\nattributes(df$datetime)\n#> $class\n#> [1] \"POSIXct\" \"POSIXt\" \n#> \n#> $tzone\n#> [1] \"UTC\"\n\nattributes(slice(df, n())$datetime)\n#> $tzone\n#> [1] \"UTC\"\n#> \n#> $class\n#> [1] \"POSIXct\" \"POSIXt\"\n```\n\nThis seems specific to dplyr functions that touch rows: so `select()` and `mutate()` doesn't do this but `filter()` and `arrange()` does.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7655/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7653",
#>     "id": 2836882119,
#>     "node_id": "I_kwDOAGIUpc6pF2LH",
#>     "number": 7653,
#>     "title": "case_when() Lacks Safe Handling for Unexpected Values",
#>     "user": {
#>       "login": "ja-ortiz-uniandes",
#>       "id": 91100223,
#>       "node_id": "MDQ6VXNlcjkxMTAwMjIz",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/91100223?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ja-ortiz-uniandes",
#>       "html_url": "https://github.com/ja-ortiz-uniandes",
#>       "followers_url": "https://api.github.com/users/ja-ortiz-uniandes/followers",
#>       "following_url": "https://api.github.com/users/ja-ortiz-uniandes/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ja-ortiz-uniandes/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ja-ortiz-uniandes/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ja-ortiz-uniandes/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ja-ortiz-uniandes/orgs",
#>       "repos_url": "https://api.github.com/users/ja-ortiz-uniandes/repos",
#>       "events_url": "https://api.github.com/users/ja-ortiz-uniandes/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ja-ortiz-uniandes/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 12,
#>     "created_at": "2025-02-07T00:00:29Z",
#>     "updated_at": "2025-05-09T09:03:11Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently, `case_when()` does not provide a built-in way to validate categorical inputs and throw an error when an unexpected value is encountered. The function requires all return values to have the same type, making it impossible to safely use in cases where an unexpected value is encountered. The function is also incompatible in most cases with `stop()`.\n\nThis makes `case_when()` unsafe in cases where developers need both:\n1. A normal transformation for known values\n2. A hard error for unknown values\n\n## Reproducible Example:\n```\nlibrary(dplyr)\n\n\nreplace_func <- function(x) {\n  \n  case_when(\n    x == \"A\" ~ 1,\n    x == \"B\" ~ 2,\n    x == \"C\" ~ 3,\n    \n    # If there is a different value I want the function to throw an error\n    # and stop the execution\n    .default = stop(paste0(\"Invalid value\", x))\n  )\n  \ndata <- tibble(x = c(\"A\", \"B\", \"A\", \"C\"))\n\n# This will throw an error - even though all values are specified in the function\ndata %>% mutate(new_x = replace_func(x))\n# Expected behavior would be to return something like:\n\n# A tibble: 4 x 2\n#   x     new_x\n#   <chr> <dbl>\n# 1 A         1\n# 2 B         2\n# 3 A         1\n# 4 C         3\n\n\n# But for it to fail if there is a value not specified in the function\ndata1 <- tibble(x = c(\"A\", \"B\", \"A\", \"C\", \"D\"))\n\n\n# This should throw an error because the default value is stop() and the value\n# \"D\" is not specified in the function\ndata1 %>% mutate(new_x = replace_func(x))\n```\n\nCurrently, the only alternatives for handling unknown values in `case_when()` are:\n\n1. A manual check after executing `case_when()`, which is an imperfect solution with unnecessary complexity or\n2. Leaving `.default = NA`, which can lead to silent failures—an unknown value that should have been handled explicitly might be mistakenly transformed into `NA` instead of triggering an error.\n\nNeither of these solutions is ideal.\n\n## Proposed Solution\n\nI believe the default behavior should be something along the lines of `.default = stop(paste0(\"Unknown value: \", x))`. This would force users to explicitly handle unknown values within their program, ensuring safer data transformations. If users want to allow unknown values to default to `NA`, they should be required to specify it explicitly by using `.default = NA` or `TRUE ~ NA`. This approach would provide better safety by default, preventing unintended `NA` values from propagating due to missing mappings in `case_when()`.\n\nWould love to hear your thoughts on this!",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7653/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7651",
#>     "id": 2829663322,
#>     "node_id": "I_kwDOAGIUpc6oqTxa",
#>     "number": 7651,
#>     "title": "Allow multiple arguments to `na_if`",
#>     "user": {
#>       "login": "nalimilan",
#>       "id": 1120448,
#>       "node_id": "MDQ6VXNlcjExMjA0NDg=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1120448?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/nalimilan",
#>       "html_url": "https://github.com/nalimilan",
#>       "followers_url": "https://api.github.com/users/nalimilan/followers",
#>       "following_url": "https://api.github.com/users/nalimilan/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/nalimilan/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/nalimilan/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/nalimilan/subscriptions",
#>       "organizations_url": "https://api.github.com/users/nalimilan/orgs",
#>       "repos_url": "https://api.github.com/users/nalimilan/repos",
#>       "events_url": "https://api.github.com/users/nalimilan/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/nalimilan/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-04T09:57:49Z",
#>     "updated_at": "2025-02-04T09:57:49Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "It's quite frequent to have to recode several distinct values to NA. So far the shortest solution I could find to do that is e.g. `na_if(na_if(vec, 88), 99)`. `if_else(vec %in% c(88, 99), NA_real_, vec)` or `case_match(vec, c(88, 99) ~ NA, .default=vec)` are also possible but relatively verbose. Could it be allowed to pass multiple arguments to `na_if ` so that one could write `na_if(vec, 88, 99)` instead?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7651/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7650",
#>     "id": 2825224316,
#>     "node_id": "I_kwDOAGIUpc6oZYB8",
#>     "number": 7650,
#>     "title": "set_names vs rename_with",
#>     "user": {
#>       "login": "ggrothendieck",
#>       "id": 7840510,
#>       "node_id": "MDQ6VXNlcjc4NDA1MTA=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/7840510?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/ggrothendieck",
#>       "html_url": "https://github.com/ggrothendieck",
#>       "followers_url": "https://api.github.com/users/ggrothendieck/followers",
#>       "following_url": "https://api.github.com/users/ggrothendieck/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/ggrothendieck/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/ggrothendieck/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/ggrothendieck/subscriptions",
#>       "organizations_url": "https://api.github.com/users/ggrothendieck/orgs",
#>       "repos_url": "https://api.github.com/users/ggrothendieck/repos",
#>       "events_url": "https://api.github.com/users/ggrothendieck/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/ggrothendieck/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2025-02-01T13:53:04Z",
#>     "updated_at": "2025-02-01T13:53:04Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Is there a difference between `rlang::set_names` and `dplyr::rename_with`?  Are both needed?\n\n```\nlibrary(purrr)\niris %>%\n  set_names( . %>% sub(\"Petal\", \"x\", .) %>% sub(\"Sepal\", \"y\", .)) %>%\n  names\n## [1] \"y.Length\" \"y.Width\"  \"x.Length\" \"x.Width\"  \"Species\" \n\n# same code except set_names replaced with rename_with\nlibrary(dplyr)\niris %>%\n  rename_with( . %>% sub(\"Petal\", \"x\", .) %>% sub(\"Sepal\", \"y\", .)) %>%\n  names\n## [1] \"y.Length\" \"y.Width\"  \"x.Length\" \"x.Width\"  \"Species\" \n```",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7650/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7649",
#>     "id": 2824576071,
#>     "node_id": "I_kwDOAGIUpc6oW5xH",
#>     "number": 7649,
#>     "title": "Possible memory leak involving warnings",
#>     "user": {
#>       "login": "dkutner",
#>       "id": 66534044,
#>       "node_id": "MDQ6VXNlcjY2NTM0MDQ0",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/66534044?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/dkutner",
#>       "html_url": "https://github.com/dkutner",
#>       "followers_url": "https://api.github.com/users/dkutner/followers",
#>       "following_url": "https://api.github.com/users/dkutner/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/dkutner/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/dkutner/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/dkutner/subscriptions",
#>       "organizations_url": "https://api.github.com/users/dkutner/orgs",
#>       "repos_url": "https://api.github.com/users/dkutner/repos",
#>       "events_url": "https://api.github.com/users/dkutner/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/dkutner/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 3,
#>     "created_at": "2025-01-31T23:37:24Z",
#>     "updated_at": "2025-05-13T02:25:34Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I recently updated my `dplyr` version (late to the party), and I'm hitting some increased memory usage. I've traced it back to how warnings are handled. Beginning in `dplyr 1.1.1`, I get the following output:\n``` r\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\nidentity <- function(x, warn) {\n    if (warn) {\n        warning(\"fake warning\")\n    }\n    x\n}\n\ndf <- tibble::tibble(e = rep(1, 1e8))\n\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    620941  33.2    1306337   69.8   1306337  69.8\n#> Vcells 101049658 771.0  148096356 1129.9 101084366 771.3\n\ndf <- df %>% mutate(e = identity(e, warn = TRUE))\n#> Warning: There was 1 warning in `mutate()`.\n#> ℹ In argument: `e = identity(e, warn = TRUE)`.\n#> Caused by warning in `identity()`:\n#> ! fake warning\n\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    729780  39.0    1306337   69.8   1306337  69.8\n#> Vcells 101287706 772.8  148096356 1129.9 102369359 781.1\n\nrm(df)\nprint(gc())\n#>             used  (Mb) gc trigger   (Mb)  max used  (Mb)\n#> Ncells    729742  39.0    1306337   69.8   1306337  69.8\n#> Vcells 101287654 772.8  148096356 1129.9 102369359 781.1\n```\n\n<sup>Created on 2025-01-31 with [reprex v2.0.2](https://reprex.tidyverse.org)<\/sup>\n\nIf I restart R and rerun with `warn = FALSE`, the final memory usage is only 7.9 MB rather than 772.8 MB. Additionally, if I rewrite the mutate to avoid using a pipe via `df <- mutate(df, e = identity(e, warn = TRUE))`, the final memory usage is only 8.8 MB. Switching the pipe to `|>` also yields low memory usage. Under `dplyr 1.1.0`, the above reprex yields 18.8 MB.\n\nI don't have a full appreciation for whether warnings would capture my environment, but I'm wondering if that's perhaps happening within either base R or dplyr's own record of warnings.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7649/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7630",
#>     "id": 2817394650,
#>     "node_id": "I_kwDOAGIUpc6n7gfa",
#>     "number": 7630,
#>     "title": "`filter()` removes labels from `glue` variables",
#>     "user": {
#>       "login": "d-morrison",
#>       "id": 2474437,
#>       "node_id": "MDQ6VXNlcjI0NzQ0Mzc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2474437?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/d-morrison",
#>       "html_url": "https://github.com/d-morrison",
#>       "followers_url": "https://api.github.com/users/d-morrison/followers",
#>       "following_url": "https://api.github.com/users/d-morrison/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/d-morrison/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/d-morrison/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/d-morrison/subscriptions",
#>       "organizations_url": "https://api.github.com/users/d-morrison/orgs",
#>       "repos_url": "https://api.github.com/users/d-morrison/repos",
#>       "events_url": "https://api.github.com/users/d-morrison/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/d-morrison/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-01-29T06:54:40Z",
#>     "updated_at": "2025-01-29T07:07:13Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Here's a reprex:\n\n``` r\nlibrary(labelled)\nlibrary(glue)\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\ntest = tibble(\n  a = 1 |> set_label_attribute(\"a1\"),\n  b = glue::glue(\"two\") |> set_label_attribute(\"b2\")\n)\ntest$b |> get_label_attribute()\n#> [1] \"b2\"\n\n# filter() strips the variable label from column `b`\ndplyr::filter(test)$b |> get_label_attribute()\n#> NULL\n\n# filter() doesn't strip the label from column `a`\ndplyr::filter(test)$a |> get_label_attribute()\n#> [1] \"a1\"\n```\n\n<sup>Created on 2025-01-28 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nI expected column `b` to keep its label attribute. Not sure if this is ultimately an issue with `dplyr`, `glue`, or `labelled`, but seems like it's in `dplyr`?",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7630/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7622",
#>     "id": 2769857410,
#>     "node_id": "I_kwDOAGIUpc6lGKuC",
#>     "number": 7622,
#>     "title": "`Mutating joins` relationship documentation issues",
#>     "user": {
#>       "login": "bounlu",
#>       "id": 17899927,
#>       "node_id": "MDQ6VXNlcjE3ODk5OTI3",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/17899927?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/bounlu",
#>       "html_url": "https://github.com/bounlu",
#>       "followers_url": "https://api.github.com/users/bounlu/followers",
#>       "following_url": "https://api.github.com/users/bounlu/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/bounlu/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/bounlu/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/bounlu/subscriptions",
#>       "organizations_url": "https://api.github.com/users/bounlu/orgs",
#>       "repos_url": "https://api.github.com/users/bounlu/repos",
#>       "events_url": "https://api.github.com/users/bounlu/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/bounlu/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2025-01-06T05:32:44Z",
#>     "updated_at": "2025-01-06T13:46:11Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "`Mutate-joins (dplyr)` documentation says:\n\n```\nrelationship\n\nHandling of the expected relationship between the keys of x and y. If the expectations chosen from the list below are invalidated, an error is thrown.\n\nNULL, the default, doesn't expect there to be any relationship between x and y. However, for equality joins it will check for a many-to-many relationship (which is typically unexpected) and will warn if one occurs, encouraging you to either take a closer look at your inputs or make this relationship explicit by specifying \"many-to-many\".\n\nSee the Many-to-many relationships section for more details.\n\n\"one-to-one\" expects:\nEach row in x matches at most 1 row in y.\nEach row in y matches at most 1 row in x.\n\n\"one-to-many\" expects:\nEach row in y matches at most 1 row in x.\n\n\"many-to-one\" expects:\nEach row in x matches at most 1 row in y.\n\n\"many-to-many\" doesn't perform any relationship checks, but is provided to allow you to be explicit about this relationship if you know it exists.\n\nrelationship doesn't handle cases where there are zero matches. For that, see unmatched.\n```\n\nI see there are 2 issues:\n\n1. `one-to-many` and `many-to-one` description looks awkward and reversed to me. Logically, it should specify from left to right, x -> y. So `one-to-many` should mean \"Rows in x may match multiple rows in y\". Similarly, `many-to-one` should mean \"Multiple rows in x may match same row in y\".\n\n2. Specifying `relationship` explicitly as `one-to-many` or `many-to-one` do not generate any warning or error if there is no such matching in the data, i.e. if only `one-to-one` exists. I would expect an error would be thrown if the specified relationship does not exist in the matching as the documentation says, otherwise I don't get the point of specifying the relationship explicitly.\n\nI have read [this](https://github.com/tidyverse/dplyr/pull/6753) but I believe the above issues still remain to be resolved.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7622/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7621",
#>     "id": 2769423039,
#>     "node_id": "I_kwDOAGIUpc6lEgq_",
#>     "number": 7621,
#>     "title": "More examples in `across()` documentation",
#>     "user": {
#>       "login": "AmeliaMN",
#>       "id": 2576787,
#>       "node_id": "MDQ6VXNlcjI1NzY3ODc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2576787?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/AmeliaMN",
#>       "html_url": "https://github.com/AmeliaMN",
#>       "followers_url": "https://api.github.com/users/AmeliaMN/followers",
#>       "following_url": "https://api.github.com/users/AmeliaMN/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/AmeliaMN/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/AmeliaMN/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/AmeliaMN/subscriptions",
#>       "organizations_url": "https://api.github.com/users/AmeliaMN/orgs",
#>       "repos_url": "https://api.github.com/users/AmeliaMN/repos",
#>       "events_url": "https://api.github.com/users/AmeliaMN/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/AmeliaMN/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 2,
#>     "created_at": "2025-01-05T19:48:28Z",
#>     "updated_at": "2025-01-17T16:00:34Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "When I use `across()` I almost always want to do the thing to every single column. For whatever reason, that tidyselect action is hard for me to remember/find. Is it `all()`? Is it `everything()`? Etc. It would be great to have an example in the `across()` documentation that does the thing to every column. Additionally, it would be awesome to have an example that does the thing conditionally depending on the variable type. For example, rounding all the numeric variables. ",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7621/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7113",
#>     "id": 2752730662,
#>     "node_id": "PR_kwDOAGIUpc6F6eFe",
#>     "number": 7113,
#>     "title": "Add logic to catch single named logical expressions",
#>     "user": {
#>       "login": "brendensm",
#>       "id": 97240544,
#>       "node_id": "U_kgDOBcvF4A",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/97240544?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/brendensm",
#>       "html_url": "https://github.com/brendensm",
#>       "followers_url": "https://api.github.com/users/brendensm/followers",
#>       "following_url": "https://api.github.com/users/brendensm/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/brendensm/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/brendensm/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/brendensm/subscriptions",
#>       "organizations_url": "https://api.github.com/users/brendensm/orgs",
#>       "repos_url": "https://api.github.com/users/brendensm/repos",
#>       "events_url": "https://api.github.com/users/brendensm/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/brendensm/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-20T13:19:14Z",
#>     "updated_at": "2024-12-20T13:19:14Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7113",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7113",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7113.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7113.patch",
#>       "merged_at": {}
#>     },
#>     "body": "This PR would close #7105. This is a potential solution that adds logic to `check_filter`. This solution stops single, named logical expressions. \r\n\r\n```r\r\nmtcars$big_cyl <- mtcars$cyl > 4\r\n\r\nfilter(mtcars, big_cyl = TRUE) |>\r\n  nrow()\r\n#> Error in `filter()`:\r\n#> ! We detected a named input.\r\n#> ℹ This usually means that you've used `=` instead of `==`.\r\n#> ℹ Did you mean `big_cyl == TRUE`?\r\n#> \r\nfilter(mtcars, big_cyl == TRUE) |>\r\n  nrow()\r\n#> [1] 21\r\n#>\r\n```\r\n\r\nBut still allows for named logical vectors:\r\n\r\n```r\r\nfilters <- mtcars %>%\r\n  transmute(\r\n    cyl %in% 6:8,\r\n    hp / drat > 50\r\n  )\r\n\r\nexpect_identical(\r\n  mtcars %>% filter(!!!unname(filters)),\r\n  mtcars %>% filter(!!!filters)\r\n)\r\n```\r\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7113/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7112",
#>     "id": 2748696028,
#>     "node_id": "I_kwDOAGIUpc6j1cXc",
#>     "number": 7112,
#>     "title": "`count(.by = )`",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-18T20:29:48Z",
#>     "updated_at": "2024-12-18T20:29:48Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I accidentally used the syntax below, and wonder if this should be the default recommended one, or at least a supported alternative.\n\n``` r\noptions(conflicts.policy = list(warn = FALSE))\nlibrary(dplyr)\n\ntibble(a = 1:3) |>\n  count(.by = a)\n#> # A tibble: 3 × 2\n#>     .by     n\n#>   <int> <int>\n#> 1     1     1\n#> 2     2     1\n#> 3     3     1\n```\n\n<sup>Created on 2024-12-18 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n\nIt took me a while to understand why there's a `.by` column in the output.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/reactions",
#>       "total_count": 2,
#>       "+1": 2,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7112/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7111",
#>     "id": 2733589121,
#>     "node_id": "PR_kwDOAGIUpc6E5JBO",
#>     "number": 7111,
#>     "title": "Update storms dataset",
#>     "user": {
#>       "login": "tomalrussell",
#>       "id": 2762769,
#>       "node_id": "MDQ6VXNlcjI3NjI3Njk=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2762769?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/tomalrussell",
#>       "html_url": "https://github.com/tomalrussell",
#>       "followers_url": "https://api.github.com/users/tomalrussell/followers",
#>       "following_url": "https://api.github.com/users/tomalrussell/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/tomalrussell/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/tomalrussell/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/tomalrussell/subscriptions",
#>       "organizations_url": "https://api.github.com/users/tomalrussell/orgs",
#>       "repos_url": "https://api.github.com/users/tomalrussell/repos",
#>       "events_url": "https://api.github.com/users/tomalrussell/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/tomalrussell/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-11T17:39:24Z",
#>     "updated_at": "2024-12-11T17:39:24Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7111",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7111",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7111.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7111.patch",
#>       "merged_at": {}
#>     },
#>     "body": "Aiming to close #7110 - hopefully this is appropriately focussed, just updating the URL and running the update script.\r\n\r\nOne potential extension would be to include Radius of Maximum Wind, which can be interesting for parametric wind field modelling. According to the [documentation](https://www.nhc.noaa.gov/data/hurdat/hurdat2-format-atl-1851-2021.pdf) these values have been recently added, since the 2022 release, with data from the 2021 season onwards.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7111/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7110",
#>     "id": 2733565156,
#>     "node_id": "I_kwDOAGIUpc6i7uTk",
#>     "number": 7110,
#>     "title": "Update storms dataset",
#>     "user": {
#>       "login": "tomalrussell",
#>       "id": 2762769,
#>       "node_id": "MDQ6VXNlcjI3NjI3Njk=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/2762769?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/tomalrussell",
#>       "html_url": "https://github.com/tomalrussell",
#>       "followers_url": "https://api.github.com/users/tomalrussell/followers",
#>       "following_url": "https://api.github.com/users/tomalrussell/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/tomalrussell/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/tomalrussell/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/tomalrussell/subscriptions",
#>       "organizations_url": "https://api.github.com/users/tomalrussell/orgs",
#>       "repos_url": "https://api.github.com/users/tomalrussell/repos",
#>       "events_url": "https://api.github.com/users/tomalrussell/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/tomalrussell/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-11T17:28:32Z",
#>     "updated_at": "2024-12-11T17:28:32Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "As in #6000, #6320 - the [hurdat](https://www.nhc.noaa.gov/data/#hurdat) storms dataset continues to receive annual updates.\n\nI'll open a small PR in case it's still of interest to keep up with this.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7110/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7109",
#>     "id": 2725959859,
#>     "node_id": "I_kwDOAGIUpc6ietiz",
#>     "number": 7109,
#>     "title": "Suggestion: `slice_ends()`",
#>     "user": {
#>       "login": "DesiQuintans",
#>       "id": 3200601,
#>       "node_id": "MDQ6VXNlcjMyMDA2MDE=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/3200601?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/DesiQuintans",
#>       "html_url": "https://github.com/DesiQuintans",
#>       "followers_url": "https://api.github.com/users/DesiQuintans/followers",
#>       "following_url": "https://api.github.com/users/DesiQuintans/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/DesiQuintans/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/DesiQuintans/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/DesiQuintans/subscriptions",
#>       "organizations_url": "https://api.github.com/users/DesiQuintans/orgs",
#>       "repos_url": "https://api.github.com/users/DesiQuintans/repos",
#>       "events_url": "https://api.github.com/users/DesiQuintans/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/DesiQuintans/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2024-12-09T04:33:00Z",
#>     "updated_at": "2024-12-25T15:10:28Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "I often want to know what discretising a continuous variable actually looks like in my data, so I often want to know what happens at the edges of level. Maybe this sort of thing is useful to enough other people that it's worth making a dedicated `slice_` function?\n\n``` r\nlibrary(dplyr)\n#> \n#> Attaching package: 'dplyr'\n#> The following objects are masked from 'package:stats':\n#> \n#>     filter, lag\n#> The following objects are masked from 'package:base':\n#> \n#>     intersect, setdiff, setequal, union\n\nset.seed(12345)\n\nx <- \n  data.frame(\n    age = runif(50, min = 0, max = 100)\n  ) %>% \n  mutate(\n    age_group = \n      cut(\n        age,\n        breaks = c(0, 18, 26, 32, 50, 60, 75, 100),\n        include.lowest = TRUE\n      )\n  )\n  \n\nx %>% \n  arrange(age) %>% \n  group_by(age_group) %>% \n  {\n    bind_rows(\n      slice_head(., n = 2),\n      slice_tail(., n = 2)\n    ) %>% \n    arrange(age)\n  }\n#> # A tibble: 24 × 2\n#> # Groups:   age_group [6]\n#>       age age_group\n#>     <dbl> <fct>    \n#>  1  0.114 [0,18]   \n#>  2  0.599 [0,18]   \n#>  3 16.6   [0,18]   \n#>  4 17.9   [0,18]   \n#>  5 18.8   (18,26]  \n#>  6 22.6   (18,26]  \n#>  7 22.6   (18,26]  \n#>  8 26.0   (18,26]  \n#>  9 32.1   (32,50]  \n#> 10 32.5   (32,50]  \n#> # ℹ 14 more rows\n```\n\n<sup>Created on 2024-12-09 with [reprex v2.1.1](https://reprex.tidyverse.org)<\/sup>\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7109/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/pull/7108",
#>     "id": 2722467994,
#>     "node_id": "PR_kwDOAGIUpc6ES4Eg",
#>     "number": 7108,
#>     "title": "docs: typo fix",
#>     "user": {
#>       "login": "maelle",
#>       "id": 8360597,
#>       "node_id": "MDQ6VXNlcjgzNjA1OTc=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/8360597?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/maelle",
#>       "html_url": "https://github.com/maelle",
#>       "followers_url": "https://api.github.com/users/maelle/followers",
#>       "following_url": "https://api.github.com/users/maelle/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/maelle/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/maelle/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/maelle/subscriptions",
#>       "organizations_url": "https://api.github.com/users/maelle/orgs",
#>       "repos_url": "https://api.github.com/users/maelle/repos",
#>       "events_url": "https://api.github.com/users/maelle/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/maelle/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-12-06T09:03:03Z",
#>     "updated_at": "2024-12-06T17:35:27Z",
#>     "closed_at": {},
#>     "author_association": "CONTRIBUTOR",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "draft": false,
#>     "pull_request": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/pulls/7108",
#>       "html_url": "https://github.com/tidyverse/dplyr/pull/7108",
#>       "diff_url": "https://github.com/tidyverse/dplyr/pull/7108.diff",
#>       "patch_url": "https://github.com/tidyverse/dplyr/pull/7108.patch",
#>       "merged_at": {}
#>     },
#>     "body": {},
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7108/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7106",
#>     "id": 2678939827,
#>     "node_id": "I_kwDOAGIUpc6frWCz",
#>     "number": 7106,
#>     "title": "Show methods implemented by loaded packages more prominently",
#>     "user": {
#>       "login": "krlmlr",
#>       "id": 1741643,
#>       "node_id": "MDQ6VXNlcjE3NDE2NDM=",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/1741643?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/krlmlr",
#>       "html_url": "https://github.com/krlmlr",
#>       "followers_url": "https://api.github.com/users/krlmlr/followers",
#>       "following_url": "https://api.github.com/users/krlmlr/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/krlmlr/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/krlmlr/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/krlmlr/subscriptions",
#>       "organizations_url": "https://api.github.com/users/krlmlr/orgs",
#>       "repos_url": "https://api.github.com/users/krlmlr/repos",
#>       "events_url": "https://api.github.com/users/krlmlr/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/krlmlr/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [
#>       {
#>         "id": 674867158,
#>         "node_id": "MDU6TGFiZWw2NzQ4NjcxNTg=",
#>         "url": "https://api.github.com/repos/tidyverse/dplyr/labels/documentation",
#>         "name": "documentation",
#>         "color": "CBBAB8",
#>         "default": true,
#>         "description": ""
#>       }
#>     ],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 1,
#>     "created_at": "2024-11-21T10:38:06Z",
#>     "updated_at": "2024-11-21T19:31:27Z",
#>     "closed_at": {},
#>     "author_association": "MEMBER",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Example: if dbplyr is loaded, `?mutate` would contain a link to `?dbplyr::mutate.tbl_lazy` .\n\nPretty much like DBI, e.g., https://dbi.r-dbi.org/reference/dbConnect.html .\n\nRelevant for https://github.com/tidyverse/duckplyr/issues/214 and of course the existing backends.\n\nCC @maelle.",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7106/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   },
#>   {
#>     "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105",
#>     "repository_url": "https://api.github.com/repos/tidyverse/dplyr",
#>     "labels_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/labels{/name}",
#>     "comments_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/comments",
#>     "events_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/events",
#>     "html_url": "https://github.com/tidyverse/dplyr/issues/7105",
#>     "id": 2677769280,
#>     "node_id": "I_kwDOAGIUpc6fm4RA",
#>     "number": 7105,
#>     "title": "filter should warn or prevent users from using named logical inputs",
#>     "user": {
#>       "login": "conig",
#>       "id": 12742211,
#>       "node_id": "MDQ6VXNlcjEyNzQyMjEx",
#>       "avatar_url": "https://avatars.githubusercontent.com/u/12742211?v=4",
#>       "gravatar_id": "",
#>       "url": "https://api.github.com/users/conig",
#>       "html_url": "https://github.com/conig",
#>       "followers_url": "https://api.github.com/users/conig/followers",
#>       "following_url": "https://api.github.com/users/conig/following{/other_user}",
#>       "gists_url": "https://api.github.com/users/conig/gists{/gist_id}",
#>       "starred_url": "https://api.github.com/users/conig/starred{/owner}{/repo}",
#>       "subscriptions_url": "https://api.github.com/users/conig/subscriptions",
#>       "organizations_url": "https://api.github.com/users/conig/orgs",
#>       "repos_url": "https://api.github.com/users/conig/repos",
#>       "events_url": "https://api.github.com/users/conig/events{/privacy}",
#>       "received_events_url": "https://api.github.com/users/conig/received_events",
#>       "type": "User",
#>       "user_view_type": "public",
#>       "site_admin": false
#>     },
#>     "labels": [],
#>     "state": "open",
#>     "locked": false,
#>     "assignee": {},
#>     "assignees": [],
#>     "milestone": {},
#>     "comments": 0,
#>     "created_at": "2024-11-21T02:56:46Z",
#>     "updated_at": "2024-11-21T02:56:46Z",
#>     "closed_at": {},
#>     "author_association": "NONE",
#>     "type": {},
#>     "active_lock_reason": {},
#>     "sub_issues_summary": {
#>       "total": 0,
#>       "completed": 0,
#>       "percent_completed": 0
#>     },
#>     "body": "Currently dplyr warns users who accidentally use `=` instead of `==`. \nHowever, this does not occur if a logical is passed as the named variable.\n\n## Demonstration\n\n\n\n\n\n``` r\nlibrary(dplyr)\n\nmtcars$big_cyl <- mtcars$cyl > 4\n# Mistaking = for == silently fails, returning the whole dataset\nfilter(mtcars, big_cyl = TRUE) |>\n  nrow()\n#> [1] 32\n```\nCorrectly using `==` for comparison\n```r\n# Correctly using ==.\nfilter(mtcars, big_cyl == TRUE) |>\n  nrow()\n#> [1] 21\n```\n\nI think while doing `x == TRUE` is bad practice, this is bound to trip up some users and an error should be thrown.\n\n## Additional context\n\nExample of the error working correctly:\n``` r\n# version 1.1.4\ndplyr::filter(mtcars, cyl = \"4\")\n#> Error in `dplyr::filter()`:\n#> ! We detected a named input.\n#> ℹ This usually means that you've used `=` instead of `==`.\n#> ℹ Did you mean `cyl == \"4\"`?\n```\n\nInterestingly if the TRUE is in a vector the error *is* thrown.\n\n``` r\ndplyr::filter(mtcars, big_cyl = c(TRUE))\n#> Error in `dplyr::filter()`:\n#> ! We detected a named input.\n#> ℹ This usually means that you've used `=` instead of `==`.\n#> ℹ Did you mean `big_cyl == c(TRUE)`?\n```\n\n",
#>     "closed_by": {},
#>     "reactions": {
#>       "url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/reactions",
#>       "total_count": 0,
#>       "+1": 0,
#>       "-1": 0,
#>       "laugh": 0,
#>       "hooray": 0,
#>       "confused": 0,
#>       "heart": 0,
#>       "rocket": 0,
#>       "eyes": 0
#>     },
#>     "timeline_url": "https://api.github.com/repos/tidyverse/dplyr/issues/7105/timeline",
#>     "performed_via_github_app": {},
#>     "state_reason": {}
#>   }
#> ] 

## Automatic pagination
users <- gh("/users", .limit = 50)
length(users)
#> [1] 50
if (FALSE) {
## Access developer preview of Licenses API (in preview as of 2015-09-24)
gh("/licenses") # used to error code 415
gh("/licenses", .accept = "application/vnd.github.drax-preview+json")
}
if (FALSE) {
## Access Github Enterprise API
## Use GITHUB_API_URL environment variable to change the default.
gh("/user/repos", type = "public", .api_url = "https://github.foobar.edu/api/v3")
}
if (FALSE) {
## Use I() to force body part to be sent as an array, even if length 1
## This works whether assignees has length 1 or > 1
assignees <- "gh_user"
assignees <- c("gh_user1", "gh_user2")
gh("PATCH /repos/OWNER/REPO/issues/1", assignees = I(assignees))
}
if (FALSE) {
## There are two ways to send JSON data. One is that you supply one or
## more objects that will be converted to JSON automatically via
## jsonlite::toJSON(). In this case sometimes you need to use
## jsonlite::unbox() because fromJSON() creates lists from scalar vectors
## by default. The Content-Type header is automatically added in this
## case. For example this request turns on GitHub Pages, using this
## API: https://docs.github.com/v3/repos/pages/#enable-a-pages-site

gh::gh(
  "POST /repos/{owner}/{repo}/pages",
  owner = "r-lib",
  repo = "gh",
  source = list(
    branch = jsonlite::unbox("gh-pages"),
    path = jsonlite::unbox("/")
  ),
  .send_headers = c(Accept = "application/vnd.github.switcheroo-preview+json")
)

## The second way is to handle the JSON encoding manually, and supply it
## as a raw vector in an unnamed argument, and also a Content-Type header:

body <- '{ "source": { "branch": "gh-pages", "path": "/" } }'
gh::gh(
  "POST /repos/{owner}/{repo}/pages",
  owner = "r-lib",
  repo = "gh",
  charToRaw(body),
  .send_headers = c(
    Accept = "application/vnd.github.switcheroo-preview+json",
    "Content-Type" = "application/json"
  )
)
}
if (FALSE) {
## Pass along a query to the search/code endpoint via the ... argument
x <- gh::gh(
            "/search/code",
            q = "installation repo:r-lib/gh",
            .send_headers = c("X-GitHub-Api-Version" = "2022-11-28")
            )
 str(x, list.len = 3, give.attr = FALSE)

}