热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GithubApi-如何跟踪移动的回购/项目?

如何解决《GithubApi-如何跟踪移动的回购/项目?》经验,为你挑选了1个好方法。

我正在构建一个通过github API跟踪一些github repos的应用程序.当我手动移动或重命名我的应用程序正在跟踪的项目(在github上)时,我失去了它(当我调用旧的api url时获得404).我注意到当我通过浏览器导航到我的旧项目URL时,我得到301并被重定向到正确的页面.有没有一种简单的方法可以通过api找到项目的新位置?也许通过"id"属性或其他东西搜索项目?谢谢!

示例:old:github.com/api/v3/repos/group/app1重命名为:github.com/api/v3/repos/group/app2

当我打电话给github.com/api/v3/repos/group/app2时,当我导航到github.com/group/app1时,我收到了404.我收到301并被重定向到github.com/group/app2

干杯.



1> O-I..:

我遇到了这个问题,并且能够从Github支持获得一些非常有用的信息.

目前,API不会像存储库或用户重命名那样重定向github.com,但截至2015年4月17日,您可以预览存储库重定向.

Take 6to5/6to5,改名为babel/babel,作为一个例子.如您所知,请求https://api.github.com/repos/6to5/6to5将返回404,但我们可以通过传递预览即将到来的回购重定向功能application/vnd.github.quicksilver-preview+json作为Accept标题:

$ curl -i -H "Accept: application/vnd.github.quicksilver-preview+json" https://api.github.com/repos/6to5/6to5

这将返回301和一个带有url键的响应,该键的值是我们要查找的repo的链接:

{
  "message": "Moved Permanently",
  "url": "https://api.github.com/repositories/24560307",
  "documentation_url": "https://developer.github.com/v3/#http-redirects"
}

或者,您可以使用唯一id属性(永不更改)来跟踪存储库(或用户),而不管名称更改如何.

我们再以babel/babelnée 6to5/6to5为例.它的回购id24560307.您可以使用它来调用/repositories/:id端点(例如https://api.github.com/repositories/24560307),并保证只要它仍然存在就获得该repo.

以下是我与GitHub支持的交换记录,供参考:

检测重命名的仓库

你好.

有没有办法使用Github API检测重命名的存储库?

例如,最近将6to5/6to5重命名为babel/babel.Running curl -i https://github.com/6to5/6to5返回301,其中Location字段指向新位置.但是,运行curl -i https://api.github.com/repos/6to5/6to5返回404.

反正是否有API获取该位置字段?如果没有,那么使用不使用API​​的HEAD请求是一种有效的解决方法,还是有更好的方法来实现我的目标?我正在尝试在codetriage/codetriage上解决这个问题(https://github.com/codetriage/codetriage/issues/228).

感谢您提供的任何帮助.

一切顺利,OI


嗨,OI,

你是对的 - API不会像github.com那样在存储库或用户名重命名上重定向.这可能是我们将来会提供的东西(我同意它会有用),但我不能对此做出任何承诺.感谢您表达兴趣!

目前,有一种方法可以处理API脚本和应用程序中的重命名 - 而不是使用存储库的名称来发出API请求,您可以使用存储库的ID(在重命名存储库时不会更改或转移).

例如,github/linguist的ID是1725199:

https://api.github.com/repos/github/linguist

现在您知道了,您可以通过ID获取存储库:

https://api.github.com/repositories/1725199

如果您没有跟踪存储库的ID,而您拥有的只是以前的名称,那么向github.com发送HEAD请求以查看您将被重定向的位置是我目前唯一可以想到的解决方法.

希望这有帮助,如果您有任何其他问题,请告诉我们.

干杯,伊万


嗨,OI,

我想您可能有兴趣知道我们很快会在API中为重命名的存储库提供重定向.您现在可以预览重定向功能,我们将在接下来的几个月内为所有请求启用它.您可以在今天的帖子https://developer.github.com上阅读更多相关信息:

https://developer.github.com/changes/2015-04-17-preview-repository-redirects/

如果您尝试一下,我们很乐意就您的功能是否满足您的需求提供反馈.

杰森,一切顺利


推荐阅读
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • php7 curl_init(),php7.3curl_init获取301、302跳转后的数据
    最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容&#x ... [详细]
  • 为PHP5安装curl和gd
    2019独角兽企业重金招聘Python工程师标准一、查看php5是否安装了curl:1在web服务器目录(Ubuntu下通常为varwww ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • 在使用豆瓣OAuth登录接口时,我们需要发送这样的HTTPREQUEST请求:GETv2user~meHTTP1.1Host:https:api.douban.com ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • linux下编译安装lnmp
    2019独角兽企业重金招聘Python工程师标准#######################安装依赖#####################安装必要的包:y ... [详细]
author-avatar
纯果多肽-小芳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有