标签: github-api

无法使用我的GitHub帐户设置Tower - 错误:无法锁定配置文件

我一直在使用GitHub for Mac应用程序,但根据朋友的建议,决定给Tower一个机会,因为它也可以处理Beanstalk帐户.

安装试用版并输入我的GitHub用户名和密码后,我收到了以下错误:

error: could not lock config file /Users/joshferrara/.gitconfig: Permission denied
Run Code Online (Sandbox Code Playgroud)

我只是好奇,如果有人知道是什么导致了这个或者它是否与我使用Tower有任何关联.任何帮助是极大的赞赏!


文件权限:

-rw-rw-rw- 1 joshferrara staff 130 Nov 22 17:14 /Users/joshferrara/.gitconfig
Run Code Online (Sandbox Code Playgroud)

父目录的权限:

drwxr-xr-x 74 501 staff 2516 Apr 26 14:46 /Users/joshferrara
Run Code Online (Sandbox Code Playgroud)

git github github-api github-for-mac git-tower

8
推荐指数
2
解决办法
3万
查看次数

如何从Github API创建孤立分支?

我想gh-pages从Github API 创建分支.是否有捷径可寻?

如果没有,我将如何从Github API创建孤立分支?

git github github-api

8
推荐指数
1
解决办法
1172
查看次数

GitHub Webhook秘密永远不会验证

我正在使用GitHub webhook将事件传递给我的应用程序(GitHub的Hubot的一个实例),并使用sha1秘密进行保护.

我正在使用以下代码验证传入webhooks上的哈希值

crypto    = require('crypto')
signature = "sha1=" + crypto.createHmac('sha1', process.env.HUBOT_GITHUB_SECRET).update( new Buffer request.body ).digest('hex')
unless request.headers['x-hub-signature'] is signature
  response.send "Signature not valid"
  return
Run Code Online (Sandbox Code Playgroud)

在webhook中传递的X-Hub-Signature标头看起来像这样

X-Hub-Signature:sha1 = 1cffc5d4c77a3f696ecd9c19dbc2575d22ffebd4

我按照GitHub的文档准确传递密钥和数据,但哈希总是不同.

这是GitHub的文档. https://developer.github.com/v3/repos/hooks/#example

这是我最有可能误解的部分

secret:作为X-Hub-Signature标头与HTTP请求一起传递的可选字符串.使用秘密作为密钥,将此标头的值计算为正文的HMAC十六进制摘要.

谁能看到我哪里出错了?

git cryptography github node.js github-api

8
推荐指数
3
解决办法
2659
查看次数

我是否可以获得仅限访问单个组织的Github访问令牌?

我需要通过github api访问组织中的私有存储库.

我使用我的个人访问令牌,但它提供了我不希望它拥有的私人仓库的访问权限.

是否可以创建只访问一个组织的访问令牌,而不是所有私有存储库?

github-api

8
推荐指数
1
解决办法
2285
查看次数

向Github API发出Post请求以创建问题是行不通的

在过去的几天里,我一直试图向github api提出这个帖子请求,但不幸的是,响应又回来了"坏消息"

这是我们在post请求中使用节点中的https请求发送的代码段 -

这是发布数据

var issueData = JSON.stringify({
  "title":title,
  "body":comment
});
Run Code Online (Sandbox Code Playgroud)

这是选项文件

var options = {
  host: 'api.github.com',
  path: '/repos/sohilpandya/katasohil/issues?access_token='+sessions.token,
  headers: {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0',
  },
  method: 'POST'
};
Run Code Online (Sandbox Code Playgroud)

这是https请求

var requestaddIssue  = https.request(options, function(responseFromIssues){
  responseFromIssues.setEncoding('utf8');
  responseFromIssues.on('data', function(chunk){
    console.log('>>>>chunk>>>>>',chunk);
    issueBody += chunk;
  });
  responseFromIssues.on('end',function(issueBody){
    console.log(issueBody);
  });
});
requestaddIssue.write(issueData);
requestaddIssue.end();
Run Code Online (Sandbox Code Playgroud)

我尝试了另一种方法,其中用户的身份验证令牌位于标题中

'Authentication': 'OAuth '+ sessions.token (where we are storing token inside sessions)
Run Code Online (Sandbox Code Playgroud)

但是块响应似乎总是在控制台日志中返回以下内容.

{
 "message": "Not Found",
 "documentation_url": "https://developer.github.com/v3/issues/#create-an-issue"
}
Run Code Online (Sandbox Code Playgroud)

我在apigee尝试过相同的操作,似乎工作正常并返回正确的响应.希望有人可以在上面的代码中找到导致此错误消息错误的次要错误.

node.js github-api

8
推荐指数
1
解决办法
1389
查看次数

GitHub Gist API补丁不起作用?

我正在使用Postman创建匿名Gists.Gists已成功创建,但当我尝试修补它们时,我得到:

{
  "message": "Not Found",
  "documentation_url": "https://developer.github.com/v3/gists/#edit-a-gist"
}
Run Code Online (Sandbox Code Playgroud)

我使用的URL是:

https://api.github.com/gists/14694f43065a32ec28ad 
Run Code Online (Sandbox Code Playgroud)

如果我做GET,它工作正常.如果我执行PATCH,我会收到一条错误消息.

这有什么不对?

gist github github-api

8
推荐指数
1
解决办法
735
查看次数

(GitHub)非OA网站应用程序的API OAuth身份验证?

我困惑的开始

我特意与GitHub合作,但这似乎很普遍.

GitHub文档状态[格式化已由我修改]:

有三种方法可以通过GitHub API v3进行身份验证....

  • 基本认证
  • OAuth2令牌(在标头中发送)
  • OAuth2令牌(作为参数发送)
  • OAuth2密钥/秘密

...请注意,对于非网站的应用程序,可以通过编程方式获取 OAuth2令牌.

[我假设第二个和第三个项目实际上被认为是单一的"身份验证方式"但是,根据该部分中的格式,"失败的登录限制"也可能被误解为"验证方式"为没有明确的"三种方式"清单.]

以上"以编程方式获取"链接的文本开始:

如果您需要少量令牌,实施Web流程可能很麻烦.相反,可以使用OAuth Authorizations API使用基本身份验证创建令牌.要为特定OAuth应用程序创建令牌,您必须提供其在OAuth应用程序设置页面上找到的客户端ID和密码,该页面是从GitHub上的OAuth应用程序列表链接的.如果您的OAuth应用程序打算为一个用户创建多个令牌,则应使用指纹来区分它们.

通过另一种身份验证形式的授权验证?

解析我的困惑

让我们一句一句地解析上述所有内容.

第一句

如果您需要少量令牌,实施Web流程可能很麻烦.

好吧,希望我真棒的非网站应用程序会有很多用户,所以我需要很多令牌,对吧?那么这是不是意味着,我应该"实施网络流程"?我怀疑它确实如此.

第二句

相反,可以使用OAuth Authorizations API使用基本身份验证创建令牌.

现在,这非常令人困惑.我希望我的非网站应用程序(NAWP)代表我的用户与GitHub进行交互,我希望他们能够避免未经身份验证的用户API请求速率限制.我不能只用GitHub注册我的应用程序,并在我的请求中包含我的注册客户端ID和秘密,因为:

此方法仅应用于服务器到服务器调用.您永远不应与任何人共享您的客户机密,或将其包含在客户端浏览器代码中.

因此,我想使用我的NAWP向GitHub或代表用户进行身份验证.

因此,我可以使用特殊授权API创建身份验证令牌,以访问常规GitHub API,但我必须首先使用基本身份验证进行身份验证.大.一个问题 - 我通过基本身份验证提供哪些凭据才能访问授权API?矿?一个特殊的GitHub帐户只适用于我的应用程序?用户的?

我猜我应该使用用户的凭据,并且用户必须信任我的NAWP,一旦使用它们为自己创建身份验证令牌,就会立即忘记这些凭据.好吧,这似乎不太理想,但我现在愿意继续.

第三句

要为特定OAuth应用程序创建令牌,您必须提供其在OAuth应用程序设置页面上找到的客户端ID和密码,该页面是从GitHub上的OAuth应用程序列表链接的.

等待.WTF.我使用我的用户的GitHub用户名和密码(或用户必须自己生成的令牌?)进行身份验证,他们可以让我的NAWP永远使用,特别是如果我只是想访问公共信息但是避免速率限制?) ,然后我的NAWP必须通过发出请求来请求生成OAuth令牌,其中一个必需参数是......"要为其创建令牌的40个字符OAuth app客户端密钥."

这似乎不对.

在文档的第一部分中,引用了这个问题的顶部,在"OAuth2密钥/秘密"子部分下,它写成:

这应该仅用于服务器到服务器方案.不要将OAuth应用程序的客户端密钥泄露给您的用户.

此外,在"增加OAuth应用程序的未经身份验证的速率限制"子部分中,写入:

如果您的OAuth应用程序需要以更高的速率限制进行未经身份验证的调用,则可以将应用程序的客户端ID和机密作为查询字符串的一部分传递.

...

此方法仅应用于服务器到服务器调用.您永远不应与任何人共享您的客户机密,或将其包含在客户端浏览器代码中.

我错过了什么吗?我肯定错过了什么.因为当然我无法安全地分发GitHub在我的NAWP中为我生成的客户端秘密.

第四句

如果您的OAuth应用程序打算为一个用户创建多个令牌,则应使用指纹来区分它们.

这根本不是混乱(我不是讽刺).如果我的NAWP的单个实例被多个用户使用,那么我只需要包含某种标识符来区分我需要或想要创建的任何标记; 非常简单.

但理解这句话并没有消除我对前三个的困惑.

重申我的困惑

那么,是否或者不可能代表GitHub用户使用OAuth对NAWP 进行安全身份验证? …

authentication oauth github-api oauth-2.0

8
推荐指数
1
解决办法
2081
查看次数

如何从GitHub API获取最后一次提交

我想知道哪种是使用GitHub API(Rest API v3)从git存储库获取最新提交信息的最佳方法.

选项1:GET /repos/:owner/:repo/commits/master 我可以假设响应的对象'commit'是分支主控的最新提交吗?

选项2:GET /repos/:owner/:repo/git/commits/5a2ff 或者调用,一个通过从master获取HEAD ref来获取sha,然后使用返回的sha获取提交信息.

谢谢您的帮助

git github github-api

8
推荐指数
4
解决办法
6394
查看次数

使用github API v4 graphQL获取提交更改的文件和补丁

In the Rest v3, I could easily query a commit and get the changed files and patch for each file: https://developer.github.com/v3/repos/commits/#get-a-single-commit

I don't seem to be able to retrieve this info using the new v4 graphQL, does anyone have a clue how?

github-api graphql

8
推荐指数
1
解决办法
141
查看次数

使用GitHub list-issues-for-a-repository API

当您转到GitHub时,在Issues下,它将所有未解决的问题作为HTML页面拉出。我们希望实现一个仪表板,以显示存储库中的所有问题(按标签分组),包括那些未正确标记的问题。

这是相应的存储库列表问题API。

当我最初使用jQuery和Javascript时,现在使用PHP进行概念验证,因为其内置的会话处理功能使我可以使用同一页面登录,让GitHub进行身份验证和回调并继续。但这对我来说并不重要,任何语言都可以。

我已经设法通过OAUTH2访问GitHub API,但是当我通过https://api.github.com/orgs/{org}/repos它获取存储库列表时,它会显示为一个空数组。

因为/orgs/{org}/reposAPI返回一个空数组,所以相应的/repos/{org}/{repo}/issuesAPI 当然会返回一个错误。

编辑:请参阅此后续解决方案!很高兴我终于可以正常工作了!

github github-api github-api-v3

8
推荐指数
2
解决办法
272
查看次数